AI_심화-8 AI 성능 지표

조현진·2025년 1월 6일
0

AI_심화

목록 보기
7/9

머신러닝 모델의 테스트 평가 지표

1. test_loss

모델이 테스트 데이터에 대해 예측한 결과와 실제 값 간의 차이를 측정하는 손실 함수(loss function)가 반환하는 값이다. 손실 값이라고도 한다.

손실(loss)함수는 문제의 유형(회귀, 분류)에 따라 달라진다.

모델이 얼마나 잘못 예측했는지를 나타내며, 이 값이 낮을수록 모델의 예측결과가 실제 값과 가까운 것을 의미한다. 모델의 학습 및 테스트 성능을 정량적으로 평가하는 기본지표이나 모델의 실제 성능을 직접적으로 평가하기에는 부족할 수 있어 다른 지표와 함께 사용된다. 허나 기본적으로 이 손실값을 줄이는 것이 학습의 목표이다.

2. test_accuracy

테스트 데이터에서, 전체 예측한 샘플 중 모델이 정확히 예측한 샘플의 비율이다. 모델이 얼마나 올바른 예측을 했는지 나타낸다.

여기서 전체 예측한 샘플이란, TP(True Positive), TN(True Negative), FP(False Positive), FN(False Negative) 모두를 합한 값이다.

그런데 데이터가 불균형하다면 정확히 예측하는 것은 의미없다. 예를 들어 99%의 데이터가 A라면, A를 한만 맞춰도 정확도는 99%가 된다. 따라서 데이터가 균형 잡혀있는게 확실할때 적합한 지표이다.

3. test_f1

정밀도(Precision)과 재현율(Recall)의 조화평균(Harmonic Mean)을 나타낸다.

F1=2PrecisionRecallPrecision+RecallF1 = 2 \cdot \frac{\text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}}

조화평균은 (역수의 산술평균)의 역수이다. 우선 역수를 취해 산술평균을 구하고, 다시 역수를 취한다. 조화평균은 속력의 평균을 구할때 사용된다. 속력의 평균을 구하기 위해선 시간의 평균이 먼저 필요한데, 시간을 구하기 위해선 우선 거리를 속력으로 나눠야 하기 때문이다.

정밀도(Precision)은 모델이 양성(Positive)으로 예측한 케이스 중 실제로 양성인 비율을 말한다.
정밀도는 실제로는 음성(Negative)인데 양성으로 예측한 경우(FP; False Positive)을 줄이는데 목적을 둘때 사용된다.

예를 들면, 잘못된 예측이 치명적인 문제(의사의 잘못된 진단을 줄이는데 목적)에서 주로 사용된다.

재현율(Recall)은 실제로 양성인 값들 중 모델이 정확히 양성으로 예측한 비율을 의미한다.
달리 말하면, 위의 정밀도와는 반대로 실제로는 양성(Positive)인데 모델이 이를 음성(Negative)로 예측한 경우(FN; False Negative)를 줄이는데 목적을 둔다.

예를 들면, 놓치면 안되는 케이스들(실제 환자를 놓치지 않고 진단하는게 목적)에서 주로 사용된다.

정밀도와 재현율은 서로 트레이드오프 관계에 있다. 따라서 목적에 따라 FP와 FN을 얼마나 허용할지를 결정해야만 한다.

따라서 양자의 균형을 고려하기 위해 조화평균을 구해 사용하고, 이 지표가 F1이다. F1은 0~1사이의 값을 가지며 양자 중 한쪽으로 치우치는 등 불균형해지면 값이 낮아진다.

4. test_runtime

테스트 데이터셋 전체를 평가하는데 걸린 총 시간(s)이다.

효율성을 판단하는데 사용하며, 런타임이 너무 길다면 최적화나 모델 경량화를 고려할 필요가 있다.

5. test_samples_per_second

초당 처리된 테스트 샘플의 수를 나타낸다. 이 값이 높을수록 모델이 표율적으로 테스트 데이터를 처리하고 있음을 나타낸다.

6. test_steps_per_second

초당 처리된 테스트 스텝의 수를 나타낸다. 일반적으로 한 스텝은 하나의 배치(batch)에 해당한다. 배치 크기(batch size)에 따라 스텝당 샘플 수가 달라질 수 있다.

0개의 댓글