엔트로피는 정보를 나타내기 위한 최소 평균 자원량을 의미한다.
'ㄱ', 'ㄴ', 'ㄷ', 'ㄹ'을 컴퓨터에서 사용하는 이진수로 나타낸다고 해보자
4개니까 0, 1, 10, 11로 나타낼 수 있다
사용 빈도수는 'ㄹ', 'ㄷ', 'ㄴ', 'ㄱ'의 순으로 많다고 할 때, 'ㄹ'에 11을 할당한다면 0을 할당했을 때 보다 비효율적이게 된다.
빈도를 확률로 표현하여 사용빈도(확률)을 라고 했을 때, 정보량은 확률에 반비례하면서 독립일 때 곱으로 나타나는 확률을 덧셈으로 바꿀 수 있고 확률이 1일 때 정보량을 최소(0)으로 하는 log를 취해 를 사용하여 나타낸다.
그러면 정보량의 기댓값을 나타낸다면 로 나타낼 수 있다.
이 것이 엔트로피이며 최소 평균 자원량을 의미한다.
최소 평균 자원량이므로 어떻게 할당을 하더라도 이 보다 더 적을 순 없다.
이 엔트로피가 최대가 되는 분포는 균등분포(uniform distribution)이다.
연속 확률 분포에서는 가 된다.
연속 확률 분포에서는 가우시안 분포일 때 최댓값이 된다고 한다.
우리는 앞서 엔트로피를 다뤄봤다.
크로스엔트로피는 먼저 수식으로 본다면
가 되는데
이는 실제 확률은 이지만, 우리가 어떤 분포를 모델링하여 정보량을 라고 하는 것이다.
이 것을 딥러닝에서 사용하는 것을 생각해봤을 때
실제 확률은 정답 데이터가 되고 는 우리가 만든 모델이 만들어내는 결과값
즉 실제 정답이 일 때 우리의 모델이 내는 확률은 라고 내뱉는 것이다.
근데 우리가 앞서 가 와 같을 때(같은 분포일 때) 엔트로피가 된다고 했기 때문에
라면 최적이 아니게 되는 것이다.
이는 가 와 같은 분포로 잘 모델링 되었을 때 크로스 엔트로피가 엔트로피가 된다로 볼 수 있다.
KL-Divergence는 수식을 보면 바로 이해가 가기 때문에 수식부터 보자.
KL-Divergence =
수식에서 보면 알 수 있듯이 크로스 엔트로피 - 엔트로피가 된다.
이는 우리가 모델링한 것이 실제 분포를 얼마나 잘 모사했는가를 볼 수 있는 수치다.
그럼 여기서 드는 의문이 왜 KL-Divergence가 아닌 크로스 엔트로피를 loss 함수로 쓰는 것인가 이다.
이는 예시를 들어보면 softmax에서 정답데이터는 [1, 0, 0], [0, 1, 0], [0, 0, 1]이런 식으로
one-hot vector로 표현되는데 정답에 해당되는 인덱스만 살아남아 값이 1로 되어 엔트로피가 0이 되어버린다.
그렇기 때문에 결국 크로스 엔트로피가 loss 함수로 되는 것이다.
이미 필요한 지식은 다 갖췄기 때문에 이번에도 수식으로 보자
이 것은 잘 보면은 KL-Divergence 와 동일한 형태이다.
즉 가 가 된다.
이 것을 잘 생각해본다면 독립일 때 확률은 곱으로 나타내므로 우리가 독립일 것이라고 가정을 해버린 것이다.
즉 얼마나 독립인가를 나타낸다고 볼 수 있다.