ニューラルネットワークは通常、トレーニング中に「キックイン」するのにしばらく時間がかかりますか?


10

バックプロパゲーションを使用して、分類用のディープニューラルネットワークをトレーニングしようとしています。具体的には、Tensor Flowライブラリを使用して、画像分類に畳み込みニューラルネットワークを使用しています。トレーニング中に私は奇妙な行動を経験しており、これが典型的であるのか、それとも私が何か間違ったことをしているのかと思っています。

したがって、私の畳み込みニューラルネットワークには8つのレイヤーがあります(5つの畳み込み、3つが完全に接続されています)。すべての重みとバイアスは、小さな乱数で初期化されます。次に、ステップサイズを設定し、Tensor FlowのAdam Optimizerを使用して、ミニバッチでトレーニングを進めます。

私が話している奇妙な振る舞いは、私のトレーニングデータの最初の約10ループでは、トレーニング損失は一般に減少しないということです。ウェイトは更新されていますが、トレーニングロスはほぼ同じ値のままで、ミニバッチ間で上昇または下降する場合があります。しばらくこのままで、損失は減らないという印象を常に持っています。

その後、突然、トレーニングロスが劇的に減少します。たとえば、トレーニングデータの約10ループ内で、トレーニングの精度は約20%から約80%になります。それ以降、すべてがうまく収束します。トレーニングパイプラインを最初から実行するたびに同じことが起こります。以下は、実行例を示すグラフです。

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

だから、私が疑問に思っているのは、これがディープニューラルネットワークのトレーニングによる通常の動作であり、「キックイン」に時間がかかるかどうかです。それとも、この遅延を引き起こしている何か間違っていることがあるのでしょうか?

どうもありがとう!


私はパーティーに少し遅れていると思います。しかし、私はまだ会話にいくつかの価値を追加することができます。Soo ...私にとっては、シグモイド活性化関数のように聞こえます。シグモイドの導関数は、非常に小さい値または非常に大きい値の場合は小さいため、「飽和したニューロン」のトレーニングは遅くなる可能性があります。残念ながら、私はあなたが与えた説明からあなたのCNNがどのようなものであるか正確に知ることができません。
Nima Mousavi 2017

回答:


7

アルゴリズムが「キックイン」するのにしばらく時間がかかったという事実は、特に驚くべきことではありません。

一般に、ニューラルネットワークの背後で最適化されるターゲット関数は非常にマルチモーダルです。そのため、問題に対して何らかの巧妙な初期値のセットがない限り、急降下を始めると信じる理由はありません。そのため、最適化アルゴリズムは、かなり急な谷が下り始めるのを見つけるまで、ほぼランダムにさまよっています。これが見つかったら、ほとんどの勾配ベースのアルゴリズムが、最も近い特定のモードにすぐに絞り込み始めると期待する必要があります。

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