히비스서커스의 블로그

[기계학습 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을 배워볼텐데 가설을 함수의 형태로 만들어보자.

ˆf(x;θ)=θ0+ni=1θixi=ni=0θixi

 

 

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

 

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

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

 

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

 

 

Linear Regression에서 θ값 찾기


위의 식에서 θ0를 지워준 형태인 ˆf(x;θ)=ni=1θixi=ni=0θixi 형태로 간편화하여 사용해보자. 그럴경우 X,θ를 살펴보면 다음과 같다.

 

X=(1...x1n......1...xDn), θ=(θ0θ1...θn),ˆf=Xθ

 

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

 

 

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

f(x;θ)=niθixi+e=y이고, 위의 추정함수처럼 행렬로 나타내면 f=Xθ+e=Y로 나타낼 수 있다.

 

 

위에서 나타난 ˆf,f,x,θ,e,y,X,Y를 정리해보면 

 

ˆf: 실제함수를 추정한 함수, =Xθ

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

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

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

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

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

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

Y: y들로 이루어진 행렬

 

라고 할 수 있다.

 

 

 

우리의 목표 :: 실제함수(=f)와 추정함수(=ˆf)의 차이를 최소로하는 θ의 값을 찾기


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

 

θ=argminθ(fˆf)2

=argminθ(YXθ)2

=argminθ(YXθ)t

=argminθ(YtθtXt)(YXθ)

=argminθYtYYtXθθtXtY+θTXTXθ

=argminθ(θtXtXθ2θtXtY+YtY),  

= 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