chainerで作ったDeep Learningモデルのハイパーパラメータチューニングを自動化してみる
ディープラーニングは各層の種類、活性化層の種類、オプティマイザの種類、オプティマイザのハイパーパラメータ、などなどたくさんあり、
手で最適化していくのは大変です。
そんなとき、
1. グリッドサーチ:パラメーターの候補の組み合わせパターンを全て調べる。
2. ランダマイズドサーチ:パラメーターの候補の組み合わせパターンを全て調べる。
3. その他賢いアルゴリズム系のサーチ:ベイジアン最適化、Tree-structured Parzen Estimator Approach(hyperopt)
といった、ものが使えます。
グリッドサーチはハイパーパラメータが少ない機械学習アルゴリズムでは有効ですが、ディープラーニングではあまりおすすめしません。実際には2.か3.を選ぶことになります。
賢い系のアルゴリズムはより有望そうなパラメータを試そうとしてくれます。
今回はhyperoptを使った例を書いてみます。
エッセンスはGpyopt(ベイジアン最適化)などほかのライブラリでも変わりません。
続きを読む
エイプリルフールなので、chainerのGUIクライアントを作った。
GitHub - fukatani/ChainerWing: GUI deep learning IDE based on chainer.
※一応動きます。
こんな感じ。
ぽちぽちやってるとニューラルネットが組みあがります。chainerベースです。
めちゃ機能が少ないですが、今後充実する予定。たぶん。
続きを読む【PFIセミナーまとめ】chainerMNはなぜ速いのか、今後の提供は?
先日このグラフで世界を驚かせたchainerMNの中身の話をchainerMNによる分散学習 - YouTubeでやっています。
chainerは分散ディープラーニングフレームワークとして現在世界最速だそうです。
視聴したのでメモ。おもしろかったです。
語り手はchainerMNの作者秋葉さん(iwiwi)
Top coderで四位、数々のプログラミングコンテストで受賞歴を持つすごい人。
動画を見る限り今までchainerで作っていたモデルをchainerMNに移し替えるのも簡単そうです。
続きを読むscikit-learn 0.20からクロスバリデーションの使い方が変更される模様
機械学習をやるときに結構良く使うところだなと思っていた、クロスバリデーションのスプリッター系モジュールのインターフェースが変わることに気づいたのでメモ。
scikit-learnの従来のクロスバリデーション関係のモジュール(sklearn.cross_vlidation)は、scikit-learn 0.18で既にDeprecationWarningが表示されるようになっており、ver0.20で完全に廃止されると宣言されています。
詳しくはこちら↓
Release history — scikit-learn 0.18 documentation
続きを読む