2016-05-10 4 views
7

私は学習とニューラルネットワークを使って実験し、以下の問題についてより経験豊富な人から意見を持っていると思いますしています:早期停止基準として損失または正確さを使用すべきですか?

私はKerasでオートエンコーダ(「mean_squared_error」損失関数とSGDオプティマイザ)、検証を訓練するとき損失は​​徐々に低下しています。検証の精度が上がっています。ここまでは順調ですね。

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

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

参照画像:

損失:(緑=ヴァル、青=列車] enter image description here

精度:(緑=ヴァル、青=列車] enter image description here

UPDATE: 以下のコメントは正しい方向に私を指摘し、私はそれをより良く理解していると思います。誰かが次のことが正しいことを確認できればうれしいです:

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

  • 私のデータは、実際の機能とバイナリ機能の組み合わせです。精度のグラフが非常に急峻になってから後退していく理由は、約5000年後には、おそらくネットワークがバイナリフィーチャの+/- 50%を正しく予測していたからです。訓練がエポック12000前後で継続すると、実際のフィーチャとバイナリフィーチャの予測が一緒になって改善されるため、損失は減少しますが、バイナリフィーチャの予測だけではそれほど正確ではありません。そのため、精度は低下し、損失は減少する。

+0

分類タスクにMSEを使用していますか? –

+0

これは興味深いプロットです。私はオートエンコーダーに関する経験はありませんが、これはオーバーフィッティングの極端なケースではないかと思います。ネットワークの複雑さを軽減する(より小さいかより多くのレギュレーション)(おそらく増加した検証サブセットでチェックすることを試みましたか?)私は想像することができます、それは異なって見えるでしょう。 – sascha

+0

@MarcinMożejko:私はmseを使っていますが、オートエンコーダーであり、分類ではありません。 – Mark

答えて

1

あなたがここに...損失や精度を使用するかどうかを尋ねている場合は予測がリアルタイムであるか、データが連続ではなく、離散的である場合には答え

され、その後、MSE(平均を使用します二乗誤差)はリアルタイムであるためです。

離散値(すなわち、分類またはクラスタリングの場合)は、与えられた値が0または1のみであるため、精度を使用します。したがって、ここではMSEのコンセプトは適用されません。むしろエラー値/合計値*の精度=いいえを使用してください。100

+0

MSEは回帰問題に非常に適しています – Naren

+0

https://stackoverflow.com/questions/47859737/keras-error-in-fit-method-expected-model-2-to-have-shape-none-252-252-1-bどのような提案ですか? –

関連する問題