꺼내먹는지식 준

머신 러닝 정리 5 - Linear Regression 본문

AI/머신러닝

머신 러닝 정리 5 - Linear Regression

알 수 없는 사용자 2022. 10. 6. 02:32

머신러닝은 궁극적으로 우리가 찾고자 하는 함수를 근사하는 것이다. 

Linear Regression 은 그 중 아주 간단하고, 강력한 방법론 중 하나이다.  

이름 그대로 linear 한 형태로 함수를 근사한다.

 

우리의 가설은 아래와 같다. 

 

$h : \hat{f}(x ; \theta) = \theta_0 + \sum^{n}_{i=1} \theta_i x_i = \sum^{n}_{i=0} \theta_i x_i$ 

n 은 feature value 의 개수이다. 

 

linear를 유지해야 하기 때문에 $x$ 는 건들지 않고 $\theta$ 값을 잘 조정하여 함수를 근사한다. 

($x$를 건들지 않고에 대해 이해가 잘 안간다면 일단 $x$ 는 관측 데이터라 생각만 하고 넘어가자.)

 

그 전에 공식을 정리해보자. 

 

$ \theta_0 + \sum^{n}_{i=1} \theta_i x_i = \sum^{n}_{i=0} \theta_i x_i$

위에서 $\theta_0$ 를 정리하고, 식을 $\hat{f} = X\theta$ 로 간소화하기 위하여 아래와 같이 정리한다. 


$X = \begin{pmatrix} 1  & \cdots & x^1_{n} \\ \vdots  & \ddots & \vdots  \\ 1 & \cdots & x^D_{n} \end{pmatrix} , \theta =  \begin{pmatrix} \theta_0 \\ \theta_1 \\ \cdots \\ \theta_n \end{pmatrix}$

 

현실은 noisy 하다. 이에 따라 true 값은 예상치 못한 error 을 포함해야한다. 

 

$f(x;\theta) = \sum^{n}_{i=0} \theta_i x_i + e = y \rightarrow f = X\theta + e = Y$

 

하지만 우리가 근사하는 함수는 error를 반영할 수 없으므로 $\hat{f}$ 로 표기한다. 

 

$\hat{\theta} = argmin_\theta (f - \hat{f})^2 = argmin_\theta (Y - X\theta)^2$

 

이미 데이터 X 와 결과값 Y 는 제공되어 있다. 우리가 모르는 값은 $\theta$ 이기에 해당 값만 구해주면 된다. 

 

$ = argmin_\theta (Y - X\theta)^T(Y - X\theta) = argmin_\theta(\theta^T X^T X\theta - 2 \theta^T X^T Y + Y^T Y)$

 

$Y^T Y$ 는 상수이므로, 빼고 고려할 수 있다. 

 

$ argmin_\theta(\theta^T X^T X\theta - 2 \theta^T X^T Y)$

 

위 식을 최적화 하기 위해서는 극점을 찾도록 $\theta$에 대해 미분을 수행하면 된다. 

 

$\nabla _\theta (\theta^T X^T X\theta - 2 \theta^T X^T Y) = 0$

 

$2X^T X\theta - 2X^T Y = 0$

 

위 미분 과정을 아래 짧게 서술한다. 

 

※ 스칼라함수를 벡터로 미분한 경우 

 


$\frac{\partial}{\partial x}(x^T A x) = x^T(A^T + A)$

 

$A = X^T X$ 로 치환하여 적용하면 

 

$\theta^T X^T X\theta = \theta^T A \theta$

 

$ \theta^T (X^T X + X^T X) = 2 \theta^T(X^T X)$

 

 

$\frac{\partial}{\partial x}(a^T x) = \frac{\partial}{\partial x}(x^T a) = a^T$

 

$-2\theta^T X^T Y = -2 X^T Y$


따라서, $\theta = (X^T X)^{-1} X^T Y$

X,Y 를 앎므로 $\theta $ 를 구할 수 있다. 

 

Housing dataset

https://archive.ics.uci.edu/ml/machine-learning-databases/housing/

 

Index of /ml/machine-learning-databases/housing

 

archive.ics.uci.edu

  • 13 numerical independent values 
  • 1 numerical dependent value 

 

위와 같은 데이터 셋이 있다고 하자. 

 

13개의 Housing feature 중 한가지만을 사용하여 나타낸 plot 이다. 

 

$\theta = (X^T X)^{-1} X^T Y$ 

 

X 값과 Y 값 (빨간 점)을 통해 위 공식에서 $\theta$를 구한 후, X 값에 대한 $\hat{Y}$ 를 구한 결과(파란점) 이다. 

 

feature 의 개수를 단지 dimension 을 올리는 것과 같은 방식으로 증가시켜볼 수 있다. (linear regression 에서는 x 를 건들지 않는다고 사전에 언급했었는데, dimension을 올리는 것이 x를 건든다는 것의 한 예이다.)

예를 들어 $x^2, x^3, x^4 ... $ 와 같이 x의 차원을 뻥튀기를 해보는 방법이다. 

 

$h: \hat{f} (x; \theta) = \sum^{n}_{i=0} \sum^m_{j=1} \theta_{i,j} \phi_j (x_i)$

 

이 경우 위와 같이 현재 데이터에 대해서는 마치 관측이 잘 된 것 처럼 보이지만, overfitting 의 가능성이 높다는 것을 알 수 있다. 

 

linear regression 은 아주 간단한 모델이지만, 실제 세상에서 데이터를 예측하는데 여전히 많이 사용되는 좋은 모델이다. 

하지만, 당연히 linear 한 특성이 강점이 되기도 하지만, 많은 경우 제약이 되기도 한다. 

 

 

 

 

 

 

Comments