본문 바로가기
개발 Tools/파이썬_Deep learning & ML

딥러닝을 위한 기초 개념 Entropy ( Cross entropy, KL divergence, 엔트로피 )

by 전컴반 2022. 5. 2.
반응형
Entropy

 

먼저 entropy에 대해 알아보자 entropy는 정보를 표현하는데 있어 필요한 평균 최소 자원량이라고 한다. 그렇다면 정보를 어떻게 표현할까? 공통적으로 bits로 표현하기로 했다.

그렇다면 비트가 길면 길수록 더 많은 자원을 썼다고 볼 수 있다. 그러니 우린 최소한으로 만들기 위해 비트의 길이를 줄여야 한다. 

 

예를 들어보자, 대화를 하는데 100마디 중에 1마디만 욕이라고 하고, 나머진 칭찬이라고 하자.

이럴 때 욕과 칭찬을 bit로 표현할 때, 욕을 1bit, 칭찬을 3bit라고 하면 (3 bit * 99  + 1 bit * 1) = 298 bit으로 표현된다.

 

하지만 우린 최소 길이로 만들어야 한다. 그러니 확률이 적은 애한테 큰 bit를 할당해야 한다. 욕을 3bit, 칭찬을 1bit라고 하면, (1 bit * 99 + 3 bit * 1) = 102 bit로 확 줄어든다.

 

이렇게 각각 일어날 확률을 bit로 매핑하여 확률적으로 보고, 확률이 크면(칭찬) 길이를 작게하고 확률이 작으면(욕) 길이를 길게해야 entropy가 줄어든다.

 

그래프로 보면 x축을 확률, y축을 길이라고 볼 수 있다. 보면 log 함수에 -를 붙인 그래프로 똑같다. 그렇다면 밑은 2로 표현되야 한다. 이유는 bit로 표시하기 떄문이다. 

 

H[X] (entropy)는 최소 평균 길이가 된다. 달리 말하면 저 숫자보다 더 짧게 정보를 표현할 수 없다. 작을수록 이상적이라는 의미다. 

 

 

 

 

Cross entropy

 

그런데 보면 제일 이상적인 코드를 짜기 위해 확률 설정을 p라고 했지만, 실제로 우리가 설정한 확률인 q는 p보다 클 것이다. p와 똑같다면 아주 좋겠지만 말이다. 이렇게 내가 생각한 확률 분포로 표현한게 cross entropy다.

 

실제로는 p를 따르니 평균 계산은 아래와 같이 이루어진다.

 

 

 

KL divergence

 

내가 설정한 q를 기반으로 했을 때의 cross entropy와 이상적인 p를 기반으로 했을 때의 entropy의 차이가 바로 KL divergence이다. 

 

q는 내가 지정한 값이니 이상적인 값보다 무조건 클 것이니 양수가 되기 위해 다음과 같이 빼준다. 

 

이걸 왜 알아봤냐면 우린 에러를 줄이기 위해 여러 방법론을 적용하는데 entropy를 이용하여 실제와 예측의 차이가 줄어드는 방향으로 나아가기 위해 알아봤다.

반응형

댓글