딥러닝에서 사용되는 KL divergence 를 이해하는 것이 목표입니다. KL divergence를 수학적으로 자세히 설명할 것이지만, 일단 의미만 먼저 이해하면 아래와 같습니다.
"두 확률분포의 차이를 나타내주는 값이다."
KL divergence 를 이해하려면 사전지식이 필요합니다. 정보량, 엔트로피, 크로스엔트로피입니다. 차례대로 설명하겠습니다. 확률분포를 다룰 때는 편의상 1차원만을 고려하겠습니다.
정보량이라고 하면 많은 양의 텍스트를 떠올리기 쉬운데 여기서 다룰 정보량은 정보이론이라는 학문에 등장하는 정보량입니다.
기존에 흔히 알던 개념이 아니므로 정보량의 정의가 무엇인지 먼저 알아봅시다.
정보이론에서 정보량은 '놀라움의 정도'를 말합니다. 여기서 놀라움은 이런 유형의 놀라움입니다.
"아니 이런 사건이 발생했다고?"
발생하기 어려운 사건이 발생할 수록 놀라움이 커집니다. 다른 말로 하면 확률이 낮은 사건이 발생하면 놀라움이 큰 것입니다. 확률이 낮을 수록 놀라움이 크다는 것은 두 양이 반비례한다는 것을 뜻합니다.
놀라움 = 1/확률
놀라움의 정도를 정보량이라고 정의했으므로 정보량과 확률은 반비례합니다.
정보량 = 1/확률
확률은 0과 1 사이의 값을 갖습니다. 정보량을 위와 같이 정의할 경우 확률이 0에 가까울 수록 정보량은 무한대가 되고, 확률이 1일 때 정보량이 1이 됩니다. 확률이 1인 사건이 발생한다고 놀랄 사람은 없습니다. 놀라움 자체가 없는 것입니다.
확률이 1인 경우의 정보량을 0이 되게 하면 개념이 직관적으로 더 잘 다가올 것 같습니다. 방법이 있습니다. 위 식의 우변에 로그를 취하는 것입니다. 어떤 사건 x의 정보량을 I(x) 라고 놓는다면, 정보량 I(x)는 아래와 같이 정의할 수 있습니다.
$I(x)=\log_{a}\frac{1}{p(x)}$
이제 확률이 0에 가까울 수록 정보량은 무한대가 되고 확률이 1에 가까울 수록 정보량이 0이 되도록 정의되었습니다. 로그의 밑인 a 는 사용자가 결정하면 됩니다. 2로 놓을 경우 정보량의 단위는 비트가 되고, e로 놓을 경우 정보량의 단위는 nat(natural unit)이 됩니다.
확률변수에서 정보량을 구해봅시다. 확률변수 X의 확률함수는 아래와 같이 정의된다고 합시다.
$p(x)=\left\{\begin{matrix}
0.5 & (x=1) & \\
0.4 & (x=2) & \\
0.1 & (x=3) &
\end{matrix}\right.$
확률변수 X의 정보량함수를 $I_{x}(x)$라고 놓으면 정보량을 아래와 같이 계산할 수 있습니다. 로그의 밑은 e로 두겠습니다.
$I(1)=\ln\frac{1}{0.5}=\ln2$
$I(2)=\ln\frac{1}{0.4}=\ln2.5$
$I(3)=\ln\frac{1}{0.1}=\ln10$
'기타 강의 > KL divergence 의 이해' 카테고리의 다른 글
[KL divergence 의 이해] 6. 그냥 크로스 엔트로피를 쓰면 되는 이유 (0) | 2023.10.06 |
---|---|
[KL divergence 의 이해] 5. KL divergence 왜 항상 0보다 같거나 큰가 (증명) (0) | 2023.10.06 |
[KL divergence 의 이해] 4. 크로스 엔트로피와 KL divergence (0) | 2023.10.05 |
[KL divergence 의 이해] 3. 엔트로피가 높은 확률분포란? (0) | 2023.10.05 |
[KL divergence 의 이해] 2. 엔트로피 (확률분포의 정보량) (0) | 2023.10.05 |
댓글