RNNでドロップアウトを使用する

    RNNの重みは累積的な影響を与えるため、RNNは通常、ドロップアウトを使用できません。ドロップアウトを使用すると、RNNの学習プロセスが破壊されます。

ただし、Google Brainは、これを研究するために15年以内に記事を公開しました:再発性神経ネットワークの正規化

彼らは過適合現象を改善するために非周期的段階でドロップアウトを使用しました

紙は2箇所でドロップアウトを使用しています。図の点線はドロップアウトを使用しており、実線は使用していません。

 非周期的フェーズでは重みの累積効果はなく、RNNの学習プロセスを破壊することはありません。

より明確に見るために、絵を描いてください:

図のdropoutとrecurrent_dropoutはどちらもドロップアウトですが、ジョブは別の場所にあり、kerasはそのパラメーターも設定します。

model.add(LSTM(100、dropout = 0.2、recurrent_dropout = 0.2))
そして、次のように、非RNNフェーズでドロップアウトを使用することもできます。

model.add(..)
model.add(LSTM(10))
model.add(Dropout(0.5))

上記のコードは、LSTMの実行後にドロップアウトを使用できることを意味します

おすすめ

転載: blog.csdn.net/zhou_438/article/details/108577209