Reference
- https://herbwood.tistory.com/2
- https://jonathan-hui.medium.com/map-mean-average-precision-for-object-detection-45c121a31173
- Binary Classification를 기준으로 생각해보면, Confusion matrix는 총 네 가지 항목으로 구성됨.
- True Positive (TP): 실제값이 Positive이고, 모델이 예측한 값도 Positive인 경우
- False Positive (FP): 실제값은 Negative이고, 모델이 예측한 값은 Positive인 경우
- False Negative (FN): 실제값은 Positive이고, 모델이 예측한 값은 Negative인 경우,
- True Negative (TN): 실제값이 Negative이고, 모델이 예측한 값도 Negative인 경- Accuracy(정확도): 모든 결과 중, 올바르게 예측한 결과의 비율 (TP+TN/TP+TN+FP+FN)
- Precision(정밀도): Positive로 예측한 결과 중, 올바르게 예측한 결과의 비율 (TP/TP+FP)
- 예) 스팸 메일이 아닌(negative) 중요한 메일을 스팸 메일(positive)로 잘못 분류하면 안 되는 경우
- precision과 recall은 trade-off 관계임- Recall(재현율): 실제로 positive인 것들 중에 모델이 positive로 예측한 결과의 비율 (TP/TP+FN)
- 실제로 positive인 샘플을 놓치지 않는게 중요한 경우, 예: 암 진단, 코로나 진단- F1-score: 정밀도와 재현율의 조화 평균
- 불균형한 데이터셋에서 모델의 성능을 평가할 때 효과적인 지표
객체 위치의 정확도를 평가하는 지표
Predicted와 ground truth 두 box가 겹쳐지는 영역이 넓을 수록 모델이 객체의 위치를 잘 추정했다는 의미이다. 0과 1사이의 값을 가지며 0.5 이상이면 비교적 올바르게 예측했다고 간주한다.
- threshold 예시: 0.5를 기준으로 true positive와 false positive를 가를 수 있음.
Rank | Correct? | Precision | Recall |
---|---|---|---|
1 | True | 1.0 | 0.2 |
2 | True | 1.0 | 0.4 |
3 | False | 0.67 | 0.4 |
4 | False | 0.5 | 0.4 |
5 | False | 0.4 | 0.4 |
6 | True | 0.5 | 0.6 |
7 | True | 0.57 | 0.8 |
8 | False | 0.5 | 0.8 |
9 | False | 0.44 | 0.8 |
10 | True | 0.5 | 1.0 |
dataset마다 조금씩 다른 AP 계산을 사용하는 경우가 있다. PASCAL VOC2008의 경우, 11-point interpolated AP의 평균이 사용되었다.
먼저, recall 값을 0부터 1까지 총 11 points로 나눈다. (0.1 단위) 그리고 이 11개의 recall 값에 대해 평균 maximum precision value를 구한다.
- PASCAl VOC2008 예시에서는 AP=(5x1.0 + 4x0.57+2x0.5)/11 로 계산할 수 있다.
만약, 이 매우 작게 나오면 그 다음의 들은 0이 될 것으로 짐작해볼 수 있다. 따라서 maximum precision levels이 무시할 수 있는 수준으로 작게 나오면 그 recall level에서 더 이상 계산을 멈출 수 있다. (어차피 거의 0일테니 더 이상 더하시 않아도 된다는 뜻)
PASCAL VOC에 있는 20개의 클래스 각각에 대해 AP를 구하고, 그 AP들에 대한 평균값 또한 도출할 수 있다.
하지만, 위와 같은 방식(interpolated AP method)는 덜 정확하고, 매우 작은 AP에 대한 계산 능력을 잃어버린다는 단점이 있다. 따라서 2008년 이후에는 다른 방식의 AP 계산법이 사용된다.