F1 점수, PR 커브, IoU, AP란? - 모델 진단에 사용되는 지표와 활용 방안 알아보기 Part 2

F1 점수, PR 커브, IoU, AP란? - 모델 진단에 사용되는 지표와 활용 방안 알아보기 Part 2

모델 진단에 사용되는 지표와 활용 방안에 대해 궁금하신가요?

모델 평가 지표는 모델 개발자 및 사용자가 모델의 성능을 이해하고 비교할 수 있게 해주어, 모델 개선을 위한 방향을 제시해 줍니다. 선택한 평가 지표는 모델의 특성과 목표에 따라 달라질 수 있으므로, 문제의 본질과 목표를 고려하여 적절한 평가 지표를 선택해야 합니다.

관련 블로그글 확인하기


모델 진단에 활용되는 지표 - 2

F1 점수 (F1 Score)

F1 점수는 정밀도(Precision)과 재현율(Recall)의 기하 평균(Geometric Mean) 값으로, 모델의 정밀도와 재현율을 모두 고려한 평가 지표입니다. 모델의 정밀도, 재현율을 종합한 성능을 수치화하고 싶을 때 주로 사용되며, 모델의 균형 잡힌 성능을 측정하는 데 사용됩니다. 최소 0, 최대 1의 값을 가지고, 높을수록 좋은 성능을 나타냅니다.

신뢰 점수 (Confidence Score)

모델이 각각의 모델이 예측한 클래스(Classification) 또는 검출된 영역과 예측한 클래스(Detection)를 출력할 때 이 신뢰 점수를 같이 출력하며, 이는 각각의 모델의 예측값을 얼마나 확신하는지를 나타내는 일종의 확률과 유사한 값입니다. 최소 0, 최대 1의 값을 가지며, 더 높은 점수는 모델이 해당 예측에 대해 더 정확하다고 확신하는 것을 나타냅니다. 즉, 신뢰 점수는 모델의 성능을 나타내는 지표라기보다는, 모델이 처리한 각각의 출력값(예: 인지한 사물 1개, 분류한 이미지 1장 등) 마다의 신뢰도를 표기하는 값이며, 입력으로 주어지는 데이터마다 다른 신뢰 점수를 출력합니다.

모델을 배포하여 추론에 활용할 때는, 모델의 각 예측값 중에서 신뢰 점수 값이 너무 낮은 데이터는 불확실한 출력값으로 배제하는 것이 일반적입니다. 그렇기 때문에, 신뢰 점수 임계점(Threshold)을 어떤 값을 설정하는지에 따라, 모델이 얼마나 예민하게 동작하는지 (신뢰 점수 값이 낮은 출력값도 인정할지, 반대로 신뢰 점수 값이 크더라도 무시할 건지) 설정을 할 수 있습니다. 예를 들면, 임계점을 0.9로 설정하는 경우, 모델이 검출한 영역 중에서 신뢰 점수가 0.9 이상인 것만 출력하게 됩니다.

신뢰 점수가 낮거나 높은 출력값끼리 모아서 분석해 보면, 해당 모델이 어떤 유형의 데이터에 대해 신뢰도가 낮거나 높은지(모델이 어떤 유형에 대해 더 학습이 필요할지) 진단할 수 있어 향후 모델의 성능 개선에 반영할 수 있습니다.

신뢰 점수, 정밀도, 재현율, F1 값의 활용

슈퍼브 큐레이트의 모델 진단 기능 페이지에는 다음과 같은 그래프가 제공됩니다. 가로 축에는 신뢰 점수 값을, 세로 축에는 정밀도, 재현율, F1 값을 그린 그래프입니다. 조금 전 설명드렸던 바와 같이, 모델의 신뢰 점수 임계점 설정 수치에 따라 모델이 얼마나 엄격하게 예측 값을 출력하는지를 조절할 수 있으며, 그에 따라 정밀도, 재현율 값이 달라지는 것을 위 그래프에서 확인할 수 있습니다. 

