2013년 10월 16일 수요일

정확도(Precision)와 재현율(Recall), mAP

영상 인식이나 탐지 기술 성능을 평가하기 위해 사용하는 지표이다. 인식이나 탐지 성능을 제대로 평가하기 위해서는 두 값 모두가 필요하고 동시에 고려 한다.
기존에 사용하였던 Detection이라는 용어는 사용자에게 혼란을 주므로 사용하지 않으며, 대신 Recall 용어를 사용하자.

Fig. 1

Fig. 1에서 Recall이 기존에 우리가 사용했던 Detection 표현이다. 예를 들면, 이미지 한 장 내 실제 존재하는 True(물체) 중 평가 알고리즘이 몇 개를 감지했느냐를 표현한다. 그런데, Recall만 높다고해서 꼭 감지 성능이 높은 것은 아닌데, 이는 감지 물체 내 오검출이 포함되기 때문이다. 
따라서 Precision을 함께 보는데, 이는 True라 감지된 것들 중에서 실제 True가 얼마있는지를 평가한다. 
당연히, Recall과 Precision 두 지표 모두 높으면 좋지만, 두 지표값 모두 임계치(threshold value) 라 불리는 값에 의존한다.  임계치 변화에 따라 두 값이 모두 변하므로 임계치를 0에서 1로 높이면서 두 값 커브를 그린 것이 ROC 곡선이다. 

임계치가 0 근처로 낮을 때는 영상 내 True 중 대부분을 감지할 수 있으므로 Recall은 아주 높아진다. 반면, 낮은 임계치로 인해 오검출이 증가하므로 Precision은 낮아진다. 
임계치를 1 근방으로 아주 높이면, 오검출은 거의 없어지므로 Precision은 증가하지만 강화된 임계치로 거의 물체를 감지 하지 못하므로 Recall 값은 0에 가깝게 떨어지게 된다. 

평가 대상 알고리즘이 임계치에 무관하게 높은 Recall과 Precision을 준다면 이는 높은 성능을 가짐을 뜻한다. 
임계치에 의존하는 Recall, Precision 두 값을 편의상 하나의 지표로 평가하기 위해 ROC 커브 아래 면적을 사용하기도 한다. AP(Average Precision)라 불리고 AP가 높으면 알고리즘 성능이 우수하다. 


Fig. 2


Precision과 Recall은 이진 분류 문제, 물체 위치 탐지 문제 등에서 사용한다. 물체 2개 부류를 분류하거나 영상 내 물체 위치 탐지 등 이진 결정문제에 사용한다.
2개 이상의 다부류 분류 문제의 경우, 목표 부류 하나와 나머지 부류를 모두 모아 한 부류로하면 이진 분류 문제가 된다.
위치 탐지의 경우 물체 위치를 맞게 검출하거나 그렇지 않은 경우이면 이진 부류가 된다.



Fig. 3

Fig. 3은 임계치에 의존하는 ROC 커브 값 결정을 보여준다. 여기서 TPR은 Recall이다. Precision은 TP/(TP+FP)이다. 임계치 $\theta$를 좌우로 움직이면 Precision과 Recall 값이 달라진다.

예를 들어, $\theta$를 높이면 Recall은 증가하여 1에 가까와 지나, Precision은 TP, FP모두 증가하므로 두 양봉이 어떻게 겹치느냐에 따라 값이 달라진다. 만일 양봉이 겹치는 부분이 별로 없이 잘 분리되어 있다면 Precision은 $\theta$에 무관하게 1에 가까울 것이다. 많이 겹친다면 TP의 증가보다 FP의 증가가 빠르므로 값이 더 빠르게 떨어질 것이다.
따라서 Fig. 2 내 여러 커브 중 아래쪽(녹색, 보라색)이 해당될 것이다. 평가 대상 분류기가 임계치 변화에 대해 위쪽 커브(청색, 주황색)보다 덜 정확한 분류결과를 주며, 성능이 나쁨을 의미한다.


Fig. 4

AP(Average Precision)는 Precision-Recall 그래프로 부터 하나의 지표 값으로 성능을 표현하기 위해 사용하며 Fig. 4에 표시된 것처럼 곡선 아래 면적을 표시한다. 면적이 클수록 높은 성능을 보여준다.

다부류 문제의 경우, 여러 개의 이진 분류 문제가 나오게 되기 때문에 AP가 복수개 나오며 이를 평균한 것이 mAP(mean AP)이다.



References
[1] Wikipedia 
[2] DarkProgrammer의 Precision, Recall의 이해 




댓글 없음:

댓글 쓰기