모두를 위한 딥러닝 3장 - Gradient descent algorithm(경사하강법)

안녕하세요 jay입니다.
지난 시간에는 선형회귀(Linear Regression)에 대해 알아보았습니다.
이번에는 선형회귀에서 
Cost function(Loss fuction)을 최소화 하는 법에 대해 알아보도록 하겠습니다.
김성훈 교수님 PPT : http://hunkim.github.io/ml/lec3.pdf


 
Hypothesis(가설)과 Cost function
지난 시간에 배운 가설 방정식과 Cost function입니다. H(x)는 우리가 가지고 있는 데이터를 토대로 만드는 모델을 의미합니다. Cost function은 데이터들과 H(x) 사이의 거리들을 구해서 최적의 H(x)를 찾아주는 함수입니다. Cost function이 작을수록 좋은 H(x)(가설)입니다.

이제 Cost function을 minimize하기 위해서 H(x)를 간단히 만들어보겠습니다.
그럼 위와 같은 공식이 나옵니다. 이 공식을 가지고 minimize를 해보겠습니다.

간단하게 만들어진 데이터를 cost함수에 넣어서 계산을 해보겠습니다.
그러면 위와 같이 값이 나옵니다.(W가 2일때도 cost(W)는 4.67입니다)
이 데이터를 토대로 그림을 그리면

위와 같은 그래프가 나옵니다.
이 그래프를 통해서 W가 1일 때 Cost함수를 minimize할 수 있다는 것을 알 수 있습니다.

위의 W값을 구할 수 있는 알고리즘이 바로
경사하강법(Gradient descent algorithm)입니다.
이 알고리즘을 적용하면 Cost함수를 minimize시키는 W와 b값을 구할 수 있습니다.


경사하강법을 적용하는 방법은 
일단 시작점을 무작위로 정합니다.
그다음 W값과 b값을 조금씩 바꾸면서 cost함수를 줄입니다.
매번 파라미터를 바꿀 때마다 cost함수를 가장 크게 줄인 경사도를 선택하면 됩니다.
그러면 경사도(기울기)를 구하는 방법은 무엇일까요?
바로 미분입니다.

미분의 수식을 간단하게 하기 위해
cost함수의 1/m을 1/2m으로 바꿉니다.

바꾼 cost함수를 통해서
우리는 위의 경사하강법 수식을 알게 되었다
(알파 : learning rate)
만약 미분한 값이 음수라면 결국 양수가 되어 W의 값은 그래프의 오른쪽으로 가고
미분한 값이 양수라면 음수가 되어 W값은 그래프의 왼쪽으로 가게 됩니다.


이제 경사하강법 공식에다가 우리가 알고있는 cost함수를 넣으면
맨 아래와 같은 공식이 나옵니다.

이 공식이 경사하강법 알고리즘입니다!



위와 같은 3차원 Convex(볼록한) function함수에서도
마찬가지로 Gradient descent algorithm을 사용할 수 있습니다.
어느 지점에서부터 시작해도 결국 Cost함수를 가장 작게 만드는
W,b값은 일정하기 때문입니다.


댓글