본문 바로가기
Developer/Machine Learning

#6. Linear Regression의 cost 최소화 알고리즘

by Doony 2017. 11. 25.

본 포스팅은 인프런에서 제공되는 "모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌"를 참고하여 만들어졌습니다. 

인프런 URL: https://www.inflearn.com/

지난 강의 때 배웠던 linear regression 관련, cost 최소화하는 알고리즘의 원리에 대해 알아보자.


  Linear Regression cost minimization Algorithm

지난 포스팅에서, 그냥 optimization으로 포장해놨던 최소화 알고리즘의 원리는 무엇일까?

간단하게, hypothesis 식을 아래와 같이 정의하자.

H(x) = Wx

cost(W) = ∑((H(x) - y)^2) / 개수

즉, W 하나의 상수에 대한 함수가 되겠다. 그렇다면, cost는 어떻게 생긴 함수인가? W에 대한 cost 그래프를 그려볼 수 있다.

예를 들어, W에 0, 1, 2를 차례대로 넣으면서 W에 대한 cost 그래프를 생각해보는 것이다.

우리의 목표는, cost가 최소화되는 점을 찾는 것이므로, 이 그래프를 미분해서 기울이가 0인 점을 찾는 것이 기본적인 원리가 되시겠다. 고등학교 미분 시간에 배운 수 많은 문제들처럼, 어떤 함수의 최소값을 찾기 위한 과정인 것이다.

이를, Gradient Descent algorith이라 한다. 한국어로 하면, 경사 내려감 알고리즘. 기울기를 갖고 노는 것.

gradient descent는 minimizing 문제에 많이 사용되며, 변수 인자가 W1, W2, W2,,,, 등 많아져도 사용할 수 있는 알고리즘이다.


  분을 사용하자 

미분을 하는 방법은..

W에다가, W-상수*cost ' (W)   를 넣는 것이다. 즉, 그래프의 기울기에 특정한 상수를 곱해 W에 뺀다.

그렇다면?

항상 기울기가 0인 지점을 향해 W값이 이동하게 된다. 생각해보라, 기울기가 양수면 W에다가 -를 할거고, 기울기가 음수면, W에다가 +를 하지 않나! 이렇게 간단한 수식을 적용시켜서 기울기 부호에 따라 cost가 작은 쪽으로 이동하게 되는 것이다.


그런데, 문제가 있다.

만약 cost가 W, b에 대한 함수라면, cost는 W, b에 따라 3차원 함수로 표현이 될 것이다. 3차원이다보니, 골짜기가 여러 군데 생길 수 있는데, 그렇게 되면 시작하는 점이 어디냐에 따라 어떨 때는 1번 골짜기, 어떨 때는 2번 골짜기로 minimization을 할 것이 아닌가?

다행히 우리 예제는 convex function이라고 해서, 3차원 그래프가 밥그릇 엎어놓은 것처럼 생겨서, 어디에서 W, b를 시작하든지 간에 같은 값으로 수렴하게 된다.

따라서, cost function이 convex function이 되는지 반드시 확인해야한다. 즉 골짜기가 하나뿐인지 확인해야한다.


#5. Tensorflow로 간단한 linear regression 구현하기

#4. Linear Regression 머신러닝 선형회귀

#1. 머신러닝의 정의 Machine Learning

공감은 큰 힘이 됩니다.

두니월드로 놀러오세요.




댓글