ドロップアウト層は、ニューラルネットワークで使用される正則化テクニックで、オーバーフィッティングを防ぐために使用される。トレーニング段階において、ドロップアウト層はネットワーク内のある割合のニューロンをランダムに「ドロップアウト」または非活性化する。このプロセスによって、ネットワークは特定のニューロンの存在に依存しない、よりロバストな特徴を学習するようになり、それによってモデルの新しい未知のデータへの汎化能力が向上する。
標準的なニューラルネットワークでは、あるレイヤーの各ニューロンは、前のレイヤーの各ニューロンに接続されている。トレーニング中、これらの接続は、ネットワークが処理するデータに基づいて強められたり弱められたりする。しかし、これではネットワークが訓練データに過度に特化し、ノイズや特定のパターンを捕捉してしまい、新しいデータにうまく汎化できなくなる可能性がある。
ドロップアウト層は、各訓練反復で層内のニューロンの一部をランダムにゼロに設定することで、この問題に対処する。ドロップアウトされるニューロンの割合はハイパーパラメータで、通常0.2から0.5の間に設定される。これは、各前方パスと後方パスの間に、層内のニューロンの20%から50%が不活性化されることを意味する。どのニューロンを脱落させるかの選択は、ネットワークが個々のニューロン に過度に依存しないように、反復ごとに変化する。
ドロップアウト層は、ディープラーニングモデルをトレーニングする上でいくつかの利点がある:
ドロップアウト層は、様々な深層学習アプリケーションで広く使われている。具体例を2つ紹介しよう:
ドロップアウトは、機械学習(ML)で使われるいくつかの正則化手法のひとつです。他の一般的な手法と比較してみましょう:
ドロップアウト層は通常、ニューラルネットワークの完全連結層の間や畳み込み層の後に挿入される。ドロップアウト層は、以下のような一般的なディープラーニングフレームワークを使ったモデルに簡単に統合できる。 TensorFlowそして PyTorch.非活性化するニューロンの割合を決定するドロップアウト率は、モデルのパフォーマンスを最適化するためにチューニングできるハイパーパラメータである。より高度なモデル最適化手法については、ハイパーパラメータ・チューニングをご覧ください。
ドロップアウトを実装するとき、ドロップアウト層はトレーニング時と推論時で異なる振る舞いをすることに注意することが重要である。トレーニング中、ニューロンは説明したようにランダムに脱落する。しかし推論時には、すべてのニュー ロンはアクティブであるが、その出力は期待される出力の大きさを維持するために、ドロップアウ ト率によってスケールダウンされる。このスケーリングにより、モデルの予測が訓練と推論の間で一貫していることが保証される。
さらに詳しく読むには、Srivastavaらによるドロップアウトに関するオリジナルの研究論文をご覧ください:ドロップアウト:ニューラルネットワークの過剰適合を防ぐシンプルな方法。また、バッチ正規化や正則化などの関連概念についても学ぶことができ、ニューラルネットワークのパフォーマンスを向上させるために使用されるテクニックをより深く理解することができます。