はじめに
Deep learningのセグメンテーションタスクではたくさんの評価指標が使われますが,その本質的な意味がわかっていないと,ただ数字を眺めるだけで「高いから良い」「低いから悪い」になってしまいます.投稿主の勉強も兼ねてこのタイミングでまとめようと思いました.間違い・説明不足等ありましたらコメントください.
セグメンテーション結果を赤,正解(ground truth, GT)を青で表すことにします.
赤:セグメンテーション結果(A);青:正解(B)
セグメンテーション結果について,セグメンテーションされた領域(陽性,positive)とセグメンテーションされていない領域(陰性,negative)と,正解領域について,正解の領域(positive)と正解じゃない領域(negative)があり,下表のような関係になります.
GT \ segmentation | positive | negative |
---|---|---|
positive | TP | FN |
negative | FP | TN |
- TP (true positive): 正解領域を正しくセグメンテーションできた($A \cap B$)
- TN (true negative): 正解じゃない領域を正しくセグメンテーションしなかった($\overline{A \cap B}$)
- FP (false positive): 正解じゃない領域を誤ってセグメンテーションしてしまった($A \cap \overline{B}$)
- FN (false negative): 正解領域をセグメンテーションできなかった(見逃した)($\overline{A}\cap B$)
この投稿ではこの関係をもとに話を進めていきます.
コンテンツ
- PrecisionとRecall(適合率と再現率)
- Dice (F値,F-measure)
- おわりに
- 参考文献
PrecisionとRecall(適合率と再現率)
Precision(適合率)の定義は次の数式です:
Precision = \frac{TP}{TP+FP}. \tag{1}
分母はセグメンテーション領域(赤)なので,「セグメンテーションした領域はどのくらいあってるの?」という指標です.すなわち,でたらめにセグメンテーションして正解以外の領域を塗ってしまえばFPが増え,Precisionは下がるということになります.
FPが増えれば値は下がり,無駄なセグメンテーションをしていなければ値は高くなります.
次に,Recall(再現率)の定義は次の数式です:
Recall = \frac{TP}{TP+FN}. \tag{2}
分母は正解領域(青)なので,「正解はどれくらい塗れた?」という指標です.すなわち,でたらめにセグメンテーションしても正解さえ塗れていればRecallは高くなります.
見逃し(FN)が多いほど値は下がり,少ないほど上がります.
ここで2つの極端な例を考えてみます(下図).左はPrecisionは高いけどRecallは低い例,右がPrecisionは低いけどRecallは高い例です.こう見ると,それぞれセグメンテーション結果は正解領域とは大きく異なるのに,片方の指標だけに注目すると,高い値を示していて精度が高く見えてしまうことがありそうです.
左:Precision高,Recall低の例;右:Precision低,Recall高の例
Dice (F値,F-measure)
「Precision, Recallをバランス良く考えたい」ということで使うのがDiceです.DiceはPrecision, Recallの調和平均です:
Dice = \frac{2}{1/Precision+1/Recall}. \tag{3}
調和平均はしばしば割合の平均として紹介されますが,今回の「Precision, Recallの調和平均」はどのような意味を持つでしょうか.
調和平均は作業効率の平均と言い換えることができます.例えば,
Aさんは1分で卵を2つ割ります.Bさんは1分で卵を5つ割ります.いま二人で10個ずつ割って合計20個割りました.このとき二人合わせた作業効率は?
という問いがあったとき,作業効率を求める式は「仕事量÷時間」になります.すなわち,
\begin{align}
二人の作業効率 &= \frac{20 [個]}{10/2 [分]+10/5 [分]}\\ \tag{4}
&= 2.85... [個/分]
\end{align}
となり,二人は約2.9 [個/分]割っていることになります.
話を戻してPrecision, Recallについて同様に「作業効率」として考えると,正解に対して, Precisionは「どれだけ無駄なく塗れたか?」,Recallは「どれだけ隙間なく塗れたか?」という違った角度から見た作業効率を表します. これらの調和平均を取ることがDiceの表す意味になります.
おわりに
Precision, Recall, Diceについてまとめました.それぞれの値からセグメンテーションと正解の位置関係がイメージできると,数字から多くの情報を得ることができると思います.