정보이론에서는 사건이 발생할 확률이 낮을수록 더 많은 정보를 가지고 있다고 생각합니다. 따라서 확률을 가지고 정보량을 측정하고자 합니다.
사건 가 있고, 가 발생할 확률을 라 하면, 사건 가 발생했을 때 얻을 수 있는 정보량 는 다음과 같이 정의합니다.
엔트로피(entropy) 란 어떤 사건이 발생했을 때 발생하는 정보를 전송하는 데 필요한 bit 수로, 다음과 같이 정의됩니다.
entropy in balanced probability distribution vs skewed probability distribution
balanced probability distribution의 경우, 모든 사건이 일어날 확률이 동일하므로 어떤 사건이 발생할지 예측하기 어렵습니다. 따라서, 어떤 사건이 발생하였을 때 얻을 수 있는 정보량이 높다고 볼 수 있습니다. 반면에, skewed probability distribution의 경우에는 특정 사건이 타 사건에 비해 일어날 확률이 높으므로, 사건이 발생했을 때 얻을 수 있는 정보량이 적다고 볼 수 있습니다.
머신 러닝은 어떤 현상이 발생할 확률분포를 예측하는 것으로도 볼 수 있습니다. 실제 target의 확률분포인 P가 있고, P의 예측모델인 확률분포 Q가 있다고 해보겠습니다. 일반적으로, 사건 가 발생했을 때 실제 확률분포 P 하에서 계산되는 엔트로피와 확률분포 Q 하에서 계산되는 엔트로피는 다를 것입니다. (같다면 아주 좋은 예측 모델을 찾은 경우일 것입니다.) 이 엔트로피 차이를 알아내기 위해 크로스 엔트로피 함수가 등장했습니다.
다른 두 확률분포 P와 Q가 주어졌을 때 크로스 엔트로피 는 다음과 같습니다.
- : 확률분포 P 하에서 가 발생할 확률
- : 확률분포 Q 하에서 가 발생할 확률
cross-entropy loss(혹은 log loss)는 분류 문제에서 loss function으로 자주 사용되는 함수입니다. 크로스 엔트로피를 이용해서
Note
함수는 위와 같이 값이 1에 가까울수록 함수값은 0에 가까워집니다.
cross-entropy에서 예측결과 = 실제 class 인 경우만 term이 살아남아 더해지는 것을 관찰할 수 있습니다. 또한, 값은 1에 가까울수록 작은 값을 가지기 때문에 결국 실제 class로 분류될 확률이 높을수록 loss가 작아지게 됩니다.
Example
이미지를 강아지, 고양이, 펭귄으로 분류하는 상황을 가정해보겠습니다.
- | 이미지 1 | 이미지 2 | 이미지 3 |
---|---|---|---|
실제 class | 강아지 | 고양이 | 펭귄 |
probability vector | (0.7, 0.2, 0.1) | (0.3, 0.4, 0.3) | (0.1, 0.5, 0.4) |
예측 class와 실제 class가 다르다면 이므로, cross-entropy loss = 입니다.
참고문헌