ニューラルネットワーク-損失と精度の相関


11

ニューラルネットワークでの損失と精度のメトリックの共存に少し混乱しています。両方ともの比較の「正確さ」レンダリングするようになっているyyは、そうではありませんか?では、トレーニングエポックで2つのアプリケーションを重複して使用するのではないでしょうか。さらに、なぜそれらは相関しないのですか?y^

回答:


9

ログの損失には、微分可能な関数という優れた特性があります。精度はより重要であり、より解釈可能ですが、損失関数を微分可能にする必要がある逆伝搬アルゴリズムのため、ネットワークのトレーニングでは直接使用できません。優先損失が直接(精度など)最適化できない場合は、真のメトリックをプロキシするように動作する損失関数を使用します。バイナリ分類の場合は、最後にシグモイドを使用し、精度を近似するためにログ損失を使用します。それらは非常に相関しています。


6

損失は​​精度よりも一般的です。分類では、100%の精度で、すべてのラベルが正しく予測されます。しかし、回帰や予測についてはどうでしょうか?0%と100%の定義はありません

|yhaty|


0

はい、どちらもyとy_hatの正確さを測定し、通常は相関しています。損失関数は正確でない場合がありますが、直接最適化していなくても、正確さを測定することに関心があります。GoogleのTensorFlow MNISTの例は、クロスエントロピー損失を最小化/最適化しますが、結果を報告するときにユーザーに精度を表示します。これは完全に問題ありません。

精度を直接最適化したくない場合もあります。たとえば、深刻なクラスの不均衡がある場合、モデルは常に最も一般的なクラスを選択するだけで精度を最大化しますが、これは有用なモデルではありません。この場合、エントロピー/ログ損失は、最適化するためのより良い損失関数になります。


7
さらに重要なことに、精度は差別化可能な関数ではないため、逆伝播することはできません。
Jan van der Vegt

@JanvanderVegtはい、それは素晴らしいポイントです
Ryan

Kerasでは、コンパイル関数に「カスタム」評価メトリック(この場合、カスタムとは、AUCやF1-Scoreなどの組み込み実装がKerasにないことを意味します)を配置できることを学びました。この場合、show_accuracyパラメーターがTrueに設定されているすべての場所(フィッティング時や評価時など)でAccuracyの代わりにこの「カスタム」メトリックが使用/表示されると思います。あれは正しいですか?
Hendrik

1
@Hendrikはい、できます。def your_own_metric(y_true, y_pred)関数を作成して、それを渡してくださいmodel.compile(..., metrics=[your_own_metric])
rilut
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.