2016-07-31 3 views
5

私はテンソルフローを使用して、22000クラスの15000トレーニングイメージのセットを持つコンベネットをトレーニングしています。私は2つのconv層と1つの完全に接続された層を持っています。私は15000の画像でネットワークを訓練し、訓練セットの収束と高精度を経験しました。畳み込みニューラルネットワークにおけるドロップアウトがコンバージェンスを妨げるのはなぜですか?

しかし、私のテストセットはずっと低い精度を経験しているので、ネットワークが過ぎていると仮定しています。これと戦うために、ネットワークの完全に接続されたレイヤの前にドロップアウトを追加しました。

しかし、ドロップアウトを追加すると、ネットワークが多くの反復の後で収束することはありませんでした。なぜこれがあるのだろうと思っていた。私は高いドロップアウト確率(.9の確率を維持する)を使用しても、同じ結果を経験しました。

+1

ドロップアウトが高いほど、収束する可能性は低くなります。ドロップアウト率を下げようとしましたか? –

+0

彼は、keep_probを0.9に設定してニューロンの10%をゼロにすることについて話しているかもしれません。あなたが実際にニューロンの90%をゼロにする場合、これが問題になります。モデルが収束していないときにいつも助けになるのは、学習率を10倍に下げることです。それが役立つかどうかを確認してください。 – chasep255

+0

ありがとう、私はそれを試してみましょう。ええ、私の悪いことは、私のkeep_probが.9だったということです。 –

答えて

0

いいえ、ドロップアウト確率を0.9にすると、各繰り返しでそのニューロンの接続が10%低下する可能性があります。 ドロップアウトの場合も、最適値が必要です。あなたは私たちも私たちのニューロンをスケーリングしているドロップアウトして理解できる以上のように

This is taken from cs231 course

。上記の場合は0.5ドロップアウトです。それがo.9であれば、再び異なるスケーリングが行われます。

基本的に0.9ドロップアウトの場合、0.9でスケールする必要があります。つまり、テストでは0.1の大きなものが得られます。

ちょうどこれによってドロップアウトがどのように影響を受けるかを知ることができます。だからいくつかの確率では、収束していない問題を引き起こすノードなどを飽和させる可能性があります。

関連する問題