Precision, Recall, AP, mAP

박준희·2025년 3월 23일

딥러닝 논문이나 프로그램 설명을 보면, 성능 지표로 AP, mAP 등을 쓰는데, 뭔지 잘 모르겠다.
이제부터 무엇인지 알아보자.

AP, mAP를 이해하기 위해선 우선 Precision(정확도), Recall(재현율, 검출률) 에 대해 알아야 한다.

그리고 그 전에 다음 표에 대해 알고 있어야 한다.

[ confusion matrix ]

confusion matrix는 실제 상황과 예측 결과의 매칭을 통해 모델을 평가하는 간단한 표이다.

1) TP (true positive): 검출되어야 할 것이 올바르게 검출됨
2) FP (false positive): 검출되지 말아야 할 것이 검출됨
3) FN (false negative): 검출되어야 할 것이 검출되지 않음
4) TN (true negative): 검출되지 말아야 할 것이 올바르게 검출되지 않음

[ Accuracy, Precision, Recall ]

  • Accuracy(정확도): 전체 샘플 중 TP, TN의 비율
    가장 단순한 지표이지만, 불균형한 클래스를 가진 데이터셋의 경우 Accuracy만으로 평가가 어려움

    Accuracy=TP+TNTP+FP+FN+TNAccuracy = \frac{TP+TN}{TP+FP+FN+TN}

  • Precision(정밀도): 예측 결과가 Positive인 것 중 실제로 Positive인 비율
    Positive로 검출된 결과가 얼마나 정확한지 나타냄

    Precision=TPTP+FPPrecision = \frac{TP}{TP+FP}

  • Recall(재현율): 실제로 Positive인 것 중 예측 결과가 Positive인 비율
    분류 모델이 실제 Positive 클래스를 얼마나 잘 검출하는지 나타냄

    Recall=TPTP+FNRecall = \frac{TP}{TP+FN}

[ F1 score ]

F1 score는 Precision과 Recall의 조화 평균으로 정의된다.

F1score=2×Precision×RecallPrecision+RecallF1score = \frac{2 \times Precision \times Recall}{Precision + Recall}

데이터의 클래스 분포가 불균형인 상황에서 Accuracy 대신 사용된다.
(둘 중 어느 하나가 낮으면 F1 score 도 낮아진다. 따라서 Precision과 Recall 둘 다 중요할 때 사용된다.)

0~1 의 값을 가지고 있으며, 1에 가까울수록 성능이 좋다.

[ Precision-Recall Curve ]

Precision과 Recall은 서로 trade-off 관계에 있어서, Precision이 올라가면 Recall이 떨어지고, Recall이 올라가면 Precision이 떨어짐

PR Curve는 이러한 Precision과 Recall의 변화를, threshold를 변화시켜 가며 관찰하여 그린 곡선 그래프라고 할 수 있다.

threshold에 따라 예측 결과가 달라지고, 예측 결과가 달라지면 TP, FN 등의 matrix에도 변화가 생김

  • threshold가 0.5일 때 , 0.5보다 크면 Positive, 0.5보다 작으면 Negative
  • Threshold를 높이면 Precision이 증가하지만 Recall은 감소
    Threshold를 낮추면 Recall이 증가하지만 Precision은 감소

[ AP (Average Precision) ]

PR Curve는 알고리즘의 성능을 전반적으로 파악하기에는 좋으나, 서로 다른 두 알고리즘의 성능을 정량적으로 분석하긴 어렵다. 그래서 사용하는 것이 AP.

AP는 간단하게 PR Curve 아래의 면적이다. AP가 1에 가까울수록 모델의 성능이 우수하다는 뜻이다.
컴퓨터 비전 분야에서 알고리즘의 성능은 대부분 AP로 평가된다.

[ mAP (mean Average Precision) ]

물체의 클래스가 여러 개인 경우, 각 클래스 당 AP를 구한 다음 모든 AP의 합 / 물체 클래스 개수 로 나눠줌으로써 알고리즘의 성능을 평가하는데, 이렇게 여러 클래스에 대한 AP의 평균을 mAP라고 한다.

profile
이것저것 정리용

0개의 댓글