본문 바로가기
인공지능/ML-DL 기초

Cross-Entropy란?

by 3n952 2024. 10. 2.
딥러닝 모델을 활용하여 다양한 task를 해결하는 데 다양한 loss function이 사용된다. 그중 분류와 같은 task에서 정답과 예측 값의 확률 분포를 차이를 좁히는 방식으로 모델이 학습한다. 이때 사용되는 loss가 cross-entropy loss이다. 
이번 포스팅에서 cross entropy에 대해 알아보자!

 


 

Cross Entropy의 개념을 알기 위해선 먼저 알아야 할 개념이 있다.

바로 "Entropy" 이다.

1. Entropy

Entropy(엔트로피)는 정보 이론에서의 정보량에 대한 기댓값을 의미한다.

이는 정보의 불확실성을 나타내며 이 값이 높을수록 다양한 정보가 많아 확률이 낮다는 것을 의미한다.

가령 (1) 주머니 속에 빨간 공, 파란 공, 노란 공, 초록공이 있는 경우와 (2) 빨간 공, 파란 공만 들어있는

두 경우에 대해 생각해 보면, 전자의 경우에 엔트로피가 더 높다고 볼 수 있다.

 

수식적으로는 다음과 같다.

 

P(xi)는 정보(요소들)에 대한 확률을 의미한다. 동전 던지기에서 앞면이 나올 확률과 뒷면이 나올 확률이 각각 1/2 인 것과 같다.

정량적인 비교를 위해 위의 예시에서 엔트로피를 수식에 대입해 보자. (색깔별로 공은 하나가 있다고 가정)

(1) 번 주머니의 경우 = -(1/4 * log 1/4 + 1/4 * log 1/4 + 1/4 * log 1/4 + 1/4 * log 1/4) 

(2) 번 주머니의 경우 =  -(1/2 * log 1/2 + 1/2 * log 1/2) 

가 되어 첫 번째 주머니의 경우가 엔트로피 값이 높다는 것을 알 수 있다.

 

직관적으로 이해하는 데 결정론적인(결과가 거의 확실한) 분포는 엔트로피가 낮고, 고른 분포에 가까울수록 엔트로피가 높다고 생각하는 것이 도움이 된다.

 

2. Cross Entropy

엔트로피를 통해 어떤 확률 분포에서의 정보량에 대한 기댓값, 불확실성을 알게 되었다.

이를 딥러닝 모델에서 어떻게 활용하면 될까?

두 확률 분포(모델의 예측, 정답)에 대한 엔트로피를 구하여 이를 줄이는 방향으로 학습이 이뤄지는 식으로 활용하면 된다.

 

같은 확률 변수에 관한 개별적인 두 확률분포가 있다면 그 분포의 차이를 구하고자 하는 것은 KL divergence measure이다.

크로스 엔트로피는 KL-divergence와 하나의 항이 차이가 나는데 그 항에 대하여 관여하지 않는 항이 생기므로 그 항에 관해

교차 엔트로피를 최소화하는 것은 KL-divergence를 최소화하는 것과 같다.

(KL divergence는 다른 포스팅에서 자세히 설명하겠습니다 ..)

 

KL divergence에 대한 수식은 다음과 같다.

Hp(q)(크로스엔트로피)와 H(q)의 항 하나가 차이가 나는 걸 볼 수 있다.

 


 

 

크로스 엔트로피는 수식으로는 다음과 같이 표현된다.

 

P에 대한 값이 작을수록(log함수 적용하기 때문에), Q에 대한 값이 클수록 해당 크로스 엔트로피 값은 커진다.

여기서 P, Q 확률 분포는 딥러닝 모델의 예측 결과에 대한 확률 분포와 정답에 대한 확률 분포로 매칭할 수 있다.

즉 Cross entropy는 두 분포에 대한 entropy를 계산하는 것과 비슷한 맥락인 것이다.

 

cross entropy를 loss 함수로 사용하게 되면 모델의 예측과 정답에 대한 분포의 차이를 계속해서 줄여나간 다는 뜻이며 이는 두 확률 분포에 대한 엔트로피(불확실성)가 줄어드는 것과 같다고 생각할 수 있다.