기계 학습에서는 수학을 많이 사용한다. 특히, 대용량의 벡터 연산을 사용하고 데이터의 불확실성을 다루며 오류를 최소화하는 매개변수를 찾는 일을 모두 수학으로 처리한다. 따라서, 딥러닝을 공부함에 있어서 수학은 필수적으로 공부해야하는 분야이며 딥러닝 기초 수학 포스트에서는 다음 아래의 3가지 내용을 다룬다.
- 선형대수
- 확률 및 통계
- 최적화
이번 포스트에서는 확률과 통계 파트의 정보이론을 간단하게 소개하도록 하겠다. 사실 전공분야가 아니기 때문에 딥한 내용까지 다루지 못하는점 미리 죄송하다. 확률과 통계 파트의 앞쪽 부분인 Likelihood(우도)와 Maximum Likelihood Estimation(최대우도추론)에 대한 내용을 여기에 작성하였으니 궁금하면 이쪽에서 보면 될 것 같다.
이제 정보이론에 대한 내용을 소개해보도록 하겠다. 정보가 많다는 것은 무엇을 의미할까? 잘 모르겠으면 다음 예시를 생각해보길 바란다.
- 내일 지구가 멸망한다.
- 나는 오늘 밥을 먹었다.
두 예시가 만약 사실이라고 한다면 둘 중 어떤 정보가 더 많은 메세지를 전달할까? 당연히 1번일 것이다. 그렇다면 1번 정보는 2번 정보에 비해 몇배 더 많은 정보를 가질까? 이 물음에 답하는 것이 바로 정보이론(Information Theory)이다.
정보이론에 따르면,
- 사건이 자주 발생할 수록 정보는 낮아진다.
- 확률적으로 일어나기 힘든 사건은 매우 높은 정보를 갖는다.
- 독립사건(independent event)은 추가적인 정보량(additive information)을 가진다.
그렇다면 위의 내용을 만족하며 수치화를 할 수 있는 방법은 뭐가 있을까?
자기 정보와 엔트로피
확률변수 $x$의 정의역을 $\{e_1,e_2,e_3,\cdots ,e_k\}$라고 하자. 정보이론에서는 다음 아래의 식으로 정보량을 계산하고 이 정보량을 자기 정보(self-information)이라고 한다.
$$ h(e_i)=-log_2 P(e_i) \\ h(e_i)=-log_e P(e_i)$$
밑이 2인 로그라면 이때의 단위를 비트(bit)라고 하고 자연로그라면 단위는 나츠(nat)라고 한다. 자기 정보는 특정 사건에 정보량을 알려주는 반면 엔트로피(Entropy)는 확률분포의 무질서도 혹은 불확실성(Uncertainty)를 나타낸다. 이산/연속 확률 분포에 대해 엔트로피는 다음 아래와 같이 나타낸다.
$$ H(x) = -\sum_{i=k} P(e_i)logP(e_i) \\ H(x)=-\int_\mathbb{R} P(x)logP(x)$$
윷놀이로 예를 들어보자. 우리는 이미 도, 개, 걸, 윷, 모 라는 사건이 있다는 것을 알고 있고 이들이 확률적으로 어떻게 계산되는지도 알고 있을 것이다(윷은 각각 독립적이며 앞/뒤가 나올 확률이 각각 0.5로 동일하다고 가정). 혹시 모르는 사람을 위해서 걸을 예로 들어 계산하면,
$$ P(X=걸)=4C3({1\over 2})^3({1\over 2})^1=0.25 $$
일 것이다. 각각 확률이 ${4\over 16}, {6\over 16}, {4\over 16}, {1\over 16}, {1\over 16}$이므로 윷에 대한 엔트로피는 다음 아래처럼 구할 수 있다.
$$\begin{align}H(x) &= -({4\over 16}log{4\over 16} + {6\over 16}log{6\over 16}+{4\over 16}log{4\over 16}+{1\over 16}log{1\over 16}+{1\over 16}log{1\over 16}) \\ &= 2.0306\,bit \end{align}$$
교차 엔트로피와 KL다이버전스
위의 엔트로피는 한 확률분포의 무질서도를 측정한다. 만약 두 확률간 무질서도를 측정하고 싶다면 어떻게 해야할까?
만약 같은 확률변수에 대해 정의되어 있는 확률분포라면(주사위 던지는 것과 윷을 던지는 것은 적용할 수 없다) 교차 엔트로피(Cross-entropy)로 정의할 수 있다. 그에 대한 정의는 다음 아래와 같다.
$$ H(P,Q)=-\sum_x P(x)logQ(x) $$
위의 식을 이용하여 다음 아래와 같이 변형하면,
$$\begin{align} H(P,Q) &=-\sum_x P(x)logQ(x) \\ &= -\sum_x P(x)logP(x) + \sum_x P(x)logP(x) -\sum_x P(x)logQ(x) \\ &= H(P)+\sum_x P(x)log{P(x)\over Q(x)} \end{align}$$
위에서 정의한 것처럼 $H(P)$는 $P$의 엔트로피를 의미한다. 우리는 두번째항인 $\sum_x P(x)log{P(x)\over Q(x)}$를 KL 다이버전스(KL divergence)라고 하고 위의 식은 P와 Q의 교차 엔트로피는 P의 엔트로피와 P,Q의 KL 다이버전스의 합으로 이루어진다.
KL 다이버전스는 두 확률분포가 얼마나 다른지 개념적으로 거리 개념을 내포하고 있지만 수학적으로 거리가 되기 위해서는 $H(P, Q) = H(Q, P)$가 성립해야하지만 그렇지 않기 때문에 엄밀하게 거리는 아니다.
이번 포스트에서는 정보, 자기-정보, 엔트로피 및 교차 엔트로피 그리고 KL 다이버전스에 대한 내용을 다루었다. 딥러닝 기초 수학은 다음 포스트의 최적화 부분을 끝으로 수학적으로 비교적 얕은 내용을 다루었다. 최적화 이론 이후에는 보다 심층적인 수학 내용을 바탕으로 정리를 해볼 생각이다.
이 포스트는 "기계 학습(오일석 지음)"을 바탕으로 작성되었습니다.
'Data Science > Deep Learning' 카테고리의 다른 글
딥러닝: 다층 퍼셉트론(Multi-layer perceptron) (0) | 2022.10.18 |
---|---|
딥러닝 기초 수학: 경사하강법 (0) | 2022.10.12 |
딥러닝: 퍼셉트론 (1) | 2022.10.07 |
딥러닝 기초 수학: 최적화 (0) | 2022.10.04 |
딥러닝 기초 수학: 선형대수 (0) | 2022.09.30 |