AI 모델 성능 평가 지표 완전 정복: F1부터 Policy Gradient까지, 숫자 하나가 모델의 운명을 결정한다
모델을 학습시켰는데 “좋다”는 게 뭔가요?
정확도 99%가 항상 최고일까요? 암 진단 AI가 정확도 99%라며 자랑하는데, 실제 암 환자 100명 중 90명을 놓친다면?
같은 모델인데 평가 지표만 바꿨더니 최고에서 최악으로 추락하는 충격적인 현실! MSE, RMSE, MAE부터 AUROC, F1-Score, mAP, BLEU, ROUGE, Perplexity, IoU, FID, CLIPScore, BERTScore까지, 데이터 타입별·Task별·응용 분야별로 어떤 지표를 써야 하는지 완벽 정리했습니다.
그런데 여기서 끝이 아닙니다! F1-Score가 좋다고 학습할 때 그대로 손실 함수로 쓸 수 있을까요? 왜 어떤 지표는 손실 함수가 되고, 어떤 건 안 될까요? 미분 불가능한 지표의 대체 손실 함수(Surrogate Loss)부터 강화학습에서 보상을 손실로 바꾸는 Policy Gradient까지, 평가 지표와 손실 함수의 숨겨진 관계를 완벽 해부합니다.
1. 성능 평가 지표란 무엇인가?
1-1. 왜 평가 지표가 중요한가? (Feat. 피터 드러커의 명언)
“측정할 수 없으면 개선할 수 없다.” (If you can’t measure it, you can’t improve it.)
— 피터 드러커 (Peter Drucker)
AI 모델을 만드는 과정은 ‘요리’와 비슷합니다. 아무리 좋은 재료(Data)와 비싼 조리 도구(GPU)를 써도, 마지막에 손님이 “맛있다!”고 평가해주지 않으면 그 요리는 실패작이죠.
여기서 ‘맛’을 숫자로 점수 매기는 기준이 바로 성능 평가 지표(Evaluation Metric)입니다.
하지만 문제는 “어떤 기준으로 맛을 평가할 것인가?”입니다.
- 짠맛을 좋아하는 사람에게 단맛 케이크를 주면? → 0점
- 다이어트 중인 사람에게 칼로리 폭탄 버거를 주면? → 마이너스 점수
AI도 똑같습니다. 평가 지표를 잘못 고르면, 멍청한 AI를 천재라고 착각하게 됩니다.
1-2. 충격적인 실제 사례: 암 진단 AI의 대참사
가장 유명하고 직관적인 ‘정확도(Accuracy)의 함정’을 예로 들어보겠습니다.
여러분이 암을 진단하는 AI를 만들었다고 가정해봅시다.
- 전체 환자: 100명
- 암 환자: 1명
- 정상인: 99명
이때, AI 모델이 아무 생각 없이 “에라 모르겠다, 전부 다 정상!”이라고 찍었다면 점수는 몇 점일까요?
✅ 정상인 99명 → "정상" (정답!)
❌ 암 환자 1명 → "정상" (오진...)
결과: 100명 중 99명 맞춤 → 정확도 99% 달성! 🎉와우! 정확도 99%의 슈퍼 AI가 탄생했습니다. 당장 병원에 도입해야 할까요?
절대 아닙니다. 이 AI는 정작 가장 중요한 암 환자를 단 한 명도 찾아내지 못했기 때문입니다. (Recall 0%)
이처럼 데이터가 불균형(Imbalanced)할 때 정확도는 사기꾼이 될 수 있습니다. 이것이 우리가 상황에 맞는 다양한 평가 지표를 배워야 하는 이유입니다.
1-3. 평가 지표 선택의 4계명
그렇다면, 수많은 지표 중 내 모델에 딱 맞는 건 어떻게 고를까요? 다음 4가지만 기억하세요.
- 데이터의 성격 (Data Characteristics)
- 데이터가 50:50으로 균형 잡혀 있나요? 아니면 99:1로 치우쳐 있나요?
- 불균형하다면 정확도(Accuracy)는 갖다 버리고 F1-Score나 AUROC를 봐야 합니다.
- Task의 목표 (Task Objective)
- 값을 예측하나요? (회귀 → MSE, MAE)
- O/X를 맞추나요? (분류 → Accuracy, F1)
- 문장을 만드나요? (생성 → BLEU, ROUGE)
- 비즈니스 리스크 (Business Requirement) ⭐ 중요
- “틀렸을 때 더 아픈 쪽이 어디인가?”를 따져야 합니다.
- 스팸 메일 필터: 정상 메일을 스팸통에 넣으면 사장님한테 혼납니다. (정밀도 Precision 중요)
- 암 진단: 암 환자를 정상으로 보내면 사람이 죽습니다. (재현율 Recall 중요)
- 설명 가능성 (Interpretability)
- 개발자끼리는 “Log-Loss가 0.2 줄었습니다”라고 하면 환호하지만, 경영진에게는 “정확도가 5% 올랐습니다”라고 말해야 통합니다. 때로는 쉬운 지표가 최고의 지표일 수 있습니다.
2. [핵심] 평가 지표를 손실 함수로 사용할 수 있는가? (평가 vs 학습의 딜레마)
2-1. 목표(Metric)와 나침반(Loss)의 차이
많은 분들이 딥러닝을 처음 배울 때 가장 헷갈려 하는 질문이 있습니다.
“F1-Score를 높이는 게 목표라면, 그냥 F1-Score를 손실 함수(Loss Function)로 설정해서 학습시키면 되는 거 아닌가요?”
정답은 “불가능하다”입니다. (대부분의 경우)
이유를 ‘산 정상에 오르는 등산객’에 비유해 보겠습니다.
- 평가 지표 (Metric) = “현재 정상에 도착했는가?” (Yes/No)
- 당신이 정상에 도착했다면
1점, 아니면0점입니다. - 하지만 산 중턱에 있는 사람에게 “아니오(0점)”라고만 말해주면, 어느 방향으로 한 발자국을 내디뎌야 할지 알려주지 못합니다.
- 당신이 정상에 도착했다면
- 손실 함수 (Loss Function) = “정상까지 거리가 얼마나 남았고, 경사가 어디로 져 있는가?” (Gradient)
- “지금 북동쪽으로 경사가 져 있으니 그리로 가라”고 방향(기울기, Gradient)을 알려줍니다.
- 이것이 바로 경사하강법(Gradient Descent)의 핵심입니다.
2-2. 손실 함수가 되기 위한 ‘절대 조건’ 3가지
모델을 학습시킨다는 것은 파라미터 $w$를 업데이트한다는 뜻입니다. 이 업데이트 규칙은 다음과 같습니다.
여기서 (Gradient)가 존재하기 위해서는 손실 함수 이 반드시 다음 조건을 만족해야 합니다.
- ✅ 미분 가능해야 한다 (Differentiable): 기울기를 구할 수 있어야 합니다. 끊겨 있거나 꺾여 있으면 안 됩니다.
- ✅ 연속적이어야 한다 (Continuous): 입력값이 아주 조금 변하면, 출력값(Loss)도 아주 조금 변해야 합니다.
- ✅ (가능하면) 볼록해야 한다 (Convex): 구불구불한 계곡보다는 밥그릇처럼 매끄러운 형태여야 최적해(Global Minimum)를 찾기 쉽습니다.
2-3. 왜 Accuracy와 F1-Score는 탈락인가? (The Zero Gradient Trap)
정확도(Accuracy)가 손실 함수가 될 수 없는 치명적인 이유는 ‘계단 함수(Step Function)’와 ‘argmax’ 때문입니다.
Accuracy는 예측 확률 p에 대해 임계값(Threshold)을 적용하는 함수입니다.
이 함수의 미분값(Gradient)을 살펴볼까요?
문제점:
모든 구간에서 기울기가 0입니다. (0.5 지점에서는 정의되지 않음).
Gradient가 0이라는 것은, 모델이 가중치 $w$를 아무리 미세하게 조정해도 Accuracy가 변하지 않는다는 뜻입니다. 모델은 학습 방향을 찾지 못하고 그 자리에 멈춰버립니다. 이를 기울기 소실(Vanishing Gradient) 문제의 극단적인 형태라고 볼 수 있습니다.
2-4. 해결책: 대역 배우 (Surrogate Loss) 기용하기
주연 배우(평가 지표)가 위험한 액션 씬(미분)을 소화하지 못한다면, 그와 가장 닮았으면서 액션도 잘하는 스턴트맨(대역, Surrogate Loss)을 쓰면 됩니다.
우리는 평가 지표와 수학적으로 가장 유사한 미분 가능한 함수를 손실 함수로 사용합니다.
| 평가 지표 (목표) | 문제점 (Why Failed?) | 대역 손실 함수 (Surrogate Loss) | 원리 |
|---|---|---|---|
| Accuracy | Step 함수, 미분 불가 | Cross-Entropy | $-\sum y \log(\hat{y})$를 통해 확률 분포 자체를 최적화 |
| F1-Score | 이산적(Discrete) 계산 | sigmoidF1 | TP, FP, FN을 Sigmoid 함수로 부드럽게 근사 |
| IoU | 영역 경계 불연속 | Dice Loss | 교집합 비율을 확률적으로 계산 (Soft-Dice) |
| Recall | 미분 불가 | Focal Loss | 맞추기 어려운 샘플(FN 등)에 가중치 부여: $-(1-p_t)^\gamma \log(p_t)$ |
| AUROC | 순위 기반(Sorting), 미분 불가 | RankNet / AUCMLoss | 쌍(Pair) 간의 순서를 맞추는 손실 함수로 변환 |
2-5. 심화: 미분 불가능을 미분 가능하게 바꾸는 마법 (Soft-Approximation)
“F1-Score를 꼭 직접 최적화하고 싶다!”는 연구자들의 집념은 결국 Soft Approximation 기법을 만들어냈습니다.
핵심은 딱딱한 0과 1 (Hard Prediction) 대신, 부드러운 확률값 (Soft Prediction)을 사용하는 것입니다.
예시: Soft-Dice Loss (의료 영상 세그멘테이션의 표준)
기존 Dice 계수 공식은 다음과 같습니다. 여기서 는 픽셀 개수를 세는 이산적인 연산입니다.
이를 미분 가능한 Soft-Dice Loss로 변환하면 다음과 같습니다. 여기서 는 정답(0 or 1), 는 예측 확률(0~1)입니다.
- 분자 : 교집합(Intersection)의 부드러운 근사
- 분모 : 합집합(Union) 영역의 합의 근사
- : 분모가 0이 되는 것을 막는 Smoothing Term
이 수식은 모든 항이 곱하기와 더하기로만 이루어져 있어 완벽하게 미분 가능합니다.
2-6. 평가 지표별 손실 함수 사용 가능 여부
| 평가 지표 | 손실 함수로 직접 사용 | 이유 | 대체 손실 함수 |
|---|---|---|---|
| MSE | ✅ 가능 | 미분 가능, 볼록 | – (직접 사용) |
| MAE | ✅ 가능 | 미분 가능 (0 제외), 볼록 | Huber Loss (부드러운 MAE) |
| R² | ⚠️ 부적합 | 학습에 불안정 | MSE 사용 |
| Accuracy | ❌ 불가능 | 미분 불가능 (Step 함수) | Cross-Entropy |
| Precision | ❌ 불가능 | 미분 불가능 (분류 결과) | Cross-Entropy |
| Recall | ❌ 불가능 | 미분 불가능 | Cross-Entropy, Focal Loss |
| F1-Score | ❌ 불가능 | 미분 불가능 | sigmoidF1 (부드러운 근사) |
| AUROC | ❌ 불가능 | 쌍별 비교, 비볼록 | AUCMLoss (Surrogate) |
| IoU | ⚠️ 어려움 | 경계에서 불안정 | Dice Loss, Focal Loss |
| Dice | ✅ 가능 (Soft-Dice) | 부드러운 근사 | – (직접 사용) |
| Perplexity | ❌ 불가능 | 지수 함수 (불안정) | Cross-Entropy (로그 버전) |
| BLEU | ❌ 불가능 | 이산 n-gram 매칭 | MLE (Maximum Likelihood) |
| ROUGE | ❌ 불가능 | 이산 매칭 | MLE |
3. 회귀(Regression) 평가 지표: 정답을 얼마나 ‘가깝게’ 맞췄는가?
회귀 문제는 ‘주식 가격’, ‘내일 기온’, ‘택시 요금’처럼 연속적인 숫자를 맞추는 게임입니다. 분류 문제처럼 “맞았다/틀렸다”가 아니라, “얼마나 빗나갔냐?”가 핵심이죠.
3-1. MSE (Mean Squared Error, 평균 제곱 오차)
“큰 실수는 용서하지 않는다!”
가장 기본적이고 널리 쓰이는 지표입니다. 오차(Error)를 제곱(Square)해서 평균을 냅니다.
- 특징: 오차를 제곱하기 때문에 큰 오차(Outlier)에 대해 엄청난 패널티를 줍니다.
- 오차가 2배 커지면 패널티는 4배, 10배 커지면 100배가 됩니다.
- 장점: 미분이 아주 예쁘게 잘 돼서(볼록 함수), 경사하강법 학습에 최적입니다.
- 단점: 이상치(Outlier) 하나 때문에 전체 점수가 망가질 수 있습니다.
- 손실 함수 사용: ✅ 가능 (가장 널리 쓰임)
3-2. RMSE (Root Mean Squared Error, 평균 제곱근 오차)
“다시 현실 세계 단위로 돌아오라”
MSE는 값을 제곱했기 때문에 단위가 뻥튀기됩니다. (예: 원래 단위는 원인데, MSE는 원²이 됨)
이걸 다시 루트(Root)를 씌워서 원래 단위로 되돌린 것입니다.
- 특징: MSE의 성질을 그대로 가지면서, 해석하기가 훨씬 쉽습니다.
- “오차가 평균적으로 3,000원 정도 나는구나”라고 바로 이해 가능.
- 주 사용처: Kaggle 등 데이터 분석 대회에서 가장 사랑받는 지표입니다.
- 손실 함수 사용: ✅ 가능 (보통은 계산 편의상 MSE로 학습하고 RMSE로 평가합니다)
3-3. MAE (Mean Absolute Error, 평균 절대 오차)
“정직하게, 있는 그대로의 오차”
오차의 부호만 떼고(절대값) 평균을 낸 것입니다.
- 특징: 모든 오차를 공평하게 다룹니다. 큰 실수든 작은 실수든 1:1 비율로 반영됩니다.
- 장점: 이상치(Outlier)에 강합니다(Robust). 튀는 데이터가 있어도 MSE만큼 점수가 요동치지 않습니다.
- 단점: 0 지점에서 미분이 불가능해서(뾰족점), 학습 시 아주 작은 오차를 줄이기 어려울 수 있습니다.
- 손실 함수 사용: ✅ 가능 (L1 Loss)
🔥 [비교] 이상치가 있을 때 MSE vs MAE
데이터: 1, 2, 3, 100(이상치)
예측: 1, 2, 3, 4
오차: 0, 0, 0, 96
MSE = (0 + 0 + 0 + 9216) / 4 = 2304 (폭발!) 😱
MAE = (0 + 0 + 0 + 96) / 4 = 24 (평온...) 😌
결론: 이상치 무시하고 싶으면 MAE를 써라!3-4. Huber Loss (Smooth L1 Loss)
“MSE와 MAE의 장점만 합친 하이브리드”
MAE는 미분이 안 되고, MSE는 이상치에 취약하죠. 그래서 둘을 섞었습니다.
오차가 작을 때는 MSE처럼(제곱), 클 때는 MAE처럼(직선) 행동합니다.
- 특징: 오차가 작아지면 부드러운 곡선이 되어 미분이 잘 되고, 오차가 커지면 직선이 되어 이상치에 덜 민감해집니다.
- 손실 함수 사용: ✅ 가능 (매우 추천)
- PyTorch에서는
nn.SmoothL1Loss또는nn.HuberLoss로 구현되어 있습니다.
- PyTorch에서는
3-5. MSLE (Mean Squared Logarithmic Error)
“작은 값들의 차이를 더 중요하게!”
MSE와 똑같은데, 값에 Log(로그)를 씌운 뒤 계산합니다.
- 특징:
- 비율(Ratio)이 중요할 때 씁니다. (100원 → 200원 오차와, 1억 → 1억 100원 오차는 다릅니다. MSLE는 전자를 더 크게 봅니다.)
- 과소평가(Under-estimation)에 더 큰 패널티를 줍니다. (예측값이 실제값보다 작을 때 더 혼남)
- 주 사용처: 매출 예측, 부동산 가격 예측처럼 값의 범위가 넓은 경우.
- 손실 함수 사용: ✅ 가능
3-6. MAPE (Mean Absolute Percentage Error)
“비율로 따지자! (몇 프로 틀렸어?)”
오차의 절대값이 아니라, 실제 값 대비 비율(%)로 오차를 봅니다.
- 특징: 데이터의 크기(Scale)에 상관없이 비교 가능합니다.
- 삼성전자 주가(7만원) 예측 오차 100원과, 비트코인(1억) 예측 오차 100원은 무게감이 다르죠? MAPE는 이걸 보정해 줍니다.
- 단점: 실제 값()이 0이면 계산이 불가능합니다(Division by Zero).
3-7. R² (결정 계수, Coefficient of Determination)
“내 모델이 평균보다는 낫니?”
단순히 평균값만 찍는 멍청한 모델보다 얼마나 더 잘 맞추는지를 0 ~ 1 사이 점수로 나타낸 것입니다.
- 1점: 완벽한 예측 (신 그 자체)
- 0점: 그냥 평균값으로 찍는 거랑 똑같음
- 음수: 평균으로 찍느니만 못함 (최악)
- 손실 함수 사용: ❌ 부적합 (MSE를 최소화하면 자연스럽게 R²가 최대화됨)
3-8. 🚀 회귀 지표 요약 \& 추천
- 일반적인 경우: MSE로 학습하고, RMSE로 보고하세요.
- 이상치가 많은 데이터: MAE 또는 Huber Loss를 쓰세요.
- 값의 범위가 매우 넓거나(매출), 비율이 중요할 때: MSLE를 쓰세요.
- 서로 다른 단위의 데이터를 비교할 때: MAPE를 쓰세요.
4. 분류(Classification) 평가 지표: 정답을 ‘잘’ 골라냈는가?
분류 문제는 “개냐 고양이냐”, “암이냐 정상이냐”를 가리는 게임입니다.
여기서 가장 중요한 개념이 바로 오차 행렬(Confusion Matrix)입니다. 이걸 모르면 뒤에 나오는 모든 지표를 이해할 수 없습니다.
4-1. Confusion Matrix (오차 행렬)
모델의 예측 결과를 4가지 경우의 수로 나눈 표입니다.
| 모델 예측: Positive (암 환자) | 모델 예측: Negative (정상인) | |
|---|---|---|
| 실제 정답: Positive (암 환자) | ✅ TP (True Positive) 잘 맞춤 (암을 암이라고) | 💀 FN (False Negative) 놓침 (암인데 정상이라고) |
| 실제 정답: Negative (정상인) | ⚠️ FP (False Positive) 오진 (정상인데 암이라고) | ✅ TN (True Negative) 잘 맞춤 (정상을 정상이라고) |
- TP (진양성): 잡아야 할 것을 잘 잡음 (Best)
- TN (진음성): 버려야 할 것을 잘 버림 (Good)
- FP (위양성): 엉뚱한 사람 잡음 (“늑대 소년”의 거짓말)
- FN (위음성): 도둑을 놓침 (가장 위험할 수 있음)
4-2. Accuracy (정확도)
“전체 문제 중 몇 개나 맞췄어?”
가장 직관적이지만, 가장 위험한 지표입니다.
- 언제 써야 하나?: 데이터 클래스 비율이 50:50으로 비슷할 때 (예: 개 vs 고양이)
- 언제 쓰면 망하나?: 불균형 데이터 (Imbalanced Data)
- 암 환자(1명) vs 정상인(99명) 데이터에서 무조건 “정상”만 찍어도 정확도 99%가 나옵니다.
- 손실 함수 사용: ❌ 불가능 (미분 불가)
4-3. Precision (정밀도)
“내가 ‘이거다!’라고 찍은 것 중에 진짜는 몇 개?”
모델이 신중하게 예측하기를 원할 때 봅니다.
- 핵심: FP(오진)를 줄이는 게 목표일 때 사용합니다.
- 사용 사례: 스팸 메일 필터 (정상 메일을 스팸으로 보내면 안 됨)
- 손실 함수 사용: ❌ 불가능
4-4. Recall (재현율, 민감도, Sensitivity)
“실제 정답들 중에서 내가 몇 개나 찾아냈어?”
모델이 하나라도 놓치지 않고 싹 다 잡아내기를 원할 때 봅니다.
- 핵심: FN(놓침)을 줄이는 게 목표일 때 사용합니다.
- 사용 사례: 암 진단 AI, 사기 탐지 (암 환자를 놓치면 안 됨)
- 손실 함수 사용: ❌ 불가능 → 대안: Focal Loss
4-5. F1-Score
“정밀도와 재현율, 둘 다 놓치지 않을 거예요”
Precision과 Recall의 조화 평균(Harmonic Mean)입니다.
- 특징: 산술 평균보다 작은 값에 더 민감하여, 둘 다 골고루 잘해야 점수가 높게 나옵니다.
- 사용 사례: 불균형 데이터의 표준 지표.
- 손실 함수 사용: ❌ 불가능 → 대안: sigmoidF1
4-6. Cross-Entropy Loss (Accuracy의 대체)
“정답 확률을 최대로 높여라!”
Accuracy는 미분이 안 되기 때문에 학습에 쓸 수 없습니다. 그래서 등장한 것이 Cross-Entropy(Log Loss)입니다.
모델이 예측한 정답 클래스의 확률(Probability)에 로그를 취해 계산합니다.
- 특징: “맞췄냐 틀렸냐”가 아니라, “얼마나 확실하게 맞췄냐”를 평가합니다.
- 장점: 완벽하게 미분 가능하며(Convex), Accuracy를 간접적으로 최적화하는 최고의 도구입니다.
- 손실 함수 사용: ✅ 가능 (분류 모델 학습의 표준)
4-7. AUROC (Area Under ROC Curve)
“어떤 기준(Threshold)을 갖다 대도 넌 잘하니?”
모든 가능한 분류 기준값(Threshold)에 대해 모델의 변별력을 평가합니다.
- ROC 곡선: X축(FPR) vs Y축(TPR)
- AUC 값: 1에 가까울수록 좋습니다. (0.5는 랜덤)
- 장점: 클래스 불균형에 강하며, 특정 임계값에 의존하지 않고 모델의 전체적인 성능을 봅니다.
- 손실 함수 사용: ❌ 불가능 → 대안: AUCMLoss, RankNet
4-8. 다중 클래스와 데이터 불균형: Micro vs Macro Average
클래스가 3개 이상(A, B, C)일 때 F1-Score 등을 어떻게 계산할까요?
- Macro Average (단순 평균): A, B, C 각각의 F1 점수를 구해서 합니다.
- 특징: 클래스별 데이터 개수와 상관없이 모든 클래스를 동등하게 취급합니다.
- 소수 클래스(Minority Class)의 성능을 중요하게 볼 때 씁니다.
(※ Micro-average는 전체 TP, FP, FN을 합산하여 계산하므로, 다중 클래스 분류에서의 Accuracy와 유사한 값을 가집니다.)
- Micro Average (가중 평균): 전체 TP, FP, FN을 다 합쳐서 한 번에 계산합니다.
- 특징: 데이터가 많은 클래스(Majority Class)의 영향을 많이 받습니다.
- 전체적인 Accuracy와 유사하게 동작합니다.
- Weighted Average: 클래스별 데이터 개수에 따라 가중치를 둬서 평균을 냅니다.
4-9. IoU (Intersection over Union)
“네가 그린 박스가 정답 박스랑 얼마나 겹쳐?”
주로 객체 탐지(Object Detection)나 세그멘테이션(Segmentation)에서 쓰이는 분류 지표입니다.
\text{IoU} = \frac{\text{교집합 영역 (Area of Overlap)}}{\text{합집합 영역 (Area of Union)}}
- 기준: 보통 IoU가 0.5 (50%) 이상이면 “맞췄다(TP)”고 판정합니다. (COCO 챌린지 등에서는 0.5~0.95까지 다양하게 봅니다.)
- 손실 함수 사용: ❌ 어려움 (미분 불가능 구간 존재) → 대안: Dice Loss, GIoU Loss
4-10. Top-K Accuracy
“정답이 5등 안에만 들면 봐줄게”
클래스가 엄청나게 많은 경우(예: ImageNet 1,000개 클래스), 딱 하나만 맞추기는 너무 어렵습니다.
- Top-1 Accuracy: 모델이 예측한 확률 1등이 정답이어야 함. (기본 Accuracy)
- Top-5 Accuracy: 모델이 예측한 확률 상위 5개 중에 정답이 있으면 정답으로 인정.
- 사용 사례: 검색 엔진, 추천 시스템, 대규모 이미지 분류.
4-11. 🚀 분류 지표 요약 \& 추천
- 데이터가 50:50이다: Accuracy
- 데이터가 불균형하다: F1-Score (Macro) 또는 AUROC
- 오진(FP)이 치명적이다: Precision
- 놓치는 것(FN)이 치명적이다: Recall
- 박스나 영역을 맞춘다: IoU
- 학습할 때는: Cross-Entropy (손실 함수)
5. 자연어 처리(NLP) 평가 지표: 말이 얼마나 ‘그럴듯’한가?
NLP 평가는 “정답이 모호하다”는 특징이 있습니다.
“안녕하세요”를 영어로 번역할 때 "Hello", "Hi", "Good morning" 모두 정답이 될 수 있기 때문입니다.
그래서 NLP 지표는 “참조(Reference) 문장과 얼마나 비슷한가?” 또는 “얼마나 자연스러운가?”를 봅니다.
5-1. Perplexity (PPL, 혼란도)
“모델아, 다음 단어가 뭘지 알겠니?”
언어 모델(GPT, BERT 등)의 내부 성능을 평가하는 대표적인 지표입니다.
모델이 다음 단어를 예측할 때 “얼마나 헷갈려(Perplexed) 하는지”를 나타냅니다.
- 낮을수록 좋습니다.
PPL = 1: 다음 단어를 100% 확신함 (신)PPL = 10: 다음 단어로 올 수 있는 후보가 10개 정도라고 생각함.
- 특징: 모델의 학습이 잘 되고 있는지(Loss가 줄고 있는지)를 직관적으로 보여줍니다.
- 한계: PPL이 낮다고 해서 문장이 사람이 보기에 자연스럽거나 유용한 것은 아닙니다. (문법은 완벽한데 헛소리를 할 수 있음)
- 손실 함수 사용: ✅ 가능 (
exp(Cross-Entropy)와 같습니다.)
5-2. BLEU (Bilingual Evaluation Understudy)
“정답 문장이랑 단어가 몇 개나 겹쳐?”
기계 번역(Machine Translation)의 표준 지표입니다. 사람이 번역한 정답 문장(Reference)과 기계가 번역한 문장(Candidate) 사이의 n-gram 정밀도(Precision)를 계산합니다.
- 원리: 기계 번역문에 있는 단어들이 정답 문장에 얼마나 포함되어 있는가?
- 특징:
n-gram을 사용해서 단어의 순서까지 고려합니다. (보통 1~4 gram 사용)- 문장이 너무 짧으면 패널티를 줍니다 (Brevity Penalty).
- 장점: 계산이 빠르고 싸다. 사람의 평가와 얼추 비슷하다.
- 단점: 의미(Semantics)를 보지 않습니다.
- 정답: “It is freezing.” / 예측: “It is very cold.”
- 단어가 거의 안 겹쳐서 BLEU 점수는 바닥이지만, 뜻은 통합니다.
- 손실 함수 사용: ❌ 불가능 (미분 불가) → 강화학습(Policy Gradient) 사용 시 보상(Reward)으로 활용
5-3. ROUGE (Recall-Oriented Understudy for Gisting Evaluation)
“정답 문장의 내용을 빠짐없이 담았니?”
텍스트 요약(Summarization)의 표준 지표입니다. BLEU와 반대로 재현율(Recall)에 초점을 맞춥니다.
- 원리: 정답 요약문에 있는 단어들을 기계 요약문이 얼마나 놓치지 않고 가져왔는가?
- 종류:
ROUGE-N: n-gram 재현율ROUGE-L: 최장 공통 부분 수열(LCS)을 이용해 문장 구조의 유사성까지 봅니다.
- 왜 요약엔 ROUGE인가?: 요약은 핵심 내용을 “빠뜨리지 않는 것”이 중요하기 때문입니다.
5-4. METEOR
“동의어랑 어순까지 봐줄게”
BLEU의 단점(단어 매칭만 봄)을 보완하기 위해 나왔습니다.
단순히 단어가 같은지 보는 게 아니라, 동의어 사전(WordNet)을 뒤져서 뜻이 같으면 정답으로 인정해 줍니다. 또한 어순이 바뀌어도 어느 정도 점수를 줍니다.
5-5. BERTScore
“문맥(Context)을 이해했니?”
최신 딥러닝 트렌드를 반영한 지표입니다. 단어 글자(String)를 비교하는 게 아니라, BERT 모델을 통과시켜 얻은 임베딩 벡터(Embedding Vector) 간의 유사도(Cosine Similarity)를 봅니다.
- 장점: “freezing”과 “cold”가 다르다고 하지 않고, 벡터 공간상에서 비슷하니까 점수를 높게 줍니다.
- 단점: BERT 모델을 돌려야 해서 계산이 무겁습니다.
- 현재 LLM 평가의 대세 중 하나입니다.
5-6. LLM-as-a-Judge (G-Eval)
“AI가 AI를 채점한다!”
최근 ChatGPT(GPT-4) 같은 초거대 모델이 등장하면서 생긴 새로운 평가 방식입니다.
사람이 평가하는 것(Human Evaluation)이 가장 정확하지만 비싸고 느리니까, 똑똑한 LLM에게 심사위원 역할을 맡기는 것입니다.
- 방법: GPT-4에게 “이 요약문이 원본 글을 잘 요약했는지 1~10점으로 평가해줘”라고 프롬프트를 넣습니다.
- 장점:
- 사람 평가와 상관계수(Correlation)가 매우 높습니다.
- 뉘앙스, 창의성, 논리력 등 정성적인 평가가 가능합니다.
- 단점: 평가 모델(GPT-4)의 편향(Bias)이 들어갈 수 있고, 비용(API 호출료)이 듭니다.
5-7. Ragas (RAG Assessment)
“검색 증강 생성(RAG), 잘 찾아보고 대답한 거 맞아?”
요즘 기업에서 많이 쓰는 RAG(Retrieval-Augmented Generation) 시스템을 위한 특화 지표 프레임워크입니다. 단순히 답변만 보는 게 아니라, 검색 과정까지 평가합니다.
- Faithfulness (충실성): 답변이 검색된 문서(Context)에 기반하고 있는가? (환각 방지)
- Answer Relevance (답변 관련성): 질문에 동문서답하지 않았는가?
- Context Precision (문맥 정밀도): 검색해온 문서가 질문과 진짜 관련된 것들인가?
5-8. WER (Word Error Rate, 단어 오류율)
“받아쓰기 몇 개 틀렸어?”
음성 인식(ASR) 시스템의 성능을 평가할 때 씁니다.
- 편집 거리(Levenshtein Distance) 개념을 사용합니다.
0%에 가까울수록 좋습니다. (사람 속기사의 WER은 보통 5% 내외입니다.)- 손실 함수 사용: ❌ 불가능 → 대안: CTC Loss
🚀 NLP 지표 요약 \& 추천
- 번역 모델: BLEU
- 요약 모델: ROUGE
- 생성 모델 학습 중: Perplexity
- 의미적 유사도 (동의어 등): BERTScore
- RAG (챗봇) 시스템 평가: Ragas
- 창의성, 논리력 등 정성 평가: LLM-as-a-Judge (GPT-4)
6. 컴퓨터 비전(Computer Vision) 평가 지표: 얼마나 ‘똑바로’ 보는가?
컴퓨터 비전 Task는 매우 다양합니다. 단순히 “이게 고양이야”라고 맞추는 것부터, “고양이가 저기 저 박스 안에 있어”라고 위치를 찾고, “고양이의 털 한 올 한 올까지 색칠해줘”라고 영역을 나누고, “세상에 없는 고양이를 그려줘”라고 창조하는 일까지 포함됩니다. 당연히 평가 지표도 Task에 따라 전문화되어 있습니다.
6-1. 객체 탐지 \& 세그멘테이션 (Object Detection \& Segmentation)
📍 IoU (Intersection over Union)
“네가 그린 박스가 정답 박스랑 얼마나 겹쳐?”
객체 탐지 및 세그멘테이션 평가의 가장 근본이 되는 개념입니다. 모델이 예측한 영역(Bounding Box 또는 Mask)과 실제 정답 영역이 얼마나 겹치는지를 0에서 1 사이의 값으로 나타냅니다.
- 기준: IoU 자체가 최종 점수는 아니고, “맞췄다(TP)”고 판단하는 기준으로 쓰입니다. 보통 IoU가 0.5 (50%) 이상이면 정답으로 인정합니다.
- 손실 함수 사용: ❌ 어려움 (미분 불가능 구간 존재) → 대안: Dice Loss, GIoU Loss
📍 mAP (mean Average Precision)
“그래서, 모든 종류의 물체에 대해 평균적으로 얼마나 잘 찾았는데?”
객체 탐지(Object Detection)의 올림픽 금메달과 같은 지표입니다. COCO, Pascal VOC 등 모든 주요 챌린지에서 사용됩니다.
- 계산 과정:
- 각 클래스별로(개, 고양이, 자동차…) AP(Average Precision)를 계산합니다. (AP는 Precision-Recall 곡선의 아래 면적)
- 모든 클래스의 AP 점수를 평균(mean)냅니다.
- COCO mAP: IoU 기준을 0.5로만 보지 않고, 0.5부터 0.95까지 0.05 단위로 변화시키면서 계산한 mAP를 다시 평균 낸 값(
mAP@[.5:.95])을 사용합니다. 훨씬 더 깐깐한 기준이죠. - 손실 함수 사용: ❌ 불가능
📍 Dice Coefficient (Dice 계수)
“픽셀 단위 F1-Score”
의료 영상 세그멘테이션(Medical Image Segmentation)에서 표준처럼 사용됩니다. IoU와 거의 유사하지만, 분모/분자가 약간 다릅니다. F1-Score를 영역(Pixel) 단위로 계산하는 것과 수학적으로 동일합니다.
- 특징: 작은 객체에 대해 IoU보다 조금 더 점수를 후하게 주는 경향이 있습니다.
- 손실 함수 사용: ✅ 가능 (Soft-Dice Loss)
6-2. 이미지 생성 (Image Generation)
GAN, Diffusion 모델처럼 이미지를 ‘창조’하는 모델은 어떻게 평가할까요? 정답 이미지가 없기 때문에, “진짜 이미지와 얼마나 통계적으로 비슷한가”를 봅니다.
📍 FID (Fréchet Inception Distance)
“진짜 이미지 분포와 생성된 이미지 분포 사이의 거리”
현재 이미지 생성 모델 평가의 왕좌를 차지한 지표입니다. 미리 학습된 Inception-v3 모델을 사용하여, 실제 이미지 수천 장과 생성된 이미지 수천 장의 특징(Feature) 분포를 비교합니다.
- 낮을수록 좋습니다. (두 분포 사이의 거리가 가깝다는 뜻)
- 특징: 이미지의 품질(Quality)과 다양성(Diversity)을 모두 반영합니다. FID가 낮다는 것은, 생성된 이미지가 보기에도 좋고, 여러 종류를 골고루 만들어낸다는 의미입니다.
📍 IS (Inception Score)
“생성된 이미지가 ‘뭔지 알겠고’ + ‘다양한가’?”
FID 이전에 널리 쓰이던 지표입니다.
- 품질: 생성된 이미지가 명확한 클래스(예: ‘고양이’)로 분류되는가? (엔트로피가 낮아야 함)
- 다양성: 여러 클래스의 이미지를 골고루 생성하는가? (전체 분포의 엔트로피가 높아야 함)
- 높을수록 좋습니다.
- 한계: 진짜 이미지와 비교하지 않고, 생성된 이미지 자체만으로 평가하는 단점이 있습니다.
6-3. 이미지 품질 및 유사도 (Image Quality \& Similarity)
📍 PSNR (Peak Signal-to-Noise Ratio)
“픽셀 값, 얼마나 차이 나?”
이미지 압축, 노이즈 제거 등에서 전통적으로 사용되던 지표입니다. 원본 이미지와 결과 이미지의 픽셀 값 차이를 기반으로 계산됩니다.
- 높을수록 좋습니다.
- 한계: 사람의 눈으로 보는 품질과 상관관계가 낮습니다. 이미지가 약간 흐릿해져도(사람 눈에는 비슷해 보임) 픽셀 값이 다르면 PSNR 점수는 확 깎입니다.
📍 LPIPS (Learned Perceptual Image Patch Similarity)
“사람 눈에 얼마나 비슷해 보여?”
PSNR의 단점을 극복하기 위해 나온 ‘지각적(Perceptual)’ 유사도 지표입니다. 딥러닝 네트워크(AlexNet, VGG 등)의 중간 레이어에서 추출한 특징 벡터를 비교하여, 사람이 인지하는 유사도와 비슷하게 점수를 매깁니다.
- 낮을수록 좋습니다.
- 사용 사례: 이미지 초해상도(Super-Resolution), 스타일 변환(Style Transfer) 등 ‘정답’은 없지만 ‘그럴듯해야’ 하는 Task에 적합합니다.
7. 음성 처리 평가 지표: 얼마나 ‘잘 들리고 잘 말하는가’?
음성 처리는 크게 음성을 텍스트로 바꾸는(ASR), 텍스트를 음성으로 바꾸는(TTS), 그리고 음질을 개선하는(Enhancement) 작업으로 나뉩니다. 각 분야마다 표준이 되는 지표가 다릅니다.
7-1. 음성 인식 (ASR, STT)
📍 WER (Word Error Rate, 단어 오류율)
“받아쓰기 시험, 몇 개 틀렸어?”
음성 인식의 성능을 평가하는 가장 표준적인 지표입니다. 사람이 받아쓴 정답과 AI가 인식한 결과를 단어 단위로 비교합니다.
- S (Substitution): 다른 단어로 잘못 적음 (사과 → 배)
- D (Deletion): 단어를 빼먹음 (맛있는 사과 → 사과)
- I (Insertion): 없는 단어를 추가함 (사과 → 빨간 사과)
- N: 정답 문장의 총 단어 수
- 특징: 값이 낮을수록 좋습니다. (
0%면 완벽) - 주의점:
100%를 넘을 수도 있습니다! (원본보다 틀린 게 더 많으면) - 손실 함수 사용: ❌ 불가능 → 대안: CTC Loss
📍 CER (Character Error Rate, 문자 오류율)
WER과 똑같은데, 글자(Character) 단위로 계산합니다.
- 언제 쓰나?: 한국어, 중국어처럼 단어의 경계가 모호하거나 띄어쓰기 규칙이 복잡한 언어에서 주로 사용합니다. (한국어는 띄어쓰기 하나 틀리면 WER이 확 오르니까 억울하죠!)
7-2. 음성 합성 (TTS)
📍 MOS (Mean Opinion Score)
“사람이 듣기에 몇 점?”
TTS 모델이 만든 목소리가 얼마나 자연스러운지 기계가 평가하기는 어렵습니다. 그래서 사람이 직접 듣고 1점~5점 사이의 점수를 매깁니다.
- 1점: 기계음 그 자체 (Bad)
- 5점: 실제 사람 목소리와 구별 불가 (Excellent)
- 특징: 가장 신뢰도가 높지만, 사람을 고용해야 해서 비싸고 느립니다.
📍 PESQ (Perceptual Evaluation of Speech Quality)
“음질이 얼마나 깨끗해?”
원래는 전화 통화 품질을 측정하기 위해 만들어진 지표입니다. 원본 음성과 처리된 음성 사이의 품질 차이를 수치화합니다. (-0.5 ~ 4.5점)
- 사용 사례: 음성 압축, 노이즈 제거 모델 평가
7-3. 음성 향상 (Speech Enhancement) \& 분리
📍 STOI (Short-Time Objective Intelligibility)
“그래서 무슨 말인지 알아듣겠어?”
음질이 아무리 좋아도(노이즈가 없어도), 발음이 뭉개져서 무슨 말인지 못 알아듣겠다면 소용없겠죠? STOI는 음성의 명료도(Intelligibility), 즉 “얼마나 잘 들리는가”를 평가합니다.
- 범위:
0~1(높을수록 잘 들림) - 사용 사례: 보청기 알고리즘, 잡음 제거
📍 SDR (Source-to-Distortion Ratio)
“원하는 소리만 잘 골라냈어?”
음성 분리(Source Separation) Task에서 씁니다. 예를 들어, 칵테일 파티 효과처럼 여러 사람이 동시에 말할 때 특정 사람 목소리만 분리해내는 성능을 평가합니다.
- 특징: 높을수록 분리 성능이 뛰어남을 의미합니다.
8. 멀티모달(Multimodal) 평가 지표: 눈과 귀가 동시에 즐거운가?
최근 AI 트렌드는 “글도 읽고, 그림도 보고, 말도 하는” 멀티모달 모델(GPT-4V, Gemini, DALL-E)이 주도하고 있습니다. 텍스트와 이미지가 얼마나 잘 어울리는지(Alignment)를 평가하는 것이 핵심입니다.
8-1. CLIPScore
“사진이랑 설명이랑 찰떡궁합이니?”
OpenAI가 만든 CLIP 모델을 이용해 이미지와 텍스트 사이의 유사도를 측정합니다.
예를 들어, “해변에서 뛰는 강아지”라는 텍스트와 생성된 이미지가 얼마나 일치하는지를 봅니다.
- 원리: 이미지와 텍스트를 각각 벡터로 변환한 뒤, 코사인 유사도(Cosine Similarity)를 계산합니다.
- 장점: 참조(Reference) 이미지가 없어도 평가할 수 있습니다. (Reference-free metric)
- 높을수록 좋습니다.
8-2. VQA Accuracy (Visual Question Answering)
“이 사진 보고 질문하면 맞출 수 있어?”
이미지를 보여주고 질문을 던졌을 때(예: “사진 속 남자가 입은 옷 색깔은?”), 모델이 올바른 답을 내놓는지 평가합니다.
전통적인 Accuracy와 같지만, 입력이 이미지+텍스트라는 점이 다릅니다.
8-3. CIDEr (Consensus-based Image Description Evaluation)
“사람들이 쓴 설명이랑 얼마나 비슷해?”
이미지 캡셔닝(Image Captioning) Task의 표준 지표입니다.
하나의 이미지에 대해 사람(Human annotator)들이 작성한 여러 개의 정답 캡션들과 모델이 생성한 캡션을 비교합니다.
- 특징: 단순 단어 매칭뿐만 아니라, TF-IDF 개념을 도입하여 “중요한 단어(드문 단어)”를 맞췄을 때 더 높은 점수를 줍니다. (예:
a,the같은 건 점수 낮음)
8-4. SPICE (Semantic Propositional Image Caption Evaluation)
“말이 되는 소리를 해라”
CIDEr나 BLEU는 단어 매칭에 의존하지만, SPICE는 의미(Scene Graph)를 분석합니다.
이미지 속의 객체(Object), 속성(Attribute), 관계(Relation)를 그래프로 만들어서 비교합니다.
- 예: “빨간 공이 의자 위에 있다”
- 객체: 공, 의자
- 속성: 빨간
- 관계: 위에 있다
- 이것들을 얼마나 정확하게 묘사했는지를 봅니다.
9. 강화학습 평가 지표
강화학습(RL)은 지도학습과 다르게 정답 레이블 $y$ 대신, 환경이 주는 보상(Reward)으로 학습합니다.
그래서 평가 지표도, 손실 함수도 모두 보상과 밀접하게 연결됩니다.
9-1. 강화학습 평가 지표: 무엇을 잘했다고 볼 것인가?
강화학습에서 가장 기본이 되는 평가지표는 “얼마나 보상을 많이 벌었는가?” 입니다.
📍 에피소드 누적 보상 (Cumulative Reward)
한 에피소드(게임 한 판, 미션 한 번) 동안 받은 보상의 단순 합계입니다.
- CartPole: 막대기를 쓰러뜨리지 않고 오래 버티면, 매 스텝 $r_t = 1$ → 합이 클수록 좋음
- Atari 게임: 점수(Score)를 보상으로 삼으면, 총 점수가 곧 누적 보상
- 가장 직관적인 성능 지표입니다.
📍 할인 누적 보상 (Discounted Cumulative Reward)
미래 보상에 할인율(Discount Factor) 를 곱해 현재 가치로 환산한 값입니다.
- 왜 할인을 하는가?
- 불확실성: 먼 미래의 보상은 당장 받는 보상보다 불확실합니다.
- 무한대 방지: 에피소드가 끝나지 않는 환경에서 합이 무한대로 발산하는 것을 막습니다.
- 지연 보상: “지금 100만 원 받을래, 10년 뒤에 100만 원 받을래?” → 당연히 지금 받는 게 낫습니다.
- (감마):
0에서1사이의 값.- : 미래 지향적 (장기 전략)
- : 현재 지향적 (단기 이익)
- 학습의 목표: RL 에이전트는 이 $G_t$의 기댓값을 최대화하도록 학습합니다.
📍 성공률 / 승률 / 평균 에피소드 길이
Task별로 다음과 같은 보조 지표도 씁니다.
- Success Rate: 미션 성공 비율 (예: 로봇 팔이 물건 집기에 성공한 횟수 / 전체 시도 횟수)
- Win Rate: 게임에서 이긴 비율 (예: 알파고 vs 사람 승률)
- Average Episode Length: 평균 에피소드 길이 (예: 생존 게임에서 얼마나 오래 버텼나)
9-2. “보상 = 손실 함수”로 바로 쓸 수 없는 이유
겉으로 보면 이렇게 말하고 싶습니다.
“보상을 최대화하고 싶으니, 손실 함수를 로 두고 미분하면 되지 않나?”
문제는, 보상 는 환경이 주는 값이라서 모델 파라미터 에 대해 직접 미분할 수 없다는 점입니다.
- 보상은 환경의 상태 전이 , 게임 규칙, 랜덤 이벤트에 의해 결정됩니다.
- 신경망 파라미터 와는 직접적인 함수 관계가 없습니다. (Non-differentiable)
그래서 강화학습에서는 보상 함수를 직접 미분하지 않고,
정책의 로그 확률을 미분하면서 보상을 “가중치”로 사용하는 우회로를 씁니다.
이게 바로 Policy Gradient입니다.
9-3. Policy Gradient: 목표 함수 정의
강화학습의 최종 목표는 기대 누적 보상(Expected Cumulative Reward)을 최대화하는 것입니다.
- : 에이전트가 겪은 하나의 궤적(trajectory, 에피소드 전체 기록)
- : 해당 궤적에서 얻은 총 보상
9-4. Policy Gradient Theorem
Policy Gradient 정리는 다음을 보장합니다.
여기서:
- : 상태 에서 행동 를 선택할 확률 (정책)
- : 그 행동을 선택한 “로그 확률”
- : 시점 t에서의 할인 누적 보상(return)
해석:
“보상()이 컸던 행동일수록, 그 행동을 선택한 로그 확률을 증가시키는 방향으로 를 업데이트하라.”
즉, 보상 는 미분되지 않고 스칼라 가중치(Weight)로만 작용하고, 미분은 항상 쪽에만 들어갑니다.
9-5. REINFORCE: 보상을 Loss로 쓰는 대표 형태
실제 구현 시에는, 를 최대화하는 대신, 그에 음수를 붙인 Loss를 최소화하는 형태로 바꿉니다.
- 직관적 해석:
- 가 큰(보상이 좋은) 행동 $a_t$일수록, 항이 커집니다.
- 이를 최소화하려면 를 키워야 합니다. (즉, 그 행동을 할 확률을 높임)
- 반대로 가 작거나 음수라면, 그 행동을 할 확률을 낮춥니다.
정리하면:
보상은 그대로 Loss가 되는 것이 아니라, “로그 확률의 기울기”에 곱해지는 가중치로 쓰인다.
이게 보상(평가지표)을 손실 함수에 사용하는 강화학습 버전의 Surrogate Loss입니다.
9-6. Baseline / Advantage: 분산 줄이기
REINFORCE의 단점은 분산(Variance)이 크다는 것입니다. 에피소드마다 보상이 크게 요동치면, 그때그때 업데이트 방향도 갈팡질팡합니다.
이를 줄이기 위해 Baseline 을 빼서 Advantage를 사용합니다.
- : 상태 에서 기대되는 평균 보상 (주로 Value Function 사용)
- : “평균보다 얼마나 더 잘했는가?”를 나타냄
Loss는 이렇게 바뀝니다.
- 평균적인 수준의 행동은 업데이트 크기가 작아지고,
- 기대보다 훨씬 잘한 행동은 크게 보상(확률↑),
- 기대보다 못한 행동은 크게 벌점(확률↓)을 받습니다.
9-7. 요약: 강화학습에서 “평가 지표 = 보상”은 이렇게 손실 함수가 된다
- 평가지표 역할: 에피소드 누적 보상(), 할인 누적 보상(), 승률 등은 “이 정책이 얼마나 잘하는가?”를 평가하는 지표입니다.
- 손실 함수와의 연결: 보상 는 직접 미분할 수 없으므로, Policy Gradient는 를 미분하고, 보상(또는 , )을 가중치로 곱해주는 Surrogate Loss를 사용합니다.
| 구분 | 지도학습 | 강화학습 |
|---|---|---|
| 평가 지표 | Accuracy, F1, BLEU 등 | Cumulative Reward, Win Rate |
| 손실 함수 | Cross-Entropy, MSE 등 | $- \log \pi_\theta \cdot G_t$, $- \log \pi_\theta \cdot A_t$ |
| 연결 방식 | 지표는 별도, Loss는 Surrogate | 보상(지표)이 Loss의 가중치로 직접 들어감 |
지도학습에서는 “평가 지표 ≠ 손실 함수(별도)”인 반면, 강화학습에서는 “평가 지표(보상)가 손실 함수 안으로 녹아든다”는 점이 가장 큰 차이입니다.
10. 그래프 신경망(GNN) 평가 지표: 연결의 의미를 찾았는가?
그래프 데이터(소셜 네트워크, 분자 구조, 지식 그래프 등)를 다루는 GNN(Graph Neural Network)은 Task에 따라 평가 방식이 다릅니다.
10-1. 링크 예측 (Link Prediction)
“이 사람과 저 사람이 친구가 될까?” 또는 “이 약물이 저 단백질과 반응할까?”
그래프에서 빠진 연결(Edge)을 맞추는 문제입니다. 추천 시스템과 유사합니다.
📍 Hits@K
“상위 K개 추천 목록에 정답이 있니?”
모델이 예측한 연결 확률이 높은 순서대로 K개를 뽑았을 때, 그 안에 실제 연결(정답)이 포함되어 있는 비율입니다.
- Hits@1: 1등으로 찍은 게 정답이어야 함. (매우 엄격)
- Hits@10: 상위 10개 안에만 들면 정답으로 인정.
- 높을수록 좋습니다.
📍 MRR (Mean Reciprocal Rank)
“정답이 몇 번째에 있어?”
정답이 추천 목록의 몇 번째(Rank)에 위치하는지를 봅니다. 순위의 역수()를 평균 냅니다.
- 1등으로 맞춤 → $1/1 = 1.0$점
- 2등으로 맞춤 → $1/2 = 0.5$점
- 10등으로 맞춤 → $1/10 = 0.1$점
- 장점: 정답이 상위권에 있을수록 점수가 급격히 높아집니다. (1등과 2등 차이가 99등과 100등 차이보다 훨씬 큼)
10-2. 노드 분류 (Node Classification)
“이 사람의 직업은 뭘까?”
각 노드(Node)의 속성을 맞추는 문제입니다. 일반적인 분류 문제와 동일하게 Accuracy, F1-Score를 사용합니다.
10-3. 그래프 분류 (Graph Classification)
“이 분자는 독성이 있을까?”
그래프 전체의 속성을 맞추는 문제입니다. 역시 Accuracy, F1-Score, AUROC 등을 사용합니다.
11. 이상 탐지(Anomaly Detection) 평가 지표: 사막에서 바늘 찾기
이상 탐지는 “정상 데이터는 엄청 많고(99.9%), 이상 데이터는 극소수(0.1%)”인 대표적인 불균형 데이터 문제입니다.
따라서 Accuracy는 절대 금물입니다. (무조건 “정상”이라고 해도 99.9점이 나오니까요.)
11-1. AUROC (Area Under ROC Curve)
“전반적인 탐지 능력은?”
이상 탐지 모델의 성능을 비교할 때 가장 널리 쓰이는 표준 지표입니다.
- 장점: 임계값(Threshold)을 어떻게 설정하느냐에 상관없이 모델의 순수 성능(변별력)을 평가할 수 있습니다.
- 한계: 이상 데이터가 너무 적으면(예: 100만 개 중 10개), AUROC 점수가 과장될 수 있습니다. (FPR이 여전히 낮게 유지되기 때문)
11-2. AUPRC (Area Under Precision-Recall Curve)
“진짜 이상한 놈만 잘 골라냈어?”
극심한 불균형 데이터에서는 AUROC보다 AUPRC가 더 정직한 지표입니다.
- Precision-Recall 곡선의 아래 면적입니다.
- 특징: 정상 데이터를 잘 맞추는 것(TN)에는 관심 없고, 이상 데이터를 얼마나 정확하게(Precision) 그리고 빠짐없이(Recall) 찾았는지에만 집중합니다.
- 사용 사례: 신용카드 사기 탐지, 제조 공정 불량품 검출
11-3. F1-Score (Best F1)
실제 현업에서는 결국 경보를 울릴 기준(Threshold)을 정해야 합니다.
다양한 임계값 중에서 최고의 F1-Score를 내는 지점(Best F1)을 찾아 성능 지표로 삼기도 합니다.
11-4. 🚀 이상 탐지 지표 요약
- 일반적인 비교: AUROC
- 이상 데이터가 극도로 적을 때: AUPRC (더 엄격함)
- 실제 운영 기준: Best F1-Score
12. 데이터 타입별 평가 지표: 무엇을 다루든 ‘정답’은 다르다
12-1. 왜 데이터 타입마다 지표가 달라야 할까?
이미지와 텍스트는 다릅니다. 영상과 음성도 다릅니다. 3D 포인트 클라우드와 테이블형 데이터는 완전히 다른 세상입니다.
같은 “정확도”라는 이름이라도, 의미가 180도 다를 수 있습니다.
예를 들어 봅시다.
- 의료 의료 영상 세그멘테이션: 1mm 오차가 생사를 가릅니다. (종양 경계)
- 자율주행: 0.1초 늦은 탐지가 사고를 냅니다. (Latency가 중요)
- 추천 시스템: 1등 추천이 틀리면 전체 점수가 장난이 아니게 떨어집니다.
- 음성 인식: 단어 몇 개 놓친 게 전체 의미를 바꿉니다.
같은 Task라도 응용 분야마다 다릅니다.
- 스팸 필터의 정상 메일 오탐 vs 암 진단의 암 환자 놓침 → 치명도가 반대
- 쇼핑몰의 “관심 상품 추천” vs 신용 평가의 “부실 기업 탐지” → 우선순위가 반대
그래서 우리는 “내가 다루는 데이터의 성격”과 “내 비즈니스의 목표”에 맞는 지표를 찾아야 합니다.
12-2. 수치 데이터 (Tabular Data): 행과 열로 된 세상
엑셀 스프레드시트, CSV 파일, 데이터베이스 테이블… 이런 “구조화된 수치 데이터”가 가장 고전적인 형태입니다.
🎯 회귀 (Regression) 문제
특징: 값의 정확한 수치를 맞춰야 함 (ex: 내일 주가, 내일 기온)
| 지표 | 언제 써? | 특징 | 주의점 |
|---|---|---|---|
| RMSE | 일반적인 회귀 | 큰 오차에 강한 페널티 | 이상치(Outlier)에 약함 |
| MAE | 이상치 많음 | 공평한 오차 취급 | 0에서 미분 불가 |
| MAPE | 값의 스케일 다양 | 비율(%) 기준 | y=0일 때 계산 불가 |
| R² | 모델 설명력 비교 | 평균보다 얼마나 나은지 | 손실 함수로 부적합 |
🔥 실전 팁:
- 주가 예측 ($100,000 대의 값) → RMSE보다는 MAPE (수익률 관점)
- 부하량 예측 (1~100 범위 좁음) → RMSE
- 결측값 많은 데이터 → MAE (이상치 무시)
🎯 분류 (Classification) 문제
특징: 범주형 선택 (A/B/C 중 고르기)
| 데이터 특성 | 추천 지표 | 이유 |
|---|---|---|
| 균형 (A:B = 50:50) | Accuracy, F1 | 직관적이고 신뢰 |
| 약간 불균형 (A:B = 70:30) | Macro F1 | 모든 클래스 동등 취급 |
| 심한 불균형 (A:B = 99:1) | AUROC, AUPRC | Accuracy는 사기꾼 |
| 다중 클래스 (A/B/C/D) | Weighted F1 | 클래스별 데이터량 반영 |
🔥 실전 팁:
불균형 데이터 대응 공식:
1단계: Accuracy 버리기 ❌
2단계: AUROC와 AUPRC로 모델 선택 ✅
3단계: 최고 F1 지점을 운영 기준으로 설정 ✅🎯 이상 탐지 (Anomaly Detection)
특징: “정상 99.9% + 이상 0.1%” 극심한 불균형
| 지표 | 사용 상황 | 해석 |
|---|---|---|
| AUROC | 모델끼리 비교 | 0.5(랜덤) ~ 1.0(완벽) |
| AUPRC | 현실적 성능 평가 | AUROC보다 더 엄격함 |
| Best F1 | 운영 기준값 설정 | 실제 사용할 임계값 결정 |
⚠️ 주의: “Accuracy 99.5%! 우와!” 하고 기뻐하면 안 됩니다. 모든 데이터를 “정상”이라고 찍어도 99%가 나옵니다.
12-3. 이미지 데이터: 픽셀의 정확함과 ‘느낌’
🎯 이미지 분류 (Image Classification)
Task: “이 사진은 고양이다 / 개다 / 조류다”
| 지표 | 언제 쓰는가 | 보충 설명 |
|---|---|---|
| Top-1 Accuracy | 기본 평가 | ImageNet 표준 |
| Top-5 Accuracy | 클래스 1000개↑ | “5등 안에만 들면 OK” |
🔥 실전 팁:
- ImageNet (1000 클래스): Top-1과 Top-5 둘 다 보고됨
- Top-1: 89%, Top-5: 98% → 맞는 답은 상위 5개 중에 대부분 있다는 뜻
- 일반적인 3-클래스 분류 (고양이/개/조류): Top-1만 보면 됨
🎯 객체 탐지 (Object Detection)
Task: “사진에서 고양이가 ‘어디’ 있는가?” (위치 + 분류)
📍 가장 중요한 개념: IoU (Intersection over Union)
IoU = 예측 박스 ∩ 정답 박스 / 예측 박스 ∪ 정답 박스
예시:
- 완벽히 일치 → IoU = 1.0 (100%) ✅
- 절반 겹침 → IoU = 0.5 (50%)
- 안 겹침 → IoU = 0 (0%) ❌
기준: 보통 IoU ≥ 0.5면 "맞혔다(TP)" 판정📍 mAP (mean Average Precision)
객체 탐지의 올림픽 금메달
계산 과정:
- 각 클래스(고양이, 개, 자동차…)별로 AP (Average Precision)를 계산
- 모든 클래스의 AP를 평균
변종들:
- mAP@0.5: IoU 기준 0.5만 사용 (관대함)
- mAP@0.75: IoU 기준 0.75 (까다로움)
- mAP@[0.5:0.95] (COCO 표준): 0.5부터 0.95까지 0.05 단위로 계산 후 평균 (가장 엄격)
🔥 실전 팁:
모델 비교할 때:
"우리 모델 mAP 45%입니다!"
↓
질문: "어느 기준? @0.5 아니면 @[0.5:0.95]?"
같은 모델도:
- mAP@0.5 = 60%
- mAP@[0.5:0.95] = 35%
완전히 다른 수치가 나옵니다!🎯 의미론적 분할 (Semantic Segmentation)
Task: “각 픽셀이 뭔지 색칠하기” (도로/차선/보행자 구분)
| 지표 | 의미 | 선택 기준 |
|---|---|---|
| IoU (Intersection over Union) | 픽셀 교집합/합집합 | 경계 정밀도 중요할 때 |
| Dice Coefficient | 픽셀 F1-Score | 작은 객체 찾기 |
| mIoU | 클래스별 IoU의 평균 | 여러 클래스 동시 평가 |
🔥 실전 팁:
- 의료 영상 (CT/MRI): Dice > IoU (작은 종양도 놓치면 안 됨)
- 자율주행 (도로 인식): IoU (경계 정밀도 > 전체 면적)
🎯 인스턴스 분할 (Instance Segmentation)
Task: “픽셀 색칠 + 각 객체를 구별” (여러 고양이를 개별 인식)
→ 객체 탐지(mAP) + 분할(IoU) 지표를 합쳐서 사용
🎯 이미지 생성 (Image Generation)
특징: “정답 이미지가 없다” → 생성된 이미지가 “진짜 같은가”를 통계적으로 평가
| 지표 | 측정 대상 | 해석 |
|---|---|---|
| FID (Fréchet Inception Distance) | 실제 ↔ 생성 이미지 분포 거리 | 낮을수록 좋음 (0~∞) |
| IS (Inception Score) | 품질 + 다양성 | 높을수록 좋음 (~100 만점) |
| LPIPS | 사람 눈 기준 유사도 | 낮을수록 비슷함 |
🔥 실전 팁:
- GAN, Diffusion 모델: FID를 보는 게 표준
- FID
- FID 5~10: 매우 좋음
- FID 10~20: 준수함
- FID > 50: 망함
12-4. 텍스트 데이터: 단어의 의미와 흐름
🎯 언어 모델 (Language Model)
Task: “다음 단어 맞히기” (GPT, BERT 등의 사전학습)
| 지표 | 정의 | 해석 |
|---|---|---|
| Perplexity (PPL) | 다음 단어 후보 개수 | 낮을수록 확신 있음 |
| Loss (Cross-Entropy) | 정답 확률의 로그 역수 | 낮을수록 좋음 |
🔥 실전 팁:
모델 학습 중 확인하기:
에포크 1: PPL = 100 → "다음 단어를 100개 후보 중 고르는 수준"
에포크 10: PPL = 20 → "20개 후보까지 줄음"
에포크 100: PPL = 5 → "5개 정도로 확신함"
대체로 PPL 🎯 기계 번역 (Machine Translation)
Task: “영어 → 한국어 번역”
| 지표 | 특징 | 한계 |
|---|---|---|
| BLEU | 단어 n-gram 매칭 | 동의어 무시, 빠름 |
| ROUGE | n-gram 재현율 | BLEU와 반대 특성 |
| BERTScore | 임베딩 유사도 | 의미 반영, 느림 |
🔥 실전 팁:
번역 결과 비교:
정답: "이 소년은 지략이 뛰어나다"
예측1: "This boy is clever" → BLEU: 높음 (단어 많이 겹침)
예측2: "This boy is smart" → BLEU: 낮음 (clever ≠ smart)
그런데 의미는? 거의 같습니다!
→ BERTScore를 쓰면 둘 다 높은 점수🎯 자동 요약 (Text Summarization)
Task: “긴 문서 → 짧은 요약”
| 지표 | 특징 | 언제? |
|---|---|---|
| ROUGE-1 | 1-gram (단어) 재현율 | 핵심 단어 포함 |
| ROUGE-2 | 2-gram (2단어 구절) 재현율 | 문맥 포함 |
| ROUGE-L | 최장 공통 수열 | 문장 구조 유사도 |
🔥 실전 팁:
뉴스 기사 자동 요약:
원문: "CEO가 어제 발표회에서 신제품 출시를 선언했다"
요약1: "CEO 신제품 발표"
요약2: "회사가 새로운 것을 만들기로 했다"
ROUGE-L로는:
- 요약1: 원문 단어 많이 포함 (높음) ✅
- 요약2: 다른 표현 (낮음)
하지만 의미는? 거의 같습니다.
→ 최근은 BERTScore나 LLM-as-a-Judge 선호🎯 감정 분석 (Sentiment Analysis)
Task: “리뷰 텍스트 → 긍정/부정/중립”
"이 영화 좋네요" vs "이 영화 별로네요"
→ 정반대 감정을 자동으로 구별하기
불균형 클래스?
"완전 존잘" (강한 긍정, 10%) vs "그냥 평범" (중립, 90%)
지표 선택:
- 균형: Accuracy
- 불균형: F1 (Macro 또는 Weighted)🎯 질의응답 (Question Answering)
Task: “질문 + 문서 → 정답 추출”
| 지표 | 계산 방식 | 의미 |
|---|---|---|
| Exact Match (EM) | 완벽히 일치? | 1 또는 0 (이분법) |
| F1-Score | TP/FP/FN으로 계산 | 부분 일치 인정 |
예시:
질문: "서울의 인구는?"
정답: "약 1,000만 명"
예측1: "1,000만"
- EM: 100% (완벽)
- F1: 약 0.8~0.9 (가까움)
예측2: "약 1,000만 명입니다"
- EM: 80~90% (마침표, 존댓말 때문에 약간 다름)
- F1: 약 0.7~0.812-5. 음성 데이터: 들리는 것과 들어야 하는 것
🎯 음성 인식 (ASR: Automatic Speech Recognition)
Task: “음성 파일 → 텍스트”
| 지표 | 정의 | 특징 |
|---|---|---|
| WER (단어 오류율) | (삽입+삭제+대체)/전체 | 음성 인식 표준 |
| CER (문자 오류율) | 문자 단위 WER | 한중일 언어용 |
🔥 실전 팁:
Siri의 음성 인식:
"뭐 해?" → 정답
AI 인식: "뭐하"
WER = (0 + 1 삭제 + 0) / 2 = 50%
사람이 듣기에는 "거의 맞네"인데, WER 50%...
그래서 한국어는 CER을 더 선호 (문자 오류율)기준:
- WER
- WER 5~15%: 매우 좋음
- WER 15~30%: 준수함
- WER > 30%: 부족함
🎯 음성 합성 (TTS: Text-to-Speech)
Task: “텍스트 → 음성”
| 지표 | 측정 대상 | 측정 방법 |
|---|---|---|
| MOS (Mean Opinion Score) | 자연스러움 | 사람이 듣고 1~5점 |
| PESQ (Perceptual Eval) | 음질 | 자동 계산 (0~4.5) |
🔥 실전 팁:
TTS 모델 평가:
"사람 음성과 구별 불가?"
1. MOS 테스트 → 사람 100명 모음 (시간/비용 ↑↑)
2. 자동화 대안 → PESQ, STOI 사용 (상관계수 0.8~0.9)
현실: 비용 때문에 PESQ로 빠르게 평가, 최종은 MOS🎯 음성 향상 (Speech Enhancement)
Task: “시끄러운 음성 → 깨끗한 음성”
| 지표 | 측정 대상 | 범위 |
|---|---|---|
| STOI | 명료도 (알아듣기) | 0~1 (높을수록 좋음) |
| PESQ | 음질 (귀에 거슬림) | -0.5~4.5 (높을수록 좋음) |
🔥 실전 팁:
비행기 탑승 중 화상통화:
음질 개선 전: 모든 사람 목소리 똑같이 들림 → PESQ 낮음
음질 개선 후: 누가 누구인지 구별 가능 → STOI 높음
둘 다 중요하지만,
실전에선 STOI가 "의사소통"이라는 궁극의 목표에 가까움12-6. 동영상 데이터: 시간의 흐름을 이해하다
🎯 행동 인식 (Action Recognition)
Task: “영상 클립 → 어떤 행동인가” (축구 → 슛 / 패스 / …)
→ 이미지 분류와 거의 동일 (Top-1 Accuracy, Top-5 Accuracy)
차이점:
이미지 분류: 단일 이미지 1장
행동 인식: 여러 프레임의 시간 시퀀스
따라서 시간 정보를 활용하는 모델 필요 (3D CNN, Transformer)🎯 객체 추적 (Object Tracking)
Task: “비디오에서 특정 물체를 계속 추적” (축제 현장에서 ‘이’ 사람만 따라가기)
| 지표 | 의미 | 계산 |
|---|---|---|
| MOTA | 추적 정확도 | |
| MOTP | 위치 정확도 | 일치한 탐지들의 IoU 평균 |
| IDF1 | ID 일관성 | 추적 ID가 얼마나 바뀌지 않았나 |
🔥 실전 팁:
자율주행 차량의 보행자 추적:
프레임 1: 사람 A (ID=1)
프레임 2: 사람 A (ID=1) → 같은 사람 맞게 인식 ✅
프레임 3: 사람 A (ID=2) → 갑자기 ID 변함 ❌
IDF1이 낮으면 → 계속 다른 사람으로 인식 → 위험! 💀12-7. 3D 데이터: 공간 전체를 이해하다
🎯 3D 객체 탐지 (3D Object Detection)
Task: “자동차 앞 카메라 영상 → 주변 차량/보행자 위치 (3D)”
2D 탐지: 이미지에서 박스 (x, y, width, height)
3D 탐지: 3D 공간 박스 (x, y, z, 높이, 너비, 깊이, 회전각)| 지표 | 특징 | 사용처 |
|---|---|---|
| AP3D | 3D 공간 IoU 기반 mAP | 일반적인 3D 평가 |
| nuScenes NDS | 거리 가중 mAP | 자율주행 표준 |
🔥 실전 팁:
자율주행 시스템:
"200미터 먼 자동차"와 "10미터 가까운 자동차" 탐지 오류
→ 어느 게 더 위험할까?
당연히 10미터!
→ nuScenes는 거리에 따라 가중치 부여 (가까운 게 더 중요)🎯 포인트 클라우드 세그멘테이션 (Point Cloud Segmentation)
Task: “3D 스캔 데이터 → 각 포인트가 뭐 (도로/건물/자동차…)”
→ Semantic Segmentation과 같은 지표 (mIoU, Dice)
차이:
2D 세그멘테이션: 픽셀 단위
3D 세그멘테이션: 포인트 단위 (각 3D 좌표마다)12-8. 그래프 데이터: 연결의 의미
🎯 링크 예측 (Link Prediction)
Task: “소셜 네트워크에서 ‘이 사람과 저 사람이 친구가 될까?'”
| 지표 | 의미 | 계산 |
|---|---|---|
| Hits@K | 상위 K개 추천에 정답 포함? | 비율 (%) |
| MRR | 정답 순위의 역수 평균 | 평균값 |
예시:
미래의 친구 후보:
추천 목록: [A, B, C, D, E, ...]
정답: C
Hits@5 = 100% (상위 5개에 C 있음)
MRR = 1/3 ≈ 0.33 (3번째에 있음)🎯 노드 분류 (Node Classification)
Task: “이 사람의 직업은?” (SNS 그래프에서 각 노드의 속성 예측)
→ 일반 분류와 동일 (Accuracy, F1)
12-9. 멀티모달 데이터: 눈과 귀를 동시에
🎯 이미지 캡셔닝 (Image Captioning)
Task: “사진 → 설명 문장”
| 지표 | 계산 | 특징 |
|---|---|---|
| BLEU | 단어 n-gram 매칭 | 빠름, 천박함 |
| CIDEr | TF-IDF 가중 매칭 | 중요 단어 강조 |
| SPICE | 씬 그래프 구조 비교 | 의미 평가, 느림 |
🔥 실전 팁:
사진 설명:
정답 1: "한 남자가 수영장에서 헤엄치고 있다"
정답 2: "사람이 물에서 헤엄친다"
예측: "누군가 수영 중이다"
BLEU: 낮음 (단어 안 겹침)
SPICE: 높음 (구조 비슷: 사람-수영-진행 중)
현실: BLEU 천박, SPICE 정확 → 요즘은 BERTScore 선호🎯 이미지-텍스트 정렬 (Image-Text Alignment)
Task: “사진과 설명이 정말 일치하나?”
| 지표 | 의미 | 범위 |
|---|---|---|
| CLIPScore | CLIP 모델 기반 유사도 | 0~100 (높을수록 좋음) |
| Text-to-Image Retrieval Accuracy | 텍스트로 정확한 사진을 찾나 | % |
🔥 실전 팁:
DALL-E 같은 이미지 생성:
프롬프트: "빨간 강아지가 해변에서 놀고 있다"
생성 이미지: (강아지 색깔은 검은색... 해변 아니라 공원)
CLIPScore = 낮음 ❌
프롬프트와 생성 이미지가 일치하지 않으면,
아무리 "예쁜" 이미지라도 CLIPScore는 낮음12-10. 강화학습 Task: 보상으로 평가하기
🎯 게임 (게임 AI)
Task: “게임에서 최고 점수를 얻기”
| 지표 | 의미 | 사용처 |
|---|---|---|
| 누적 보상 (Return) | 한 게임의 총 점수 | 직관적 평가 |
| 승률 (Win Rate) | 이기는 비율 (%) | 대전형 게임 |
🎯 로봇
Task: “로봇이 과제를 성공하나”
| 지표 | 예시 |
|---|---|
| 성공률 | 물건 집기 성공 비율 |
| 에피소드 길이 | 얼마나 오래 버텼나 |
12-11. 최종 정리: 데이터 타입 × Task × 추천 지표
📊 빠른 참고 표 (한눈에 보기)
| 데이터 타입 | 주요 Task | 지표 1순위 | 지표 2순위 |
|---|---|---|---|
| 테이블 | 회귀 | RMSE | MAE |
| 테이블 | 분류 (균형) | Accuracy | F1 |
| 테이블 | 분류 (불균형) | AUROC | AUPRC |
| 테이블 | 이상 탐지 | AUPRC | Best F1 |
| 이미지 | 분류 | Top-1 Acc | Top-5 Acc |
| 이미지 | 객체 탐지 | mAP@0.5:0.95 | mAP@0.5 |
| 이미지 | 세그멘테이션 | mIoU | Dice |
| 이미지 | 생성 | FID | IS |
| 텍스트 | 언어 모델 | Perplexity | Cross-Entropy |
| 텍스트 | 번역 | BLEU | BERTScore |
| 텍스트 | 요약 | ROUGE-L | ROUGE-1 |
| 텍스트 | 감정분석 | F1 (Weighted) | Accuracy |
| 텍스트 | QA | EM+F1 | – |
| 음성 | ASR | WER | CER |
| 음성 | TTS | MOS | PESQ |
| 음성 | 향상 | STOI | PESQ |
| 동영상 | 행동인식 | Top-1 Acc | – |
| 동영상 | 객체추적 | MOTA | IDF1 |
| 3D | 3D 탐지 | nuScenes NDS | AP3D |
| 3D | 포인트 세그 | mIoU | Dice |
| 멀티모달 | 캡셔닝 | SPICE | CIDEr |
| 멀티모달 | 정렬 | CLIPScore | – |
| 강화학습 | 게임 | 누적보상 | 승률 |
13. Task별 평가 지표 정리: 무엇을 평가할 것인가?
13-0. 왜 이 장이 필요한가?
지금까지 회귀, 분류, NLP, 컴퓨터 비전, 강화학습… 각각 떼로 묶어서 배웠습니다.
하지만 실전에서는 “우리 문제가 정확히 뭐지?”부터 시작해야 합니다.
같은 이름의 지표도 Task에 따라 의미가 180도 달라집니다.
Q: "Accuracy 90%라고 했는데, 좋은 거야 나쁜 거야?"
A: "뭐하는 AI냐에 따라 다르다!"
- 개 vs 고양이 분류 → 90%는 훌륭함 ✅
- 암 진단 (암 1% vs 정상 99%) → 90%는 사기 ❌
- 이상 탐지 (이상 0.1%) → 90%는 대참사 💥이 장에서는 “이 문제라면 어떤 지표를 봐야 하나?”를 한눈에 찾을 수 있도록 정리했습니다.
13-1. 지도학습 Task 분류
13-1-1. 회귀(Regression) 문제
정의: 연속적인 값을 예측하는 문제
| 문제 유형 | 특징 | 추천 지표 | 이유 |
|---|---|---|---|
| 일반 회귀 | 대부분 범위 유사 | RMSE | 표준화, 직관적 |
| 이상치 많음 | Outlier 존재 | MAE | 이상치 무시 |
| 스케일 다양 | $1~$1,000,000 | MAPE | 스케일 무관 |
| 로그 스케일 | 매출, 인구 | MSLE | 비율 기준 평가 |
실전 예시:
📊 택시 요금 예측:
- 평균 요금: 5,000원
- 예측 오차: ±500원
→ RMSE = 500원 (직관적!)
📈 주식 수익률 예측:
- 종목별 수익률: 1%~500%
- RMSE: 의미 없음 (큰 주식이 지배)
→ MAPE = 15% (정확도 85%)🎯 선택 가이드
- 기본값: RMSE (빠른 비교)
- 보고용: RMSE + MAPE (경영진 설득)
- 최종 평가: RMSE + MAE (둘 다 봐야 안전)
13-1-2. 분류(Classification) 문제
가장 복잡하고, 가장 많은 함정이 있는 영역입니다.
🎯 케이스 1: 데이터가 균형 잡혀 있을 때 (50:50)
예: 개(5000개) vs 고양이(5000개)
추천 지표: Accuracy, F1-Score
→ 둘 중 아무거나 써도 의미 있음| 지표 | 값 | 의미 |
|---|---|---|
| Accuracy | 92% | 100개 중 92개 맞힘 |
| Precision | 94% | 개라고 찍은 100개 중 94개가 진짜 개 |
| Recall | 90% | 진짜 개 100개 중 90개를 찾음 |
| F1 | 92% | Precision과 Recall의 조화 |
선택 기준:
- 둘 다 중요하면 → F1
- FP가 더 중요하면 → Precision (스팸 필터)
- FN이 더 중요하면 → Recall (암 진단)
🎯 케이스 2: 데이터가 불균형할 때 (99:1)
예: 정상(9900개) vs 암(100개)
⚠️ Accuracy는 절대 금지!
정상만 찍어도 99% ✗
추천 지표: F1, AUROC, AUPRC| 지표 | 계산 | 장점 | 단점 |
|---|---|---|---|
| F1 | \( 2 \times \frac{P \times R}{P+R} \) | 불균형 반영 | 임계값 의존 |
| AUROC | Threshold 0~1 전체 | 변별력 평가 | 극심한 불균형에 약함 |
| AUPRC | Precision-Recall 곡선 | 극한 불균형 강함 | 해석 어려움 |
선택 전략:
Step 1: AUROC로 모델 비교
→ 0.9 이상이어야 고려
Step 2: AUPRC로 재확인
→ 극도로 불균형하면 더 엄격함
Step 3: Best F1-Score에서 임계값 설정
→ 실제 운영 기준 정하기
예: AUROC 0.92, AUPRC 0.65, Best F1 0.78 @threshold=0.3
→ 확신 있는 케이스만 경보울리기 (F1 우선)🎯 케이스 3: 다중 클래스 불균형
예: A(80%) vs B(15%) vs C(5%)
문제: 클래스별로 불균형 정도가 다름
해결책: Weighted vs Macro 평균 선택| 평균 방식 | 공식 | 언제 쓰나 |
|---|---|---|
| Macro | 모든 클래스 동등 중요 (의료) | |
| Weighted | 클래스별 중요도 다름 | |
| Micro | 전체 TP, FP, FN으로 계산 | Accuracy와 유사 |
실전 예시:
의료 데이터: 정상(85%) > 경증(10%) > 중증(5%)
↓ Macro F1 선택
→ 중증 환자를 못 찾는 것을 페널티
→ 5%짜리 중증도 중요하게 평가
↓ Weighted F1 선택
→ 대다수 정상인 정확도에 비중
→ 0.1% 오차 증가도 반영추천: 의료/금융 → Macro, 일반 적용 → Weighted
13-1-3. 이상 탐지(Anomaly Detection)
정의: “대부분 정상”에서 “극소수 이상”을 찾기
특징:
- 이상: 0.01% ~ 1%
- 극심한 불균형
- Accuracy는 의미 없음 (무조건 \”정상\” 찍어도 99%+)
🎯 지표 선택 그래프
AUROC: 0.5 (랜덤) ───────→ 1.0 (완벽)
↓
기본 비교용
AUPRC: 0.01 (기준) ────→ 1.0 (완벽)
↓
더 엄격한 평가
(극심한 불균형)
Best F1: 0.0 ────→ 1.0
↓
실제 운영 임계값| 단계 | 지표 | 목표 |
|---|---|---|
| 모델 개발 | AUROC | ≥ 0.9 (기본 요구사항) |
| 재평가 | AUPRC | ≥ 0.7 (더 엄격함) |
| 운영 기준 | Best F1 + 임계값 | F1 ≥ 0.6, Threshold = ? |
실전 사례:
신용카드 사기 탐지:
- 거래 1000만 건 중 사기 1000건 (0.01%)
모델A: AUROC 0.92, AUPRC 0.45
→ 일반 비교로는 \"좋은 모델\"
→ 하지만 AUPRC 낮음 = 극한 불균형에서 약함
모델B: AUROC 0.88, AUPRC 0.62
→ AUROC는 낮지만, AUPRC가 우수
→ 실제 운영에는 B가 더 신뢰할 수 있음
선택: B13-2. 객체 탐지 & 세그멘테이션
13-2-1. 객체 탐지(Object Detection)
Task: “이 사진에서 사람이 어디 있어?” (위치 + 분류)
핵심: IoU(교집합/합집합) 기반 성능 평가
🎯 mAP의 여러 변종
같은 모델인데 기준만 바꾸면:
- mAP@0.5 = 62% (관대함)
- mAP@0.75 = 45% (중간)
- mAP@[0.5:0.95] = 38% (COCO 표준, 가장 엄격)
\"어느 기준?\"을 항상 명시해야 함!| 기준 | 의미 | 언제 쓰나 | 기준 엄격함 |
|---|---|---|---|
| mAP@0.5 | IoU ≥ 50% 면 정답 | 논문 비교 | 느슨함 |
| mAP@0.75 | IoU ≥ 75% 면 정답 | 학회 발표 | 중간 |
| mAP@[0.5:0.95] | 0.5~0.95 평균 | COCO, 실무 | 엄격함 |
선택 가이드:
자신감 있게 비교하려면:
Step 1: mAP@[0.5:0.95]로 보고 (가장 공정)
Step 2: mAP@0.5도 추가 (논문과 비교 가능)
Step 3: 실시간 요구사항 있으면 Latency-aware mAP 추가13-2-2. 의미론적 분할(Semantic Segmentation)
Task: “각 픽셀이 뭔지 색칠하기” (도로, 보도, 자동차 구분)
| 지표 | 계산 | 특징 | 추천 상황 |
|---|---|---|---|
| IoU | 교집합/합집합 (픽셀) | 경계 정밀도 중요 | 자율주행 |
| Dice | 2×교/합 (F1 변형) | 작은 객체 더 가중 | 의료 영상 |
| mIoU | 클래스별 IoU 평균 | 여러 클래스 동시 평가 | 장면 이해 |
구체적 예시:
종양 세그멘테이션:
- 종양(이상)이 전체 1%
- 배경(정상)이 99%
IoU만 본다면?
→ 배경을 \"무시\"로 분류해도 IoU = 높음 ❌
Dice를 본다면?
→ 작은 종양 영역도 중요하게 평가 ✅
선택: Dice 우선!13-2-3. 인스턴스 분할(Instance Segmentation)
Task: “픽셀 색칠” + “각 객체 개별 인식”
지표 = 객체 탐지(mAP) + 분할(Dice) 결합
예: COCO Instance Segmentation
- mask mAP@[0.5:0.95] (가장 중요)
- box mAP@[0.5:0.95] (추가 정보)13-3. 자연어 처리(NLP) Task
13-3-1. 기계 번역(Machine Translation)
Task: “영어 → 한국어 번역”
🎯 지표 비교
정답: \"아이가 공원에서 놀고 있다\"
예측1: \"A child is playing in a park\"
→ BLEU: 매우 높음 (단어 많이 일치)
예측2: \"The kid is having fun at the park\"
→ BLEU: 낮음 (다른 표현)
→ BERTScore: 높음 (의미 같음)
현실: 의미상 예측2가 나음
결론: BERTScore > BLEU| 지표 | 속도 | 정확도 | 추천 |
|---|---|---|---|
| BLEU | 빠름 | 천박함 | 논문 비교용 |
| METEOR | 중간 | 중간 | 학회 발표 |
| BERTScore | 느림 | 높음 | 최종 판정용 |
선택 전략:
개발 중: BLEU (빠른 피드백)
↓
논문 제출: BLEU + BERTScore (신뢰도 높임)
↓
프로덕션: BERTScore + Human Eval (최종 확인)13-3-2. 자동 요약(Text Summarization)
Task: “긴 문서 → 짧은 요약”
🎯 ROUGE 변종
정답: \"CEO가 신제품 출시를 선언했다. 가격은 100달러다.\"
예측: \"새 상품이 출시되고 100달러가 가격이다.\"
ROUGE-1: 단어 재현율 (\"CEO\" 빠짐 ❌)
ROUGE-2: 2단어 구절 재현율 (\"신제품\", \"가격\" 포함)
ROUGE-L: 문장 구조 재현율 (순서까지 비교)| 지표 | 초점 | 추천 상황 |
|---|---|---|
| ROUGE-1 | 핵심 단어 포함 | 엑스트랙티브 요약 |
| ROUGE-2 | 연어 포함 | 문맥 유지 |
| ROUGE-L | 전체 구조 | 추상화 요약 |
선택: 보통 ROUGE-L 한 개만 봐도 충분
13-3-3. 감정 분석(Sentiment Analysis)
Task: “리뷰 → 긍정/부정/중립”
🎯 데이터 분포에 따른 지표
시나리오1: 균형 잡힌 데이터
감정분포: 긍정(33%) / 중립(33%) / 부정(34%)
→ Accuracy 충분
시나리오2: 불균형 데이터
감정분포: 긍정(80%) / 중립(15%) / 부정(5%)
→ F1 (Weighted) 우선
예: F1 = 0.78은 괜찮은가?
클래스별: 긍정(0.85) / 중립(0.65) / 부정(0.45)
→ 부정 감정을 못 찾음 (개선 필요)13-3-4. 질의응답(Question Answering)
Task: “질문 + 문서 → 정답 텍스트”
🎯 EM vs F1
질문: \"서울의 인구는?\"
정답 텍스트: \"약 1,000만 명\"
예측1: \"1,000만\"
- EM: 0 (정확히 일치 아님) ❌
- F1: 0.67 (일부 일치) ✅
예측2: \"약 1,000만\"
- EM: 0 (\"명\" 빠짐)
- F1: 0.8 (대부분 일치)
선택: F1 우선 (부분 일치 인정)| 지표 | 엄격함 | 사용 |
|---|---|---|
| EM | 매우 엄격 | 논문 비교용 |
| F1 | 합리적 | 실제 평가 |
13-4. 컴퓨터 비전 생성 Task
13-4-1. 이미지 생성(Image Generation)
Task: “노이즈 → 실제 같은 이미지”
🎯 지표의 의미
GAN/Diffusion 모델 평가:
Q: \"좋은 이미지\"를 어떻게 측정해?
A: \"진짜 이미지 분포\"와 비교!
방법:
1. 실제 이미지 1000개 → 특징 벡터 (Inception-v3)
2. 생성 이미지 1000개 → 특징 벡터
3. 두 분포의 거리 계산 (Fréchet Distance) = FID| 지표 | 범위 | 판정 |
|---|---|---|
| FID | 0~∞ | 50: 망함 |
| IS | 1~∞ | >8: 우수, 5-8: 중간, |
| LPIPS | 0~1 | 작을수록 비슷 |
선택:
이미지 생성 품질 평가 = FID 한개면 충분
FID 13-4-2. 이미지 캡셔닝(Image Captioning)
Task: “사진 → 자연스러운 설명”
🎯 어떤 지표를 볼 것인가
정답: \"한 남자가 수영장에서 헤엄치고 있다\"
예측: \"누군가 수영 중이다\"
BLEU: 낮음 (단어 안 겹침)
CIDEr: 중간 (의미는 비슷)
SPICE: 높음 (구조: 사람-수영 일치)
BERTScore: 높음 (의미 유사)
실제 평가: 예측이 충분히 좋음! ✅| 지표 | 초점 | 단점 | 추천 |
|---|---|---|---|
| BLEU | n-gram 매칭 | 천박함 | 이제 쓰지 말 것 |
| SPICE | 의미 구조 | 느림 | 논문용 |
| BERTScore | 임베딩 유사도 | 의존성 높음 | 추천 |
13-5. 강화학습 Task
13-5-1. 게임 AI
Task: “게임에서 최고 점수 얻기”
🎯 지표
CartPole (막대 균형):
- 에피소드 길이 = 보상 (막대 쓰러질 때까지 시간)
- 200 스텝 버티면 완벽
Atari 게임 (Breakout):
- 누적 점수 = 보상
- 인간 플레이어: 30점, 모델: 500점 → 16배 우수
알파고 vs 이세돌:
- 승률 = 보상 (이겼냐?)| 지표 | 정의 | 해석 |
|---|---|---|
| 누적 보상 | R = ∑ γᵗ rₜ | 에피소드 한 판 성능 |
| 승률 | Win% | 상대 모델 대비 성능 |
| 에피소드 길이 | 스텝 수 | 게임 생존 시간 |
선택: 누적 보상 한개면 충분
13-5-2. 로봇 제어
Task: “로봇이 과제를 성공하는가”
Task: \"로봇 팔로 물건 집기\"
지표:
1. 성공률 (%), 평균 30회 시도 중 27회 성공 → 90%
2. 평균 시간 (초), 빠를수록 좋음
3. 에너지 효율 (배터리 남은량)
종합 평가:
- 성공률 90% ✅
- 평균 15초 (목표 20초 이내) ✅
- 배터리 80% → 효율적 ✅13-6. 응용 분야별 최적 지표
13-6-1. 의료 AI
| 응용 | Task | 지표 1순위 | 이유 |
|---|---|---|---|
| 암 진단 | 분류 | Recall | FN(암 놓침) = 죽음 |
| 병리 영상 | 세그멘테이션 | Dice | 종양 경계 정밀도 |
| 심장 질환 | 분류 | AUROC | 임계값 자유로움 |
핵심: FN(놓침)이 FP(오진)보다 1000배 치명적
암 진단:
Recall = 95% (암 환자 100명 중 95명 찾음) ✅
Precision = 60% (암이라고 찍은 100명 중 60명만 진짜) ⚠️
선택: Recall 우선!
(5명을 놓치는 것이, 40명을 오진하는 것보다 훨씬 위험)13-6-2. 자율주행
| 응용 | Task | 지표 1순위 | 2순위 |
|---|---|---|---|
| 차량 탐지 | 객체 탐지 | mAP@[0.5:0.95] | Latency |
| 차선 인식 | 세그멘테이션 | IoU | 실시간성 |
| 경로 계획 | 강화학습 | 안전률(사고 안 남) | 효율성 |
핵심: 속도와 정확도의 균형
탐지: 99% 정확하지만 500ms 걸림 (느림)
vs
탐지: 95% 정확하지만 30ms 걸림 (빠름)
자율주행은? 후자 선택!
(약간 떨어진 정확도도, \"빠른 반응\"이 생명)13-6-3. 추천 시스템
| 응용 | Task | 지표 1순위 | 이유 |
|---|---|---|---|
| 상품 추천 | 랭킹 | NDCG, Hits@K | 상위 추천 중요 |
| 영화 평점 | 회귀 | RMSE | 정확한 점수 |
| 뉴스 선택 | 분류 | AUROC, Log Loss | 클릭 확률 |
핵심: 1등 추천이 틀리면 전체 망함
상위 5개 추천:
실제 선택: 3등 (사용자가 3번째 찍음)
점수:
- Hits@5: 100% (상위 5개에 있음) ✅
- MRR: 1/3 = 0.33 (3등이라 약간 낮음)
- NDCG: 0.48 (1등을 놓쳐서 더 낮음)
해석: Hits와 NDCG 간의 큰 차이
→ 상위권 추천 개선 필요!13-6-4. 금융 AI
| 응용 | Task | 지표 1순위 | 특징 |
|---|---|---|---|
| 신용 평가 | 분류 | AUROC, Precision | 부실 채권 최소화 |
| 주가 예측 | 회귀 | RMSE, MAPE | 수익률 기준 |
| 트레이딩 | 강화학습 | Sharpe Ratio, MDD | 위험 대비 수익 |
핵심: 수익과 위험을 동시에 봐야 함
전략A: 월평 수익 3%, 최대 손실 -20%
Sharpe Ratio = 0.15 (나쁨)
전략B: 월평 수익 1.5%, 최대 손실 -2%
Sharpe Ratio = 0.75 (훨씬 나음)
현실 선택: 전략B
(안정적인 수익이 더 중요)13-6-5. 마켓팅 AI
| 응용 | Task | 지표 1순위 | 의미 |
|---|---|---|---|
| 고객 이탈 예측 | 분류 | Recall | FN 최소화 |
| 전환 예측 | 분류 | AUROC | 임계값 유연성 |
| 가격 최적화 | 회귀 | MAPE | 백분율 오차 |
13-7. 실전 팁: 지표 선택 의사결정 트리
Step 1: 내 문제의 성격은?
├─ 값을 예측? → 회귀 (RMSE, MAE)
├─ 분류인가? → Step 2로
├─ 이미지/영상? → Step 3으로
├─ 텍스트? → Step 4로
└─ 강화학습? → 누적 보상 (Reward)
Step 2: 분류 문제 - 데이터 분포는?
├─ 균형 (50:50) → Accuracy, F1
├─ 약간 불균형 (70:30) → Weighted F1
├─ 심한 불균형 (95:5) → AUROC, AUPRC
└─ 극심한 불균형 (99:1) → AUPRC, Best F1
Step 3: 이미지 문제 - 뭘 하나?
├─ 분류 → Top-1 Accuracy
├─ 탐지 → mAP@[0.5:0.95]
├─ 분할 → Dice or IoU
└─ 생성 → FID
Step 4: 텍스트 문제 - 뭘 하나?
├─ 번역 → BERTScore
├─ 요약 → ROUGE-L
├─ 감정 → F1 (Weighted)
└─ QA → F1
최종: 여러 지표를 함께 보라!
(한 개만 보면 함정에 빠짐)13-8. 흔한 실수와 해결책
❌ 실수 1: Accuracy만 본다
상황: 불균형 데이터 (암 1%)
모델: 무조건 \"정상\"만 찍음
Accuracy: 99% ← 사기!
해결책: AUROC (0.5) + AUPRC (0.0) 추가
→ 진짜 실력 드러남❌ 실수 2: 한 지표만 본다
상황: F1-Score 0.8
문제: F1만 높고, Precision/Recall 불균형일 수 있음
- Precision 0.5, Recall 0.95?
- Precision 0.95, Recall 0.5?
→ 완전히 다른 모델!
해결책: F1 + Precision + Recall 셋 다 보기❌ 실수 3: 벤치마크 임계값을 무시한다
상황: \"COCO에서 우리 mAP 62%\"
질문: \"어느 기준?\"
모를 경우: mAP@0.5로 알려주는데, 실제 원했던 건 mAP@[0.5:0.95]
해결책: 항상 \"어느 임계값인가\"를 명시❌ 실수 4: 지표와 손실 함수를 헷갈린다
상황: \"F1-Score를 손실 함수로 쓸게요!\"
문제: F1은 미분 불가능 → 학습 불가능
해결책:
- 학습: Cross-Entropy (손실 함수)
- 평가: Accuracy, F1 (평가 지표)
- 둘은 다르다!13-9. 지표 선택 체크리스트
프로젝트를 시작할 때 꼭 확인하세요:
- [ ] 1단계: 내 Task 정의 (분류/회귀/탐지/생성/강화학습)
- [ ] 2단계: 데이터 특성 파악 (균형/불균형/극심한 불균형)
- [ ] 3단계: 비즈니스 요구사항 확인 (FN vs FP 중 뭐가 중요한가?)
- [ ] 4단계: 업계 표준 지표 조사 (논문에서 어떤 지표 쓰나?)
- [ ] 5단계: 최소 2개 이상 지표 선택 (절대 한 개만!)
- [ ] 6단계: 베이스라인 기준값 설정 (상위 모델은 어느 정도인가?)
- [ ] 7단계: 모니터링 지표 결정 (실시간으로 어떤 지표 추적할 것인가?)
13-10. 최종 정리 표
📊 한눈에 보는 Task별 추천 지표
| Task | 데이터 특성 | 1순위 지표 | 2순위 | 주의사항 |
|---|---|---|---|---|
| 회귀 | 일반 | RMSE | MAE | 이상치 확인 후 선택 |
| 분류 | 균형 | Accuracy | F1 | 둘 다 0.9+ 필수 |
| 분류 | 불균형 | F1 (Weighted) | AUROC | AUPRC도 체크 |
| 분류 | 극심한 불균형 | AUPRC | Best F1 | 임계값 설정 필수 |
| 탐지 | 일반 | mAP@[0.5:0.95] | mAP@0.5 | COCO 표준 따르기 |
| 분할 | 의료 | Dice | IoU | 작은 객체 중요 |
| 번역 | – | BERTScore | BLEU | BLEU만 쓰면 안 됨 |
| 요약 | – | ROUGE-L | – | ROUGE-1/2도 추가 가능 |
| 생성 | 이미지 | FID | IS | |
| 강화학습 | 게임 | 누적 보상 | 승률 | 안정성도 봐야 함 |
13-11. 참고: 평가 지표와 손실 함수의 관계
앞서 배웠던 \”2장. 평가 지표를 손실 함수로 사용할 수 있는가?\”를 다시 상기하세요.
평가 지표 (목표) 손실 함수 (수단) 대역 손실
─────────────────────────────────────────────────────────
Accuracy ← Cross-Entropy
F1-Score ← Focal Loss / sigmoidF1
Recall ← Focal Loss
IoU ← Dice Loss / GIoU Loss
BLEU ← MLE / Policy Gradient핵심: 평가 지표와 손실 함수는 다르다!
- 평가 지표: “우리가 진짜 원하는 것”
- 손실 함수: “경사하강법으로 학습 가능한 근사”
결론: 평가 지표 vs 손실 함수의 완벽 이해
핵심 요약
- 대부분의 평가 지표는 손실 함수로 직접 사용 불가
- 이유: 미분 불가능 (argmax, Step 함수, 이산 연산)
- 해결책: Surrogate Loss (대체 손실 함수)
- 확률 기반 부드러운 근사 (sigmoidF1, Soft-Dice)
- Smooth 변형 (Huber Loss, Focal Loss)
- 강화학습은 특별한 트릭 사용
- 보상은 미분 안 하고 로그 확률만 미분
- Policy Gradient:
- 실전에서는 “평가용”과 “학습용” 지표를 분리
- 학습: Cross-Entropy, MSE 등 미분 가능 손실
- 평가: Accuracy, F1, BLEU 등 실제 목표 지표
실전 가이드
☑️ 회귀 문제 → MSE/MAE 직접 사용 가능
☑️ 분류 문제 → Cross-Entropy로 학습, Accuracy/F1로 평가
☑️ 세그멘테이션 → Dice Loss로 학습, IoU로 평가
☑️ 객체 탐지 → Focal Loss로 학습, mAP로 평가
☑️ NLP 생성 → MLE로 학습, BLEU/ROUGE로 평가
☑️ 강화학습 → Policy Gradient로 학습, Cumulative Reward로 평가실전 팁: 지표 선택 프로세스
1️⃣ 내 데이터 타입을 파악하라
(테이블 / 이미지 / 텍스트 / 음성 / 영상 / 3D / 멀티모달)
2️⃣ 내 Task를 명확히 하라
(분류 / 회귀 / 탐지 / 생성 / 강화학습)
3️⃣ 비즈니스 목표를 물어보라
"틀렸을 때 더 아픈 쪽이 뭐예요?"
암 진단 → Recall (놓침이 죽음)
스팸 필터 → Precision (오진이 짜증)
추천 시스템 → 상위 추천 정확도 (1위 중요)
4️⃣ 업계 표준을 참고하라
(COCO는 mAP@0.5:0.95, ImageNet은 Top-1/Top-5)
5️⃣ 여러 지표를 조합하라
절대 하나만 보지 말 것!
(F1 + AUROC, mAP + Latency, BLEU + BERTScore)마지막 조언
“평가 지표와 손실 함수는 다르다. 목표는 평가 지표, 수단은 손실 함수.”
- 평가 지표: 우리가 진짜 원하는 것 (Accuracy, F1, mAP)
- 손실 함수: 경사하강법으로 학습 가능한 근사 (Cross-Entropy, Dice Loss)
- 둘이 가까울수록 좋지만, 항상 일치하지는 않음!
참고 자료
- sigmoidF1 논문 (arXiv)
- LibAUC: AUC Optimization Library
- Policy Gradient Methods (Lil’Log)
- COCO Detection Evaluation
- WMT Translation Tasks
- Surrogate Loss Functions (Stanford CS229)