신뢰 점수 임계점을 높게 설정하게 될수록(즉, 아주 높은 신뢰도를 갖는 예측 값만 저장하는 경우), 일반적인 경우에는 출력을 하지 않고 아주 확실한 경우에만 검출을 하는 모델을 가지게 됩니다. 그 결과, 예측한 출력 개수는 적지만 출력된 결과의 정확도는 높은 모델을 얻게 되며, 이는 낮은 재현율 값과 높은 정밀도 값을 가진다는 것과 동일합니다. 

반대로 신뢰 점수 임계점을 낮게 설정하게 될수록(즉, 신뢰도가 높지 않더라도 예측값을 모두 저장하는 경우), 일반적인 경우에는 예측 값을 출력하는 모델을 가지게 됩니다. 그 결과, 출력된 예측 결과의 개수는 많지만 그 예측의 정확도는 다소 떨어질 수 있는 모델을 얻게 되며, 이는 높은 재현율 값과 낮은 정밀도 값을 가진다는 것과 동일합니다. 

이러한 트렌드는 위 그래프에서 확인하실 수 있습니다. 좌측에서 우측으로 이동할수록(신뢰 점수 임계점이 높아질수록) 재현율은 낮아지고 정밀도는 높아지게 됩니다. 

F-1 점수의 경우, 앞서 설명드린 것과 같이 정밀도와 재현율 두 값의 곱과 합을 이용하여 계산하게 됩니다. 그렇기 때문에, 신뢰 점수 임계점이 높거나 낮은 양쪽 극단에서 F-1 점수는 낮아지게 되고, 중간 정도의 신뢰 점수 임계점을 설정했을 때에 최대값을 가지게 됩니다. 모델을 실제 환경에 배포하고 사용할때에 이렇게 F-1 Score가 최대값이 되는 신뢰 점수 임계점을 사용하면 정밀도, 재현율 두 지표가 균형 잡힌 성능을 얻을 수 있습니다. 만약 '불량품 검출' 처럼 재현율이 높은것이 중요한 상황에서는 F-1 값이 최대인 신뢰 점수 임계점보다는, 재현율이 높은 임계점을 사용하는 등, 상황에 따라 필요한 정밀도 및 재현율 수치에 따라 신뢰 점수 임계점을 적절하게 설정하는 것이 좋습니다.  

모델 진단 기능 페이지에서는 다음과 같은 그래프도 제공됩니다. 앞서 설명드린 것처럼, 신뢰 점수 임계점 값을 어떻게 설정하는지에 따라 모델의 정밀도, 재현율 등의 성능 지표가 변화하는데요, 이 그래프는 이렇게 신뢰 점수 임계점에 따라 변화하는 재현율과 정밀도 값을 각각 가로, 세로축에 그린 PR 커브(Precision-Recall Curve)입니다. 이론적으로는 모든 재현율 값에 대해 항상 1.0의 정밀도 값을 가지는 것이 가장 이상적이지만, 현실적으로는 재현율이 높아질수록 정밀도 값이 떨어지는 것을 보실 수 있으며, 이 두 값은 서로 상호 절충(Trade-off) 관계에 있습니다.


💡
AI 모델의 F1 점수, 신뢰 점수 및 IoU를 지금 확인해 보세요!
슈퍼브 큐레이트의 '모델 진단' 기능 사용 문의하기

모델 진단에 활용되는 지표 - 3

IoU (Intersection over Union)

IoU는 Intersection over Union의 약어로, 객체 검출 (Object Detection) 및 세그멘테이션 작업에서 사용되는 중요한 지표 중 하나입니다. IoU는 검출된 객체 Bounding Box의 위치와 크기, 또는 Segmentation Mask의 경계선 등의 품질을 측정하는 데 사용됩니다.

