検証の損失または精度の早期停止?


10

私は現在ニューラルネットワークをトレーニングしていますが、早期停止基準を実装するためにどちらを使用するかを決定できません:検証の損失、または精度/ f1score / auc /検証セットで計算されたものなどのメトリック。

私の研究では、両方の立場を擁護する記事に出くわしました。Kerasはデフォルトで検証の損失に思われますが、私は反対のアプローチ(例:ここ)についても説得力のある答えに出くわしました。

誰でも、検証ロスを使用するタイミングと特定のメトリックを使用するタイミングについて指示がありますか?

回答:


5

TLDR; 精度ではなく損失を監視する

受け取った回答は要点を逃し、誰かが同じ問題を抱えている可能性があると思うので、自分の質問に回答します。

最初に、ニューラルネットワークをトレーニングするときに早期停止を使用することは完全に正常であることを簡単に説明します(Goodfellow et alのディープラーニングブックの関連セクション、ほとんどのDLペーパー、およびkerasのEarlyStoppingコールバックのドキュメントを参照)。

ここで、監視する数量について:精度よりも損失を優先します。どうして?損失は​​、モデルが予測についてどの程度確実であるかを定量化します(基本的に、適切なクラスでは1に近く、他のクラスでは0に近い値です)。正確さは、正しい予測の数を説明するだけです。同様に、確率ではなくハード予測を使用するメトリックには同じ問題があります。

明らかに、最終的に選択するメトリクスは、トレーニングセットではなく検証セットで計算する必要があります(そうしないと、そもそもEarlyStoppingを使用するポイントが完全に失われます)。


値が0〜1の場合cross_entropyMSEまたはよりも損失がより好ましい候補ですMAE。ラップアップのセクションチェックアウトこの記事を、そして統計上のこの記事
エスマイリアン

@Esmailianそれは好みの問題ではありません。以下のための分類の問題、MSE&MAEは単に適切ではありません。
砂漠の飛行士、

4

私の意見では、これは主観的で特定の問題です。モデルをより焦点を絞って変更する方法を決定する可能性があるため、駆動メトリックとして、心の中で最も重要な要素は何でも使用する必要があります。

計算できるほとんどのメトリックは、多くの点で相関/類似しています。たとえば、損失にMSEを使用してから、MAPE(平均パーセント誤差)または単純な損失を記録すると、同等の損失曲線が得られます。L1

たとえば、レポート/上司などにF1スコアを報告する場合(そしてそれが上司に本当に重要であると想定している場合)、そのメトリックを使用することが最も理にかなっています。たとえば、F1スコアは、精度再現率を考慮に入れています。つまり、F1スコアは、2つのより詳細メトリック間の関係を記述しています。

これらをまとめると、通常の損失以外のスコアを計算することは、概要と、トレーニングの反復の過程で最終的なメトリックがどのように最適化されているかを確認するのに適しています。その関係はおそらくあなたに問題へのより深い洞察を与えるかもしれません、

ただし、通常はいくつかのオプションを試すことをお勧めします。検証の損失を最適化すると、トレーニングをより長く実行できるようになり、最終的には優れたF1スコアが生成される可能性があります。精度と再現率が一部の極小値を揺らぐ可能性があり、ほぼ静的なF1スコアが生成されるため、トレーニングを停止します。純粋な損失を最適化していた場合は、損失の変動を十分に記録して、より長くトレーニングできる可能性があります。


検証損失を使用すると、メトリックを使用するよりも長いトレーニングが可能になるのはなぜですか?また、2つのオプションの違いについて詳しく教えてください。損失ではなく測定基準を使用することが悪い考えであるケースを見ますか?
qmeeus 2018

@ id-2205-編集した回答をご覧ください。
n1k31t4

面白いポイント!現在、早期停止に精度を使用していますが、検証損失を使用しようとしています。ただし、トレーニングプロセスに変更はありません。回答ありがとうございます
qmeeus 2018

1

私は現在ニューラルネットワークをトレーニングしていますが、早期停止基準を実装するためにどちらを使用するかを決定できません:検証の損失、または精度/ f1score / auc /検証セットで計算されたものなどのメトリック。

ディープネットワークをトレーニングする場合は、アーリーストップを使用しないことを強くお勧めします。ディープラーニングでは、これはあまり一般的ではありません。代わりに、ドロップアウトなどの他の手法を使用して、一般化することもできます。それを主張する場合、基準の選択はタスクに依存します。不均衡なデータがある場合は、F1スコアを使用して、相互検証データで評価する必要があります。データのバランスが取れている場合は、相互検証データに精度を使用するようにしてください。その他の手法は、タスクに大きく依存します。

私はあなたのデータに非常によく適合するモデルを見つけ、その後ドロップアウトすることを強くお勧めします。これは、ディープモデルで最も一般的に使用されるものです。


2
ドロップアウトも使用しています。ただし、早期停止を使用しない理由はわかりません...
qmeeus 2018

アーリーストップは、学習と一般化の両方の問題を解決しようとします。一方、ドロップアウトは一般化問題を克服しようとするだけです。
メディア

1
あなたは私の質問に答えません...私はドロップアウトが有用であり、過剰適合から保護するために使用されるべきであるという事実を否定しません、私はそれについてこれ以上同意することができませんでした。私の質問は、なぜANNでアーリーストップを使用すべきでないと言うのですか?(最初の文を参照:深いネットワークをトレーニングしている場合は、アーリーストップを使用しないことを強くお勧めします。)
qmeeus '21

私の最後のコメントを読みましたか?それはあなたの質問に正確に答えます。これは、PRからの有名な引用です。彼のディープラーニングクラス、第2コースのNg。後者のケースは、複数のタスクを同時に解決するのに苦労しないため、より簡単なタスクです。
メディア

3
そして、それを見つけてハイパーパラメータの適切なセットを見つけるために、私は上記で説明した理由により、早期停止のある種類の有向グリッド検索を採用しています。ポイントを取って、最終モデルを選択してトレーニングすると、アーリーストップは使用しなくなります。この興味深いディスカッションとアドバイスをありがとう
qmeeus 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.