全結合層に用いられるドロップアウトについて説明します。
ドロップアウト
図のように、全結合層で、学習時にxx%のノードを使用せずに学習を行うことをドロップアウトと言います。学習ステップ毎にドロップアウトするノードはランダムに決められます。よく50%のドロップアウトを使用している例を見かけます。ドロップアウトをさせるのは、学習時だけで、推論時は全てのノードを利用します。
ドロップアウトの効果
ドロップアウトは、過学習を抑制するために利用されます。過学習とは、学習用データに過度に最適化されてしまい、一般のデータを正しく推論できない状況を言います。過学習を抑制するための手法はいくつかありあすが、その1つがドロップアウトになります。
ネットワークの一部、特に出力に近い後段にドロップアウト層を挟むことが多いです。
まとめ
ドロップアウトについて説明しました。私自身、ドロップアウト層だけで過学習を解消できた経験はありませんが、有効な手法の1つということで、データ拡張と組み合わせて使用することが多いです。フレームワークでも簡単にドロップアウト機能を挿入できるので、過学習に悩んだら使ってみるのが良いと思います。
ただし、ドロップアウトとバッチノーマライゼーションを同じ層で併用するのは、よくないようなのでご注意ください。<https://arxiv.org/abs/1801.05134>