-
Perplexity카테고리 없음 2024. 12. 3. 14:16
Perplexity의 정의
- Perplexity는 정보 이론에서 이산 확률 분포로부터 샘플의 값을 추측하는 데 대한 불확실성을 측정하는 척도이다.
Perplexity의 속성
- 불확실성이 클수록 분포에서 값을 추측하기 어려워진다.
Perplexity의 기원
- 1977년 Frederick Jelinek, Robert Leroy Mercer, Lalit R. Bahl, James K. Baker가 음성 인식 분야에서 도입하였다.
- 암기법: Burble Jelly
- Burble: Perplexity
- Jelly: Jelinek
- 암기법: Burble Jelly
Perplexity의 수학적 정의
- \( Perplexity(p) := 2^{H(p)} = 2^{-\sum_x p(x) \log_2 p(x)} \)
Perplexity에서 \( H(p) \)의 의미
- \( H(p) \)는 확률 분포 \( p \)의 엔트로피로, 단위는 비트이다.
Perplexity의 독립적 특성
- 로그와 지수화가 동일한 밑을 사용할 경우 밑에 관계없이 동일하다.
Perplexity의 역할
- 확률 분포의 불확실성 또는 "놀람"을 측정하는 척도로 간주된다.
- 암기법: Perprise~
균일한 분포에서의 Perplexity
- 확률 분포 \( p \)가 \( k \)개의 결과 각각에 대해 \( 1/k \)의 확률을 가질 때, Perplexity는 \( k \)로 계산된다.
Perplexity의 예측 문제에서의 사용
- 예측 문제의 난이도를 나타내며, 모델이 테스트 데이터를 잘 설명할수록 Perplexity가 낮아진다.
Perplexity의 한계
- Perplexity의 역은 확률 \( 1/P \)과 직접적인 상관관계가 없다.
Perplexity와 엔트로피의 관계
- Perplexity는 엔트로피의 지수화로, 엔트로피는 랜덤 변수의 결과를 인코딩하는 데 필요한 예상 비트 수를 측정한다.
- 암기법: 엔쥐나서 놀람
- 엔: 엔트로피
- 쥐: 지수화
- 놀람: perplexity
- 암기법: 엔쥐나서 놀람
확률 모델 \( q \)의 Perplexity 정의
- \( b^{-1/N \sum_{i=1}^N \log_b q(x_i)} \)
모델의 Perplexity와 확률의 관계
- 테스트 이벤트 \( x_i \)에 대해 높은 확률을 부여할수록 Perplexity가 낮아진다.
Perplexity와 크로스 엔트로피의 관계
- Perplexity는 크로스 엔트로피 \( H(p, q) = -\sum_x p(x) \log_b q(x) \)와 관련이 있다.
Perplexity와 KL 발산의 관계
- 크로스 엔트로피는 경험적 분포 \( \tilde{p}(x) \)와 모델 분포 \( q \) 간의 KL 발산으로 표현될 수 있다.
NLP에서 Perplexity의 정의
- NLP에서 Perplexity는 보통 토큰 단위로 계산되며, 이는 텍스트 길이에 대해 정규화된 값을 제공한다.
NLP에서 언어 모델 Perplexity의 정의
- \( (\prod_{i=1}^n q(s_i))^{-1/N} \)
NLP에서 Perplexity의 역할
- NLP에서 언어 모델의 성능을 측정하는 지표로, 모델이 주어진 텍스트 데이터를 얼마나 "예측하기 어려운지" 나타내는 값입니다.
NLP에서 Perplexity 수치의 의미
- 값이 낮을수록 언어 모델이 데이터를 잘 예측하고 있다는 의미입니다.
수식의 목적
- \( (\prod_{i=1}^N q(s_i))^{-1/N} \)는 모델의 예측 성능을 텍스트 길이에 무관하게 비교 가능하도록 측정하는 데 사용됩니다.
수식의 구성 요소
- \( q(s_i) \)
- 모델이 \( s_i \) (텍스트의 \( i \)-번째 단어 또는 기호)에 대해 할당한 확률입니다.
- 역할: 모델이 각 단어를 얼마나 자연스럽게 평가했는지 나타냅니다.
- 예: "고양이가"라는 문장을 모델이 보고 있을 때, \( s_2 = "마당에" \) 라는 단어가 올 확률 \( q(s_2) \)는 0.8일 수도 있고, "하늘에"는 0.1일 수도 있습니다.
- 쉽게 말해: 모델이 단어를 얼마나 "잘 예측했는지"를 점수로 매긴 것입니다. \( q(s_i) \) 값이 1에 가까울수록 더 잘 맞춘 것이고, 0에 가까울수록 틀린 예측입니다.
- \( \prod_{i=1}^N q(s_i) \)
- 텍스트 데이터 \( s_1, s_2, \dots, s_N \) 전체를 생성할 확률을 계산합니다.
- 역할: 모든 단어의 확률을 곱하여 모델이 텍스트 전체를 얼마나 일관되게 예측했는지 측정합니다.
- 예를 들어, 문장이 "고양이가 마당에 있다"일 때:
$$\text{문장 확률} = q(\text{"고양이가"}) \times q(\text{"마당에"}) \times q(\text{"있다"})$$
- \( (\cdot)^{-1/N} \)
- \( (\cdot)^{-1/N} \)는 "곱한 값을 \( N \)-제곱근으로 나누는 것"입니다. 왜 이렇게 할까요?
- 단어가 많아질수록 \( \prod_{i=1}^N q(s_i) \)는 점점 작아져서 다루기 어렵습니다. 그래서 ( N )-제곱근을 취해 텍스트 길이에 대한 영향을 보정합니다.
- 이것은 곧 평균 단어당 예측 성능을 계산하는 과정과 같습니다.
- 예: 문장이 3개 단어로 이루어졌다고 해봅시다. 각 단어 확률을 곱하면 \(q(s_1) \cdot q(s_2) \cdot q(s_3)이 됩니다. 이 값을 다시 3제곱근으로 나누면, 한 단어의 평균적인 "어려움"을 계산하게 됩니다.
- 쉽게 말해: 이 연산은 "문장이 길어질수록 생기는 확률 축소 문제"를 해결하고, 각 단어에 대해 공정한 평가를 제공합니다.
Perplexity의 직관적 의미
- 언어 모델이 평균적으로 각 단어를 예측하기 위해 고를 수 있는 후보 단어의 수를 나타냅니다.
Perplexity의 수식의 요약
- 실제 문장에서 모델이 내린 각 단어의 확률을 곱한 뒤, 텍스트 길이에 대해 평균을 내어 계산합니다.
Perplexity의 NLP에 대한 비유적 표현
- Perplexity가 10이라면: "모델은 평균적으로 각 단어를 예측할 때 10개 중 하나를 선택한다."
- Perplexity가 2라면: "모델은 거의 항상 정답에 가까운 단어를 선택한다."
Perplexity의 특징
- Perplexity가 낮을수록 모델이 데이터에 대해 더 잘 학습했음을 의미합니다.
수식의 변환 형태
- \( \text{Perplexity} = 2^{-\frac{1}{N} \sum_{i=1}^N \log_2 q(s_i)} \)
- 로그 확률을 활용하여 계산을 더 편리하게 할 수 있도록 변환된 형태입니다.
NLP에서 Perplexity의 역할
- Perplexity는 테스트 데이터의 길이에 따라 정규화되어 모델 간의 비교를 용이하게 한다.
Brown Corpus의 Perplexity
- 1992년 기준 Brown Corpus의 Perplexity는 단어당 약 247로 보고되었다.
Brown Corpus에서 Perplexity와 통계 모델의 관계
- Brown Corpus에서의 Perplexity는 단순히 "the"와 같은 단어를 예측하는 정확도보다 더 정교한 통계를 필요로 한다.
언어 모델에서의 Perplexity의 발전
- Transformer 기반 모델(BERT, GPT-4 등)이 Perplexity를 평가하고 최적화하는 데 사용되었다.
Perplexity의 한계와 문제
- Perplexity는 예측 성능의 한계를 가지며, 일반화 문제와 과적합 문제에 민감하다.
Perplexity와 데이터 압축
- Perplexity는 테스트 데이터의 압축 효율성을 나타내며, 최적 코드 기반으로 적은 비트 수를 요구하는 모델이 낮은 Perplexity를 갖는다.
Perplexity와 Word Error Rate(WER)
- Perplexity와 Word Error Rate(WER)는 언어 모델 평가에서 보완적인 메트릭으로 사용된다.
Perplexity per token
- 문장의 토큰 수에 따라 정규화된 Perplexity 값으로, 텍스트 간 비교를 가능하게 한다.
최적화된 Perplexity의 조건
- 최소화된 Perplexity는 모델이 경험적 분포와 일치할 때 이루어진다.
반응형