セマンティックセグメンテーションで利用されるloss関数(損失関数)について⑥
本記事は連載6回目になります。
1回目:
セマンティックセグメンテーションで利用されるloss関数(損失関数)について① - knowwell-livewellの日記
2回目:
セマンティックセグメンテーションで利用されるloss関数(損失関数)について② - knowwell-livewellの日記
3回目:
セマンティックセグメンテーションで利用されるloss関数(損失関数)について③ - knowwell-livewellの日記
4回目:
セマンティックセグメンテーションで利用されるloss関数(損失関数)について④ - knowwell-livewellの日記
5回目:
セマンティックセグメンテーションで利用されるloss関数(損失関数)について⑤ - knowwell-livewellの日記
今回はBoundary-based LossのBoundary Lossについて紹介します。
⑧Boundary Loss
不均衡データ(画像に占める対象物体の面積がとても小さいような画像)に対して学習がうまく進むように、というモチベーションで提案された手法をこれまでいくつも紹介してきましたが、"過度に"不均衡なデータにおいて、精度、学習安定性を高めるために境界同士の距離を考慮に入れたLoss関数がBoundary Loss*1です。
Boundary Lossにおいて、実際に求めたい境界同士の距離とは以下のように表すことが出来ます。
ここで、は領域の境界を表し、は領域の境界を表し、は境界上の点、はからのの法線ととの交点です。この数式の意味は分かりやすいですが、この式では直接にモデル出力を適用することができません(モデル出力である確率に対する境界を表現するのが困難であるため)。そこで、以下のように近似することを考えます。
は境界同士の差の領域内の任意の点と上の近傍点との距離です。このように近似できるのは、以下の式を考えることで理解することが出来ます。
をからまで動かしたときのの積分結果は、を0からまで動かしたときの積分結果と同じになるので、第2辺を直接計算することで、になることが分かります。上式の第1辺と第3辺でを計算すれば、近似できることが分かりますね。
さらに、Dist(の1/2)を以下のように表すことで、計算を楽にすることが出来ます。
第1辺から第2辺への変換は内の点の距離を内の点の距離と内の点の距離の差分で表現するようにしており、第2辺から第3辺への変換は、とを導入して表現するようにしています。ここで、は学習に関係なく正解マスク画像から直接計算できるため、計算効率が良くなっています。また、第3辺における2項目はモデル出力(およびパラメータ)とは関係ないため、最終的にBoudnary Lossは以下のようになります。
ちなみに、はモデル出力の確率です。
論文によると、Dice Lossと組み合わせて学習させることで、精度および学習安定性が向上したとのことです。