ChangHyeon Nam's Blog notes and thoughts

Perplexity

Comments

Language Model의 성능을 측정할 때 자주 쓰이는 perplexity에 대해 유도하는 식을 정리해보고자 한다.


Perplexity는 Language Model을 평가하기 위한 평가 지표이다. 보통 줄여서 PPL이라고 부른다. PPL이 낮을 수록 좋은 모델이다.

perplexity=2crossentropy=2nt=1p(xt)log2q(xt)

Perplexity의 수식은 위와 같다., p(xt)는 real distribution이고, q(xt)는 prediction이다. 위의 식은 다시 자연상수를 이용해 다음과 같이 작성할 수 있고, 모든 단어는 같은 frequency를 갖고 있다고 가정해보면 마지막 항 처럼 작성 할 수 있다.

Equation(1):2nt=1p(xt)log2q(xt)=entp(xt)ln(q(xt)=ent1nln(q(xt)

Equation(1)의 마지막 항의 summation을 전개해보자.

Equation(2):ent1nln(q(xt)=q(x1)1nq(x2)1n...q(xn)1n=Πnt=1q(xt)1n

다시 Equation(2)의 마지막 항을 전개하면 우리가 아는 perplexity의 형태이다. 각 단어들은 독립이기 때문에 마지막 항 처럼 유도할 수 있다.

Equation(3):Πnt=1q(xt)1n=n1q(x1)...q(xn)=n1q(x1,...,xn)

Equation(1)의 마지막 항에서 chain rule을 이용하여 다음과 같이 다른 형태로 전개할 수 있다.

Equation(4):ent1nln(q(xt)=e1nln(q(x1,...,xn)=e1nln(Πnt=1q(xtxt1,...,x1))=e1nnt=1ln(q(xtxt1,...,x1)

Reference

  1. Dive into Deep Learning

  2. perplexity from wikipedia