Coursera ML class – week02 Linear Regression with Multiple Variable part II

이 포스트는 Coursera Machine Learning 강의(Andrew Ng 교수)를 요약 정리한 것 입니다. 포스트에 사용된 이미지 중 많은 내용은 동영상 강의 자료의 이미지 캡쳐임을 밝힙니다.

Course Home: Coursera Machine Learning

(이 글은 Coursera ML class – week02 Linear Regression with Multiple Variable part I 에서 이어집니다.)

 

  • Features and polynomial Regression

 

이번에는 한 단계 더 나아가 다변수 다항식에 대하여 계산해보자.

다시, 집값 예측모델로 돌아가보자. 집 값에 영향을 미치는 변수를 집의 크기라고 했을 때 집의 크기(size, feet2)는 가로(frontage) x 세로(depth) 라고 할 수 있다.

14

 

Polynomial Regression 이란 다항회귀로 변수 중 하나라도 다차항 일 때를 말한다.

아래 그림에서 x2에 대한 식은 파란색 곡선, x3에 대한 식은 초록색으로 그려져 있다.  x1, x2, x3가 각각 size, size의 제곱(넓이), size의 세제곱(부피)라고 할 때 size의 범위가 1-1000이면 x2의 범위는 1 – 1,0002, x3 의 범위는 1 – 1,0003 이다. 이 때 x2, 의 모델을 cubic function, x3 의 모델을 quadratic function이라고 한다.

 

15

 

이 때 변수의 값이 너무 크기 때문에 앞에서 다뤘던 Feature Scaling, Mean normalization 방식을 사용해야 한다. 아래와 같이 size의 제곱을 size의 제곱근으로 바꾸어서 답을 구할 수도 있다.

 

16

 

 

  • Normal Equation

 

이번에는 global minimum을 찾는데 Gradient Descent 방식 대신 Normal Equation 방식에 대해 알아보도록 하겠다. Gradient Descent방식은 반복 계산을 통해 결과를 도출해 낸다면 Normal equation 방식은반복계산 없이 θ 값을 바로 찾는다.

17

그럼 Normal Equation 방식을 적용해보자. 아래와 같이 cubic function이 있을 때 J(θ) 값의 derivative (도함수)를 0이라고 두고 θ값을 구한다.

 

18

 

집값 예측 모델을 예로 계산해보자. Training set의 수가 4개(m)이고 집값에 영향을 주는 변수(feature)가 4개 있다고 가정해보자. 이 때 θ값은 아래와 같은 식으로 구할 수 있다.

*  θ 계산을 위한 유도식 참고:  https://en.wikipedia.org/wiki/Linear_least_squares_(mathematics)

19

 

Normal equation은 한번에 값이 나오는 데 반복계산을 해야 하는 Gradient Descent를 왜 선택해야 하는지 의문이 들 수도 있다.

Normal Equation은 행렬의 transpose와 곱 그리고 역 행렬을 구해야 하기 때문에 O(n3)의 복잡도가 사용된다. 그래서 n의 개수가 늘어나면 늘어날수록 계산하는데 느려진다. n이 100, 1000 일 때는 Normal Equation이 빠르지만 n이 10,000만 되어도 Gradient Descent에 비해 속도가 느리다. 하지만 Gradient Descent방식은 n이 크더라도 잘 작동하기 때문에 n이 큰 경우는 Gradient Descent를 사용하는 것이 좋다.

 

아래 그림으로 Gradient Descent 와 Normal Equation 을 비교하면서 마무리하겠다.

20

<끝>

 

 

Course Home: Coursera Machine Learning

Andrew Ng 교수님 소개: https://www.coursera.org/instructor/andrewng

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.