先日,身内の勉強会(&ラボの勉強会)で,Deep Learningについてお話してきました.これまで興味がなさそうだったのに何故急に?というのはおいておいて.
紹介したのは,Deep Learningの第一人者のひとり, Yoshua Bengio先生自身が執筆された,以下の論文.
- Yoshua Bengio, Practical recommendations for gradient-based training of deep architectures, arXiv:1206.5533v2, 2012
どうやら書籍の草稿のようで,Bengio先生の長年の研究で得られたさまざまなノウハウ(最近の手法まで)がぎっしり詰め込まれています.すごい.
以前から気にはなりつつも,ちょっと分量が多い(30ページくらいある)ので,なかなか手を出すことができなかったのですが,ようやくヤル気が出てきたので,ちょっとがんばって読み込んでみました.
スライドも置いておきます.50枚くらいあります(作るのしんどかった・・・.
Deep Learningは,その性能の高さから各所でブームになっていますが,実際に手を出してみるとハイパーパラメータがやたらと多く,最適化も難しい,ということで,使いこなしにくい技術になってしまっている感があります.
この記事では,Bengio先生が長年蓄積されたきたノウハウをもとに,
- どんなハイパーパラメータがあるか
- どのように最適化すればよいか
- うまく動かないときは,何をチェックすればよいか
- 学習の結果得られたネットワークを解釈するための可視化の方法
など,実問題に適用する場合に役立つ,様々なアドバイスがまとめられています.
特に興味深かったのは,ハイパーパラメータはグリッドサーチするのではなく,ランダムサンプリングしたほうが性能が出る場合が多いよ,という知見.
何故なのか,というのは,スライドを見ていただいたり,以下の文献
- James Bergstra, Yoshua Bengio, Random Search for Hyper-Parameter Optimization, Journal of Machine Learning Research, 13(Feb):281−305, 2012.
を読んで頂ければ合点がいくのではないかと思います.
これが機械学習一般に対して言えるか,というと必ずしもそうではなく,SVMのようにハイパーパラメータが少ないモデルでは成り立たないのではないかとは思いますがが,なかなか衝撃的な事実です.は〜グリッドサーチとは一体なんだったのか.
この論文を読めばDeep Learningが自在に使えるようになる,ということは無さそうですが,上手くいかず悩んでいる方がいらっしゃいましたら,少しでも参考にしていただければ幸いです.
ところで,ふだんはPowerPointを使ってスライドを書いているのですが,今回はBeamerを使って作ってみました.まじめに使ったのは初めて.
PowerPointと比較すると,以下のような感想を持ちました.
- あらかじめ用意されたスタイルから逸脱したことは非常にやりにくくなっているので,よくある「文字が小さすぎてギッシリ」みたいな読みにくいスライドは作りにくく,結果として読みやすいものができあがる
- タイプセット&PDF生成に時間がかかるので(今回の場合,最終的に20秒くらいかかるようになってしまいました),枚数がふえるとけっこうイライラ(要素の位置をちょっと調整する,とかで20秒かかるのはアホらしい)
- 図を入れるのがめんどい.PPTならコピペでよいところが,キャプチャしてバウンディングボックス作ってincludegraphics…
- 要素の入れ子の嵐になる(PPTならタブ一個でいいところが,itemize環境の追加になる)ので,可読性に劣る
- Markdownとかから変換できればいいな〜
- TeXの(バッド)ノウハウ・・・
全体的に,準備に時間がかけられて,かつソコソコ長いプレゼン(20枚〜)であれば,使う価値はあると思います(ただしTeX慣れしてるのが大前提)
ただ,長すぎるとタイプセットの時間でイライラするようになるので,一長一短ですね.
公式のリファレンスマニュアルは異様に詳しいのですが,どう見ても入門向きではないですし,読む気も起きないと思いますので,まずはA Beamer Tutorial in Beamerあたりを参考にされるとよいのではないかと思います.