Perplexity
20 Feb 2023
Language Model의 성능을 측정할 때 자주 쓰이는 perplexity에 대해 유도하는 식을 정리해보고자 한다.
Perplexity는 Language Model을 평가하기 위한 평가 지표이다. 보통 줄여서 PPL이라고 부른다. PPL이 낮을 수록 좋은 모델이다.
\[perplexity =2^{cross-entropy}=2^{- \sum_{t=1}^np(x_t)log_2q(x_t)}\]Perplexity의 수식은 위와 같다., $p(x_t)$는 real distribution이고, $q(x_t)$는 prediction이다. 위의 식은 다시 자연상수를 이용해 다음과 같이 작성할 수 있고, 모든 단어는 같은 frequency를 갖고 있다고 가정해보면 마지막 항 처럼 작성 할 수 있다.
\[Equation(1) : 2^{- \sum_{t=1}^np(x_t)log_2q(x_t)} = e^{-\sum_t^n p(x_t)ln(q(x_t)}=e^{-\sum_t^n \frac 1 n ln(q(x_t)}\]Equation(1)의 마지막 항의 summation을 전개해보자.
\[Equation(2) : e^{-\sum_t^n \frac 1 n ln(q(x_t)} = q(x_1)^{\frac {-1} n}q(x_2)^{\frac {-1} n}...q(x_n)^{\frac {-1} n}= \Pi_{t=1}^n q(x_t)^{\frac {-1} n}\]다시 Equation(2)의 마지막 항을 전개하면 우리가 아는 perplexity의 형태이다. 각 단어들은 독립이기 때문에 마지막 항 처럼 유도할 수 있다.
\[Equation(3) : \Pi_{t=1}^n q(x_t)^{\frac {-1} n} = \sqrt[n]{\frac 1 {q(x_1)...q(x_n)}} = \sqrt[n]{\frac 1 {q(x_1,...,x_n)}}\]Equation(1)의 마지막 항에서 chain rule을 이용하여 다음과 같이 다른 형태로 전개할 수 있다.
\[Equation(4) : e^{-\sum_t^n \frac 1 n ln(q(x_t)} =e^{-\frac 1 n ln(q(x_1,...,x_n)}=e^{-\frac 1 n ln(\Pi_{t=1}^n q(x_t\mid x_{t-1},...,x_1))}=e^{-\frac 1 n \sum_{t=1}^n ln(q(x_t \mid x_{t-1}, ...,x_1)}\]