ドロップアウトによりモデルの一部のニューロンが抑制されるため、ドロップアウトレイヤーを追加するとディープ/機械学習のパフォーマンスが向上するのはなぜですか?


12

いくつかのニューロンを削除すると、モデルのパフォーマンスが向上する場合は、そもそも層数とニューロン数が少ない単純なニューラルネットワークを使用してみませんか?最初に大きくて複雑なモデルを作成し、後でその一部を抑制するのはなぜですか?

回答:


28

ドロップアウトの機能は、モデルの堅牢性を高め、ニューロン間の単純な依存関係を削除することです。

ニューロンは、ネットワークを介した前後の単一パスでのみ削除されます。つまり、そのパスの重みは合成的にゼロに設定されるため、エラーも同様に、つまり重みは更新されません。ドロップアウトは、正規化の形としても機能します。これは、複雑さのためにモデルに多少のペナルティを課すためです。

Michael NielsenのDeep Learning book(無料およびオンライン)のDropoutセクションを読むことをお勧めします。この本は、優れた直観を提供し、図/説明も非常に役立ちます。彼は説明します:

ドロップアウトは、正則化のための根本的に異なる手法です。L1およびL2の正則化とは異なり、ドロップアウトはコスト関数の変更に依存しません。代わりに、ドロップアウトでネットワーク自体を変更します。

ここに素敵な要約記事があります。その記事から:

いくつかの観察:

  • ドロップアウトにより、ニューラルネットワークは、他のニューロンのさまざまなランダムサブセットと組み合わせて使用​​できる、より堅牢な機能を学習します。
  • ドロップアウトにより、収束に必要な反復回数が約2倍になります。ただし、各エポックのトレーニング時間は短くなります。
  • H個の隠れユニットがあり、それぞれをドロップできるため、2 ^ H個の可能なモデルがあります。テスト段階では、ネットワーク全体が考慮され、各アクティベーションは係数pだけ削減されます。

私にお茶を一杯作ってほしいと頼むことを想像してください-あなたはいつも水を注ぐのに右手を使い、水のレベルを測定するために左目を使い、そしてスプーンでお茶をかき混ぜるために再び右手を使います。これは、左手と右目がほとんど役に立たないことを意味します。ドロップアウトを使用すると、たとえば、右手を背中の後ろに縛り、左手を使用するように強制します。片方の目または片方の手で行動を起こさずにお茶を20杯作った後、あなたは利用可能なすべてのものを使うことについてよりよく訓練されています。たぶん、あなたは小さなキッチンでお茶を作ることを余儀なくされるでしょう。左腕でケトルを使用することしかできません...そしてドロップアウトを使用した後、あなたはそれをする経験があります!目に見えないデータに対してより堅牢になりました。


マルチクラス分類に最適なドロップアウト値を決定する方法は?そして、ドロップアウト層の最適な数を決定する方法は?
N.IT

2
@ N.IT-私が知っている限りでは、多くの組み合わせを試すjsutを除いて、ドロップアウトの最高レベルまたはレイヤー数を見つける明確な方法はありません。他の正則化およびアーキテクチャ探索の方法と同様に、モデルをトレーニングし、トレーニング/検証損失曲線を比較することで、おそらく最高の結果が得られます。トピックに関するこの説明を確認してください。
n1k31t4

素晴らしい答え。キッチンの例えをより具体的にするために、ドロップアウトは推論中ではなくトレーニング中にのみ使用されます。したがって、複雑なモデルは部分的に使用されません。
ヴァイバフガルグ

私は目を閉じてこの返信を入力します。より多くのトレーニングが必要です。nwws moew seopour。
VHanded

3

ドロップアウトは実際にニューロンを削除するのではなく、特定のバッチに対して特定のニューロンが何の役割も果たさない(アクティブにされない)だけです。

-8車線の道路があるとします-トラックが来ると、レーン1、2、4、6、7を通過し、車が来ると、レーン2、3、4、7、8を通過し、自転車が来ると、レーン1、2、5、8を通過します。そのため、車両に関係なく、すべての車線が存在しますが、そのうちの一部のみが使用されます。

同様に、すべてのニューロンはモデル全体で使用されますが、データの特定のバッチに対してニューロンのサブセットのみがアクティブ化されます。また、モデルは後で削減されず、モデルの複雑さはそのまま残ります。

ドロップアウトを使用する理由

Ian Goodfellowによるディープラーニングの本にあるように、

ドロップアウトは、重量減衰、フィルター基準制約、スパースアクティビティ正則化など、他の標準的な計算的に安価な正則化よりも効果的です。

彼も言います

ドロップアウトの利点の1つは、計算コストが非常に安いことです。

ドロップアウトのもう1つの重要な利点は、使用できるモデルまたはトレーニング手順のタイプを大幅に制限しないことです。分散表現を使用するほぼすべてのモデルでうまく機能し、確率的勾配降下法でトレーニングできます。これには、フィードフォワードニューラルネットワーク、制限付きボルツマンマシンなどの確率モデル(Srivastava et al。、2014)、リカレントニューラルネットワーク(Bayer and Osendorfer、2014; Pascanu et al。、2014a)が含まれます。

この本は言う-

コアとなるアイデアは、レイヤーの出力値にノイズを導入すると、重要ではない出来事のパターンが崩れ、ノイズが存在しない場合にネットワークが記憶を開始するというものです。


質問を編集して、削除ではなく、抑制という単語を使用しました。問題は残っています。一部のレーンのみが最終的に使用されるのに、なぜそれほど多くのレーンを構築するのですか?
user781486

@ user781486それらの一部とは、データのバッチごとにそれらの一部を意味しますが、データ全体を考慮する場合はすべてが使用されます。私の例のように、各車両の車線番号の組み合わせセットを取得する場合、すべての車線1〜8が使用されます。
アンキットセス

3

ドロップアウトの機能を見る別の方法は、ベイズモデルの共変量(つまり、元の共変量と複雑な関数変換の複雑な相互作用項)の係数のスラブスパイクのようなものです。これは、Yarin Galが彼の論文で提案した解釈です(彼の出版物のリストを参照)。

これがなぜそうなのかについての簡単な手を振る議論です:

  • ニューロンが除去されるこれらのバッチでは、特徴/共変量の係数(ニューロンに入るニューラルネットワークの接続によって構築されます)はゼロ(ゼロでスパイク)です。
  • ニューロンが存在するこれらのバッチでは、係数は無制限です(不適切な事前分布=スラブ)。
  • すべてのバッチで平均すると、事前にスパイクアンドスラブが得られます。

なぜスラブアンドスパイクを優先するのでしょうか?つまり、ニュートラルネットワークが本当に完全な可能な複雑さを必要とするかどうかについて不確実性を表し、この不確実性を適切に考慮に入れることができます。予測。これは、データに過剰に適合できる中立ネットワークの主要な問題に対処します(もちろん、それを達成する唯一の方法ではありません)。


いい視点ね。答えを更新します。
ビョルン

2

ドロップアウト層は無差別にニューロンの指定部分をカリングし、問題のモデルの表現能力を低下させます。これにより、ネットワークが複雑な非線形決定境界(つまり、データセットの「ノイズ」)に適合しないため、過剰適合が防止(または改善)されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.