April 2020
Intermediate to advanced
552 pages
6h 13m
Japanese
ニューラルネットワークでは、過学習がよく問題になります。過学習が起こる主な原因としては、
などが挙げられます。1つ目の原因に関しては、データを増やすこと、またデータを人工的に増やすデータ拡張(data augmentation)を利用することが有効です。
2つ目の原因には、weight decay(重み減衰)やDropout[34]、batch normalization(バッチ正規化)[35]などが有効です。特にDropoutという手法は単純でありながら効果的な手法であり、実践的によく使われます。そこで本ステップでは、DeZeroにDropoutを追加します。またDropoutは、学習時とテスト時で処理を変更する必要があります。そこで、学習とテストのフェーズを判別できる仕組みも作ります。
Dropoutは、ニューロンをランダムに消去(無効に)しながら学習する手法です。学習時に隠れ層のニューロンをランダムに選び出し、その選び出したニューロンを消去します。消去されたニューロンは、図54-1に示すように、信号の伝達が行われなくなります。
図54-1 Dropoutの学習時の挙動
Dropoutを使った学習は、データを流すたびに、消去するニューロンをランダムに選択します。たとえば、10個のニューロンからなる層があり、その層の次にDropoutレイヤを用いて60%のニューロンをランダムに消去するとします。この挙動は、コードで示すと次のようになります。 ...
Read now
Unlock full access