なぜセグメンテーションの評価指標は Accuracy ではだめなのか

セグメンテーションモデルの評価指標には、mIOU や Dice係数 を使うのですが、なぜ普通に正解率(Accuracy)ではだめなの?という疑問がありました。

ピクセル単位で分類しているんだから、ピクセル単位で正解したかどうか見て、全体の正解率を見ればいいじゃないかと。

それの答えをとってもわかりやすく書いてある記事がこちらです。

https://towardsdatascience.com/metrics-to-evaluate-your-semantic-segmentation-model-6bcb99639aa2

 

内容をかいつまんでアウトプットします。

結論から言うと、クラスが不均衡なデータだと正解率では正しく評価できないから!です。

例えば、画像内の人間だけセグメンテーションする場合を考えます。

 

画像内に写っている人(ラベルは 1 )の箇所の面積が全体の 5 % だった場合、仮にすべてのピクセルを 0 (背景)と予測してしまえば正解率は 95%になります。

全体のピクセル数:100

正解したピクセル数:95(背景の箇所すべて)

間違ったピクセル数:5(人の箇所すべて)

Accuracy = 95 / 100 = 0.95 

 

もしラベル 0 と 1 の箇所が 50個ずつであれば、当てずっぽうの予測で 50% になるので妥当かなとなるのですが、実際はクラス不均衡なことが多いので適しません。

そこで別の指標が必要となってきます。

例えば、mIOU であれば、先の例(すべて 0 と予測)の場合

 

Class 0 の IoU:95 / (100 + 95 – 95) = 0.95

Class 1 の IoU:0 / (0 + 5 – 0) = 0

mIoU = (0.95 + 0) / 2 = 0.475

ということで、当てずっぽうな予測で正解率高く出てしまうようなところも、低く抑えられています。

 

Dice係数についても計算してみると同様に小さく出ますので、詳しくは冒頭のリンク先をたどってみてください。

最近 Medium にいい記事たくさん上がっていることに気が付きました。定期的にチェックしよう。

 

最後まで見ていただきありがとうございました。