[Machine Learning Notes] Classifier / MLE / KL Divergence
머신러닝을 공부하면서 생각했던 것들을 몇 개 정리해놓고자 포스팅합니다. 처음은 Classifier와 Maximum Likelihood Esimation (MLE), KL Divergence의 관계에 대해서 정리했던 노트입니다. KL Divergence나 MLE 같은 기초적인 개념의 설명은 생략할 예정입니다.
Classifier / MLE / KL Divergence
Bayes’ rule
일반적인 관점에서의 Bayes’ rule을 설명하는 것 중 마음에 들었던 설명의 포스팅 링크 link를 보고 오시는 것을 추천한다. 아래는 MLE를 통해 모델의 parameter를 최적화하는 과정에 집중하여 설명흘 진행한다.
다음은 Bayes’ rule이다.
\[p(A\vert B)=\frac{p(B\vert A)p(A)}{p(B)}\]이며, 이때 $B$는 보통 observation (관찰), $p(A)$는 prior (사전 확률), $p(B\vert A)$는 likelihood (우도), $p(B)$는 evidence (증거확률), $p(A\vert B)$는 posteior (사후 확률)를 뜻한다.
우리의 경우에 한해, $B$는 관찰 = 데이터, $A$는 미리 결정된 조건 (condition)을 뜻한다. 즉 A와 B의 관계인 우도 $p(B \vert A)$는 “정해진 조건 A 아래에서 관찰 B가 이루어질 확률”로 생각해볼 수 있다. 머신러닝의 관점에서, 우리는 이 관찰을 이루어내는 조건을 모델링하고 싶다.
Normal distribution에 대해 생각해보자. $\mathcal N(x;\mu, \Sigma)=\frac{1}{D}\exp({-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)})$ 이 distribution에서 $x$를 sampling하면 $x$가 observation=data 이고, $\mu,\Sigma$ 는 이 분포에 대해 sampling되는 $x$를 총괄하는 미리 결정된 조건에 해당한다. 우리는 이에 대해
\[\mathcal N(x;\mu,\Sigma)=p(x\vert \theta)=p(B\vert A),\theta=(\mu,\Sigma)\]로 생각할 수 있다. ML/DL에서 우리는 주로 $p(x\vert \theta)$를 $p_\theta(x)$로 표현하며, $p_\theta(x)$는 보통 $\mathcal N(x;\mu,\Sigma)$보다 훨씬 복잡한 분포를 근사하는 것을 목표로 한다.
Maximum Likelihood Estimation (MLE)
이제 Maximum Likelihood Estimation (MLE)의 의미에 대해 생각해보자.
임의의 데이터 분포 $p_{real}(x,y)$에 대해 (x는 샘플, y는 label), 샘플링된 데이터셋
\[\{(x_{real,i},y_{real,i})\vert (x_{real},y_{real})\sim p_{real}(x,y),\ i=1,...,D\}\]를 고려해보자. 우리는 $p_{real}(x,y)$를 근사해보고 싶다. 이를 위해 우리는 $p_{real}(x,y)$를 결정하는 조건 $\theta’$가 존재한다고 가정한다. 따라서,
\[p_{real}(x,y)\Rightarrow p_{real}(x,y\vert \theta')\]로 바꾸는 것이다. 우리는 이 분포를 $\theta$를 통해 모델링하고 싶으며, 이는
\[p(x,y\vert \theta)=p_\theta(x,y)\]로 표현되며, 우리가 다루는 모델이 된다. 이상적으로 우리는 직접적으로 우리의 모델 $p(x,y\vert \theta)$를 직접적으로 $p_{real}(x,y\vert \theta’)$에 근사하고 싶다. 우리는 $p_{real}(x,y)$를 가장 잘 묘사할 수 있는 관찰들, ${ (x_{real,i},y_{real,i}) }$에 대해
\[p(x_{real},y_{real}\vert \theta)\approx p_{real}(x_{real},y_{real}\vert \theta')\]으로 만들고 싶다. 하지만 이때 문제가 있다. $\theta’$를 모르기 때문에 $p_{real}(x,y\vert \theta’)$을 수학적으로 명시적으로 표현할 수 없고, 따라서 확률을 계산할 수 없다.
여기서 MLE의 ‘Maximum’의 의미가 나온다. ${x_{real,i},y_{real,i}}$들은 $p_{real}(x_{real},y_{real}\vert \theta’)$에서 샘플링될 법한 샘플들일 것이며, ‘높은’ 확률을 가질 것이다. (분포상 높은 확률을 가지는 부근의 샘플들이 데이터셋을 대부분 차지할 것이다.) 따라서 $D=\lbrace x_{real,i},y_{real,i}\vert i=1,…,N \rbrace$들에 대해 $p(x_{real,i},y_{real,i}\vert \theta)$가 높은 확률을 가지도록 하는 $\theta$를 찾는 것이 MLE의 목표이다. 이는 다음과 같이 표현된다.
\[\begin{aligned} & (x_1, y_1), (x_2, y_2), \dots, (x_N, y_N) \overset{\text{i.i.d.}}{\sim} p_{real}(x, y) \\ & \mathcal L = p(D\vert \theta) = p((x_1, y_1), (x_2, y_2), \dots, (x_N, y_N) \vert \theta) \\ & \theta^* = \arg\max_\theta \mathcal L = \arg\max_\theta p((x_1, y_1), (x_2, y_2), \dots, (x_N, y_N) \vert \theta) \end{aligned}\]$(x_i,y_i)$가 i.i.d sampling되었기 때문에,
\[\mathcal L=p(D\vert \theta)=\prod_{i=1}^Np(x_i,y_i\vert \theta)\]또한, $\arg \max_\theta \mathcal L$는 $\arg \max_\theta \log (\mathcal L)$ 와 같은 결과를 이끌어 낸다. 따라서,
\[\begin{align} \arg\max_\theta \log \mathcal L &=\arg\max_\theta \log \prod_{i=1}^Np(x_i,y_i\vert \theta) \\ &= \arg\max_\theta \sum_{i=1}^N\log p(x_i,y_i\vert \theta) \\ &= \arg\max_\theta \sum_{i=1}^N\log p_\theta(x_i,y_i) \\ \end{align}\]로 이어진다. 앞서 말했듯이, $p(x,y\vert \theta)$는 우도 (likelihood)이기 때문에, 위 최적화 식을 통해 $(x_i,y_i)\sim p_{real}(x,y)$에 대해 $\log$ likelihood를 “maximizing”하여 $\theta$를 근사하는 것을 maximum likelihood estimation이라고 부른다.
+
위 최적화 식은 다음과 같이 변경할 수 있다.
\[\begin{align*} & \arg\max_\theta \sum^N_{i=1}\frac{1}{N}\log p_\theta(x_i,y_i) \\ = & \arg\max_\theta \mathbb{E}_{(x_i,y_i)\in D}\left[ \log p_\theta(x_i,y_i) \right] \end{align*}\]만약 $N\rightarrow \infty$ 일 경우,
\[\begin{align} & \mathbb{E}_{(x_i,y_i)\in D}\left[ \log p_\theta(x_i,y_i) \right] \\ = & \mathbb{E}_{(x,y)\sim p_{real}(x,y)}\left[ \log p_\theta(x_i,y_i) \right] \\ = & \int_{x,y}p_{real}(x,y)\log p_\theta(x,y)dxdy \end{align}\]즉, 이론적인 MLE는
\[MLE=\arg\max_\theta \int_{x,y}p_{real}(x,y)\log p_\theta(x,y)dxdy\]로 표현된다. 실제 상황에서 이론적인 MLE의 계산은 불가능하기 때문에 (무한대만큼의 샘플링이 불가능) 충분히 많은 수의 샘플들을 통해 근사하는 방식을 “Monte Carlo Method”라고 부르며, Monte Carlo Method가 이론적인 상황에 가까워지기 위해서는 $N\rightarrow \infty$ 에 가까워져야하기 때문에, 이것이 데이터의 양이 충분히 많아야하는 이유이다.
위 예시에서 $A$는 $\theta$로 취급하고, $B$는 $(x,y)$로 취급하였다. 만약 $x$를 관찰=데이터=B, $y$를 라벨=A로 생각해보자. $p(x,y\vert \theta)$라는 확률에 대해, $p(x\vert y,\theta)=p(B\vert A,\theta)$ likehood, $p(y\vert x,\theta)=p(A\vert B,\theta)$는 posterior로 불릴 수 있다는 점을 알아두자.
Classifier to KL Divergence
먼저 Classifier $p_\theta(y\vert x)$와 데이터 분포 $p_{real}(x,y)$가 있다고 가정해보자. 이때, $x$는 data, $y$는 label이다. Classifier의 학습은 $x_{real}, y_{real}\sim p_{real}(x,y)$이 주어졌을 때, $f_\theta(x_{real})=p_\theta(y_{real}\vert x_{real})$이 높은 확률을 가지기를 바란다.
즉, $p_\theta(y\vert x)p_{real}(x)=p_\theta(x,y)\approx p_{real}(x,y)$가 되기를 바란다. 따라서 우리의 objective는 $p_\theta(x,y)$를 $p_{real}(x,y)$에 근사하는 것이 목표다.
두 개의 분포를 일치시키기 위해 (To match two distributions), 우리는 두 분포 사이의 KL Divergence를 최소화하는 것이 목표다.
\[\begin{align} & \min_\theta D_{KL}\left[p_{real}(x,y)\vert \vert p_\theta(x,y)\right] \\ = & \min_\theta \int_{x,y}p_{real}(x,y)\log\frac{p_{real}(x,y)}{p_\theta(x,y)}dxdy \\ = & \min_\theta \left[\underbrace{\int_{x,y} p_{real}(x,y)\log p_{real}(x,y)dxdy}_{\text{Entropy}}\underbrace{-\int_{x,y}p_{real}(x,y)\log p_\theta(x,y)dxdy}_{\text{Cross Entropy}} \right] \\ \end{align}\]여기서 Entropy term은 $\theta$에 대해 최적화되지 않기 때문에 constant 취급하여 최적화 식에서 배제한다.
위 식은 추가적으로 아래의 최적화 식과 같다.
\[\begin{align} & \min_\theta \left[ \int_{x,y} p_{real}(x,y)\log\frac{p_{real}(y\vert x)p_{real}(x)}{p_\theta(y\vert x)p_{real}(x)} \right] \\ = & \min_\theta \left[ \int_{x,y} p_{real}(x,y)\log\frac{p_{real}(y\vert x)}{p_\theta(y\vert x)} \right] \\ = & \min_\theta D_{KL}[p_{real}(y\vert x)\vert p_\theta(y\vert x)] \end{align}\]위의 최적화 식은 결국 두 조건부 분포의 차이를 줄이는 KL Divergence의 최적화 식으로 볼 수 있다. 이 확률 분포와 우리의 classifier의 output을 어떻게 직관적으로 이해하는 지에 대해 헷갈릴 수 있는데 다음의 경우를 생각해보자.
데이터셋의 label이 $y=\lbrace y_a, y_b, y_c \rbrace$로 이루어져 있고, $x_a$라는 샘플의 label이 $y_a$일 때를 생각해보자. $p_{real}(y\vert x)$라는 확률 분포에 대해 우리는 세 종류의 확률을 얻을 수 있다.
\[p_{real}(y_a\vert x_a), \ p_{real}(y_b\vert x_a), \ p_{real}(y_c\vert x_a)\]실제 데이터쌍은 $x_a, y_a$이기 때문에 $p_{real}(y_a\vert x_a)$가 가장 확률이 높고, $p_{real}(y_b\vert x_a), \ p_{real}(y_c\vert x_a)$의 확률은 낮을 것이다. 이 경우를 가정하였을 때, 위 최적화 식은 이 확률 분포를 $\theta$로 이루어진 classifier로 근사하는 것이 목표인 것이다.
KL Divergence to MLE
우리는 위 식을 다음과 같이 전개할 수 있다.
\[\begin{align} & \min_\theta \left[\underbrace{\int_{x,y} p_{real}(x,y)\log p_{real}(x,y)dxdy}_{\text{Entropy}}\underbrace{-\int_{x,y}p_{real}(x,y)\log p_\theta(x,y)dxdy}_{\text{Cross Entropy}} \right] \\ = & \min_\theta \left[-\int_{x,y}p_{real}(x,y)\log p_\theta(x,y)dxdy \right] \\ = & \max_\theta \left[\int_{x,y}p_{real}(x,y)\log p_\theta(x,y)dxdy \right] \\ % = & \max_\theta \left[ \int_{x,y}p_{real}(x,y)\log p_\theta(y\vert x)+p_{real}(x,y)\log p_{real}(x)dxdy \right] \\ % = & \max_\theta \left[ \int_{x,y}p_{real}(x,y)\log p_\theta(y\vert x)dxdy \right] \\ \end{align}\]즉, Maximum Likelihood Estimation (MLE) 식으로 유도된다. 즉, KL Divergence를 최적화하는 것이 MLE를 수행하는 것과 동일하고, 따라서 classifier를 학습하는 것은 MLE를 수행하는 것과 동일하다.
Leave a comment