LSTMにおける中間層のユニット数

5,007 views
Skip to first unread message

yuki ike

unread,
Jul 8, 2016, 12:49:07 AM7/8/16
to Chainer Japanese User Group
お世話になっております。chainerを利用してLSTMモデルを構築しているのですが、中間層のユニット数の設定が上手くいかず困っております。
現在およそ15000次元の数値ベクトルを入力として与え、それが0,1の2つのクラスのどちらに所属しているかを教師データとして与え、学習を行うよう実装しているのですが、その際の中間層のユニット数はどのようにして決定すればよいでしょうか?
現在入力層のユニット数は15000、出力層のユニット数は2としてモデルを構築しております。
よろしくお願い申し上げます。

yuki ike

unread,
Jul 8, 2016, 4:01:09 AM7/8/16
to Chainer Japanese User Group
中間層のユニット数を650に設定してみて学習数20で学習を行ってみました。テストデータに対して評価を行ってみたところ、出力層では多くの入力に対して
[0.87231892   0.12768105]という出力が行われしまう状況です(クラス0に属する確率が0.872,クラス1に属する確率が0.127)。
これについて、十分に学習が行われていないのか過学習なのかわかりかねている状況です。

Kenta Oono

unread,
Jul 8, 2016, 11:46:17 PM7/8/16
to Chainer Japanese User Group
大野です。

中間層のユニットの最適な数はデータセットと問題依存であり、一般的な決定方法はあまり知られていないと思います。
例えば、論文として報告されている問題・データセット・ニューラルネットのアーキテクチャで実験して、
そこからパラメータを変更するなどはよく行われます。

>これについて、十分に学習が行われていないのか過学習なのかわかりかねている状況です。
under fittingかover fittingかは、訓練データとテストデータでの精度(accuracyや損失関数の減少具合)を見て判断するのが良いと思います。
例えば訓練データでの損失関数は下がっているけれど、テストデータで下がっていなければ過学習をしていると思います。

深層学習におけるハイパーパラメータの実践的な調整に関しては、例えばBengioの以下の論文などがあります。


2016年7月8日金曜日 17時01分09秒 UTC+9 yuki ike:

yuki ike

unread,
Jul 9, 2016, 5:42:41 AM7/9/16
to Chainer Japanese User Group
なるほど大変参考になります。
ありがとう御座います。

2016年7月8日金曜日 13時49分07秒 UTC+9 yuki ike:
Reply all
Reply to author
Forward
0 new messages