ダイス係数損失関数とクロスエントロピー


27

完全たたみ込みネットワークなどのピクセルセグメンテーションニューラルネットワークをトレーニングする場合、クロスエントロピー損失関数とダイス係数損失関数のどちらを使用するかをどのように決定しますか?

これは短い質問ですが、他にどのような情報を提供すべきかはよくわかりません。2つの損失関数に関する多くのドキュメントを見ましたが、どちらを使用するかを直感的に理解することはできません。


両方を使用して結果を比較するために、実践的なアプローチを使用しないのはなぜですか。多くの異なる応用分野を見ると、損失関数の議論はそれ自体が広範な研究のテーマです。たたみ込みネットワークは依然として「ホットトピック」であるため、ほとんどの論文は今後も公開されると思います。
天使

回答:


27

ダイス係数または同様のIoUメトリックよりもクロスエントロピーを使用する理由の1つは、勾配がより良いことです。

ロジットに対するクロスエントロピーの勾配はようなものです。ここで、pはソフトマックス出力、tはターゲットです。一方、サイコロ係数を微分可能な形式で書き込もうとすると、2 p tptptまたは2pt2ptp2+t2場合、結果の勾配wrtpははるかにいです:2t22ptp+tpおよび2tt2p22t2(p+t)2ptの両方が小さく、勾配が非常に大きな値になる場合を想像するのは簡単です。一般に、トレーニングはより不安定になる可能性が高いようです。2t(t2p2)(p2+t2)2pt


人々がサイコロ係数またはIoUを直接使用しようとする主な理由は、実際の目標はそれらのメトリックの最大化であり、クロスエントロピーは逆伝播を使用して最大化するのが簡単なプロキシにすぎないことです。さらに、設計により、クラス不均衡問題でのダイス係数のパフォーマンスが向上します。

ただし、クラスの不均衡は、通常、損失乗数を各クラスに割り当てることで簡単に処理されます。そのため、ネットワークは、頻繁に表示されないクラスを単に無視するように非常に抑制されているため、これらの場合にダイス係数が本当に必要かどうかは不明です。


ダイス係数を使用する本当に説得力のある理由がない限り、クロスエントロピーの損失から始めます。これは、セグメンテーションネットワークのトレーニングの標準的な損失のようです。


pt

3
ダイス損失の「主な目標」の最大化はいつですか?私は元の論文をチェックし、彼らが言うことはすべて「実験的に観察した結果は、サンプルの再重み付けで多項ロジスティック損失を最適化した同じネットワークで計算した結果よりもはるかに良い」ということです。
ニールG

@shimao「ugい」とは、勾配が爆発する可能性があることを意味しますが、それは正しいですか?
flawr

17

@shimaoと@cherubに要約されているように、特定のデータセットでどちらがよりうまく機能するかをアプリオリと言うことはできません。正しい方法は、両方を試して結果を比較することです。また、セグメンテーションに関しては、「結果を比較する」のはそれほど簡単ではないことに注意してください。サイコロ係数などのIoUベースの測定は、セグメンテーションの品質の一部の側面のみをカバーします。一部のアプリケーションでは、平均表面距離やハウスドルフ表面距離などのさまざまな指標を使用する必要があります。ご覧のように、最適なコスト関数の選択は言うまでもなく、正しい品質メトリックの選択も簡単ではありません。

私は個人的にサイコロ係数に関して非常に良い経験を持っています。クラスの不均衡に関しては、本当に驚異的です(一部のセグメントは、他のものよりも少ないピクセル/ボクセルを占有します)。一方、トレーニングエラーカーブは完全に混乱します。収束に関する情報がまったく得られなかったため、この点でクロスエントロピーが優先されます。もちろん、とにかく検証エラーをチェックすることで、これを回避することができます/すべきです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.