인공지능/Etc

Information Theory

xeskin 2019. 8. 4. 18:39
반응형

정보이론은 1948년 Claude Shannon이 <A mathematical theory of communication>이라는 논문을 통해 창시한 이론입니다. Shannon은 어떻게 하면 통신채널 간의 정보를 '잘' 주고받을 수 있을지 고민을 했었습니다. Shannon은 이 논문에서 통신채널의 입력과 출력을 확률변수로 모델링하고 통신채널은 이들 사이의 변환으로 모델링하였습니다.

 

머신러닝을 공부할 때, 특히 밀도 추정(특히 생성모델)을 공부할 때 KL Divergence라는 용어를 많이 보셨을 겁니다. 간단한 예로 시작하여 self-information, entopy, KL Divegence 등이 무엇인지 알아보도록 하겠습니다.

 

정보이론에서는 발생 가능성이 적은 사건에 대해서 발생 가능성이 큰 사건을 아는 것보다 더 많은 정보를 얻을 수 있다고 생각합니다. 예를 들어서, "오늘 아침에 해가 떴다."라는 데이터는 전송할 필요가 없을 정도로 정보가 적습니다. 하지만 "오늘 아침에 일식이 떴다."라는 데이터는 그보다 정보가 더 많습니다. 

 

그리고 "밖에 바람이 분다."라는 데이터를 생각해봅시다. 이는 "오늘 아침에 일식이 떴다."와는 독립적인 사건입니다. 이때 우리가 두 데이터의 정보량을 같이 고려하고 싶다면 각각의 정보량을 계산해서 더할 수 있어야 하고 이와 같아야 할 것입니다.

 

그래서 생각해보면 정보를 계량화하려면 다음과 같은 성질들을 가져야 함을 알 수 있습니다.

1. 발생 가능성이 큰 사건은 정보량이 적어야 한다. 반드시 발생하는 사건에는 아무런 정보가 없어야 한다.

2. 발생 가능성이 낮은 사건은 더 많은 정보량을 갖는다.

3. 독립 사건의 정보량을 더할 수 있어야 한다.

 

이 세 성질을 모두 충족하는 사건 $X=x$의 self-information은 다음과 같이 정의됩니다.

 

$I(x)=-log P(x)$

 

로그의 밑은 관습적으로 $'e'$를 사용합니다. 이때의 단위는 $nat$입니다. 로그의 밑을 $2$로 사용하게 되면 단위는 $bit$라고 부릅니다. 밑은 무엇을 다루느냐에 따라서 맥락이 달라지면 다르게 쓰는데, 크게 신경 쓰지 않으셔도 괜찮습니다. 

 

방금 알아본 self-information은 하나의 사건에 대해서만 정보를 다룹니다. 하지만 우리가 관심 있고 자주 다루는 것은 확률 분포에서의 정보량입니다. 우리는 이를 Shannon entropy라고 부르고 self-information들의 기댓값으로 정의됩니다. 어떤 확률분포 $P$애 대한 Shannon entropy $H(P)$는 다음과 같습니다.

 

$H(P)=H(x)=\mathbb{E}_{x{\sim}P}[I(x)]=-\mathbb{E}_{x{\sim}P}[logP(x)]$

 

Shannon entropy라고 부른다고 했지만 보통 논문이나 교재에서는 entropy라고 대개 이야기합니다.

 

위와 같이 간단하게 정의한 것들은 꽤 유용한 성질들을 갖고 있습니다. 직접 계산해본다면 알 수 있겠지만 엔트로피는 비균일 분포의 엔트로피가 균일 분포에서의 엔트로피보다 낮습니다. 이는 엔트로피를 무질서의 척도로서 해석을 하는 것과 연관 지을 수 있고 이는 통계역학에서 이야기하는 엔트로피와 같은 꼴임을 유도할 수 있습니다.

 

이 관점의 엔트로피는 다음과 같습니다. 먼저 $N$개의 동일한 물체가 몇 개의 통 안에 들어있다고 가정해 봅니다. 이때 $i$번째 통 안에 $n_{i}$개의 물체가 담기도록 할 것입니다. 물체를 통 안에 담는 방법의 가짓수에 대해서 생각해봅시다. 첫 번째 물체를 선택하는 데는 $N$가지 방법이, 두 번째 물체를 선택하는 데는 $(N-1)$가지 방법이 있을 겁니다. 이런 식으로 끝까지 하면 $N$개의 물체를 통에 나누어 담는 데는 $N!$가지의 방법이 있는 것을 알 수 있습니다. 하지만 통 안에서 물체들이 어떤 순서로 배치되어 있는지는 중요하지 않습니다. $i$번째 통에는 물체를 정렬하기 위한$n_{i}!$가지 방법이 있을 것이고, 이만큼 중복이 생긴 것을 제거해주면 $N$개의 물체를 통에 넣는 가짓수는 다음과 같이 됩니다.

 

