배워서 남 주자

AI/인공지능 및 기계학습 개론

[인공지능 및 기계학습 개론] 2.5 Linear Regression

신라면순한맛 2022. 8. 19. 22:42

이번 포스팅에서는 Linear regression에 대해 알아보도록 하겠습니다. 강의 목록에는 다르게 적혀있는데 아무래도 중간에 바뀌고 수정이 되지 않은 것 같습니다.

 

http://www.edwith.org/machinelearning1_17/lecture/10583

 

[LECTURE] 2.5. How to create a decision tree given a training dataset : edwith

- 신승재

www.edwith.org

 


 

Machine learning은 결국 주어진 input과 output을 바탕으로 둘 사이의 관계를 나타내주는 함수를 찾는 것이 목적이죠. 이 함수의 modeling으로써 대표적인 예가 바로 linear regression입니다. 말 그대로 linear한 관계로 modeling을 하며 적절한 기울기와 절편을 찾는 것인데요. 식으로 보면 다음과 같습니다.: $$ \hat f(x;\theta)=\theta_0+\sum_{i=1}^n \theta_i x_i = \sum_{i=0}^n \theta_i x_i $$ 이 때 $\hat f$는 prediction을 의미하는데, 실제 값이 아닌 modeling한 값이란 뜻으로 사용됩니다. 그리고 위 식에서 $x_0\coloneqq (1,\ldots,1)$이라고 약속하고 표기한 것입니다. 

 

위 식에서 scalar와 vector가 섞여있어서 구분이 잘 안되실 수 있는데, matrix까지 도입하면서 한 번에 정리해보도록 하겠습니다. 위 hypothesis를 matrix까지 도입하면 아래와 같습니다.: $$ \hat f(x;\theta)=\sum_{i=0}^n\theta_i x_i\Rightarrow\hat f = X\theta $$ where $$ \begin{aligned} &\theta=(\theta_0,\ldots,\theta_n)\in\mathbb{R}^{n+1} \\ & x_0=(1,\ldots,1)\in\mathbb{R}^m \\ &x_j=(x^j_1,\ldots,x^j_m)\in\mathbb{R}^m\quad (j=1,\ldots,n) \\ &X=\begin{pmatrix} x_0 & \cdots & x_n \end{pmatrix} =\begin{pmatrix} 1 & x^1_1 & \cdots & x^n_1 \\ \vdots & \vdots & \ddots & \vdots \\ 1 & x^1_m & \cdots & x^n_m \end{pmatrix} \in M_{m\times (n+1)}(\mathbb{R}) \end{aligned} $$ Prediction인 $\hat f$는 위와 같지만 실제 세상에는 noise term을 넣어주어야 할 것입니다.: $$ f(x;\theta)=\sum_{i=0}^n \theta_i x_i + e \Rightarrow f=X\theta + e=Y $$ Linear regression의 목적은 방금 말한 이 noise를 최소화하는 것입니다. 이를 formulate하면 다음과 같습니다.: $$ \begin{aligned} \hat\theta &= \argmin_{\theta}\:(f-\hat f)^2 \\ &= \argmin_{\theta}\:(Y-X\theta)^2 \\ &= \argmin_{\theta}\:(Y-X\theta)^t (Y-X\theta) \\ &= \argmin_{\theta}\:(Y^t Y-2\theta^t X^t Y + \theta^t X^t X\theta) \\ &= \argmin_{\theta}\:(\theta^t X^t X\theta - 2\theta^t X^t Y) \end{aligned} $$ 마지막 등호는 $Y^t Y$가 $\theta$에 대한 term이 없기 때문에 $\theta$에 대해서는 상수항이어서, 상수항에 의한 최솟값은 바뀔 수 있으나, 최솟값을 만들어내는 $\theta$값은 변하지 않기에 제거한 것입니다. 그리고 위에서 쓰인 분배법칙에서는 $Y^t (X\theta)=(X\theta)^t Y$이 성립해서 정리가 되는 것임을 유의하셔야 하는데, 이것이 성립하는 이유는 결과가 실수값이기에 (or $1\times 1$ matrix 이기에) transpose를 적용해도 같기 때문입니다. 

 

어쨌든 결국 정리하면 $$ \hat\theta=\argmin_{\theta}\:(\theta^t X^t X\theta - 2\theta^2 X^t Y) $$가 되는데, 이 값을 minimize하는 것은 $\theta$에 대해 미분하여 구하는 것입니다. (이에 관련해서는 linear algebra side에서 normal equation을 적용하는 방법도 있습니다.) 즉, $$ \nabla_{\theta}\:(\theta^t X^t X\theta - 2\theta^2 X^t Y)=0 $$이 되는 $\theta$를 구하면 아래와 같습니다.: $$ \theta = (X^t X)^{-1} X^t Y $$ 

 


 

강의에서는 housing data를 통해서 예를 들고 있는데, lineare regression한 것을 plotting하면 다음과 같습니다. 

 

 

여기서 오른쪽 가운데쯤 있는 점 몇 개에 대한 estimation이 아쉽다면 linear가 아닌 quadratic 등의 term을 추가해서 regression 할 수도 있는데, 

 

 

이렇게 연두색처럼 하게 되면 더 잘 fitting 된 것처럼 보일 수는 있으나, 이것이 과연 최선인지에 대해서는 생각해봐야 합니다. 이것도 앞서 다뤘던 것처럼 overfitting의 우려가 있기 때문입니다. 즉, generalization error가 커지게 되면서 실제 inference level에서는 쓸모 없는 model이 될 수도 있기 때문입니다.

 


 

여기까지 해서 linear regression에 대해서 간단히 살펴보았습니다. 다음 포스팅에서는 naive bayes classifier에 대해서 살펴보겠습니다.