ドロップアウト:アクティブ化のスケーリングとドロップアウトの反転


9

ドロップアウトを人工ニューラルネットワークに適用する場合、トレーニング時にニューロンの一部が非アクティブ化されたという事実を補償する必要があります。これを行うには、2つの一般的な戦略があります。

  • テスト時のアクティベーションのスケーリング
  • トレーニング段階でドロップアウトを反転させる

Standford CS231n:Convolutional Neural Networks for Visual Recognitionから抜粋した2つの戦略を以下のスライドにまとめます。

どちらの戦略が望ましいですか、そしてなぜですか?


テスト時のアクティベーションのスケーリング:

ここに画像の説明を入力してください

トレーニングフェーズ中にドロップアウトを反転する:

ここに画像の説明を入力してください


なぜではなくをスケーリングする必要があるのですか?私の直感は、ドロップアウトが多ければ多いほど、私たちはもっと補償すべきだということですよね?ドロップアウト率と再係数の関係を見てください: <br> <br> <br> <br> <br> <br> <br> <br> 11p DRO、POUT->111p 0.2->5->1.250.5->2->20.8->1.25->5dropout>1p>11p0.2>5>1.250.5>2>20.8>1.25>5
Ken Chan

「ドロップアウトが多いほど、より多くの補償が必要です」正解です。これが、1 / pを使用する理由です。出力の90%が削除されるようにp = .1の場合、これらの値を10倍に拡大する必要があります。1// 1 = 10であるのに対し、1 /(1-.1)= 1 /(。9)であることに注意してください。 = 1.1。
-Tahlor、

回答:


5

「トレーニング段階でドロップアウトを反転させる」ことが望ましいでしょう。

理論的には、ネットワークにノイズを追加する方法としてベルヌーイドロップアウトを見る場合、ノイズの平均がゼロである方が良いでしょう。非アクティブ化されたユニットの部分をキャンセルするためにトレーニング時にスケーリングを行うと、ノイズの平均はゼロになります。

ゼロ平均を持っている他のタイプのドロップアウト/ノイズメソッドが後で出てきました(たとえば、ガウス乗法ドロップアウト、ガウス加法ノイズ)。

実際のニューラルネットワークのトレーニングとテストに関しては、このような実装を好む理由もあります。同じアーキテクチャの2つのモデルのパフォーマンスを比較したいとします。1つはドロップアウトによってトレーニングされ、もう1つはトレーニングされていません。

「テスト時にアクティベーションをスケーリングする」場合、テスト時に2つの異なるネットワークが必要になります。「反転バージョン」を使用する場合、トレーニングされたパラメーターの両方のセットに同じテストネットワーク(コード)を適用するだけで済みます。


各レイヤーでpによる乗算を実装する必要があるため、非反転ドロップアウトトレーニング済みモデルは実際には異なるアーキテクチャーを持つことになりますか?それで、コンピューターはそれをトポロジー的に異なると見ていますか?
エリックオールド2018

@EricAuld返信が遅くなって申し訳ありません。はい、基本的には「同じテストネットワークを適用する」という意味です。コードを変更する必要はありません。
dontloo 2018

4

(テスト時にコードを変更する必要がないことを除いて)反転ドロップアウトを実行するもう1つの利点は、トレーニング中に空想を得て、ドロップアウト率を動的に変更できることです。これは「アニールされた」ドロップアウトと呼ばれています。基本的にロジックは、トレーニングの開始に向けてドロップアウト「ノイズ」を追加すると、最適化が局所的な最小値に留まらないようにするのに役立ち、最終的にゼロまで減衰させると、ネットワークがより細かく調整され、パフォーマンスが向上します。

ディープネットワークのANNEDED DROPOUTトレーニング

ニューラルネットワークのトレーニング用に変更されたドロップアウト


2

アンドリューは、このセッションで彼の深い学習過程で非常に良い説明をしたドロップアウト正則

  • テストがはるかに簡単になるため、反転ドロップアウトの方が一般的です
  • 反転の目的は、Wの減少によってZ値が影響を受けないようにすることです。

a3 = a3 / keep_prob実装の最後のステップで次のように言います。

Z [4] = W [4] * [3] + B [4] 素子サイズ[3]によって低減されたkeep_prob(元素の割合はD3によって削除された)D3から、こうして Z [4]の値も減少するので、これをおおまかに補正keep_probするために、Z [4]の値が影響を受けないように、除算によって変更を反転させます。

ここに画像の説明を入力してください

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