본문 바로가기
AI

Cross Entropy를 사용하는 이유

by Ladun 2021. 11. 12.

일반적으로 분류 문제를 풀 때 Cross Entropy를 Loss로 사용하는 경우가 많습니다. 그렇다면 왜 굳이 Cross Entropy를 Loss 함수로 사용하는 것일까요?

 

수식으로만 보는 간단한 이유

-log x에 대한 수식

일단 Cross Entropy수식은 다음과 같습니다.

$$CE(p, q) = -\sum_{i=1}^np(x_i)logq(x_i)$$

위 수식에서 정답과 모델이 예측한 값이 같을 때는 0인 값이 나오고 서로 다른 경우에는 무한대의 값에 가깝게 나올 수 있습니다. 즉, 잘 예측하면 Loss가 0에 가깝게 나오고 아니면 Loss가 높은 값을 가지게 된다. 정답과  오답의 경우의 loss의 차가 크고, 잘 학습돼서 사용합니다. 하지만 이러한 이유로 이 Loss를 쓰는 것은 뭔가 찝찝합니다.

 

KL-Divergence로 보는 Cross Entropy

일단 이 이야기를 하기 전에 인공지능의 학습에 대해서 생각해보면, 모델을 잘 학습한다는 것은 정답의 분포를 모델이 잘 따라 하도록 하는 것입니다. 즉, 정답 분포와 모델이 예측한 값의 분포가 비슷해지도록 하면 좋은 것입니다. 여기서 정답 데이터셋의 크기가 작으면 Overfitting이 일어날 수 있지만 데이터셋의 크기가 크고 여러 가지 기법으로 오버 피팅은 잘 피했다고 가정합니다. 정답 분포와 우리의 모델 예측값의 분포가 얼마나 비슷한지를 측정할 때 자주 사용되는 지표가 KL-Divergence입니다. KL-Divergence의 식은 다음과 같습니다.

$$D_{KL}(p||q) = \sum_xp(x)log\cfrac{p(x)}{q(x)}$$

위 수식은 보통 "가짜 분포 q가 진 분포 p를 얼마나 잘 따라왔는가"로 해석할 수 있습니다. 이 수식을 조금만 다르게 정의하면 아래와 같습니다.

$$\begin{aligned}D_{KL}(p||q) &= \sum_xp(x)log\cfrac{p(x)}{q(x)}\\&=\sum_xp(x)logp(x) - \sum_xp(x)logq(x)\\&=-H(p) + CE(p, q)\end{aligned}$$

이제 이 수식을 잘 보면 우리가 익히 알고 있는 Entropy와 Cross Entropy로 나뉘는 것을 볼 수 있습니다. 여기서 p 정답 분포입니다. 근데 분류 문제에서의 정답은 하나만 1의 값을 가지고 나머지는 0의 값을 가지는 형태입니다. 즉, [0, 0, ..., 1, ...., 0, 0]입니다. 이 값을 Entropy 수식에 넣으면 0이 됩니다. 따라서 분류 문제에서의 KL-Divergence는 아래와 같이 정리됩니다.

$$D_{KL}(p||q) =CE(p, q)$$

수식이 아주 간단해졌습니다. 위 수식을 해석해보면 우리의 모델이 정답 분포를 잘 따라 하도록 만들기 위해서 KL-Divergence값을 줄여야 하는데, 위 수식은 KL-Divergence가 Cross Entropy값과 같아지기 때문에 Cross Entropy를 최적화하는 것이 곧 모델이 정답 분포를 따라가도록 하는 것입니다. 그래서 일반적으로 Cross Entropy를 Loss Function으로 사용하는 것입니다.

 

 

마치며...

이 외에도 Jenson's inequality를 이용해서 Cross Entropy에 대한 간단한 증명이 있습니다. 간략하게 설명을 하면 Jenson's inequality를 이용하여 우리의 모델이 정답을 맞힐 확률의 lower bound를 구하는 방식입니다. 이때의 lower bound가 Cross Entropy에 대한 수식이 나오고 Cross Entropy를 줄이게 되면 Cross Entropy 수식의 값이 0에 가깝게 나오게 되고 lower bound가 높아지게 됩니다.

 

아래 링크에서 좀 더 자세한 설명이 있습니다.

 

'AI' 카테고리의 다른 글

Macro-average, Micro-average  (0) 2022.02.03
CutMix  (0) 2022.01.27
Backpropagation  (0) 2021.11.03
[Metric] Recall과 Precision  (0) 2021.10.03
[Metric] BLEU (Bilingual Evaluation Understudy)  (0) 2021.10.02