用語集

ドロップアウト層

汎化性、ロバスト性、モデル性能を向上させることで、ニューラルネットワークのオーバーフィッティングを防ぐドロップアウト層の仕組みをご紹介します。

Ultralytics HUB で
を使ってYOLO モデルをシンプルにトレーニングする。

さらに詳しく

ドロップアウト層は、ディープラーニングモデル、特にニューラルネットワークのトレーニングにおいて、オーバーフィッティングに対抗するために使用される基本的なテクニックである。オーバーフィッティングは、モデルがノイズや特定のパターンを含む学習データを学習しすぎてしまい、新しい未知のデータへの汎化能力を妨げてしまう場合に発生する。ドロップアウトは、各トレーニング反復中に、レイヤーのニューロン活性の一部を一時的かつランダムに「ドロップアウト」、つまりゼロに設定することで、この問題に対処する。これによりネットワークは、どのニューロンにも依存しない、よりロバストな特徴を学習するようになる。

ドロップアウトの仕組み

学習プロセス中、バッチ内の各学習例に対して、ドロップアウト層の各ニューロンは、ある確率(「ドロップアウト率」、通常0.1~0.5)で非活性化される。これは、特定のフォワードパスとバックワードパスで、その出力がゼロに設定されることを意味する。残りのアクティブ・ニューロンは、1/(1-ドロップアウト率)に相当するファクターで出力がスケールアップされ、全体として期待されるアクティブ度の合計を維持する。このプロセスにより、各トレーニングステップでわずかに異なる「間引かれた」ネットワークアーキテクチャーが効果的に作成され、ニューロンが過剰に共同適応するのを防ぎ、より独立した有用な特徴を学習するよう促す。重要なことは、モデルの評価または推論段階では、ドロップアウト層はオフにされ、すべてのニューロンは学習された重みで使用され、ネットワークの全容量が予測に利用されることである。

メリットと重要性

ドロップアウト・レイヤーを使用する主な利点は、モデルの汎化性の向上である。ニューロン間の複雑な共適応を防ぐことで、ドロップアウトはモデルを訓練データ中の特定のノイズやパターンの影響を受けにくくする。これは正則化の一形態として機能し、L1/L2ウェイト減衰のようなテクニックと目的は似ているが、確率的メカニズムによって動作する。オーバーフィッティングが一般的な課題である、多くのパラメータを持つ大規模なネットワークにおいて特に効果的である。オリジナルのコンセプトは論文"Dropout:A Simple Way to Prevent Neural Networks from Overfitting "という論文に詳しい。

実世界での応用

ドロップアウトレイヤーは、AIや機械学習のさまざまな領域で広く使われている:

  1. コンピュータビジョン: 物体検出や 画像分類のようなタスクでは、ドロップアウトは畳み込みニューラルネットワーク(CNN)の完全連結層に適用されることが多い。以下のようなモデル Ultralytics YOLOのようなモデルは、学習中に正則化技術の恩恵を暗黙的に受け、COCOのような多様な画像データセットや、Ultralytics HUBを介して準備されたカスタムデータに対して、より優れた汎化を行うことができます。これにより、様々な実世界のシーンで物体を検出する際のロバスト性が確保され、自律走行車やセキュリティシステムへの応用に極めて重要です。
  2. 自然言語処理(NLP):ドロップアウトは、LSTMのようなリカレントニューラルネットワーク(RNN)や、機械翻訳や 感情分析のようなタスクに使用されるトランスフォーマーモデルで一般的に使用されている。これは、モデルが学習コーパスから特定のフレーズや文構造を記憶するのを防ぐのに役立ち、自然言語のより良い理解と生成につながる。Hugging Face Transformersのようなフレームワークは、モデル・アーキテクチャにドロップアウトを組み込むことが多い。

関連概念と区別

ドロップアウトは、オーバーフィッティングを防ぐために使われるいくつかのテクニックのひとつである。他には以下のようなものがある:

  • L1およびL2正則化:これらは、モデルの重みの大きさに基づいて損失関数にペナルティを追加し、より小さな重みを奨励する。
  • バッチ正規化各ミニバッチのレイヤーへの入力を正規化する。主に学習の安定化と高速化に使用されるが、若干の正則化効果もある。
  • データ増強入力データに回転、反転、色の変更などの変換を適用することで、学習データセットのサイズと多様性を人工的に増やします。Ultralytics ドキュメントでオーグメンテーションのテクニックをご覧ください。

ドロップアウトは、訓練中にニューロンの活性を確率的に直接操作することで、効果的に間引かれたネットワークのアンサンブルを訓練する点が異なる。

実施

ドロップアウトレイヤーは、主要なディープラーニングフレームワークの標準コンポーネントである。以下のようなライブラリで容易に利用できる。 PyTorchTensorFlowやTensorFlowのようなライブラリで容易に利用できるため、ニューラルネットワークアーキテクチャへの組み込みが容易である。

すべて読む