1. IoU
1-1) IoU (Intersection over Union)
모델이 예측한 결과(Predicted Bounding Box)와 실측(Ground Truth Bounding Box)이 얼마나 정확하게 겹치는가를 나타낸 지표
$IoU = \frac {Area\: of \: Intersection} {Area \: of \: Union}$
즉, (개별 Box가 서로 겹치는 교집합 영역) / (전체 Box의 합집합 영역) 을 IoU라 한다.
1-2) IoU에 따른 Detection 성능
- Poor: IoU < 0.5
- Good: IoU > 0.5
- Excellent: 상대적으로 높을 때 (0.936)
- 다만, IoU 기준을 어떻게 잡느냐에 따라 다르다
2. mAP (mean Average Precision)
AP(Average Precision): 각 Class (N개)에 대응하는 PR Curve의 면적
mAP(mean Average Precision): 각 Class당 AP를 구한 후, 이를 모두 합한 다음 Object Class의 개수로 나눠준다. $\frac {\sum_{i=1}^{N} AP} {N}$
1-1) Multi-Class Confusion Matrix
(a)는 binary classification의 confusion matrix이고, (b)는 multi-class classification의 confusion matrix 이다.
$Accuracy = \frac {TP + TN } {TP + TN + FP + FN}$: 정확도
$Precision = \frac {TP} {TP + FP}$: 정밀도 (세로축, Positive Predictive Value)
- 검출 알고리즘이 검출 예측한 결과가 실제 Object들과 얼마나 일치하는지를 나타내는 지표 (신중함)
- 미처 잡아내지 못하는 것이 있더라도 더 정확한 예측이 필요할 때 사용
- 정밀도를 올리는 방법: TP를 높이거나 FP를 낮추면 됨
$Recall = \frac {TP} {TP + FN}$: 재현율 (가로축, True Positive Rate(TPR) = Sensitivity)
- 검출 알고리즘이 실제 Object를 빠뜨리지 않고 얼마나 정확히 검출 예측하는지를 나타내는 지표 (최대한 안 틀림)
- 잘못 걸러내는 비율이 높더라도 놓치는 것이 없도록 하는 경우에 사용
- 재현율을 올리는 방법: TP를 높이거나 FN를 낮추면 됨
$FPR = \frac {FP} {FP + TN}$: 위양성률(False Positive Rate)
- P: 예측을 참이라고 함, 예측을 하긴 함
- TP: 예측 Class와 실제 Class가 해당 Label로 같은 값 (예측을 하고 있음)
- FN: 실제 Class는 같지만 예측 Class가 해당 Label과 다른 값 (답이 있는데 예측을 못함)
- No Prediction
- FP: 예측 Class는 아니지만 실제 Class는 해당 Label과 같은 값 (예측을 하긴 했는데 틀림)
- Wrong Class
- IOU < 0.5
- No Overlap
- TN: 예측 Class와 실제 Class 모두 해당 Label과 다른 값 (confusion matrix에서 TP, FN, FP를 제외한 여집합 영역, 잘 안 쓰임)
즉, Binary/Multi-Class든 간에 Precision은 세로축의 비율, Recall은 가로축의 비율이다
단, Multi-Class Classification Confusion Matrix의 경우 각 Class별로 $(TP, TN, FP, FN)$이 하나씩 존재한다.
즉, 위의 Confusion Matrix에서는 총 N개의 Class가 있으므로 각 Class별로 Precision, Recall이 N개씩 존재한다.
1-2) Precision-Recall Trade off
정밀도와 재현율은 상호 보완적인 평가 지표이므로 어느 한 쪽을 높이면 다른 하나의 수치는 떨어지는데 이를 정밀도 / 재현율의 Trade-off라 한다.
정밀도가 상대적으로 더 중요한 경우 (FP가 더 중요한 경우)
- 미처 잡아내지 못하는 것이 있더라도 더 정확한 예측이 필요할 때 사용 ( FP을 낮춘다)
- 실제 Negative 음성인 데이터 예측을 Positive 양성으로 잘못 판단하게 되면 업무상 큰 영향이 발생하는 경우
- 스팸 메일
재현율이 상대적으로 더 중요한 경우 (FN이 더 중요한 경우)
- 잘못 걸러내는 비율이 높더라도 놓치는 것이 없도록 하는 경우에 사용 (FN을 낮춘다)
- 실제 Positive 양성인 데이터 예측을 Negative로 잘못 판단하게 되면 업무상 큰 영향이 발생하는 경우
- 암 진단, 금융사기 판별
불균형한 레이블 클래스를 가지는 Binary Classification model에서는 많은 데이터 중에서 중점적으로 찾아야 하는 매우 적은 수의 결괏값에 Positive를 설정해 1값을 부여하고, 그렇지 않은 경우는 Negative로 0 값을 일반적으로 부여함
1-3) Precision-Recall Curve
Confidence Threshold
- Positive 예측값(Predicted Class가 Actual Class값을 가지기 위해)을 결정하는 확률의 기준
- Confidence Threshold가 낮으면, Bounding Box 수가 많아진다: 난사
- Confidence Threshold가 높으면, Bounding Box 수가 적어진다: 신중함
Confidence Threshold를 낮추면 낮출수록 잘못 Detect하는 경우가 많아진다.
지속적으로 Confidence Threshold를 낮춰보면 Detect하는 객체가 많아지지만, 맞는지는 모른다.
이러한 경우 Predicted Class에서 실제 Class로 분류되는 확률이 높아지고 (세로축의 값들이 상승, Positive로 예측할 확률 증가)
따라서 FP는 증가하고, FN이 감소하여 Precision이 감소하고 Recall이 증가한다.
1-4) mAP 계산하기
AP는 각 Class별 Precision-Recall Graph의 면적이다.
각 Class마다 AP를 하나씩 갖게 되는데, 모든 Class의 AP에 대해 평균값을 낸 것이 mAP(mean AP)이다.
즉, 모든 Class에 대하여 PR Graph의 면적을 Average를 취한 것이라 볼 수 있다.
Confidence = 0.9
- 매우 신중함: Precision = 1
- 한 번의 시도에 성공 : 1/1
- 5개의 대상 중 1개만 탐지: Recall = 0.2
Confidence = 0.05
- 10번 예측해서 5번 맞춤: Precision = 0.5
- 5개의 대상 중 5개 맞음: Recall = 1