데이터사이언스 이론 공부

엔트로피(Entropy)와 크로스 엔트로피(Cross Entropy)

soopy 2022. 10. 7. 19:18
728x90

엔트로피 이전에 정보량에 대해서 이해할 필요가 있다.

어떠한 사건의 확률값에 -log를 취하면 확률이 높아질수록 0에 가까워지고 확률이 낮아질수록 무한대에 가까워진다.
즉 확률이 높을수록 낮은값을 지니도록 설정하기 위한 도구로 -log를 취했다.

그리고 -log p(x) 를 정보량 I(x) 으로 정한다.

 

정보의 크기(정보량)란?

어떤 정보가 참이라고 가정했을 때 어떠한 사건이 일어날 확률이 매우 낮을수록 큰 정보라고 부른다.
왜냐하면 확률이 낮은 사건은 누구나 알고 있다고 보기 어렵기 때문에 만일 사실일 경우 유익한 정보이기 때문이다.

개인적으로는 정보량을 정보의 가지수로 이해하면 어떨까 싶다.
가령 정보량이 0에 근사하다는 말은 즉 사건 발생 확률이 높다는 것이므로
A라는 사건이 발생할 경우 어떤 결과가 나올지 뻔하다는 말이 되고, 한정적이라는 말이 된다.
즉 우리가 받을 정보가 손에 꼽을 만큼 한정적이라는 말이된다. 

반대로 정보량이 무한대라는 말은 A라는 사건이 발생할 때 마다 다른 결과가 발생한다는 의미이므로
우리가 받을 수 있는 정보가 무한정이라는 의미로 이해할 수 있다.

하지만 대체적으로 확률이 낮을수록 사건은 일어나지 않는다…

확률 up -> 정보량 down

 

엔트로피

정보량의 기대값(평균)을 구한 값을 말한다.
여기서 기대값을 구한다는 것은 어떤 사건 결과를 무한히 샘플링한 값의 확률에  -log를 취한다는 것으로
간단히 말해서 정보량을 각각 구한 값들의 평균을 낸 결과를 의미한다.

여기서 엔트로피는 확률분포에서의 평균적인 uncertainty(불확실성)을 나타내는 값이라고 한다.
불확실성이 낮다는 의미는 어떤 사건의 발생 확률이 높음을 의미하고, 높다는 의미는 사건의 결과가
확정적이다는 의미이다. 그래서 불확실하지 않다(확실하다)고 말하는 것이다.

반대로 불확실성이 높다는 의미는 엔트로피가 무한대로 가는 것 즉 확률이 매우 낮다는 것으로
결과를 확정할 수 없음을 의미한다.

 

그래서 엔트로피를 통해 역으로 분포의 형태가 uniform에 가까운지 sharp한지를 예측해볼 수 있다.

엔트로피가 0에 가깝다는 것은 어떤 사건의 결과 샘플링 시 늘상 유사한 값들이 뽑혔을 것, 즉 확정적으로 유사한 값이 뽑혔을 거라 예측할 수 있는데, 그렇다면 해당 사건의 결과 분포가 sharp한 형태임을 추론할 수 있기 떄문이다.

반대로 엔트로피가 무한대에 가깝다는 것은 어떤 사건의 결과 샘플링 시 늘상 다른 값들이 뽑힌다는 의미를 추론할 수 있으므로 결과 분포가 uniform에 가까울 것이라 예측하는 것이다.

 

Cross Entropy는?

DNN 분류 문제에서 정답 분포(ground truth) P를 모사하는 분포 Q를 구할 때 분포 P의 관점에서 본 분포 Q의 엔트로피를 구하는 것을 말한다. 이미지 분류와 같은 문제에서의 타겟값 y는 다수의 선택지 중 정답 하나를 고르도록 하는 이산확률분포로 되어 있는데 이 확률 분포를 모사하는 $\hat{y}$ 분포를 찾는 것이 목적이다. 이렇듯 예측모델처럼 특정 값을 맞추는 것이 아닌 유사 분포를 찾는 문제이므로 엔트로피를 활용해서 모델 학습이 가능하다. 

학습이 가능한 이유는 P 분포에서 샘플링한 값 x를 Q1 분포와 Q2 분포에 각각 대입해서 엔트로피를 구한 결과 Q1 엔트로피값이 더 작았다면 Q1이 Q2보다 P 분포에 더 가깝다고 말할 수 있기 때문이다.

이 원리를 활용해서 분포 P를 형성한 x값을 샘플링해서 분포 Q에 대입한 엔트로피값이 최소값을 갖도록 가중치 w값을 지속적으로 업데이트 한다면 Q 분포가 P를 모사하게 된다.

 

728x90
728x90