0. 들어가며
•
Cross Entropy는 딥러닝에서 아주 기초적인 개념이고, 모르면 안되는 개념이다.
•
여러번 공부한 내용이지만, 그냥 그런갑다 하고 넘어가서 명확히 정리를 해 본적은 없었다.
•
회사에서 Regression Task만 하다가, 최근 VAE를 건드리는 일이 있었는데 이 내용이 기억이 안났다.
•
누군가 개념을 설명하라고 하면 못할것 같아서 이 참에 다시 정리해보려고 한다(2022/01/09)
1. Entropy
정보의 양
•
딥러닝에서 사용하는 Entropy 는 정보이론에서 출발한 개념이다.
•
정보이론은 응용 수학의 한 분야로 정보의 전달이나 저장을 위해 정보의 양 자체를 측정하는 학문이다.
•
정보를 정량화 하기위한 원리는 불확실한 사건일수록, 즉 가능한 결과가 많을 수록 정보량이 크다는 것이다.
•
이 개념은 특정 정보를 표현하기 위해 필요한 질문의 수로 부터 출발했다. 예를 들어서 설명하면
[0,1] 로만 정보를 주고 받을 수 있는 통신 상황을 가정해 보자.
1. 동전 던지기 5회의 결과를 주고 받아야 한다고 생각해보자.
◦
솔루션 : “앞면인가요? 맞으면 0, 틀리면 1을 보내주세요”
◦
이러면 5번의 질문으로 서로 완전한 정보를 주고 받을 수 있다.
2. 주사위 던지기 5회의 결과를 주고 받아야 한다고 생각해보자.
◦
솔루션 : ”3보다 큰가요? → 5보다 큰가요? ⇒ ...” (Binary Search)
◦
최소 2번, 최대 3번 물어보면 1회의 주사위 던지기 결과를 알 수 있다.
◦
주사위 던지기 5회 * 평균질문 2.5회 즉 약 12.5번의 질문이면 정보를 주고 받을 수 있다.
3. 알파벳 5개를 주고 받아야 한다고 생각해보자.
◦
솔루션 : “앞 절반(A~M)에 속하나요? ⇒ ...” (Binary Search)
◦
이때 필요한 질문의 갯수를 다음과 같은 공식으로 표현할 수 있다.
→
→
◦
알파벳 5개 * 평균질문 4.7회 즉 23.5번의 질문이면 정보를 주고 받을 수 있다.
•
이 내용을 일반화 한 것이 정보량이다.
•
이 개념을 정립한 논문에선 정보를 , 횟수를 , 가능한 결과의 수를 로 표현해 다음과 같은 식을 세운다.
◦
엔트로피
•
정보의 양이 무엇인지 배웠으니, 엔트로피에 대해 알아보자
[1,2,3,4]를 뽑는 기계가 있고 여전히 [0,1] 로만 통신한다고 가정해 보자
기계 A는 조편성 용도로 쓰이며, 1,2,3,4 를 모두 동일한 확률(0.25)로 뽑는다.
기계 B는 경품 추첨 용도로 쓰이며, {1 :0.125, 2 : 0.125, 3:0.25, 4:0.5} 확률로 뽑는다.
이 기계의 뽑기 결과를 전달하기 위해 질문 갯수를 계산한다고 생각해 보자
◦
기계 A는 위의 식을 그대로 활용하면 된다. ⇒ 2번의 질문이면 된다.
◦
기계 B는 조금 복잡하다. 우선 모든 숫자가 나올 확률이 동일하지 않기때문에 다르게 접근해야 한다.
▪
“4(등)이 뽑혔나요? ⇒ 3(등)이 뽑혔나요 ⇒ ...”
▪
이러면 위의 정보량 식이 작동하지 않고 확률과 필요한 질문 횟수를 곱해서 계산해야 한다.
▪
= 1.75번
◦
만약 각 기계의 100회 결과를 전달해야한다면?
▪
기계 A : 약 200번의 질문 / 기계 B: 약 175번의 질문
◦
필요한 질문의 갯수가 정보량이므로 기계 A가 기계 B보다 생산하는 정보량이 크다고 말할 수 있다.
◦
즉 결과가 랜덤할수록(불확실할수록) 정보량이 커진다고 정의할 수 있으며
◦
수학자 섀년이 이러한 정보량에 대한 측정을 ‘엔트로피’ 라고 명명했으며 단위를 bit로 정의했다.
•
그 관계를 다음과 같은 공식으로 표현할 수 있다.
•
즉 가능한 결과의 수 는 발생확률의 역수와 같다는 것이다.
•
이 식을 우리가 가정한 이산확률분포 아래에서 횟수 n에 대해 일반화 하면 다음과 같다.
•
위 식이 엔트로피에 대한 공식이다.
•
결국 엔트로피는
◦
(1) 특정 사건의 정보를 표현하기 위해
◦
(2) 세워진 최적의 질문 전략 아래에서
◦
(3) 필요한 질문의 갯수의 기댓값이다.
2. Cross Entropy
질문 전략
•
위에서 말한 기계 A,B를 P,Q로 이름을 바꿔서 크로스 엔트로피를 설명하려 한다.
•
숫자마다 확률이 다른 기계이며 {1 :0.125, 2 : 0.125, 3:0.25, 4:0.5} 확률로 뽑는다.
•
엔트로피는 1.75이다.
•
4개 숫자의 확률이 동일한 기계 ⇒ 이산 Uniform Distribution을 따르는 기계이며
•
엔트로피()는 2다.
만약 기계 Q의 질문 전략 (확률분포)을 P에 적용하면 어떻게 될까?
•
기존은 였으나
•
이제는 ⇒ 2로 엔트로피가 커졌다.
만약 기계 P의 질문 전략 (확률분포)을 Q에 적용하면 어떻게 될까?
•
기존은 였으나
•
이제는 ⇒ 2.25로 엔트로피가 커졌다.
•
이렇게, 특정 문제에 대해 특정 전략을 쓸 때 질문 갯수의 기댓값이 크로스 엔트로피 이다.
•
이때 문제도 확률 분포이고, 전략도 확률 분포이다.
•
당연히 Cross Entropy가 가장 작아지는 지점은 결국 최적의 전략(Entropy)일때 이다.
•
수식으로 크로스 엔트로피를 표현하면 다음과 같다.
◦
일반적으로 머신러닝에서 가 정답 확률, 가 예측 확률이 된다.
3. KL - Divergence
분포의 차이
•
KL -Divergence는 분포의 차이를 계산하는 함수라고 자주 설명한다.
•
이 설명을 조금 더 명확히 바꾸면 다음과 같다.
•
“어떤 이상적인 분포에 대해 그 분포를 근사하는 다른 분포로 샘플링하면 발생할 수 있는 엔트로피 차이”
•
즉 크로스 엔트로피 개념과 깊게 연관되어 있는데, 두 개념의 수식을 통해 연관성을 찾아보자.
KL - Divergence 수식
(Discrete)
Cross Entropy 수식
•
Cross Entropy에서 를 뽑고 나머지를 정리하면 KL-Divergence의 수식이 나온다.
•
이를 통해 얻을 수 있는 인사이트는 다음과 같다.
1.
•
Cross Entropy는 정답분포의 엔트로피와 예측분포와의 분포차이의 합이다
2.
•
KL-Divergence는 예측분포로 정답을 샘플링했을때의 엔트로피와 정답 분포의 엔트로피의 차이다.
•
딥러닝으로 돌아와서, Cross Entropy를 Loss로 사용한다면
•
는 정답분포의 엔트로피 즉, 상수이므로 KL-Divergence를 Loss로 사용하는 것 과 같다.
KL - Divergence의 특징
KL - Divergence는 항상 0보다 크거나 같다 ( )
•
•
즉 ≥ 이므로 KL-Divergence는 직관적으로 0보다 크거나 같을 수 밖에 없다.
KL - Divergence는 거리가 아니다.
•
KL - Divergence에 대해 가장 자주 들을 수 있는 설명은 “(1)분포의 차이고 (2)거리가 아니다” 이다.
•
거리가 아닌 이유는 KL-Divergence의 비대칭적인 특징 때문이다.
•
⇒
•
만약 거리라면 부터 를 재나, 부터 를 재나 값이 같아야 하는데 그렇지 않다.
4. 정리
1.
엔트로피는 정보의 양이다.
2.
엔트로피는 불확실성(랜덤성)이 커질수록 증가한다.
3.
크로스 엔트로피는 특정 분포를 다른 분포로 가정하고 측정한 불확실성이다.
4.
크로스 엔트로피는 엔트로피 + KL-Divergence 이다.
5.
KL - Divergence는 두 분포의 차이를 계산한다.
6.
KL - Divergence는 크로스 엔트로피 - 엔트로피이다.
7.
KL - Divergence는 항상 0보다 크거나 같다.
8.
이러한 특징 때문에 딥러닝에서 확률분포를 모델링할때 Loss 함수로 사용된다.
9.
크로스 엔트로피를 Loss로 활용하면 엔트로피는 상수이므로 KL - Divergence를 Minimize하는 것이다.