티스토리 뷰
cost function의 최소화
Hypothesis와 그것의 cost를 구하는 함수는 아래와 같습니다.
우리느 여기서의 cost function을 가장 작게 하고 싶은 것입니다.
최소의 cost를 가지는 것을 어떻게 찾는가?
위 표의 데이터를 이용하여 각 W를 가정하고 cost를 구해 봅시다.
W=1, cost(W) = 0
w=0, cost(W) = 4.67
W=1, cost(W) = 4.67
W가 1일 때 값이 0, W가 0일 때 값이 4.67, W가 2일 때 값이 4.67가 나옵니다. 이러한 것들을 컴퓨터를 이용해 그려보면
이러한 형태의 2차 방정식이 나오게 됩니다. 여기서 우리의 목적은 cost 함수의 최소화의 지점을 찾는 것이 목적이 됩니다.
cost 최소화 알고리즘(Gradient descent algorithm)
여기서 사용되는 알고리즘이 Gradient descent algorithm 인데, 저 영어를 해석하면 경사를 내려가는 알고리즘이라 할 수 있습니다.
이 알고리즘을 적용시키면 cost(W,b)의 최솟값을 찾을 수 있습니다.
위 그래프를 보고 경사도를 따라서 한발자국 움직이고 또 한발자국 움직이다가 보면 경사도가 0인 경우를 만나기 때문에 그 곳에 머무르게 됩니다. 이 지점이 바로 cost 함수의 최소화를 시킨 지점이며, 위 과정이 바로 Gradient descent algorithm의 과정입니다.
시작은 위 그래프 아무 지점에서 시작이 가능합니다.
그 다음 그 점을 기준으로 W를 조금 바꾸면 cost(W,b)를 줄일 수 있게 됩니다. 즉, 경사도가 더 낮은 지점으로 이동한다는 것입니다. 이 과정을 반복하면 경사도가 가장 낮은 0이 되는 지점에 도착하게 됩니다.
항상 최솟점에 도달할 수 있는 것이 이 알고리즘의 최대 장점입니다.
여기서 말하는 경사도는 기울기를 뜻합니다.
기울기는 미분을 이용해 구할 수 있습니다.
아래에서는 알고리즘을 식으로 표현하겠습니다.
우리가 표현하고자 하는 식이 바로 위 식입니다. (알파=learning rate를 표현하며, 상수입니다.)
W의 cost의 기울기가 +면 W(x축)는 왼쪽으로 이동할 테고, 기울기고 -면 W(x축)는 오른쪽으로 이동합니다.
cost의 기울기가 0이면 W(x축)는 더 이상 이동하지 않을 것입니다.
먼저 미분을 쉽게 하기 위해서 m을 2m으로 변경하였습니다.(미분 시 차이가 없음)
단계별로 진행하면 미분된 식이 나옵니다. 이것이 바로 Gradient descent algorithm입니다.
Gradient descent algorithm의 한계
그래서 Gradient descent algorithm은 아래와 같이 그믈망처럼 생긴 그래프에서만 적용이 가능합니다.
왜냐하면 어디서 시작해도 경사도가 낮은 곳으로 이동하면 한곳에 도착하게 되기 때문입니다.
이런 경우에 우리는 Gradient descent algorithm이 항상 답을 찾는다는 것을 보장받게 됩니다.
이 그래프의 이름은 Convex function이라고 합니다.
결론
우리가 Linear Regression을 사용하기 전에 Gradient descent algorithm이 convex function의 형태를 취하고 있는지를 확이 후 사용할 필요가 있습니다.
----------------------------------------------------------
https://hunkim.github.io/ml/의 내용을 보고 정리한 글입니다.
'AI > 딥러닝(sung kim)' 카테고리의 다른 글
Linear regression의 cost 최소화의 tensorflow 구현 (0) | 2018.05.19 |
---|---|
Tensorflow로 간단한 linear regression을 구현 (0) | 2018.05.18 |
Tensorflow의 기본적인 operations (0) | 2018.05.14 |
Linear Regression의 개념 (1) | 2018.05.09 |
Machine Learning의 용어와 개념 설명 (1) | 2018.05.07 |