汎化性、ロバスト性、モデル性能を向上させることで、ニューラルネットワークのオーバーフィッティングを防ぐドロップアウト層の仕組みをご紹介します。
ドロップアウト層は、オーバーフィッティングに対抗するためにニューラルネットワーク(NN)で使用される、強力かつシンプルな正則化テクニックである。オーバーフィッティングとは、モデルがノイズや特異性を含めて学習データを学習しすぎてしまい、新しい未知のデータに汎化する能力が損なわれることである。2014年の画期的な論文でGeoffrey Hintonらによって紹介されたドロップアウトの核となるアイデアは、各トレーニングステップにおいて、ニューロンとその接続をランダムに「ドロップアウト」、つまり一時的に削除することである。これにより、ニューロン同士が過度に依存し合うのを防ぎ、ネットワークがよりロバストで冗長な表現を学習するようになる。
モデルの学習過程で、ドロップアウト層は、前の層のニューロンの何割かのアクティブ度 をランダムにゼロにする。ドロップアウト率」は、ニュー ロンがドロップアウトされる確率を定義するハイパーパラメータである。例えば、ドロップアウト率0.5は、各ニューロンが、ある学習反復中に50%の確率で無視されることを意味する。このプロセスは、重みを共有する多数の間引かれたネットワークを訓練すると考えることができる。
ネットワークのアーキテクチャを常に変化させることで、ドロップアウトは、ニューロンの出力が他の数個の特定のニューロンの存在に大きく依存するような、複雑な共適応を防ぐ。その代わりに、各ニューロンはより独立した有用な特徴検出器となるように促される。テストまたは推論の段階では、ドロップアウト層はオフにされ、すべてのニューロンが使用される。学習時よりも多くのニューロンがアクティブになるという事実を補うため、レイヤーの出力はドロップアウト率によってスケールダウンされる。これにより、各ニューロンから期待される出力が訓練時とテスト時で一貫性を保つことができる。PyTorchや TensorFlowのようなフレームワークは、ドロップアウト層の実装でこのスケーリングを自動的に処理する。
ドロップアウトは、人工知能(AI)や機械学習(ML)のさまざまな領域で広く使われている:
ドロップアウトは、ディープラーニングで正則化に使われるいくつかのテクニックのひとつである。他には以下のようなものがある:
要約すると、ドロップアウト層は、高度なコンピュータビジョンからNLPに至るまで、様々なアプリケーションでロバストなディープラーニングモデルをトレーニングするために不可欠な、シンプルかつ強力な正則化テクニックである。