정보
정보이론에서 정보란 예측 불가능한 정도를 나타내는 물리량이다.
확률 $p$의 정보는 수식적으로 다음과 같이 정의된다.
$$I(p) = -\log_2 (p)$$
그래프로 나타내면 다음과 같다.
즉, 확률이 1인 사건은 정보량이 0이고, 확률이 낮은 사건일수록 정보량이 크다.
이를 다음과 같이 생각해볼수도 있다.
어떤 사건이 일어날 확률이 높다는 것은 그 사건을 예상하기 쉽다는 것이고, 예상과 일치한다는 것은 새로운 정보가 없다는것이니까 정보량도 낮다고 볼수 있다.
entropy
어떤 확률변수 $X$에 대해 $X$의 엔트로피는 $X$의 정보량의 평균(기댓값)으로, 다음과 같이 정의된다.
$$H(X=x) = - \sum p(x_i) \log_2 p(x_i)$$
정보와 엔트로피의 단위는 $log$의 밑에 따라 다른데, 대부분의 경우에는 밑을 2로, 단위는 bit를 사용한다.
정보와 엔트로피의 개념을 좀더 직관적으로 이해하는 방법이 있는데, 바로 실제 정보를 인코딩하는 관점에서 보는거다.
예를들어서 핸드폰에 1, 2, 3, 4 중 하나의 숫자가 나타난다고 하자.
그리고 $X$를 화면에 나타난 숫자라고 하고, 각 확률은 다음과 같다고 하자.
$$P(X=1) = \frac{4}{8}, \;\;\; P(X=2) = \frac{2}{8}, \;\;\; P(X=3) = \frac{1}{8} \;\;\; P(X=4) = \frac{1}{8}$$
먼저 가장 naive 하게 인코딩을 한다고 하면 총 경우의 수가 4개 이니까 다음과 같이 할 수 있다.
$$X=1 : 00, \;\;\; X=2 : 01, \;\;\; X=3 : 10, \;\;\; X=4 : 11$$
그러면 인코딩된 길이의 기댓값은 다음과 같다.
$$E = \sum P(x_i) \cdot 2 = 2$$
하지만 정보량에 따라 다르게 인코딩을 하면 인코딩된 결과의 길이는 다음과 같다.
$$I(X=1) = 1, \;\;\; I(X=2) = 2, \;\;\; I(X=3) = 3, \;\;\; I(X=4) = 3$$
따라서 다음과 같이 인코딩을 해볼 수 있다.
$$X=1 : 0, \;\;\; X=2 : 00, \;\;\; X=3 : 000, \;\;\; X=4 : 001$$
그러면 인코딩된 길이의 기댓값은 $X$의 엔트로피와 같아진다.
$$E = \sum P(x_i) \cdot I(x_i) = H(X) = 1.75$$
(직접 계산해보길 바란다.)
즉, 정보량에 따라 인코딩한 경우 인코딩한 결과의 기댓값을 최소화 할 수 있고, 그 기댓값이 엔트로피에 해당하게 된다.
Cross entropy
Cross entropy란 두 확률분포간의 다른 정도를 구하는 방법이다.
$$C(P, \hat{P}) = - \sum P(x_i) \log_2 \hat{P}(x_i)$$
머신러닝에서 loss로 사용될때는 $P$는 실제 확률 분포, $\hat{P}$는 예측한 확률분포에 해당한다.
Cross-entropy는 두 확률분포가 비슷할수록 작은 값을 가지는데, 만약 두 확률분포가 같다면 이는 entropy값과 같다는 것을 알 수 있다.
이 식을 좀더 직관적으로 이해해 보면, 어떤 확률 $p$에 대해 $p$와 $I(p)$는 반비례 관계이므로 또다른 확률에 $q$에 대해 $p$와 $q$가 비슷할수록 $pI(q)$는 작을테고, 다르면 그만큼 $pI(q)$의 값은 클 것 이다.
그래서 직관적으로는 cross entropy를 loss로 사용할때 $P$와 $\hat{P}$의 위치를 바꿔도 학습이 될것같은데, 이거에 대해서는 아직 답을 찾지 못했다.
Kullback - Leibler divergence
KL divergence는 그냥 Cross entropy에 entropy를 빼서 두 확률변수가 같으면 0을 갖도록 한걸로 생각할 수 있다.
$$\begin{align}
KL(P||\hat{P}) &= C(P, \hat{P}) - H(P) \\ \\
&= - \sum P(x_i) \log_2 \hat{P}(x_i) + \sum P(x_i) \log_2 P(x_i) \\ \\
&= \sum P(x_i) \log_2 \frac{P(x_i)}{\hat{P}(x_i)}
\end{align}$$
Jensen - Shannon divergence
KL divergence는 두 확률분포의 거리 개념과 비슷하게 쓰일 수 있다.
하지만 symmetric하지 않기 때문에 KL divergence를 symmetric하게 만든 개념이라고 생각할 수 있다.
$$\begin{align}
JS(P||Q) &= \frac{1}{2} KL(P||M) + \frac{1}{2} KL(Q||M) \\ \\
M &= \frac{P + Q}{2}
\end{align}$$
'인공지능' 카테고리의 다른 글
Cross Entropy Derivation (0) | 2024.03.11 |
---|---|
CS234 Notes - Lecture 2 번역본 (0) | 2023.11.17 |
RNN - Recurrent neural network (0) | 2023.09.11 |
Optimizer 정리 (2) | 2023.08.24 |
Convolutional Neral Network (0) | 2023.08.15 |