인공지능/평가지표

혼란도(Perplexity, PPL)

FedTensor 2025. 10. 29. 11:26

혼란도는 언어 모델(LM)이 텍스트를 얼마나 잘 예측하는지 측정하는 표준 지표입니다.

이름 그대로, 모델이 특정 단어 시퀀스(문장)를 보고 얼마나 '당황했는지' 또는 '혼란스러워했는지'를 수치화한 것입니다.

  • PPL이 낮을수록 (Less perplexed) 모델이 해당 텍스트의 구조를 잘 이해하고 다음 단어를 높은 확률로 정확하게 예측했다는 의미입니다. (성능이 좋음)
  • PPL이 높을수록 (More perplexed) 모델이 해당 텍스트를 예측하는 데 어려움을 겪었으며, 실제 정답 단어에 매우 낮은 확률을 할당했다는 의미입니다. (성능이 나쁨)

1. 직관적인 이해: "평균적인 선택지의 개수"

PPL을 가장 쉽게 이해하는 방법은 "모델이 다음 단어를 예측할 때 평균적으로 느끼는 유효한 선택지의 개수"라고 생각하는 것입니다.

  • PPL = 10 이라면?
    모델이 문장의 모든 지점에서 다음 단어를 예측할 때, 평균적으로 10개의 그럴듯한 단어들 사이에서 고민하는 것과 같은 수준의 불확실성을 가졌다는 뜻입니다.
  • PPL = 1000 이라면?
    모델이 문맥을 거의 이해하지 못하고, 다음 단어를 예측할 때마다 1000개의 단어 중 하나를 무작위로 찍는 것과 비슷한 수준으로 혼란스러워한다는 뜻입니다.
  • PPL = 1 이라면?
    이론적인 최상의 값입니다. 모델이 다음 단어가 무엇인지 100% 확신하며, 선택지가 1개뿐이라는 의미입니다. (현실의 복잡한 텍스트에서는 불가능합니다.)

2. 수학적 정의

PPL은 테스트 세트에 있는 모든 단어의 평균적인 '역(inverse) 확률'에 기반합니다.

2.1.  문장의 확률

모델이 $N$개의 단어로 이루어진 문장 $W = (w_1, w_2, ..., w_N)$를 생성할 확률 $P(W)$는 각 단어의 조건부 확률을 모두 곱한 값입니다.

$$P(W) = P(w_1) \times P(w_2 | w_1) \times P(w_3 | w_1, w_2) \times ... \times P(w_N | w_1, ..., w_{N-1})$$

$$P(W) = \prod_{i=1}^{N} P(w_i | w_1, ..., w_{i-1})$$

2.2.  Perplexity (PPL) 공식

PPL은 이 전체 문장 확률 $P(W)$의 역수(inverse)에 N제곱근을 취한 값입니다. (N제곱근을 취하는 이유는 문장 길이에 상관없이 평균적인 값을 얻기 위한 정규화입니다.)

$$PPL(W) = \sqrt[N]{\frac{1}{P(W)}} = \left( \frac{1}{P(w_1, w_2, ..., w_N)} \right)^{1/N}$$

이 공식을 보면, 문장 확률 $P(W)$이 높을수록(예측을 잘할수록) PPL 값은 낮아지고, $P(W)$이 0에 가까울수록(예측을 못할수록) PPL 값은 기하급수적으로 높아집니다.

3. 손실 함수(Cross-Entropy)와의 관계

PPL은 사실 딥러닝 모델을 훈련할 때 사용하는 교차 엔트로피(Cross-Entropy Loss)와 수학적으로 직접 연결됩니다.

  • 교차 엔트로피 (H): 모델이 정답을 예측하기 위해 '평균적으로 몇 비트의 정보가 필요한가'를 측정합니다. 즉, 모델의 예측이 실제 정답 분포와 얼마나 다른지를 나타내는 손실 값입니다.
  • PPL과 H의 관계: PPL은 교차 엔트로피 손실값에 지수를 취한 값입니다.

$$PPL = e^H \quad \text{(여기서 } H \text{는 자연로그(ln) 기반의 교차 엔트로피 손실)}$$

            (또는 $PPL = 2^H$ , $\log_2$ 기반 교차 엔트로피 사용 시)

이것이 의미하는 바는 매우 중요합니다.


"훈련 과정에서 교차 엔트로피 손실을 최소화하는 것은, 평가 지표인 PPL을 최소화하는 것과 수학적으로 동일한 목표를 추구하는 것입니다."

4. 예시

모델이 "The cat sat on the ___" 라는 문맥을 보고 다음 단어를 예측해야 한다고 가정해 봅시다. 정답은 "mat"입니다.

  • 모델 A (좋은 모델):
        문맥을 잘 이해해서 "mat"가 나올 확률이 높다고 예측합니다.
        $P(\text{"mat"} | \text{"The cat sat on the"}) = 0.8$ (80%)
  • 모델 B (나쁜 모델):
        문맥을 잘 이해하지 못해 엉뚱한 단어들을 예측하고, "mat"에는 낮은 확률을 줍니다.
        $P(\text{"mat"} | \text{"The cat sat on the"}) = 0.01$ (1%)

이 단어 하나만으로 PPL의 기반이 되는 '역 확률'을 계산해 보면:

  • 모델 A: $1 / 0.8 = 1.25$
  • 모델 B: $1 / 0.01 = 100$

모델 B는 정답 "mat"을 보고 모델 A보다 훨씬 더 크게 '당황(perplexed)'했으며, 이 높은 수치가 PPL에 반영됩니다. 문장 전체에 걸쳐 이런 낮은 예측이 누적되면 PPL은 매우 높아지게 됩니다.

'인공지능 > 평가지표' 카테고리의 다른 글

mAP(mean Average Precision)  (0) 2025.10.31
혼동 행렬과 성능 평가 지표  (0) 2025.10.30