ニューラルネットワークのトレーニング中に、トレーニング/テストエラーが突然低下する原因は何ですか?


18

ニューラルネットワークのトレーニング中に、特定のエポックで数回テスト/トレーニングエラーが突然低下するプロットを確認しましたが、これらのパフォーマンスジャンプの原因は何ですか。

ResNetテストエラー

この画像は、Kaiming HeのGithubから取得したものですが、同様のプロットが多くの論文に記載されています。


1つの関連論文:Smith et al。2018学習率を落とさ
アメーバは

回答:


7

彼らは学習率を変えました。ドロップはちょうど30と60エポックであり、明らかに誰かが手動で設定したことに注意してください。


セクション3.4では、エラーがプラトーになると、学習率が10で割られると説明されています
xiawi

2

「最適化ランドスケープ」について考えてみてください。たとえば、重みが2つしかないネットワークがある場合、これらの2つの重みのすべての組み合わせを表面にプロットできます。各点の高さは、(x、yを使用した場合にコスト関数が返すエラーの量を表します。 )2つの重みとして調整します。この表面の最も低い点に移動して、最も低いレベルのエラーを取得しようとしています。
問題は、特に2つではなく数百万のパラメーターを持つネットワークでは、表面がかなりおかしくなることです。進行が遅くなるサドルポイントで止まり、急にスリングショットが下り坂に戻る可能性があります。
これを視覚化するのに役立つアニメーションを次に示し ます。ご覧のとおり、より基本的な勾配降下アルゴリズムは、これらの位置でスタックするのがはるかに簡単です。
ここに画像の説明を入力してください

これには他の原因も考えられますが、これはあなたが最もよく耳にするものです。ネットワークが飽和状態のアクティベーションを取得する一連のユニット(またはreluの場合、非常に少数のトレーニング入力によってのみアクティブ化されているユニット)があり、1つのユニットが飽和状態から抜ける可能性があります。残りの部分を飽和状態から外す連鎖反応を開始し、重みが突然勾配流を後押ししますか?私はそのようなことは何も調べていませんが、他に追加する理由がある場合は興味があります。


1
-1。これは質問に答えません、または少なくともそれがどのように行うのか、そしてあなたが書いたことが関連する理由が明確ではありません。なぜ学習率を下げると鞍点がなくなるのでしょうか?
アメーバはモニカを復活させます

とにかく、アニメーションが正しいかどうかさえ明確ではありません。SGD-定義により-は反復ごとに異なる最適化サーフェスを見るからです。この図では、最適化サーフェスが固定されているため、ここでSGDをどのように説明できるかがわかりません。SGDの「ドット」は、最適化表面がトレーニングプロセス全体で固定されているフルバッチグラディエントディセントのように動作します。
ジョシュ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.