예를 들어, Bounding Box 객체 검출 작업에서 IoU는 모델이 예측한 바운딩 박스(예측된 영역)와 실제 객체의 바운딩 박스(실제 영역) 간의 겹침을 계산하고, 두 영역이 차지하는 영역의 총합을 측정합니다. 이 겹치는 영역의 크기를 두 영역의 총합으로 나눈 값이 IoU이며, 0에서 1 사이의 값을 가집니다. IoU가 1에 가까울수록 두 개의 바운딩 박스가 겹치는 영역이 크고, 모델 출력값이 그만큼 정확하다는 것을 의미합니다.

일반적으로, 객체 검출 및 세그멘테이션 모델의 평가 및 성능 향상을 위해 IoU가 사용됩니다. 또한, 임곗값을 조정하여 IoU의 값을 기준으로 예측을 필터링하거나 정밀도와 재현율을 계산하는 데 사용될 수 있습니다. 예를 들어, IoU 값이 너무 낮은 모델 출력값은 검출되지 않은 것으로 감안하고 ('Negative'로 처리) 모델의 정밀도, 재현율 등의 성능을 계산할 수 있습니다. 흔하게 사용되는 IoU 임곗값은 0.5인데, 이는 모델이 검출한 영역과 실제 객체의 영역 간의 겹침 정도(IoU)가 0.5 이상인 경우에만 실제 객체를 올바르게 검출한 것으로(= True Positive) 취급하고, 0.5 미만인 경우에는 모델이 검출한 영역을 오검출(False Positive)로 취급하겠다는 의미입니다.

AP (Average Precision)

신뢰 점수(Confidence Score) 지표에 대한 설명에서 신뢰 점수 임계점(Threshold) 값에 따라 정밀도와 재현율이 변화한다고 설명을 드렸는데요, Average 정밀도는 다양한 신뢰 점수 임곗값 설정을 하였을 때의 정밀도 값의 평균값입니다. 

예를 들어 신뢰 점수 임곗값을 0.5로 설정한다면 모델의 예측값에 대한 신뢰도가 50% 이상만 되면 정답을 맞힌 것으로 간주하는데요, 그렇기 때문에 이 기준은 비교적 넉넉하게 정답으로 인정해 주는 평가 방식입니다.

반면에 신뢰 점수 임곗값을 0.95로 설정한다면, 모델의 예측값에 대한 신뢰도가 95% 이상 되어야지만 정답으로 인정하고, 그렇지 않을 경우 오답으로 처리하게 됩니다. 이는 아주 높은 기준이며, 모델이 굉장히 자신 있게 예측값을 출력해야지만 정답으로 처리하는 평가 방식입니다. 

이처럼 다양한 신뢰 점수 임곗값을 사용하여 모델의 성능을 평가하고, 여러 신뢰 점수 임곗값에 대한 정밀도 값을 평균 낸 것이 바로 평균 정밀도(Average Precision, AP 입니다. 

이는 모델 진단 페이지에서 제공하는 PR 커브(Precision-Recall Curve) 아래에 있는 면적의 넓이와도 동일한 값입니다.

AP@0.5, AP@0.5:0.95

평균 점밀도는 흔히 뒤에 추가로 '@0.5' 등 형태의 어떤 숫자로 표기하는 경우가 많습니다. AP@0.5의 경우 IoU Threshold를 0.5로 설정하였을 때의 평균 정밀도 값이고, AP@0.5:0.95의 경우 IoU Threshold를 0.5, 0.55, 0.6, … , 0.9, 0.95 등 여러 값을 사용하여 계산한 평균 정밀도 값입니다. 

mAP (mean Average Precision)

AP 점수는 각각의 클래스마다 계산되는 지표인 반면, mAP는 각 클래스의 AP 점수를 평균 낸 값이며, 모델의 전반적인 성능을 하나의 값으로 나타낼 수 있습니다. 

각 클래스의 AP@0.5 값을 평균 낸 것은 mAP@0.5, 각 클래스의 AP@0.5:0.95 값을 평균 낸 것은 mAP@0.5:0.95라고 부릅니다.