크로스 엔트로피
개요
크로스 엔트로피cross Entropy는 두 확률분포를 구분하기 위해 필요한 평균 비트수로써, 보통 참으로 가정되는 (레퍼런스) 확률분포 와 이를 추정하기 위한 (예상) 확률분포 사이에서 정의된다.
정의 1
이산
두 이산확률분포의 확률질량함수 가 주어져있다고 하자. 두 확률분포의 크로스 엔트로피 는 다음과 같이 정의된다.
연속
측도 공간 의 이 측도라고 하자. 가 각각 두 확률측도 의 측도 에 대해 절대연속인 확률밀도함수라고 하면 두 확률분포의 크로스 엔트로피 혹은 는 다음과 같이 정의된다.
설명
연속형 크로스 엔트로피의 정의가 난해한 것은 그닥 신경쓰지 않아도 된다.
머신러닝
2010년 이후로는 크로스 엔트로피가 머신러닝, 특히 분류기classifier의 학습과정에서 손실 함수로 활발하게 쓰이고 있다. 두 확률분포의 괴리를 나타내는 쿨백-라이블러 발산 와 단독 엔트로피 에 대해 나타내보면 으로, 일 때 인 목적 함수(손실 함수)로 쓰인다. 분류 문제의 맥락에서 는 실제 데이터에서 나온 확률―예로써 사진 속 피사체가 개인지 고양이인지를 나타낸 라벨링이고, 는 분류기가 계산한 결과―개일 확률 70%, 고양이일 확률 20%, 비행이기일 확률 5%, … 정도로 생각하면 된다. 이것이 거의 일치한다는 것, 그러니까 이라는 것은 분류기가 라벨링을 거의 정확하게 예측하며 크로스 엔트로피는 최소화된다는 의미가 될 것이다.
수학에 익숙하고 예리한 독자라면 언뜻 목적 함수에서 만이 중요하지 않은가 궁금할 것이다. 가 단독, (레퍼런스) 엔트로피라면 계산상으로 바뀔 일이 없으니 그냥 자체를 손실 함수로 사용하는게 효율적으로 보인다. 그러나 컴퓨터 입장에서 보자면 둘 중 계산하기 쉬운 쪽은 명명백백하게 크로스 엔트로피다. 이러나 저러나 최적화(학습) 결과는 똑같은데 굳이굳이 를 계산할 필요가 없다. 가 바뀔 일이 없으니 를 쓰는 게 아니라, 거꾸로 크로스 엔트로피를 쓰는 이유가 된다. 결론은 ‘손실함수의 맥락에서 크로스 엔트로피와 쿨백-라이블러 발산은 개념적으로 정확히 같다’는 것이다.
물론 이는 컴퓨터의 계산이고, 실제로 행렬분해를 다루는 논문 등에서는 수식적인 전개의 편의를 위해 크로스 엔트로피가 아닌 쿨백-라이블러 발산을 쓰기도 한다.
표기
참고로 와 같은 표현은 조인트 엔트로피와 겹치는데, 의외로 크로스 엔트로피 자체가 단독으로 쓰이는 경우는 보통 위에서 언급한 머신러닝의 맥락일 때 뿐이라서 공부할 때 빼고는 별로 헷갈릴 일은 없다. 다만 둘의 표현이 겹친다는것을 알아는 두자.