인식/탐지 기술의 성능을 평가하기 위해서는 검출율과 정확도를 동시에 고려해야합니다.
이유는 다음과 같은 예를 들어서 설명할 수 있습니다.
이미지에서 사람을 자동으로 찾아주는 영상 인식 기술을 개발하였다고 가정했을 때,
- A 기술의 검출율은 99.99%입니다.
- B 기술의 검출율은 50%입니다.
라고 하였을 때, 어떤 기술이 더 나은 기술인가? 라고 이야기 했을 때, 많은 사람들이 A라는 기술이 더 좋다고 판단할 것입니다.
하지만 해당 내용은 오검출에 대한 내용이 빠졌기 때문에, 잘못된 판단입니다.
문제를 조금 바꿔서,
- A라는 기술은 이미지에 있는 사람을 99.99% 잡아내나, 이미지 1장 당 평균 10건 정도의 오검출이 발생합니다.
- B라는 기술은 이미지에 있는 사람들 중 50% 잡아내나, 오검출은 발생하지 않습니다.
라고 이야기한다면, 우리는 A라는 기술과 B라는 기술 중 어느 기술이 뛰어난 기술인가? 라는 물음에 대답하기 어려워집니다.
따라서 해당 문제는 응용에 따라 달라질 수 있으나, 검출율만으로 기술을 평가 할 수 없습니다.
→ 검출율 100%의 물체인식 기술은 누구나 쉽게 만들 수 있습니다. 모든 입력에 대해서 항상 물체가 검출된 것으로 반환하도록 알고리즘을 구현하면
해당 알고리즘의 검출율은 100%가 될 것입니다.
따라서 우리는 검출율과 정확도를 동시에 고려해야만 합니다.
검출률과 정확도
TP (True Positive) : True를 True라고 판별함
FP (False Positive) : False를 True라고 판별함
TN (True Negative) : False를 False라고 판별함
FN (False Negative) : False를 True라고 판별함
검출률이란 직관적으로는 detection rate이나, 학문적으로는 recall이라는 용어를 사용합니다.
: 검출률은 대상 물체들을 빠뜨리지 않고, 얼마나 잘 잡아내는지를 나타냅니다.
알고리즘이 무언가를 검출했다라는 의미를 가집니다. (실제 물체를 검출할 수도 있으나, 실제 물체가 아닌 것을 검출할 수도 있습니다.)TP / TP + FN
정확도는 precision이라는 용어를 사용합니다.
: 검출된 결과가 얼마나 정확한지. 즉, 검출 결과들 중 실제 물체가 얼마나 포함되어있는지를 나타냅니다.TP / TP + FP
일반적으로 인식 알고리즘의 성능과 관련해서, recall과 precision은 알고리즘의 파라미터 조절에 따라 유동적으로 변하는 값이기 때문에
어느 한 값으로 알고리즘 전체의 성능을 표현하는 방법은 올바르지 않습니다.
→ 일반적으로 알고리즘의 검출률(recall)과 정확도(precision)은 서로 반비례 관계를 가집니다. 알고리즘의 파라미터를 조절해 검출률을 높이면 오검출(false alarms)이 증가하고,
반대로 오검출을 줄이기 위해 조건을 강화하면 검출율이 떨어집니다.
따라서 인식 알고리즘의 성능을 제대로 비교하고 평가하기 위해서는 precision과 recall의 성능 변화 전체를 살펴봐야합니다.
이와 관련하여 제일 대표적인 방법은 precision-recall 그래프를 이용하는 방법이 있습니다.
Precision-recall 그래프
아래 그래프는 'Object Detection with Discriminatively Trained Part Based Models', TPAMI 2010논문에서 DPM 모델의 영러 변형에 따른 성능 변화를 그래프로 표현한 것입니다.
precision-recall 그래프는 다양한 형태로 변형되어 표현될 수 있는데
- recall 대신에 miss rate(miss rate = 1-recall),
- precision 대신에 false alarm rate(false alarm rate = 1-precision)
등이 사용될 수 있습니다.
Average Precision(AP)
precision-recall 그래프는 어떤 알고리즘의 성능을 전반적으로 파악하기에는 좋으나 서로 다른 두 알고리즘의 성능을 정량적으로 비교하기에는 불편한 점이 있습니다.
그래서 나온 개념이 average precision이다. Average Precision은 인식 알고리즘의 성능을 하나의 값으로 표현한 것으로서 precision-recall 그래프에서 그래프 선 아래쪽의 면적으로 계산됩니다.
average precision이 높으면 높을수록 그 알고리즘의 성능이 전체적으로 우수하다는 의미를 가집니다.
일반적으로 컴퓨터 비전 분야에서 물체인식 알고리즘의 성능은 대부분 average precision으로 평가합니다.
F-measure
알고리즘의 precision-recall 성능을 하나의 숫자로 표현하는 또 다른 방법입니다.
F-measure는 precision과 recall의 조화평균으로 계산됩니다.
Precision과 Accuracy의 차이
동일한 단어일지라도, 그것이 사용된 문맥에 따라서 의미가 달라질 수 있습니다.
accuracy는 정확도, precision은 정밀도로 변역이 됩니다.
이 두가지는 어떤 시스템의 특징 또는 성능을 평가하는 척도로 사용됩니다.
- Accuracy는 시스템의 결과가 참값(True)에 얼마나 가까운지를 나타냅니다.
- Precision은 시스템이 얼마나 일관된 값을 출력하는지 나타냅니다.
즉, accuracy는 시스템의 bias를, precision은 반복 정밀도를 나타냅니다.
Ex) 저울이 있는데, 50kg인 사람을 여러번 측정했을 때, 결과값이 [60 , 60.12, 59.99 ...]과 같은 60근방의 값으로 측정했습니다.
- accuracy는 매우 낮습니다.(10kg의 오차)
- precision은 높습니다. (변동이 적음)
'IT > Deeplearning' 카테고리의 다른 글
[Code Review/ self-driving lab] Udacity Self-driving Car - (2) (0) | 2017.10.26 |
---|---|
[Code Review/ self-driving lab] Udacity Self-driving Car - (1) (0) | 2017.10.20 |
[번역:: Gradient Clipping] Why you should use gradient clipping (0) | 2017.10.15 |
[CNN] Convolution Neural Network (0) | 2017.10.15 |
[MLP::Multi Layer Perceptron] Swallow Neural Networks :: Fully Connected Layer (1) | 2017.10.13 |