ドロップアウトは、人工ニューラルネットワークにおいて過学習を低減するために使用される正則化手法であり、トレーニングデータに対する複雑な共適応を防ぐことを目的としている。この手法は、トレーニングプロセス中にニューロンの入力および/または出力をランダムにゼロに設定することで構成され、推論時には行われない。ネットワークからユニットを一時的に除去することで、ドロップアウトは残りのユニットに、特定の他のユニットの存在に依存するのではなく、単独でうまく機能するより堅牢な特徴を学習させる。このアプローチは、Deep learningおよびMachine learningにおける標準的なツールとなっており、特に過学習のリスクが大きい大規模モデルのトレーニングにおいて重要である。
この概念は、希釈と呼ばれる古い手法と密接に関連しており、希釈は重みをランダムにゼロに向かって減少させる。希釈は通常、除去される接続の割合に応じて、弱い希釈と強い希釈に分けられる。ドロップアウトはしばしば希釈の特殊なケースとして説明されるが、個々の重みではなくノード全体(重み行列の行)を除去する点で異なり、これは数学的解析と実装に影響を与える。
歴史的発展
ニューラルネットワークの接続をランダムに摂動させるというアイデアは、ノイズ注入や重み減衰に関する初期の研究にルーツを持つ。ドロップアウトの前身である希釈は、1980年代から1990年代にかけてホップフィールドネットワークや連想記憶モデルの文脈で研究された。研究者たちは、接続の小さな割合をランダムに除去することで汎化性能が向上することを観察したが、理論的理解は限られていた。
現代のドロップアウトは、2012年の論文でニティッシュ・スリヴァスタヴァとジェフリー・ヒントンによってUniversity of Torontoで導入され、2014年にはより詳細なジャーナル論文が発表された。この手法は、画像分類タスクでの成功した応用後に広く注目を集め、従来の手法と比較して過学習を大幅に低減した。2014年の論文では、MNIST手書き数字データセットとCIFAR-10画像データセットでのテストエラーの低減を含む、いくつかのベンチマークデータセットでの改善が報告された。
導入以来、ドロップアウトは様々な形態に拡張・適応されており、トレーニング中のアクティベーションをスケーリングして出力の大きさを一定に保つ反転ドロップアウトや、ベイズ的解釈を適用する変分ドロップアウトなどが含まれる。これらの変種は多くのNeural networkアーキテクチャに組み込まれ、主要なMachine learningフレームワークでサポートされている。
数学的定式化
一般化された線形ネットワークでは、線形ノードの層からの出力は \( y_i = \sum_j w_{ij} x_j \) と記述でき、ここで \( y_i \) はノード \( i \) からの出力、\( w_{ij} \) は希釈前の実重み(ヘッブ接続強度とも呼ばれる)、\( x_j \) はノード \( j \) からの入力である。ベクトル表記では、\( \mathbf{y} = \mathbf{W} \mathbf{x} \) と書かれ、ここで \( \mathbf{y} \) は出力ベクトル、\( \mathbf{W} \) は重み行列、\( \mathbf{x} \) は入力ベクトルである。
弱い希釈では、除去される接続の有限割合が小さく、わずかな不確実性が生じる。このエッジケースは平均場理論で正確に解くことができる。希釈された重み \( \hat{w}_{ij} \) は \( \hat{w}_{ij} = c w_{ij} \) で与えられ、ここで \( c \) は重みを保持する確率を表す確率分布 \( P(c) \) に従うランダム変数である。弱い希釈では、重みの小さく固定された割合のみが希釈され、和の項数が無限大になるとき、それは無限のままであり、平均場理論を適用できる。
強い希釈は、除去される接続の有限割合が大きい場合に発生し、大きな不確実性が生じる。この領域では、平均場理論の仮定がもはや成り立たない可能性があり、解析はより複雑になる。
ドロップアウトは、ベクトル行列の行全体がランダムな個々の重みではなく除去される重み方程式の特殊なケースである。希釈された行 \( \hat{\mathbf{w}}_j \) は \( \hat{\mathbf{w}}_j = c \mathbf{w}_j \) で与えられ、ここで \( c \) は重み行列の行を保持する確率である。ドロップアウトは行全体を除去するため、弱い希釈の前提と平均場理論の使用は適用できない。
メカニズムと実装
トレーニング中、ドロップアウトは各フォワードパスでニューロンのアクティベーションの一部をランダムにゼロに設定する。この割合はドロップアウト率と呼ばれ、通常0.2から0.5の間のハイパーパラメータである。各トレーニング例に対して異なるユニットのセットがドロップされ、重みを共有する薄いネットワークのアンサンブルを効果的に作成する。推論時にはすべてのユニットが使用されるが、その出力はアクティブなユニットの増加を考慮して保持確率でスケーリングされる。
ノードがゼロに駆動されるプロセスは、重みをゼロに設定するか、ノードを除去するか、他の手段によるかに関わらず、最終結果に影響を与えず、新しい独自のケースを作成しない。ニューラルネットが高性能なデジタルアレイ乗算器で処理される場合、プロセスグラフの後半で値をゼロに駆動する方が効果的である可能性が高い。ネットがAMDやIntelアクセラレータなどの制約のあるハードウェア実装で処理される場合、特定の方法は効率に影響を与える可能性があるが、結果には影響しない。
実際には、ドロップアウトは畳み込み層よりも完全結合層に適用されることが多いが、ネットワークのどの部分でも使用できる。Large language modelアーキテクチャ、例えばTransformer (architecture)では、ドロップアウトはアテンション層とフィードフォワード層の出力に適用されることが多く、率は通常約0.1である。TensorFlowやPyTorchなどの現代のフレームワークは、スケーリングを自動的に処理する組み込みのドロップアウト層を提供している。
希釈との関係
希釈とドロップアウトは関連しているが異なる手法である。希釈は重みをランダムにゼロに向かって減少させ、ドロップアウトはニューロンのアクティベーション全体をゼロに設定する。希釈は通常、弱い希釈と強い希釈に分けられ、それらの間の限界に明確な区別はなく、特定のユースケースの前例に依存し、正確な解を求める方法に影響を与える。
時には希釈が入力に減衰ノイズを追加するために使用される。その場合、弱い希釈は少量の減衰ノイズを追加することを指し、強い希釈はより多くの減衰ノイズを追加することを指す。両方とも重み希釈の変種として書き直すことができる。
これらの手法は、重みのランダムプルーニングと呼ばれることもあるが、これは通常、非反復的な一方向の操作である。ネットワークはプルーニングされ、前のモデルよりも改善された場合に保持される。希釈とドロップアウトはどちらも反復プロセスを指し、手法が適用された後もネットワークは学習を続ける。対照的に、重みプルーニングは通常、ネットワークが学習を続けることを意味しない。
利点と限界
ドロップアウトはニューラルネットワークのトレーニングにいくつかの利点を提供する。ニューロンが特定の他のニューロンに過度に依存する複雑な共適応を防ぐことで過学習を低減する。これにより、未見のデータに対する汎化が向上する。ドロップアウトはまた、モデル平均化の一形態として機能し、薄いネットワークのアンサンブルをトレーニングし、推論時にそれらの予測を平均化する。これにより、予測の堅牢性が向上し、分散が低減される可能性がある。
しかし、ドロップアウトには限界がある。ネットワークがランダムに欠落したユニットで学習する必要があるため、トレーニング時間が増加し、収束が遅くなる可能性がある。ドロップアウト率は慎重に調整する必要があり、高すぎる率は過小適合を引き起こし、低すぎる率は正則化の利点がほとんどない。ドロップアウトは空間的相関を持つ畳み込み層には効果が低く、バッチ正規化や重み減衰などの他の手法が好まれる場合がある。
Generative AIやArtificial intelligenceシステムの文脈では、ドロップアウトは他の正則化手法と一緒に使用されることが多い。例えば、OpenAIやGoogle DeepMindによって開発されたTransformer (architecture)ベースのモデルでは、ドロップアウトがアテンション重みとフィードフォワード層に適用され、大規模データセットでの過学習を防ぐ。
現代のAIにおける応用
ドロップアウトは、様々な領域で深層ニューラルネットワークのトレーニングにおける標準的なコンポーネントとなっている。コンピュータビジョンでは、画像分類や物体検出のための畳み込みネットワークで使用される。自然言語処理では、言語モデリングや翻訳などのタスクのためにリカレントネットワークやトランスフォーマーで適用される。強化学習では、ドロップアウトはポリシーネットワークや価値関数の正則化に使用できる。
Large language modelのトレーニングでは、データとモデルパラメータの大規模なスケールがすでにいくつかの正則化を提供するため、ドロップアウトは低い率で適用されることが多い。しかし、小規模なモデルやトレーニングデータが限られている場合には依然として有用である。AnthropicやAmazon Web Servicesなどの企業は、様々なAIサービスのトレーニングパイプラインにドロップアウトを組み込んでいる。
ドロップアウトは不確実性推定にも応用される。推論時にドロップアウトを適用するモンテカルロドロップアウトにより、モデルは異なるドロップされたユニットで複数の予測を生成でき、予測的不確実性の推定が可能になる。これは、WaymoやTeslaによって開発されたシステムが不確実性の定量化から恩恵を受ける可能性がある自動運転などの安全性が重要なアプリケーションで有用である。
理論的視点
理論的な観点から、ドロップアウトは確率的正則化の一形態として解釈できる。これはトレーニングプロセスにノイズを導入し、特徴レベルのデータ拡張の一種と見なすことができる。一部の研究者はドロップアウトをベイズ推論と関連付けており、ドロップアウト率はネットワーク重み上の事前分布に対応する。
Stanford AI LabやBAIR (Berkeley AI Research)などの機関の研究者は、損失ランドスケープや汎化境界への影響を含むドロップアウトの理論的特性を研究してきた。完全な理論的理解は未解決の問題のままであるが、経験的証拠はその有効性を強く支持している。
結論
ドロップアウトは、Deep learningの分野に深い影響を与えたシンプルでありながら強力な正則化手法である。トレーニング中にユニットをランダムにドロップすることで、過学習を防ぎ汎化を向上させ、Machine learning実践者のツールキットにおける基本的なツールとなっている。希釈との関係は、より広い確率的正則化手法のファミリーを強調し、現代のアーキテクチャでの継続的な使用はその永続的な関連性を裏付けている。