Kerasをインストールしたので、Dropoutの効果を確認してみました。
学習繰り返し数による、認識率の推移を、プロット。
- Dropout無し → 学習用データ自身の認識率は100%に達しているが、テスト用データの認識率と開きがある = 過学習状態。
- Dropout有り → テスト用と学習用の差が小さい = 過学習が回避されている。
Dropoutなどは、Blak Magic(黒魔術)とも呼ばれているそうな。たしかに効果は確認できます。
Kerasでは、ハイパーパラメータの効果を気軽に確認しやすい気がしています。
####参考
- Kerasインストール: 私の場合。Tensorflowインストール後。
$pip3 install keras
-
Keras用MNISTサンプルコード: こちらから頂きました。
https://github.com/fchollet/keras/blob/master/examples/mnist_cnn.py -
過学習とDropoutについて
http://sonickun.hatenablog.com/entry/2016/07/18/191656 -
Dropout有りで、繰り返し初期に、テストの認識率がむしろ高くなる点:
学習時はドロップアウト状態で一部のノードしか使用していず、テスト時は全ノードを使用しているため、と考えられます。