BERT 뉴스 분류 #6 모델 성능평가 - 핵심 지표

BERT 뉴스 분류 #6 모델 성능평가 - 핵심 지표 #

#2026-03-03


#1 핵심 성능 비교

지표BaselineEnhanced향상폭
Accuracy0.91450.9474+0.0329
Precision0.91720.9509+0.0337
Recall0.91450.9474+0.0329
F10.91460.9482+0.0336
AUROC (macro)-0.9902-
AUPRC (macro)-0.9599-

먼저 가장 기본적인 질문부터. 우리가 추가한 기법들(EnhancedClassifier, 학습률 전략, Label Smoothing 등)이 실제로 효과가 있었는가?

Baseline은 기본 BERT에 단순한 Linear(768→4) 분류 헤드를 얹고 별다른 기법 없이 학습한 모델이다. Enhanced는 지금까지 설명한 모든 기법을 적용한 모델이다. Accuracy가 0.9145에서 0.9474로, F1이 0.9146에서 0.9482로 올랐다. 약 3.3%포인트의 향상이다. 3.3%포인트라는 숫자가 작아 보일 수 있다. 하지만 이미 91%라는 높은 성능에서의 3.3%포인트 향상은 쉽지 않다. 90%에서 93%로 올리는 것은 50%에서 53%로 올리는 것과 차원이 다르다. 남은 오류의 약 3분의 1을 줄인 셈이다. 이전 챕터들에서도 봤듯이 높은 성능 구간에서의 소수점 개선이 실제 서비스에서는 수천, 수만 건의 오분류 감소를 의미한다.

#

#2 각 지표를 왜 봐야 하는가? - Accuracy vs F1

Accuracy는 가장 직관적인 지표다. 304개의 테스트 기사 중 288개를 맞췄으면 Accuracy는 0.9474다. 단순하고 이해하기 쉽다. 하지만 Accuracy에는 함정이 있다. 이전 망막증 챕터에서 봤던 문제를 떠올려보자. 등급 0이 25,000장이고 등급 3이 800장인 데이터에서, 모델이 무조건 “등급 0"이라고 답해도 Accuracy가 70%를 넘는다. 아무것도 학습하지 않았는데도 높은 Accuracy가 나오는 것이다.

F1은 이 문제를 해결한다. Precision(모델이 특정 클래스라고 판정한 것 중 실제로 맞는 비율)과 Recall(실제 특정 클래스인 것 중 모델이 잡아낸 비율)의 조화평균이다. 조화평균은 두 값 중 하나라도 낮으면 전체가 크게 떨어지는 성질이 있다. Precision이 0.99인데 Recall이 0.01이면 산술평균은 0.50이지만 조화평균은 0.02에 불과하다. 한쪽만 높여서는 F1을 속일 수 없다는 뜻이다.

AG News에서는 Accuracy와 F1이 거의 같다. 0.9474와 0.9482로 0.001도 차이나지 않는다. 이건 4개 클래스가 균등하게 분포되어 있기 때문이다. 클래스 불균형이 없으면 Accuracy와 F1이 자연스럽게 수렴한다. 하지만 둘 다 보고해야 하는 이유는, 데이터 분포가 바뀔 수 있는 실제 서비스 환경에서는 두 지표가 벌어질 수 있기 때문이다. 특정 카테고리의 뉴스가 폭증하면 Accuracy는 유지되는데 F1이 떨어지는 상황이 올 수 있다.

Accuracy = 전체 중 맞은 비율
           맞은 것 288개 / 전체 304개 = 0.9474

F1       = Precision과 Recall의 조화평균
           클래스 불균형이 있을 때 더 신뢰할 수 있는 지표

#

#3 각 지표를 왜 봐야 하는가? - AUROC vs AUPRC

AUROC가 0.9902다. 이전 DNA 분석에서 ROC-AUC를 평가 지표로 썼던 것과 같은 지표다. 그때 설명했듯이, “임의로 고른 양성 샘플의 예측 점수가 임의로 고른 음성 샘플의 예측 점수보다 높을 확률"이다. 4클래스 문제에서는 각 클래스를 “이 클래스 vs 나머지"로 나눠서 AUROC를 각각 계산한 뒤 평균을 낸다. 이것이 macro 평균이다. 0.9902라는 값은 모델이 네 카테고리를 거의 완벽하게 구분하고 있다는 뜻이다. 스포츠 기사의 점수 분포와 경제 기사의 점수 분포가 거의 겹치지 않는다는 것이다.

AUROC의 장점은 분류 임계값(threshold)에 독립적이라는 것이다. Accuracy나 F1은 “가장 높은 확률의 클래스를 정답으로 선택한다"는 특정 결정 규칙에 묶여 있다. AUROC는 모든 가능한 임계값에서의 성능을 종합하므로, 모델의 근본적인 구별 능력을 측정한다.

AUROC (0.9902): AUROC: 분류 경계의 선명도
"임의로 고른 양성 샘플의 예측 확률 > 임의로 고른 음성 샘플의 예측 확률"
→ 이 확률이 99.02%다
→ 1에 가까울수록 분류 경계가 명확하다

AUPRC가 0.9599다. AUROC와 비슷해 보이지만 더 엄격한 기준이다.

AUROC와 AUPRC의 차이를 이해하려면 극단적인 예를 생각해보자. 1,000개의 샘플 중 양성이 10개뿐인 상황에서, 모델이 상위 100개를 양성으로 예측했고 그 안에 10개의 실제 양성이 모두 포함되어 있다면 AUROC는 매우 높다. 하지만 AUPRC는 Precision(10/100=0.10)이 낮다는 걸 반영해서 더 낮은 값을 준다. AUPRC는 양성 예측의 정밀도를 더 강하게 평가하는 것이다.

AG News에서 AUPRC가 0.9599로 AUROC(0.9902)보다 약간 낮지만 여전히 매우 높다. 이건 모델이 높은 확률을 부여한 예측들이 실제로도 거의 다 맞다는 뜻이다.

AUPRC (0.9599): 불균형에 더 민감한 지표
클래스 불균형 상황에서 AUROC보다 더 엄격한 기준
→ 95.99% → 매우 양호

#

#cf 모델 설정 요약

항목
기반 모델bert-base-uncased
분류기EnhancedClassifier (768→256→4, GELU, Dropout=0.3)
최대 토큰 길이192
학습률 전략Layer-wise Discriminative LR (base=3.5e-5, decay=0.9)
Label Smoothingε=0.1
LR 스케줄러Cosine + Warmup 0.1
Early Stoppingpatience=3
학습 데이터Train=4,320 / Val=480 / Test=304 (1/25 스케일)
학습 steps40 (Early Stopping 동작)