Advanced Machine Learning 5 - Estimating Probabilities from Data (2)
Before starting
“Class” 카테고리에 있는 포스팅들은 실제로 수업에서 배운 내용을 정리하려는 목적으로 작성되었다. 이 글은 그 중 Advanced Machine Learning 과목의 수업을 다룬다.
Linear Regression - Continued
저번 글에 이어서 이번에는 MAP의 관점에서 Linear Regression의 파라미터 $\hat{w}$를 어떻게 구할 수 있을지 생각해보자.
MAP의 관점에서 생각하려면 Prior를 알아야 한다. $w$에 대한 Prior를 다음과 같이 가정해보자.
\[P(w)=\dfrac{1}{(2\pi\tau^2)^{d/2}}e^{-\dfrac{w^T w}{2\tau^2}}\]즉, 평균이 0이고 분산이 $\tau^2$인 가우시안 분포이다. 이 경우 MAP를 구해보면 다음과 같다.
\[\begin{aligned} \hat{w} &= \arg\max_{w}P(w|D) \\ &= \arg\max_{w}P(D|w)P(w) = \arg\max_{w}\left(\prod_{i=1}^{n}(P(y_i|x_i;w))P(w)\right) \\ &= \arg\max_{w}\left(\sum_{i=1}^{n}\log P(y_i|x_i;w) + \log P(w)\right) \\ &= \arg\max_{w}\left(\sum_{i=1}^{n}\left(\log \dfrac{1}{\sqrt{2\pi\sigma^2}}e^{-\dfrac{(w^T x_i-y_i)^2}{2\sigma^2}}\right)+\log\dfrac{1}{(2\pi\tau^2)^{d/2}}e^{-\dfrac{w^T w}{2\tau^2}}\right) \\ &= \arg\min_{w}\left(\dfrac{1}{2\sigma^2}\sum_{i=1}^{n}(w^T x_i-y_i)^2+\dfrac{1}{2\tau^2}w^T w\right) \\ &= \arg\min_{w}\left(\dfrac{1}{n}\sum_{i=1}^{n}(w^T x_i-y_i)^2+\lambda\lVert w \rVert _2^2\right) \end{aligned}\]이 식의 왼쪽 항은 MLE에서 봤던 그대로다. 모든 식이 일치하므로 더 볼 필요는 없는데, 문제는 MLE에 더해 우측 항 하나가 추가되었다는 것이다. 이 항의 계수는 원래 $\dfrac{1}{2\tau^2}$이어야 하나(변수 $d$는 결국 $w$와 무관한 변수라 탈락됨), 이를 묶어서 하나의 변수 $\lambda$로 표현했다. 이렇게 묶은 우측 항 $\lambda \lVert w \rVert _2^2$를 Regularizer라고 부르며, 특히 위와 같은 $\lVert w \rVert _2^2$의 형태의 Regularizer를 Ridge Regression, 혹은 L2 norm을 사용한다는 의미에서 L2 Regularizer라고 부른다.
Regularizer
위에서 유도한 식의 의미는 뭘까? 좌측 항인 MSE는 그대로 살아있으니 MSE를 줄여주는건 동일한데, $w$의 norm까지 같이 줄이라는 요구가 되었다. 즉, MLE를 통해 구한 $w$에 비해 $w$의 크기가 달라질 것이다. 그것도 일반적으로 MAP를 통해 구한 $w$가 좀 더 작게 형성이 될 것이다.
그럼 $w$를 왜 작게 해야 할까? 이에 대해서는 여러 가지 이유가 있지만, 여기서는 이렇게 생각해보자.
정말 간단한 케이스를 생각해서, 어떤 모델이 $y=w_1 x_1 + w_2 x_2$의 형태로 정해졌고, 데이터셋 중 $x_1=1$, $x_2=-1$, $y=0$이 있다고 가정하자. 이를 만족하는 $w_1,w_2$는 무수히 많다. 이 중에서 $w_1=1000, w_2=1000$인 경우와 $w_1=0.1, w_2=0.1$인 경우를 생각해보자.
여기까지의 가정만 놓고 보면 두 경우 다 우리의 데이터셋을 잘 만족한다. 그런데 실제로는 데이터셋에는 어느 정도의 노이즈가 있을 수 밖에 없고, 여태까지 본 모델들에서도 이 노이즈가 가정되어 있다. 이러한 노이즈를 감안해서, $x_1$과 $x_2$가 약간씩 다른 값을 가졌다고 생각해보자. 만일 $x_1=1.1$, $x_2=-1.0$이라고 하면, $w_1=w_2=0.1$인 경우는 Error가 0.01이 나오지만, $w_1=w_2=1000$인 경우는 Error가 100이나 나온다.
이런 식으로 계수가 설정되어 있으면, Error가 0이 되는 것이 이상적인 머신러닝의 세계에서 에러가 갑자기 크게 튀어버리는 이러한 현상은 온갖 이슈를 야기하게 된다. 그렇기 때문에 일반적으로 $w$의 절대적인 값이 작은 것을 선호하게 된다.
즉, 이러한 Regularizer를 추가해주면 테스트 시에 변화하는 미세한 차이에도 Error가 튀는 현상을 방지할 수 있고, 이는 곧 좀 더 강건하게 동작을 하게 된다는 이야기가 된다.
그런데 아까 본 $\lambda \lVert w \rVert _2^2$는 L2 Regularizer라고 불렀고, 이는 $P(w)$가 가우시안 분포를 따른다는 사전 지식에 기반한 값이었다. 그렇다면 만일 $P(w)$가 다른 분포를 따른다면 Regularizer의 형태 역시 달라지지 않을까? 실제로 그렇다. 이번엔 $P(w)$가 아래와 같이 Laplace 분포를 따른다고 가정해보자.
\[P(w)=\dfrac{1}{2\tau}e^{-\dfrac{\lVert w \rVert}{\tau}}\]여기서 당연히 $\lVert w \rVert = \vert w_1 \vert+\vert w_2\vert+\ldots+\vert w_d\vert$이다. 이 사전지식을 추가하여 MAP를 계산해보면, 어차피 좌측 항은 동일하므로 생략하고, 우측 항 또한 $\log$를 씌운 형태로 계산할 것이니 간단하게 정리하면 $\lambda \lVert w \rVert$ 형태의 Regularizer가 유도된다. 이는 L1 norm을 사용하니 L1 Regularizer, 혹은 LASSO Regularizer라고 부른다.
즉, Prior를 바꾸니 Regularizer의 형태가 달라졌다. 그렇다면 L1 Regularizer와 L2 Regularizer는 어떤 점이 다를까? 결국 최적의 지점을 찾으려면 Gradient를 구해서 0이 나오는 지점을 구해야 한다. 그럼 각각의 Regularizer의 Gradient를 구해서 그 차이를 비교해보자.
먼저 L2 Regularizer부터 보자. $\lVert w \rVert _2^2=w_1^2+w_2^2+\ldots+w_d^2$이기 때문에 $w_i$에 대해서 미분이 아주 잘 되고, $\dfrac{\partial \lVert w \rVert _2^2}{\partial w_i}=2w_i$이다.
\[\dfrac{\partial \lVert w \rVert _2^2}{\partial w}=\begin{bmatrix}2w_1 & 2w_2 & \ldots & 2w_d\end{bmatrix}^T\]이 Gradient는 $w_i$가 0에 근접할수록 점점 작아져서, 완벽하게 0에 도달하기는 좀 힘들다. 그렇기 때문에 기여도가 아무리 낮은 파라미터여도 완벽하게 0이 나오는 일은 일어나지 않을 것이고, 따라서 Ridge Regression의 목적은 “$w_i$가 0에 가까워지는 것”이 된다.
그럼 L1 Regularizer는 어떨까? $\lVert w \rVert=\vert w_1\vert+\vert w_2\vert+\ldots+\vert w_d\vert$이기 때문에 각 $w_i$에 대해서 미분이 불가능하긴 하다. 하지만 $w_i=0$일때만 미분이 되지 않는 것이지 그 이외의 구간에 대해서는 미분이 잘 되므로, 아래와 같이 케이스를 나눠서 따져볼 수는 있다.
\[\dfrac{\partial \lVert w \rVert _1}{\partial w_i}=\begin{cases}1 & w_i>0 \\ -1 & w_i<0\end{cases}\]이 Gradient는 $w_i$의 값과는 관계 없이, 무조건 1, 혹은 -1이 나온다. 그렇기 때문에 충분한 학습이 진행되면 기여도가 없는 파라미터는 깔끔하게 0에 도달하게 된다. 따라서 LASSO Regression의 목적은 “필요없는 $w_i$를 0으로 만드는 것”이 된다. 이러한 특징 덕분에 변수를 선택하는 관점에서, 즉 Feature Selection의 관점에서는 L1 Regularizer를 사용하는 것이 더 적합할 것이다. 이 경우엔 안 쓰는 파라미터를 걸러내는 것이 중요하기 때문이다.
재미있게도, 이러한 통계적인 관점에서 얻은 결과와 2편에서 접근한 ERM적인 접근으로 얻은 결과가 동일하다.
Logistic Regression
여태까지 살펴본 모델들은 전부 Regression 문제를 위한 모델들이었다. 그럼 이제 Classification 문제를 어떻게 풀 수 있는지 살펴보자.
Logistic Regression은 Classification 문제를 해결하기 위한 선형 모델이다. 이 모델의 가정은 다음과 같다.
\[P(y|x)=\dfrac{1}{1+e^{-y(w^T x+b)}}, y \in \{-1,1\}\]즉, $y$는 1, 혹은 -1의 둘 중 하나이며, 각각의 값이 될 확률은 위와 같이 표현된다. 여기서 $\phi(z)=\dfrac{1}{1+e^{-z}}$를 Sigmoid 함수라고 부르며, 아래와 같은 형태를 가진다.
위의 $P(y \vert x)$는 식이 복잡해보이지만, $y=1$, 혹은 $y=-1$밖에 없으니 아래와 같이 모든 경우를 써도 된다.
\[P(y=1|x)=\dfrac{1}{1+e^{-(w^T x+b)}}, P(y=-1|x)=\dfrac{1}{1+e^{w^T x+b}}\]당연하지만 $P(y=1\vert x)+P(y=-1\vert x)=1$이 되며, 이는 직접 계산해봐도 알 수 있다.
그런데 이걸 왜 선형 모델이라고 부를까? Assumption이나 모델의 형태나 아무리 봐도 선형 함수는 아니지 않은가?
Logistic Regression은 2개 중에서 구분하는 문제이므로 그 사이의 기준선이 되는, Decision Boundary가 존재한다. 구체적으로 $P(y=-1\vert x)=P(y=1\vert x)$일 때가 된다. 기하학적으로 생각해보면, 이 선을 기준으로 한쪽 영역은 $y=1$이 되는 곳이고, 반대쪽 영역은 $y=-1$이 되는 곳이다.
그러면 Logistic Regression에서 그 Decision Boundary는 어떻게 구해질까? 어차피 $P(y\vert x)$의 형태를 잘 알고 있으므로 산술적으로 계산해볼 수 있다.
\[\begin{aligned} P(y=1|x) &= P(y=-1|x) \\ \dfrac{1}{1+e^{-(w^T x+b)}} &= \dfrac{1}{1+e^{w^T x+b}} \\ \dfrac{e^{w^T x+b}}{1+e^{w^T x+b}} &= \dfrac{1}{1+e^{w^T x+b}} \\ e^{w^T x+b} &= 1 \\ \log\left(e^{w^T x+b}\right) &= 0 \\ w^T x+b &= 0 \end{aligned}\]즉, Decision Boundary가 선형 결합으로 나오게 된다. 이 직선을 기준으로 해서, $P(y=1\vert x)$과 $P(y=-1\vert x)$이 구분되므로 Logistic Regression 역시 선형 모델로 분류된다.
그럼 이제 Logistic Regression의 MLE를 구해보자. 계산의 편의를 위해 상수항 $b$는 제거했다.
\[\begin{aligned} \hat{w}_{MLE} &=\arg\max_{w}P(D;w) \\ &=\arg\max_{w}\prod_{i=1}^{n}P(y_i|x_i;w) \\ &=\arg\min_{w}\sum_{i=1}^{n}\log\left(1+e^{-y_i(w^T x_i)}\right) \end{aligned}\]MAP도 위와 동일한 형태로 전개가 되는데, 역시 뒤에 Regularzier가 붙는다.
… 그런데 이걸 어떻게 풀까? 더 이상 간단하게 정리하지도 못하고, 그렇다고 직접 풀기에도 상당히 난해한 형태가 나와버렸다. 이러한 형태는 손으로 푸는건 불가능에 가깝기 때문에 대신 풀 수 있는 다양한 알고리즘들이 제시되었고, 그 중에 대표적인 것이 바로 그 유명한 Gradient Descent이다. 이에 대한 자세한 내용은 다음 글에서 다루기로 하자.
