히비스서커스의 블로그

[기계학습 2강] Linear Regression 본문

Theory/Machine Learning

[기계학습 2강] Linear Regression

HibisCircus 2021. 4. 5. 00:39
728x90

 내용들은 (KAIST Open Online Course)의 인공지능 및 기계학습 개론 1 Chap. 2강 내용을 기반으로 재구성하였음을 먼저 밝힙니다.

 

 

 

Linear Regression :: 가설을 함수의 형태로


앞서 categorical dataset을 예측하기 위해 decision tree를 배울 때 가설을 decision tree로 만들 수 있었다.

 

이제 numerical dataset을 예측하기 위해 Linear Regression을 배워볼텐데 가설을 함수의 형태로 만들어보자.

$\hat{f}(x; \theta) = \theta_{0} + \sum_{i=1}^{n} \theta_{i} x_{i} = \sum_{i=0}^{n} \theta_{i} x_{i}$

 

 

가설의 함수에 대한 두 개의 관점이 존재하는데

 

1. linear하다. 선형적인 가중합 (모델)

2. 파라미터 $\theta$를 어떻게 정할 것인가?

 

우리는 Linear Regression을 살펴볼 것이므로 1번을 고려하지 않고 2번만 고려해보자.

 

 

Linear Regression에서 $\theta$값 찾기


위의 식에서 $\theta_{0}$를 지워준 형태인 $\hat{f}(x; \theta) =\sum_{i=1}^{n} \theta_{i} x_{i} = \sum_{i=0}^{n} \theta_{i} x_{i}$ 형태로 간편화하여 사용해보자. 그럴경우 $X, \theta$를 살펴보면 다음과 같다.

 

$X = \begin{pmatrix} 1 & ... & x_{n}^{1} \\ ... &  & ...\\ 1 & ... & x_{n}^{D} \end{pmatrix}$, $\theta = \begin{pmatrix} \theta_{0}\\ \theta_{1}\\ ... \\ \theta_{n} \end{pmatrix}, \hat{f} = X\theta$

 

 ($\theta_{0}$가 생략된 것처럼 보이지만 $X$안에 1이 포함되어 있고 $\theta$안에 $\theta_{0}$가 포함되어 있어 식을 전개하면 포함되어 있음을 확인할 수 있다.)  총 D개의 데이터 셋이 있고, n개의 attribute가 있는 경우이다. 

 

 

위의 식은 noisy를 포함하는 실제함수를 추정한 것이다. 실제 함수를 식으로 나타내보자면 

$f(x; \theta) = \sum_{i}^{n} \theta_{i} x_{i} + e = y$이고, 위의 추정함수처럼 행렬로 나타내면 $f = X\theta + e = Y$로 나타낼 수 있다.

 

 

위에서 나타난 $\hat{f}, f, x, \theta, e, y, X, Y$를 정리해보면 

 

$\hat{f}$: 실제함수를 추정한 함수, =$X \theta$

$f$: 실제함수로 관측값(=$Y$)와 동일, =$X\theta + e$ 

$x$: 관측한 데이터, 앞에서 얘기한 instance라고 할 수 있음

$\theta$: 관측할 데이터에 곱해질 변수 (우리가 모르는 값, 실제함수를 추정하기 위해 필요)

$e$: 실제함수(=$f$)과 추정함수($\hat{f}$)의 차이(노이즈라고도 하며 에러라고도 함)들로 이루어진 행렬

$y$: 실제값(=$Y$)에서의 하나의 값

$X$: 관측한 데이터로 이루어진 행렬, 앞에서 얘기한 Dataset이라고 할 수 있음

$Y$: $y$들로 이루어진 행렬

 

라고 할 수 있다.

 

 

 

우리의 목표 :: 실제함수(=$f$)와 추정함수(=$\hat{f}$)의 차이를 최소로하는 $\theta$의 값을 찾기


우리가 목표는 실제함수(=$f$)와 추정함수(=$\hat{f}$)의 차이를 최소로하는 $\theta$의 값을 찾는 것이다. 이를 식으로 나타내보면,

 

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

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

$= argmin_{\theta} (Y - X \theta)^{t}$

$= argmin_{\theta} (Y^{t} - \theta^{t}X^{t})(Y - X \theta)$

$= argmin_{\theta} Y^{t}Y - Y^{t} X \theta - \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 + Y^{t}Y)$, $\because Y^{t}X\theta = (X\theta)^{t}Y = \theta^{t} X^{t}Y$ 

$= argmin_{\theta} (\theta^{t} X^{t} X \theta - 2 \theta^{t} X^{t} Y)$, $\theta$입장에서는 $Y^{t} Y$는 상수이기 때문

 

와 같이 전개가 된다.

 

 

이제 $\theta$를 최적화해보기 위해 미분을 적용해보자. 즉, 위의 식을 $\theta$에 대해 미분을 하여 0이 될 때의 $\theta$의 값을 찾아보자.

 

  • $\nabla_{\theta} (\theta^{t}X^{t}X\theta - 2\theta^{t}X^{t}Y) = 0$
  • $2X^{t}X\theta - 2X^{t}Y = 0$
  • $\theta = (X^{t}X)^{-1} X{t}Y$

이는 최소제곱법(Least Square Method)을 통해 구하는 방식과 동일하다.

 

 

 

Housing datasest에 적용해보기


Housing datasest의 변수들을 살펴보면 다음과 같다.

 

13개의 numerical indepedent 값 (attribute variable)

1개의 numerical dependent 값 (class variable)

 

 

여기서 첫번째 attribute variable에 대해 Linear Regression을 적용하여 예측한 것을 그래프화하여 나타내보면 다음과 같다.

 

x축은 attribute variable 중 첫번째를 나타내며 y축은 class variable을 나타낸다. 빨간점들은 실제 데이터셋의 값들이며 파란색 점들은 Linear Regression으로 예측한 값들이다. x축 방향으로 커질수록 예측을 잘 못하는 것처럼 보인다.

 

 

이를 해결하기 위해 x에 자승한 것을 식에 추가해주어 예측하여 그래프화하여 나타내보면 다음과 같다.

이제 x축 방향으로 커질수록 잘 예측하는 것처럼 보인다. 하지만, x축 방향이 커지는 방향에서의 데이터 수가 적은 것을 고려하면 잘 예측한 것인지 의문이 든다. 이에 관해서는 나중에 살펴보도록 하자.

 

 

 

 

-히비스서커스- 

728x90