Deep Learning/Object Detection

성능 평가 지표 1

nayeoniee 2022. 9. 3. 18:30

볼 때마다 나를 혼동시키는 혼동 행렬부터 precision, recall, f1 score까지 모델의 성능 평가 지표에 대해 정리해보았다.

1. Confusion Matrix

학습을 수행한(통한) 모델의 예측 성능을 측정하기 위해 모델의 예측값과 실제값을 비교하기 위한 표 분류 모델의 성능 평가 지표로 사용된다.

모델을 평가하는 요소는 모델이 예측한 값과 정답이 얼마나 유사한지, 예측과 정답간의 관계를 통해 정의할 수 있다. 시국에 맞게 코로나에 걸린 사람과 걸리지 않은 사람을 예측하는 모델을 예로 들어 코로나에 걸리면 Positive(양성), 걸리지 않으면 Negative(음성)로 표현한다.

이름은 (예측값이 맞았는지) (예측값) 순서로 읽으면 된다.

  • True Positive(TP): 실제 Positive를 Positive로 예측 (정답), 양성을 양성으로 예측
  • False Positive(FP): 실제 Negative를 Positive로 예측 (오답), 음성을 양성으로 예측
  • False Negative(FN): 실제 Positive를 Negative로 예측 (오답), 양성을 음성으로 예측
  • True Negative(TN): 실제 Negative를 Negative로 예측 (정답) , 음성을 음성으로 예측
  • 코로나 확산 방지를 최대화하는 관점에서는 FN 오류율이 가장 치명적일 것이다.

detection task를 공부하는 중이니까 confusion matrix를 detection에 적용해보자. 첫 번째 표와 행, 열이 반대이므로 헷갈리지 않도록 유의하자.

  • True Positive: 실제로 물체가 있고, 모델이 있다고 예측한 경우
  • False Positive: 실제로 물체가 없는데 모델이 있다고 예측한 경우
  • False Negative: 실제로 물체가 있는데 모델이 없다고 예측한 경우
  • True Negative: 실제로 물체가 없고, 모델이 없다고 예측한 경우

 

2. Precision & Recall & Accuracy

Precision (정밀도) = $\frac{TP}{TP + FP}$
모델이 양성으로 예측한 사람들 중 실제 양성인 사람들을 의미한다.

 

Recall (재현율) = $\frac{TP}{TP + FN}$

  • 실제 양성인 사람들 중 모델이 양성으로 예측한 사람들 (실제 날씨가 맑은 날 중에서 모델이 맑다고 예측한 비율)
  • 통계학에서는 sensitivity, 다른 분야에서는 hit rate라는 용어로도 사용된다.

⇒ precision과 recall 모두 true positive라고 예측한 것에 관심이 있으나 precision은 모델의 관점에서, recall은 정답의 관점에서 바라본다.

⇒ 코로나 양성이 확실하지 않은 경우에는 예측을 보류하거나 하지 않아 FP를 줄여 precision값을 높일 수 있다. 하지만 이렇게 애매한 경우를 예측하지 않아 모델의 성능을 높이는 것은 cheating이라서 이상적인 모델이 아니다. precision과 recall은 서로 trade-off 관계이며, 두 지표가 모두 높을수록 좋은 모델이다.

 

Accuracy (정확도) = $\frac{TP + TN}{TP + FN + FP + TN}$

precision과 recall은 true를 true라고 옳게 예측한 경우만 다루었지만, false를 false로 예측한 것도 옳은 예측이다. 정확도는 가장 직관적으로 모델의 성능을 나타내는 평가 지표이다.

accuracy = (옳은 예측) / 전체 예측 하지만, 데이터의 bias에 따라 보완이 필요하다. 예를 들어 실험하는 한 달 동안 날씨가 좋지 않아 많은 사람들이 바깥 외출을 많이 하지 않아 코로나 확진자가 적다면, 데이터의 분포가 불균형해져 음성으로 예측하는 성능은 높지만, 양성으로 예측하는 성능은 매우 낮을 수 밖에 없다.

 

극단적으로 보면,

  • 모든 영역에 물체가 존재한다고 예측하면 → 물체가 없어도 있다고 예측하기 때문에 FP 증가 ⇒ precision 감소, recall 증가
  • 매우 확실할 때만(confidence가 높을 때만) 물체가 존재한다고 예측하면 → 물체가 있어도 없다고 예측하기 때문에 TN 증가 ⇒ precision 증가, recall 감소

위의 그림에서

  • precision = 4/8 = 0.5
  • recall = 4/5 = 0.8

 

3. F1 score와 평균 계산 방법

$F1 score = \frac{precision * recall}{precision + recall} * 2$

F1 score는 precision과 recall의 조화평균이다. 데이터 라벨이 불균형할 때 모델의 성능을 정확히 평가하고 하나의 숫자로 표현할 수 있다.

  • 조화 평균 = 역수의 산술 평균의 역수
  • 산술 평균 ≥ 기하 평균 ≥ 조화 평균
    • 산술 평균: $\frac{70+78}{2} = 74$
    • 기하 평균: $\sqrt{70*78}=73.89$
    • 조화 평균: $\frac{2}{70^{-1} + 78^{-1}} = 73.78$

조화 평균의 값은 산술 평균값보다 작은데, 이는 조화 평균을 사용했을 때 큰 데이터의 가중치를 적게 주는 것을 뜻한다.