【DeepLearning】DropoutとInvertedDropout

takkii
Music and Technology
2 min readDec 7, 2017

DropOutとは

DropoutはDeepLearningの学習時に、各隠れ層のユニットの何割かランダムに削除しする手法。(何割残すかを keep_prob というパラメータで示すことが多い)

これを行うことで、Varianceを減らすことができる。様々な構造のネットワークで学習していることになるため、一種のアンサンブル学習と言える。

ただ学習時にユニットを何割か削除しているため、次の層に伝わる値(各層のActivation後の値×パラメータW:W_i^T*A)が減ることとなる。この問題への対処として2つある。

1つは、『テストデータの推定時』に、 keep_prob を各層のActivation後の値にかけてあげること。そうすることで、学習時とスケールを合わせることができる。

Inverted Dropoutとは

そしてもう1つの対処法が、『学習時』に各層のActivation後の値を keep_prob で割ってあげること。こうすることで、テスト時とスケールを合わせることができる。

Inverted Dropout は通常のDropoutと比べて、テストデータの推定時の処理が減ることから、推定時間が短縮される、という点で優れているようだ。

参考

https://www.quora.com/What-is-inverted-dropout

--

--

takkii
Music and Technology

Competitive Programming, MachineLearning, Manga, Music, BoardGame.