ドロップアウト:ニューラルネットワークの過剰適合を防ぐ簡単な方法



Dropout Simple Way Prevent Neural Networks From Overfitting



オリジナル:Srivastava N、Hinton G、Krizhevsky A、他ドロップアウト:ニューラルネットワークの過剰適合を防ぐ簡単な方法[J]。 Journal of Machine Learning Research、2014、15(1):1929-1958。
これは、ディープラーニングの分野で1779年に引用された記事です。ディープラーニングを学ぶための必読の記事の中で、著者の主なアイデアを理解しましょう。

ディープニューラルネットワークには複数の非線形隠れ層が含まれているため、ディープニューラルネットワークは非常に強力な表現能力を備えたモデルになります。彼らは、ネットワークの入力と出力の間の非常に複雑な関係を学ぶことができます。ただし、トレーニングデータが限られているため、これらの複雑な関係の多くはサンプリングノイズの結果です。関係のこの部分はトレーニングセットにのみ表示され、トレーニングセットとテストセットが同じ分布から派生している場合でも、実際のテストセットには存在しません。これは過剰適合につながる可能性があり、この問題を軽減するために多くの方法が開発されています。これらの方法には、たとえば、検証セットでのネットワークのパフォーマンスが低下したときにトレーニングを終了する、L1およびL2正則化などの複数の重みペナルティを導入する、ソフトウェイト共有が含まれます。



無制限の操作を前提として、固定サイズのモデルを調整する最良の方法は、すべての可能なパラメーター設定から得られた予測結果の加重平均を取り、トレーニングセットの事後確率に従ってさまざまなパラメーターに与えられた重みを設定することです。 。これにより、単純なモデルや小さなモデルでかなり良い近似効果が得られる場合がありますが、ベイジアンゴールドスタンダードモデルのパフォーマンスを得るために、少量の計算を使用したいと思います。指数関数的な数の共有パラメーターを使用して学習モデルから取得された、同じ複数の予測の加重幾何平均を概算する予定です。

モデルの組み合わせは、一般的に機械学習手法のパフォーマンスを向上させることができます。しかし、巨大なニューラルネットワークの場合、多くの個別のトレーニング済みネットワークの出力を平均化するというアイデアは非常に高価です。単一のモデルが異なる場合、複数のモデルを組み合わせるのがほぼ効果的です。これらのモデル間の違いは、さまざまな構造に反映されているか、トレーニングにさまざまなトレーニングサンプルを使用しています。各構造に対応するハイパーパラメータを見つけるのは苛立たしい作業であり、異なる構造のモデルをトレーニングするには多くの計算リソースが必要になるため、多くの異なる構造のモデルをトレーニングすることは非常に困難です。さらに、巨大なネットワークは一般に多くのトレーニングデータを必要としますが、さまざまなネットワークをトレーニングするためのさまざまなサブセットを取得するのに十分なトレーニングデータがない場合があります。多くの異なる大規模ネットワークをトレーニングできる場合でも、高速応答が重要なシナリオでは、実際のアプリケーションテスト中にすべての大規模ネットワークを同時に使用することは現実的ではありません。



ドロップアウトは、これらの問題を解決するためのテクノロジーです。過剰適合を防ぎ、さまざまなニューラルネットワーク構造とさまざまな数の指数を組み合わせたおおよその方法を提供できます。ドロップアウトとは、ニューラルネットワーク内のいくつかのユニットをドロップすることを指します。ユニットの廃棄とは、次の図に示すように、ユニットをネットワークから一時的に削除し、そのすべての入力接続と出力接続を行うことを意味します。破棄するユニットの選択はランダムです。最も単純なケースでは、各ユニットは固定された独立確率pを持ちます。 pは、検証セットから取得することも、単に0.5に設定することもできます。

画像

ニューラルネットワークでドロップアウトを使用することは、ネットワークの簡略化されたバージョンを取得することと同じです。簡略化されたネットワークは、廃棄されないユニットで構成されます。 nユニットのニューラルネットワークには n ネットワークの簡略化されたバージョン。ネットワーク共有の重みのこれらの簡略化されたバージョンは、重みパラメーターの総数を静止させます または((n)。 以下。



テストの時点では、指数関数的数削減モデルによって得られた予測を平均化することはできません。しかし、非常に単純な近似平均法は、実際のアプリケーションで良い結果をもたらします。アイデアは、テスト中にドロップアウトなしで単一のネットワークを使用することです。ネットワークユニットの出力の重みは、トレーニング中にユニットがドロップアウトされない確率に等しくなります。このように、指数レベルの数を持つ単純化されたネットワークがテストで組み合わされ、実験はこれが汎化誤差を効果的に減らすことができることを証明します。

ドロップアウトの概念はニューラルネットワークに限定されず、ボルツマンマシンなどのグラフィカルモデルでも広く使用できます。