블로그 이미지
윤영식
Full Stacker, Application Architecter, KnowHow Dispenser and Bike Rider

Publication

Category

Recent Post

앤드류 응교수님의 ML 강좌를 정리한다.





Gradient Descent


hypothesis 함수를 적절한 parameter를 가지고 검증할 필요가 있다. 아래 그림과 같이 특정 파라미터 값에 따라 하강한 위치가 틀려 질 수 있다. cost 함수를 최소값을 찾는 것인데, 잘 못된 곳으로 내려가면 해당 값이 최소인것으로 오인할 수 있다. 


- 하강의 스텝(learning rate, 얼마의 보폭으로 하강하는지 정도)은 알파이다. 

- 하강의 방향(direction)-기울기-는 미분(derivative)으로 계산한다.

- starting point가 틀리면 도착한 지점이 틀리게 나왔다. 



- 수학적으로 Gradient descent algorithm을 사용한다. 

   알파: Learning rate * 미분계수

   := 대입기호, = truth assertion

   temp0, temp1을 구한다음 세타0, 세타1에 대입한다. 







미분계수를 이용한 Gradient Descent 알고리즘 이해 


함수의 tanzent값을 구함. 즉, 기울기를 구함. 


- 세타1이 최소값보다 클때 미분계수에 의한 탄젠트 기울기값은 양수이다. 

- 세타1이 최소값보다 작을때 미분계수에 의한 탄젠트 기울기값은 음수이다. 




- 알파(learning rate)에 따라 하강 step이 정해진다.

  + 알파값이 작으면 최소값을 찾는데 느리고

  + 알파값이 크면 최소값을 못 찾고 멀어진다. 




- 하강 기울기가 줄어들 때마다 세타1의 값이 점점 작아진다. 이것은 공식에서 세타1 - 알파*미분계수(기울기 slop값) 을 빼주기 때문에 가능하다. 알파값은 상수 유지 가능.

- J(세타1) 이라는 cost function 그래프에서 미분계수값이 최소가 되는 곳의 세타1의 값을 알 수 있다.

즉, 미분계수 0을 찾는게 목적이다. 


세타1 := 세타1 - 알파 * 0 







비용함수와 기울기 하강 함수를 같이 사용하기


Gradient Descent 알고리즘과 비용 함수 J(세타1, 세타2)




- 좌측 좌표가 가운데로 하강을 할 수록 기울기가 점점 변경된다. 선형 회귀는 항시 하나의 최적값을 갖는 밥그릇의 Convex(볼록) 모양을 갖는다. 




결론 Cost function j의 해답을 얻기 위해 하강 기울기 알고리즘을 사용한다. 






Gradient Descent for Linear Regression


선형 회귀의 경우 새로운 형태의 Gradient Descent방정식이 도출된다. 

 - m: training set 사이즈

 - 세타0: 초기시작값 - 상수

 - 세타1: 기울기값 - 변경값 

 - xi, yi: training data set



Gradient Descent 식에 J(세타)즉 cost founction을 넣어서 식을 간략히 하면 다음과 같이된다. 





참조


posted by 윤영식