Data & Research

[Machine Learning] 정보(Information) 이론 기초

물박사의 저장공간 2021. 11. 5. 08:57

이번 포스팅에서는 엔트로피, KL-Divergence와 같은 기초적인 정보이론에 대해서 알아보겠습니다

사실 저는 '엔트로피'의 개념을 Thermal/Statistical physics에서 먼저 접했었는데요(맥스웰의 도깨비가 어쩌구... 스털링 근사를 해서 어쩌구...) 결국 물질의 상태를 경우의 수로 따져 확률/통계적인 관점에서 열역학을 접근하는 방식이죠.

 

일단 우리가 일상 생활에서 쓰는 "정보"라는 단어와 함께 엔트로피(Shannon's Entropy)의 수학적인 정의를 알아볼까요

 

정보는 놀라움의 정도. 그러니까 우리가 일상에서 흔히 발생하는 "9시에 학교 수업종이 울린다"와 같은 것들은 정보값이 굉장히 낮고 "오늘 학교에 BTS가 와서 공연을 한다"와 같이 자주 발생하지 않는 사건은 정보값이 높은 것이죠.

(우리 직관과도 어느정도 연관성이 있죠?)

 

더 구체적인 예시를 볼까요?

2020년 7월 기준 FIFA랭킹입니다.

벨기에와 앵귈라가 축구를 한다고 해보겠습니다. 그리고 벨기에가 앵귈라를 이길 확률이 한 95%정도(그러니까 앵귈라가 이길 확률은 5%정도)라고 해보겠습니다. 무승부는 없구요(태클금지)

이 때, 벨기에가 앵귈라를 이기는 사건에 대한 정보량은 얼마나 될까요? 또 그 반대는요?

앵귈라가 벨기에를 이길 사건의 정보값이 훨씬 높습니다(더 놀랍습니다)

 

자 이제, 특정 사건(Event)이 아니라 전체 확률 분포에 대해서 평균적으로 얼마나 더 놀라운 지 따져보면 어떻게 될까요?

이것이 엔트로피의 개념입니다.

 

벨기에와 앵귈라가 축구 경기를 해서 나올 수 있는 결과는

1) 벨기에가 이기거나 2) 앵귈라가 이기는 2가지 사건으로 

구성되어 있는데 1)사건 혹은 2)사건 개별사건의 놀라운 정도를 따지는 것이 정보량(Information)이었다면

이 1), 2)를 포함하고 있는 전체세트(벨기에와 앵귈라가 축구를 한다)가 평균적으로 얼마나 놀라운지를 따지는 것이 엔트로피입니다.

위에서 살펴본 "벨기에와 앵귈라의 축구 경기"와 비교하기 위해 "벨기에와 프랑스의 축구 경기"를 생각해볼까요?

(벨기에와 프랑스 경기에서는 벨기에가 이길 확률이 50%라고 해봅시다) 

 

그럼, 엔트로피를 계산해보면

여기서 궁금한 분들이 있을수도 있어요. "아니 개별 사건만 따지면(총 4가지가 있죠) 앵귈라가 벨기에를 이기는 경우가 가장 놀랍지 않느냐! 근데 왜 벨기에vs프랑스 경기가 평균적으로 놀랍다는거지?"

자.... 여러분 여러분이 로또를 사는 경우와 은행에 적금을 넣는 경우 어떤 쪽이 평균 수익률이 높죠? 네. 은행에 돈을 넣는 경우죠. 로또당첨되면 어마무시한 수익이 생기는 것이지만 그 확률도 어마무시하게 낮기 때문입니다. (하나 코멘트하자면 저희 지도교수님이 "평균" 용어가 아니고 "기대값"이 올바른 용어라고 항상 그러셨는데.. 여기서 제가 사용한 평균이라는 의미를 Expectation의 의미로 찰떡같이 이해해주시면 감사하겠습니다)

 

여기까지 살펴보면 우리가 통계역학에서 따지는 엔트로피와 열역학 제 2법칙 등이 어떻게 연결되는지 감이 오실 수도 있습니다. 통계역학에서 엔트로피를 '무질서도'라고도 하잖아요? 그래서 고립계에서는 자연현상이 무질서도가 낮아지지 않는 방향으로 진행된다는 것이 열역학 제 2법칙이구요. 

물분자와 잉크 분자가 따로따로 질서정연하게 모여있는 것보다는 물분자와 잉크분자가 마구 뒤섞여 있는 것이 더 무질서 합니다(더 엔트로피가 높습니다) 그래서 가만히 두면 자연히 두 물질이 마구 섞이는 방향으로 반응이 진행됩니다.

 

잠시 옆으로 빠졌는데, 이산확률분포/연속확률분포 각각에서 엔트로피가 가장 높은 분포는 어떤 것일까요? 이산 확률 분포는 축구예시에서도 추론 가능하죠? 확률이 특정 사건에서 높게 나오는 것보다는 골고루 퍼져있는 분포. Uniform distribution일 겁니다. 그리고 연속확률분포에서는 연산을 해보면 Gaussian(Normal) distribution이에요. 자세한 내용은 아래 블로그에 아주 잘 정리되어 있습니다. (이 블로그에는 엔트로피에 붙이는 로그의 밑을 2로 설정했을 때

엔트로피=데이터전송에 필요한 평균 bit수 

가 되는 이유, Mutual Information의 정의 역시 알려주고 있네요)

http://norman3.github.io/prml/docs/chapter01/6.html

 

6. Infomation Theory

역시나 뒷 부분으로 오면 올 수록 자세한 설명 없이 대충 이런게 있다 정도로만 설명이 진행된다.

norman3.github.io

 

엔트로피 외에도 우리가 머신러닝이나 딥러닝에서 많이 사용하는 지표를 짚어보고 마치도록 하겠습니다.

우리 Variational AutoEncoder나 Variational Inference할 때 많이 등장하는 Kullback-Leibler divergence는 확률분포 2개가 얼마나 유사한지를 알려주는 값입니다. 다만 교환법칙이 성립하지는 않기 때문에 절대적인 비교를 위한 Metric으로 사용할수는 없습니다.

 

그리고 Cross-Entropy는 확률분포를 다른 분포로 대체하였을 때, 추가로 필요한 정보량을 뜻합니다.

혹시 저번 로지스틱 회귀 때 기억나시나요?

https://trillionver2.tistory.com/entry/%EB%A1%9C%EC%A7%80%EC%8A%A4%ED%8B%B1-%ED%9A%8C%EA%B7%80%EB%B6%84%EC%84%9D-Logistic-Regression

 

로지스틱 회귀분석 (Logistic Regression)

선형 회귀분석은 "원하는 변수(연속형 변수)를 예측(모델링)하기 위한 목적으로 해당 변수와 상관관계가 높은 다른 변수를 가지고 빗대어 설명하는 것"이라고 말씀드렸는데요, 만약 원하는 변수

trillionver2.tistory.com

 

원래 궁극적으로 목표로 삼는 분포는 y의 분포죠. 하지만 우리가 모델링을 통해 만들어낸 분포는 phi(x)가 되구요

(로지스틱 회귀에서는 로지스틱 함수를 이용해서 이걸 만들어낸 것이고, Neural network 등 다른 방식으로 만들어낼 수도 있을 겁니다) 그럼 원래 분포와 우리가 생성해 낸 분포가 다르기 때문에 추가로 필요한 정보량이 cross-entropy가 되는 것이고, 이 값을 최소화하는 것이 우리의 목적 함수가 되는 것입니다.

 

그럼 이번 포스팅은 마치도록 하겠습니다.