본문 바로가기
인공지능 개발하기/Machine Learning

Infomation, Entropy, Cross-Entropy, KL-Divergence 에 대해서

by 선의공 2025. 5. 15.
반응형

 

 

분포의 차이를 측정하는 방식 대해서 공부해보겠습니다.

 


1. Information

 

먼저 정보(Infomation)라는 개념입니다.

Computer science에서 정보는 Data를 가공했다는 개념인데,,,

 

인공지능에서는 통계적인 측면이 강하고,

통계적인 측면에서 정보의 의미는 불확실성(Uncentainty)을 나타냅니다.

확률이 높으면, 불확실성이 낮아지기 때문에

확률값에 반비례하는 값이 정보입니다.

개인적으로 Info를 정보의 가치라고 생각하면 더 와닿더라구요.

"정보는 시건의 확률의 역수에 비례"를 수식으로 표현하면 아래와 같습니다.

 

 


2. Entropy 

 

불확실성(Uncentainty)을 나타냅니다. 다만 정보와 다른점은

"전체 평균 정보량"을 나타낸다는 거에요.

일반적인 동전던지기는 앞,뒤를 예측할 수 없습니다.

불확실성이 1인 예시죠.

예시를 entropy로 표현하면 아래와 같습니다.


3. Cross Entropy 

 

 그럼 Cross Entropy란 무엇인가?

실제 정답 분포를 모델의 예측 분포가 얼마나 잘 설명하고 있는지를 수치화한 함수입니다.

인공지능 중 분류(Classification)모델은 Cross Entropy를 이용해서

가장 낮은 해당 Loss를 가지는 모델로서 훈련을 진행했잖아요.

실제값-예측값의 분포의 차이를 줄이기 위해 사용한거죠.

예시 -> CE에서는 Q 실제값이 대개 one-hot으로 처리되어 들어갑니다.

 

위의 예시처럼 어떤 정답의 Cross Entropy가 낮으면 해당 모델에서의 정보의 가치가 적다

=>모델이 다 알고 있어....! => 훈련이 잘 되었다

 


 

4. KL Divergence(Kullback-Leibler divergence)

Cross Entropy는 두 확률 분포 간에서 모델이 정답을 얼마나 잘 설명했는지를 정보량 관점에서 측정하는 함수였다면

KL Divergence는 이 틀림으로 인해 "얼마나 더 많은 정보가 낭비되었는가"를 측정합니다.

즉 정보의 가치를 정보량으로 본다면,

KL Divergence는 "정보의 가치를 잘못 평가해서, 쓸데 없는 정보 비용을 냄"이라는

모델의 멍청비용으로 이해하면 될 듯 합니다.

 

왜 사용하는거?라고 물으신다면

모델의 예측 분포가 실제 정답 분포와 얼마나 어긋나 있는지를 수치화하기 위해서 사용합니다.

분포 간의 비교에 사용하는 Loss로 사용됩니다.

 

모델의 예측값이 실제값과 다르다면, 정보의 가치(정보량)이 올라가고

해당 과정을 모델이 잘못해서 생긴 가치 손실, 즉 낭비(divergence)라고 표현합니다.

 

모델이 값을 잘못 예측을 한다면 KLD는 높아집니다.

예시 -> KLD에서는 Q,P가 확률 분포로서 들어갑니다.

 


 

Cross Entropy, KLD 둘 다 Loss로서 사용이 가능하며,

사용 방식의 측면에서 차이는 아래와 같습니다.

Cross Entropy 분류(Classification) 문제에서, 정답 라벨을 기준으로 모델의 예측 확률 분포와의 차이를 줄이기 위한 Loss 함수로 사용
KL Divergence 정답이 확률 분포 형태로 주어지거나, 모델이 특정 기준 분포(예: 정규 분포, 이전 정책 등)를 따르도록 정규화해야 하는 경우, 분포 간의 차이를 측정하는 Loss 또는 제약 항으로 사용

 

반응형