損失と精度の曲線を理解する

Aug 20 2020

これは私が何度も何度も遭遇した問題です。損失(この場合はクロスエントロピー)と精度のプロットは意味がありません。次に例を示します。

ここでは、CIFAR10でReNet18をトレーニングしています。オプティマイザーは、0.1の学習率、0.9のネステロフ運動量、1e-4の重み減衰を伴うSGDです。学習率は、エポック60、120、160で1/5に減少します。

  • 最初は、曲線はすべて素晴らしく、ダンディです。つまり、トレーニングと検証の損失が減少し、精度が向上しています。
  • エポック65〜70頃には、過剰適合の兆候が見られます。valとして。損失は​​増加し始め、価値があります。精度が低下し始めます(赤いボックス)。ここにはまだ奇妙なことは何もありません。

今、私には意味をなさないことが2つあります。

  1. エポック120(LRが減少する)の後val。損失と精度は、いくつかのエポック(緑色のボックス)で改善し始めます。学習率を下げると、すでに過剰適合しているモデルの検証パフォーマンスが突然向上するのはなぜですか?!LRの低下は、実際には過剰適合を加速すると予想されます。

  2. エポック〜125(青いボックス)の後、損失は増加し始めますが、精度は向上し続けます。精度が一定である間(モデルが誤った予測に自信を持ったり、正しい予測に自信を失ったりすることにより)、損失が増える可能性があることを理解しています。しかし、損失が増加する一方で、精度がどのように向上するかはわかりません。

回答

hH1sG0n3 Aug 20 2020 at 18:52

以下のほんの2、3のポイント

  • 赤いボックス:厳密に言えば、モデルが検証セットよりもトレーニングで優れている場合、過剰適合が発生します。したがって、ここでは、赤で示されているものよりも早く開始し、おそらくトレーニングセットにのみ適用されるより良いパラメーターを見つけるモデルに関連していると言えます。注目すべきことに、列車の損失が大幅に減少することはありません。
  • グリーンボックス:トレーニングでは、損失が大幅に減少します。大幅に優れた最小値のこの発見は、検証セットにも適用される可能性があり、実際には値損失曲線に反映されていることを意味します。それにもかかわらず、損失は赤いボックスの最初のチェックポイントよりも良くはありません。
  • ブルーボックス:損失と精度は相互に依存する指標ではありません。精度は正しい推測の数(いくつ)の尺度であるのに対し、損失はデータポイント(どれだけ離れているか)が与えられた場合の正しい推測からの距離の尺度です。

一般に、lrが小さいということは、モデルが特徴空間内を非常に遠くまで飛び回る「自由」が少ないことを意味します。そのため、大幅かつ迅速な損失の減少が見られる可能性は低くなります。あなたが示唆するように、あなたのval損失にはわずかに上向きの過剰適合傾向がありますが、小さいlrがトレーニングで許すのと同じくらい重要または速いです。

また、トレーニングのかなりの量(〜55エポック)では、トレインロスがvalロスよりも高いことに注意してください。モデルがどのように正規化されているかを調査することをお勧めします。これは、診断をより適切に推測するのに役立つ方法で学習曲線に影響を与える可能性があるためです。たとえば、pytorchでは、モデルの状態(model.train()とmodel.eval())間の列車の損失が大幅に異なります。