顔画像のパターン認識システムを作りました。
クエリ画像は適当に300枚、データベースには50人分が10000枚あります。
クエリとして入ってきた画像に対して、データベースにある画像とのピクセルごとの二乗誤差を全て計算し、もっとも小さい人物を識別結果としています。
また、クエリ画像にはデータベースに入っていない人の顔画像をいれて、それをリジェクト(拒否)するために、二乗誤差に閾値を設けてリジェクトをするように実装しました。(データベースにない顔画像はある画像に比べて二乗誤差が大きい)
クエリ画像を順番に入力して、それと同じ人物の顔画像を出力したら正解、そうでなければ不正解、閾値に引っかかったらリジェクトとします。
このシステムの評価としてはじめは、認識率として
認識率 = リジェクトしてない場合の正解数/(300 - リジェクトした回数)
のようにしようと思っていたのですが、この場合、閾値して誤認識したものをほとんど排除するようにすると、リジェクトしたものの中にも正しく認識したものが含まれており、認識率は上がるが、正解のものまで多数リジェクトしてしまっているという問題点に気づきました。
そこで、このシステムの評価として、精度(precision)と再現率(recall)を使おうと思いました。
リジェクトした場合を、不正解と予測
リジェクトしなかった場合を正解と予測
として
リジェクトして、正解の場合をFalse Negative
リジェクトして、不正解の場合をTrue Negative
リジェクトしないで、正解の場合をTrue Positive
リジェクトしないで、不正解の場合をFalse Positive
として精度と再現率をそれぞれ計算してF値までだしました。
ここで、精度 = TP/(TP+FP)、再現率 = TP/(TP+FN)とします。
しかし、閾値を調節して、リジェクトしたものがすべて不正解だったとき(FN=0)、リジェクトしなかった中にも不正解のものが含まれているのですが、再現率が100%となって、これはおかしいのではと思いました。
質問をまとめると
- 上記のようにFN,TN,TP,FPとして精度と再現率を求めるやり方は合っているか?
- このシステムに上記のような精度と再現率を用いた評価は適切か?
- このようなリジェクトあり多値問題システムの評価はどのようにして行えばよいか?
になります。よくわからない文章になって申し訳ありません。
どうかよろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/24 07:49
2018/01/24 08:21