통계학 7강. 엔트로피와 KL 발산
정보의 양을 재는 단위를 만든 사람은, 그것을 열역학에서 빌려 왔습니다. 농담 반으로요.
풀고 시작
놀라움을 숫자로 재기
1948년 클로드 섀넌이 통신을 수학으로 다루면서 물었습니다. 메시지가 담은 정보의 양을 어떻게 재는가.
그가 찾은 답은 뜻밖에 단순합니다. 정보량은 놀라움의 크기입니다. 확률이 낮은 일이 일어날수록 정보가 큽니다. 확률 p인 사건의 정보량을 -log p로 정의하면 원하는 성질이 전부 나옵니다. 확률이 1이면 정보량 0(놀랍지 않음), 확률이 낮을수록 값이 커지고, 독립인 두 사건이 함께 일어나면 정보량이 더해집니다.
엔트로피(entropy) 는 이 정보량의 기댓값입니다. 그 분포에서 사건 하나를 관측할 때 평균적으로 얼마나 놀라게 되는가를 재죠. 공정한 동전은 엔트로피가 1비트로 최대이고, 앞면이 99% 나오는 편향된 동전은 결과가 뻔해서 엔트로피가 작습니다. 불확실성이 클수록 엔트로피가 큽니다.
이름의 유래에 재미있는 일화가 있습니다. 섀넌이 이 양을 뭐라 부를지 고민하자 폰 노이만이 조언했다고 합니다. "엔트로피라고 부르게. 열역학에 같은 이름의 양이 있으니 유리하고, 무엇보다 아무도 엔트로피가 뭔지 모르니 논쟁에서 늘 이길 걸세." 확인되지 않은 일화로 여러 판본이 전해지지만, 두 분야의 엔트로피가 같은 수식 형태를 갖는 것은 사실입니다.
의사결정나무는 놀라움을 줄여 갑니다
엔트로피가 기계학습에 처음 들어온 자리가 의사결정나무입니다.
데이터를 어떤 기준으로 쪼갤지 정해야 합니다. 좋은 기준이란 쪼갠 뒤에 각 덩어리가 더 순수해지는 기준이죠. 순수하다는 것은 한쪽으로 쏠려 있다는 뜻이고, 그것은 곧 엔트로피가 낮다는 뜻입니다.
정보 이득(information gain) 은 쪼개기 전 엔트로피에서 쪼갠 뒤 엔트로피의 가중평균을 뺀 값입니다. 이 값이 가장 큰 기준을 고르면 됩니다. 불확실성을 가장 많이 줄여 주는 질문을 먼저 하는 것이죠. 스무고개를 잘하는 사람이 쓰는 전략과 정확히 같습니다.
엔트로피 대신 지니 불순도를 쓰기도 하는데, 계산이 가벼우면서 결과가 비슷해 실무에서 널리 쓰입니다.
두 분포가 얼마나 다른가
엔트로피가 한 분포의 불확실성이라면, KL 발산(Kullback-Leibler divergence) 은 두 분포가 얼마나 다른지를 잽니다.
의미를 정확히 새기면 이렇습니다. 참된 분포가 P인데 Q라고 착각하고 부호를 짰을 때, 평균적으로 낭비하는 비트 수. 잘못 믿는 대가를 정보량으로 환산한 값이죠. P와 Q가 같으면 0이고, 다를수록 커지며, 절대 음수가 되지 않습니다.
여기서 중요한 함정이 하나 있습니다. KL 발산은 거리가 아닙니다. P에서 Q로 잰 값과 Q에서 P로 잰 값이 다릅니다. 대칭이 아니죠. 그래서 "거리"라는 말 대신 "발산"이라 부릅니다. 이 비대칭은 실무에서 실제 결과를 가릅니다. 어느 쪽을 최소화하느냐에 따라 근사 분포가 참 분포의 봉우리 하나에 몰리기도 하고 전체를 넓게 덮기도 합니다.
교차엔트로피는 KL 발산과 한 몸입니다. 교차엔트로피 = P의 엔트로피 + KL 발산인데, 앞의 항은 데이터가 정한 상수라 모형이 건드릴 수 없습니다. 따라서 교차엔트로피를 최소화하는 것은 KL 발산을 최소화하는 것과 같습니다. 분류 모형을 학습시킬 때 우리가 실제로 하는 일은 모형의 분포를 데이터의 분포에 가까이 끌어당기는 일입니다.
이 개념은 곳곳에 있습니다. VAE의 손실에 붙은 KL 항은 잠재변수 분포를 정규분포 쪽으로 당기고, 지식 증류는 작은 모형의 출력 분포를 큰 모형 쪽으로 당기며, 강화학습의 정책 갱신은 새 정책이 옛 정책에서 너무 멀어지지 않도록 KL로 묶습니다. 전부 같은 도구입니다.