logo

크로스 엔트로피 📂확률론

크로스 엔트로피

개요

크로스 엔트로피cross Entropy는 두 확률분포를 구분하기 위해 필요한 평균 비트수로써, 보통 참으로 가정되는 (레퍼런스) 확률분포 pp 와 이를 추정하기 위한 (예상) 확률분포 qq 사이에서 정의된다.

정의 1

이산

이산확률분포의 확률질량함수 p,qp,q 가 주어져있다고 하자. 두 확률분포의 크로스 엔트로피 H(p,q)H (p,q) 는 다음과 같이 정의된다. H(p,q):=p(x)log2q(x) H (p,q) := - \sum p(x) \log_{2} q(x)

연속

측도 공간 (Ω,F,m)( \Omega , \mathcal{F}, m)mm측도라고 하자. f,gf,g 가 각각 두 확률측도 P,QP,Q 의 측도 mm 에 대해 절대연속인 확률밀도함수라고 하면 두 확률분포의 크로스 엔트로피 H(P,Q)H (P,Q) 혹은 H(f,g)H(f,g) 는 다음과 같이 정의된다. H(P,Q)=H(f,g)=f(x)log2g(x)dm(x) H (P,Q) = H(f,g) = - \int f(x) \log_{2} g(x) dm(x)

설명

연속형 크로스 엔트로피의 정의가 난해한 것은 그닥 신경쓰지 않아도 된다.

머신러닝

2010년 이후로는 크로스 엔트로피가 머신러닝, 특히 분류기classifier의 학습과정에서 손실 함수로 활발하게 쓰이고 있다. 두 확률분포의 괴리를 나타내는 쿨백-라이블러 발산 DKL(pq)D_{\text{KL}} \left( p \| q \right)단독 엔트로피 H(p)H(p) 에 대해 나타내보면 H(p,q)=H(p)+DKL(pq) H(p,q) = H(p) + D_{\text{KL}} \left( p \| q \right) 으로, p=qp=q 일 때 DKL(pq)=0D_{\text{KL}} \left( p \| q \right) = 0 인 목적 함수(손실 함수)로 쓰인다. 분류 문제의 맥락에서 pp 는 실제 데이터에서 나온 확률―예로써 사진 속 피사체가 개인지 고양이인지를 나타낸 라벨링이고, qq 는 분류기가 계산한 결과―개일 확률 70%, 고양이일 확률 20%, 비행이기일 확률 5%, … 정도로 생각하면 된다. 이것이 거의 일치한다는 것, 그러니까 pqp \approx q 이라는 것은 분류기가 라벨링을 거의 정확하게 예측하며 크로스 엔트로피는 최소화된다는 의미가 될 것이다.

수학에 익숙하고 예리한 독자라면 언뜻 목적 함수에서 DKL(pq)D_{\text{KL}} \left( p \| q \right) 만이 중요하지 않은가 궁금할 것이다. H(p)H(p) 가 단독, (레퍼런스) 엔트로피라면 계산상으로 바뀔 일이 없으니 그냥 DKL(pq)D_{\text{KL}} \left( p \| q \right) 자체를 손실 함수로 사용하는게 효율적으로 보인다. 그러나 컴퓨터 입장에서 보자면 H(p,q)=p(x)log2q(x)DKL(pq)=p(x)log2q(x)p(x) \begin{align*} H (p,q) =& - \sum p(x) \log_{2} q(x) \\ D_{\text{KL}} \left( p \| q \right) =& - \sum p(x) \log_{2} {{ q(x) } \over { p(x) }} \end{align*} 둘 중 계산하기 쉬운 쪽은 명명백백하게 크로스 엔트로피다. 이러나 저러나 최적화(학습) 결과는 똑같은데 굳이굳이 q(x)/p(x)q(x) / p(x) 를 계산할 필요가 없다. H(p)H(p) 가 바뀔 일이 없으니 DKL(pq)D_{\text{KL}} \left( p \| q \right) 를 쓰는 게 아니라, 거꾸로 크로스 엔트로피를 쓰는 이유가 된다. 결론은 ‘손실함수의 맥락에서 크로스 엔트로피와 쿨백-라이블러 발산은 개념적으로 정확히 같다’는 것이다.

물론 이는 컴퓨터의 계산이고, 실제로 행렬분해를 다루는 논문 등에서는 수식적인 전개의 편의를 위해 크로스 엔트로피가 아닌 쿨백-라이블러 발산을 쓰기도 한다.

표기

참고로 H(X,Y)H(X,Y) 와 같은 표현은 조인트 엔트로피와 겹치는데, 의외로 크로스 엔트로피 자체가 단독으로 쓰이는 경우는 보통 위에서 언급한 머신러닝의 맥락일 때 뿐이라서 공부할 때 빼고는 별로 헷갈릴 일은 없다. 다만 둘의 표현이 겹친다는것을 알아는 두자.