ドロップアウトと勾配降下について


9

ディープニューラルネットワークでドロップアウトを実装する方法を探しています。直感に反するものが見つかりました。フォワードフェーズでは、1と0のランダムテンソルを使用してマスクをアクティブ化し、ネットに重みの平均を学習させます。これは、ネットをより一般化するのに役立ちます。ただし、勾配降下の更新フェーズでは、アクティブ化はマスクされません。これは私には直観に反するようです。dropoutを使用して接続のアクティブ化をマスクする場合、勾配降下フェーズをマスクしないのはなぜですか?


ウェイトをマスクするために使用されるドロップアウトを示す参照をどこで見つけたのかわかりませんか?それは間違いだと思います。
Neil Slater

そうですね、私は間違ったコンセプトを使用しました。
emanuele 2015

回答:


6

http://www.cs.toronto.edu/~hinton/absps/JMLRdropout.pdfで説明されているドロップアウトでは、重みはマスクされません。代わりに、ニューロンの活性化は、例として、トレーニングのために提示されるようにマスクされます(つまり、マスクは、各実行順および勾配バックプロップごとにランダム化され、決して繰り返されません)。

アクティベーションはフォワードパス中にマスクされ、勾配の計算では、その例のバックプロパゲーション中に同じマスクが使用されます。これは、レイヤーの説明内の修飾子として、または個別のドロップアウトレイヤーとして実装できます。

ウェイト更新フェーズでは、通常ミニバッチ(各例に異なるマスクが適用されていたはずです)に適用されますが、ドロップアウトマスクはこれ以上使用されません。更新に使用される勾配値は、バックプロパゲーション中に適用されるマスクによってすでに影響を受けています。

ドロップアウトがどのように機能するかを学習するために、おそらく自分で実装するために、Matlab / Octave用のDeep Learn Toolboxが参考になります。

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