論文 は いくつかあるのでしょう が、まず は 大御所 Bengio先生 の 以下の論文 が 参考 に なります。
( 論文 )
以下 の やりとり の中 で 言及されています。
yukinoji
お世話になっております。
chainerを利用してLSTMモデルを構築しているのですが、中間層のユニット数の設定が上手くいかず困っております。現在およそ15000次元の数値ベクトルを入力として与え、それが0,1の2つのクラスのどちらに所属しているかを教師データとして与え、学習を行うよう実装しているのですが、その際の中間層のユニット数はどのようにして決定すればよいでしょうか?
現在入力層のユニット数は15000、出力層のユニット数は2としてモデルを構築しております。
よろしくお願い申し上げます。
中間層のユニット数を650に設定してみて学習数20で学習を行ってみました。
テストデータに対して評価を行ってみたところ、出力層では多くの入力に対して
[0.87231892 0.12768105]という出力が行われしまう状況です(クラス0に属する確率が0.872,クラス1に属する確率が0.127)。これについて、十分に学習が行われていないのか過学習なのかわかりかねている状況です。
Kenta Oono
大野です。
中間層のユニットの最適な数はデータセットと問題依存であり、一般的な決定方法はあまり知られていないと思います。
例えば、論文として報告されている問題・データセット・ニューラルネットのアーキテクチャで実験して、そこからパラメータを変更するなどはよく行われます。
>これについて、十分に学習が行われていないのか過学習なのかわかりかねている状況です。
under fittingかover fittingかは、訓練データとテストデータでの精度(accuracyや損失関数の減少具合)を見て判断するのが良いと思います。
例えば訓練データでの損失関数は下がっているけれど、テストデータで下がっていなければ過学習をしていると思います。
深層学習におけるハイパーパラメータの実践的な調整に関しては、例えばBengioの以下の論文などがあります。
論文 の 位置付け
上記の論文 は、以下の本 の 草稿 の よう です。
Bengio論文 は、上記文献 の $437$ ページ に 収録されています。
( 目次の全体 )
解説スライド
この記事では,Bengio先生が長年蓄積されたきたノウハウをもとに,
- どんなハイパーパラメータがあるか
- どのように最適化すればよいか
- うまく動かないときは,何をチェックすればよいか
- 学習の結果得られたネットワークを解釈するための可視化の方法
など,実問題に適用する場合に役立つ,様々なアドバイスがまとめられています.
特に興味深かったのは,ハイパーパラメータはグリッドサーチするのではなく,ランダムサンプリングしたほうが性能が出る場合が多いよ,という知見.
何故なのか,というのは,スライドを見ていただいたり,以下の文献
- James Bergstra, Yoshua Bengio, Random Search for Hyper-Parameter Optimization, Journal of Machine Learning Research, 13(Feb):281−305, 2012.
を読んで頂ければ合点がいくのではないかと思います.
( 上記ウェブページ執筆者 に よる SlideShare公開スライド )
解説ウェブページの中 で 言及されている 論文
要約文(Abstract)の冒頭 で、
- Grid-Search より も ランダム・サーチ(manual search, randomly chosen trials) の 方 が 優れている
こと を
- 経験的(empirically) な 知見
- 理論的 (theoretically) な 知見
の 両面 から 示すこと が 宣言 されて いる。
Abstract
Grid search and manual search are the most widely used strategies for hyper-parameter optimization.
This paper shows empirically and theoretically that randomly chosen trials are more efficient for hyper-parameter optimization than trials on a grid.
人気の投稿
- クロージャってどんなときに使うの? ~ 利用場面を 3つ 挙げてみる
- Deep Learning の次は、TDA 「トポロジカル・データ・アナリシス」 (Topological data analysis) が来る ? ~ その概要と、R言語 / Python言語 実装ライブラリ をちらっと調べてみた
- Deep Learning ライブラリ&フレームワークをリストアップしてみた ~インストール・環境構築方法 と 使い方 解説ウェブサイトまとめ
- 時系列データ分析の初心者に必ず知ってもらいたい重要ポイント ~ 回帰分析 ・相関関係 分析を行う前に必ずやるべきこと(データの形のチェックと変形)
- Python 3 で Webクローリング & スクレイピング 初心者まとめ