Thing's by Actruce

모두를 위한 Deep Leaning 강좌(Sung Kim) 리뷰 04 본문

IT/Deep Learning

모두를 위한 Deep Leaning 강좌(Sung Kim) 리뷰 04

Actruce 2017. 12. 17. 12:48

이 포스트는 유명한 홍콩 과기대 김성훈 교수의 "모두를 위한 딥러닝 강좌 시즌 1" 의 내용 중 Convolution Neural Network 이전

특히, 29강 까지의 내용을 중점적으로 리뷰해 보고자 한다. (리뷰01, 02, 03, 04, 05, ...)


CNN 은 별도의 포스트를 구성할 예정이다.


본 포스트의 내용은 김성훈 교수의 Lecture Note 의 내용 및 Lab File 을 활용했음을 알려둔다.


Sung Kim “모두를 위한 딥러닝 강좌 시즌 1”

  > 강의 동영상 :  https://goo.gl/2cqKLz

  > 강의 웹사이트 : http://hunkim.github.io/ml/

  > Lecture 슬라이드 : https://goo.gl/4373zL

  > Lab 슬라이드 : https://goo.gl/WwCu4U

  > 강의 소스코드 : https://goo.gl/T2fuYi


Standford holehouse.org 

  > http://www.holehouse.org/mlclass/index.html




리뷰04 Gradient Descent Algorithm (강좌 3 & Standford holehouse.org)




1. Cost Function of Simple Linear Regression


- 변수가 하나일 때, Cost Function 은 2차 다항식의 형태로 나타난다.

- 2차 다항식의 최저값은 아래로 볼록한 가장 아래 지점이 된다. (명확하다)

- Cost Function 이 x 에 대한 2차식이며, 미분하면 x에 대한 1차식이 되고 여기에 Learning Rate 를 곱해 구한 값이 미분값이 된다.

  이 값이 양 (+) 이면 오른쪽에서 왼쪽 (<-) 으로 이동해야 되므로 w 변수를 마이너스 해 주면 되고, 

  반대면 왼쪽에서 오른쪽으로 이동하므로 (->) w 변수를 플러스 해 준다.




2. Cost Function of Multi Linear Regression


- 변수가 여러개 일 때는 좀 더 복잡해 지게 되는데, 결론부터 얘기하면 각 feature 에 대응하는 w 에 대한 편미분 값을 구해서 각 변수를 업데이트하는 방법이다. (feature 가 한 개 일 때도 마찬가지 이다.)


n개 feature 를 가지고, m개 training set 을 가지는 일반화 모델에 대한 Gradient Descent Algorithm 을 이해하기 쉽게,

다음과 같은 4개 feature 를 가진 부동산 가격을 예측하는 Linear Regression 을 가정해 보자.


- x1, x2, x3, x4 are the four features

- x1 : size (feet squared)

- x2 : Number of bedrooms

- x3 : Number of floors

- x4 : Age of home (years)


Notation 을 살펴보면,



위의 수식에서 아랫 첨자가 feature dimension 이고, 윗 첨자가 input 값에 대한 순서이다.


W 라는 weight 대신 θ 라는 parameter vector 로 표현한다.

부동산 예에서 가설 (H) 는 H = Xθ 로 표현할 수 있다. 상수 Term 까지 모두 n + 1 차원의 Vector 이다.




이에, cost function. J(θ) 는 h(θ) 와 실제 y 값과의 차이의 제곱합으로 표현되고,


실제적인 update 수식은 θj_t  := θj_t-1 - (Learning Rate) * ( J(θ) 를 θj 로 편미분한 결과 ) 로 표현할 수 있다.



조금 더 관찰해보면, θj 에 대한 편미분 식은 m 개 training data set 들의 합 형태로 변형이 되고,

이를 통해 좀 더 간단하게 θj 를 업데이트하는 식을 유도할 수 있다.




여기서 Simultaneously Update 라는 말이 중요하다. 각 차원의 변수들이 한꺼번에 업데이트 되는 것이다.

그리고 편미분 했다는 의미는 각 차원이 서로에서 영향을 주지 않는 다는 점도 생각해 보면 좋겠다.


위와 같이, 2개 이상의 변수에 대한 Linear Regression 에 대한 Gradient Descent Algorithm 이 실제적으로 어떻게 각 차원 변수에 대해서 업데이트 되는지 확인해 봤다. 

Comments