$W=\frac{N!}{\Pi_{i}n_{i}!}$

 

$W$는 다중도(multiplicity)라고 합니다. 엔트로피는 다중도에 로그를 취해서 적절한 상수로 나눈 것입니다

.

$H=\frac{1}{N}logW=\frac{1}{N}logN!-\frac{1}{N}\sum_{i}logn_{i}!$

이때 $\frac{n_{i}}{N}$을 그대로 유지시키고, $N\to \infty$을 취하면 스털링 근사에 의하여 다음과 같은 식을 얻게 됩니다.

 

$H=-\displaystyle\lim_{N\to \infty}\displaystyle\sum_{i}(\frac{n_{i}}{N})\log(\frac{n_{i}}{N})=-\displaystyle\sum_{i}p_{i}\log p_{i}$

 

이제 $x$와 $y$를 함께 뽑는 결합 분포 $P(x,y)$를 생각해봅시다. 이미 $x$에 대한 정보가 미리 알려져 있다면, 이에 해당하는 $y$값을 알아내기 위해 필요한 정보는 $-log P(y|x)$로 계산할 수 있을 것입니다. 따라서 y를 구하기 위해 필요한 추가적으로 필요한 정보량은 다음과 같이 계산할 수 있습니다.

 

$H[y|x]=\iint P(x,y)log P(y|x) dy dx$

 

이를 $x$에 대한 $y$의 conditional entropy라고 합니다.

 

이런 개념들이 머신러닝에는 어떻게 쓰일 수 있는지 한번 생각해봅시다. 우리가 잘 모르는 분포 $P(x)$를 고려해 봅시다. 우리는 이걸 잘 근사하기 위해서 모델을 만들었고, 그 결과로 분포 $Q(x)$를 구했다고 칩시다. 우리가 $Q(x)$를 통해서 $x$를 수신자에게 보내기 위해 코드를 만든다고 하면 진짜 분포 $P(x)$가 아닌 $Q(x)$가 쓰였기 때문에 정보량이 더 필요합니다. 이때 추가적인 정보량은 각 확률분포의 엔트로피 차가 될 것입니다. 이는 다음과 같이 주어집니다.

 

$D_{KL}(P||Q)$ $=$ $\mathbb{E}_{x{\sim}P}[logP(x)]$ $-$ $\mathbb{E}_{x{\sim}P}[logQ(x)]$

 

이를 $P$와 $Q$간의 relative entropy 혹은 KL Divergence(Kullback-Leibler divergence)라고 부릅니다. 

 

우리가 모델링하려는 분포 $P(x)$로부터 독립적으로 추출한 $N$개의 샘플들로 이루어진 데이터 집합 $X=[{x_{1},...,x_{N}}]$을 생각해봅시다. 그리고 어떤 매개변수 $\theta$에 대한 분포 $Q(X|\theta)$를 이용해서 $P(x)$를 추정할 수도 있을 것입니다. 여기서 우리가 $\theta$를 구하는 한가지 방법은 $P(x)$와 $Q(x|\theta)$간의 KL divergence를 최소화하는 방향으로 $\theta$를 찾는 것입니다. 그런데 우리는$P(x)$에 대해서는 정확히 알지 못합니다. 하지만 우리가 뽑은 데이터 집합 X를 이용하면 유한합으로 이를 계산할 수 있습니다. 이는 다음과 같습니다.

 

$KL(P||Q)\simeq\frac{1}{N}\sum_{1}^{N}[{-logQ(x_{n}|\theta)+logP(x_{n})}]$

 

오른쪽 변의 두 번째 항은 $\theta$와 독립적입니다. 그리고 첫 번째 항은 $Q(x|\theta)$에서의 negative log-likelihood를 계산한 것과 같습니다. 두 번째 항은 $\theta$와 독립적이기 때문에 항상 일정할 것이며, 변하는 것은 첫 번째항 뿐입니다. 따라서, KL divergence를 최소화하는 것은 likelihood function을 최대화하는 것과 동일합니다. 즉, KL divergence를 최소화하는 것은 MLE(Maximum Likelihood Estimation)와 본질적으로 같음을 알 수 있습니다.

반응형

'인공지능 > Etc' 카테고리의 다른 글

[CV] Receptive Field  (0) 2020.06.11
Epoch, Step, Batch size  (0) 2020.05.17
CNN 모델 간단 정리  (0) 2020.01.19
MLE (Maximum Likelihood Estimation)  (0) 2019.10.12