선형 회귀 모델(Linear Regression Model) -1


이 글들은 PRML책을 읽고 정리한 내용들입니다.

1. Regression Model 이란...?


Linear regression model 에 대해 다루어 보기에 앞서 regression model이란 무엇인지 알아보자. Regression model 이란 D차원 벡터 $x$들이 input으로 주어졌을때 그에 해당하는 target 변수 t의 값을 예측하는 것이다. t는 finite한 class로 정해지지는 않았다.
우리는 이 모델을 학습시킬때, N개의 input data {$x_n$}과 각각에 대응되는 target값 {$t_n$}이 training set으로 학습한다. 학습시킨 모델을 가지고 새로운 변수 $X$가 주어졌을때 새 변수 $X$의 target값 $t$를 예측을 하고자 한다.
대표적인 예시로 집값을 예측하는 모델을 들 수 있다. Input vector에는 집의 크기, 집의 위치, 지어진 년도 등 다양한 변수들이 들어갈 것이고, target값에는 집값이 나타날 것이다. 만약 우리가 모델을 잘 구성하였다면 집값을 잘 예측해냈다는 것이고, 학습된 데이터에 나온 집값 뿐만 아니라 새로운 데이터들에 대해서도 예측을 잘 해낼 것이다.

2. Linear regression model 이란?

Linear regression model은 입력 변수들의 linear combination을 통해 나타내어 질 수 있는 모델이다. 가장 단순하게 생각하면 $$y(\mathbf{x},\mathbf{w}) =  \mathbf{w}^T \mathbf{x}$$ 여기서$\mathbf{x} = (1, x_1 , x_2 , \cdots x_D)^T , \mathbf{w} = (w_0, w_1 , w_2 , \cdots w_D)^T$이다. 위와 같은 단순한 모델로 나타낼 수 있다. 하지만 이러한 모델로써 표현될 수 있는 모델들은 한계가 있어보인다. 꼭 각각의 변수들에 대해서 정비례한 관계만 가지지는 않기 때문이다. 그래서 우리는 basis function를 도입하게 된다. basis function을 도입한 모델은 다음과 같다.
$$y(\mathbf{x},\mathbf{w}) = \mathbf{w}^T \phi(\mathbf{x})$$
무엇인가 달라진 점을 발견하였는가? $\phi()$라는 함수가 $\mathbf{x}$에 추가되었다. 이러한 전처리 과정을 통해 우리의 모델을 보다 정확하게 만들 수있다. basis function을 선정하는 문제는 중요한 문제이지만, 나중에 자세히 다루기로 하자.

3. Maximum likelihood와 least squares


우리가 maximum likelihood와 least squares의 관계에 대해 알아보기 전에 가정을 하나 하도록 하자. target 변수 t는 deterministic function와 Gaussian noise의 합으로 구성이 된다. 이를 수식으로 표현하면,
$$ t = y(\mathbf{x},\mathbf{w}) + \epsilon $$
으로 나타낼 수 있다. 앞쪽의 항이 우리가 만든 deterministic function이고, 뒤의 항이 평균은 0이고 precision이 $\beta$인 Gaussian noise이다. 이 분포는 아래와 같이 표현이 가능하다.
$$ p(t| \mathbf{x},\mathbf{w}, \beta) = \mathcal{N}(t|y(\mathbf{x},\mathbf{w}),\beta^{-1})$$
다음분포에서 조건부 평균은 아래와 같다.
$$\mathbb{E}[t|\mathbf{x}] = \int tp(t|\mathbf{x})dt = y(\mathbf{x},\mathbf{w})$$
가정에 의해 평균값은 우리가 만든 deterministic function 꼴로 나타낼 수 있다.
입력 데이터 집합 $\mathbf{X} = {\mathbf{x}_1, \cdots, \mathbf{x}_N}$ 과 각각에 대응하는 타겟 변수 $\mathbf{t} = {t_1, \cdots, t_N}$을 고려해보자. 독립적으로 추출되었다고 가정하면, 각각은 Gaussian distribution을 가지므로, 아래와 likelihood function를 얻을 수 있다.
$$p(t| \mathbf{X},\mathbf{w}, \beta) = \prod_{n=1}^{N}\mathcal{N}(t_n|\mathbf{w}^T \phi(\mathbf{x}_n),\beta^{-1})$$
우리는 이 likelihood function를 최대로 하는값을 찾고 싶다. 그렇지만 곱으로 나타낸 꼴에서 미분은 힘드니, 곱을 합으로 바꾸어주고, 증가함수인 로그 함수에 대입하고 계산을 하면
$$ \ln p(t| \mathbf{X},\mathbf{w}, \beta) = \prod_{n=1}^{N}\ln \mathcal{N}(t_n|\mathbf{w}^T \phi(\mathbf{x}_n),\beta^{-1}) \\ = N/2 \ln \beta - N/2 \ln(2\pi) - \beta E_D (\mathbf{w})$$
여기서 $E_D (\mathbf{w})$는 sum-of-squares error function이다.
likelihood function을 최대화 하는것은 error function을 최소화하는 문제와 동일하다. 그러므로 error function이 최소화 하는 지점을 찾고자 $\mathbf{w}$에 대하여 gradient를 취하면,
$$\nabla \ln p(t| \mathbf{X},\mathbf{w}, \beta) = - \beta \nabla E_D (\mathbf{w}) =  \beta \sum_{n=1}^{N} \{t_n - \mathbf{w}^T \phi(\mathbf{x}_n) \}\phi(\mathbf{x}_n)^T$$
이값이 0이 되는 지점이 곧 likelihood function이 최대화 되는 지점이다.
$$0 = \sum_{n=1}^{N} t_n \phi(\mathbf{x}_n)^T - \mathbf{w}^T \sum_{n=1}^{N} (\phi(\mathbf{x}_n)\phi(\mathbf{x}_n)^T)$$
이때의 $\mathbf{w}$의 값을 구하면
$$\mathbf{w}_{ML} = (\Phi^T \Phi)^{-1} \Phi^T \mathbf{t} $$
여기서 $\Phi_{ij} = \phi_j(\mathbf{x}_i) $로 주어진다.
매개변수 $\beta$를 최대화 하는 지점은 $\mathbf{w}_{ML}$을 대입하고 likelihood function을 $\beta$에 대해 미분하면 아래와 같이 구할 수 있다.
$$ \frac{1}{\beta_{ML}} = \frac{1}{N} \sum_{n=1}^{N}\{t_n - \mathbf{w}_{ML}^T \phi(\mathbf{x}_n)\}^2$$

Reference

1. Pattern Recognition and Machine Learning, p138-142, Christopher bishop

댓글

이 블로그의 인기 게시물

GAN의 문제점 (Mode Collapse)

회귀-분산 분해 (The Bias-Variance Decomposition)