12

私はニューラル ネットワークの学習と実験を行っていますが、次の問題について経験豊富な人から意見を求めたいと思います。

Keras ('mean_squared_error' 損失関数と SGD オプティマイザー) で Autoencoder をトレーニングすると、検証損失が徐々に減少しています。検証精度が上がっています。ここまでは順調ですね。

ただし、しばらくすると、損失は減少し続けますが、精度は突然、はるかに低いレベルに戻ります。

  • 精度が非常に速く上昇し、高いままで突然低下するのは「正常な」動作ですか、それとも予想される動作ですか?
  • 検証損失がまだ減少している場合でも、最大精度でのトレーニングを停止する必要がありますか? つまり、val_acc または val_loss をメトリックとして使用して、早期停止を監視しますか?

画像を参照してください:

損失: (緑 = val、青 = 列車] ここに画像の説明を入力

精度: (緑 = val、青 = 列車] ここに画像の説明を入力

更新: 以下のコメントは私を正しい方向に向けてくれました。誰かが次のことが正しいことを確認できればうれしいです:

  • 精度メトリックは y_pred==Y_true の % を測定するため、分類にのみ意味があります。

  • 私のデータは実数とバイナリの特徴の組み合わせです。損失が減少し続ける一方で、精度グラフが非常に急激に上昇し、その後低下する理由は、エポック 5000 付近で、ネットワークがおそらくバイナリ機能の +/- 50% を正しく予測したためです。トレーニングを続けると、エポック 12000 付近で、リアル フィーチャとバイナリ フィーチャの予測が一緒に改善されたため、損失は減少しましたが、バイナリ フィーチャだけの予測は少し正確ではなくなりました。そのため、精度は低下しますが、損失は減少します。

4

1 に答える 1