Hypothesis 와 Cost를 다음과 같이 정의하였다.
우리의 모델이 대략 이런 형태를 띠고 있다. 이것에 기반하여
모델이 실제 데이터와 얼마나 다른가 (가설의 값과 실체 값의 차이의 제곱의 평균)
cost(W,b)를 최소화 시키는 W,b의 값을 우리가 가지고 있는 데이터를 통해서 구해보자는 것이 Linear Regrssion의 목표이다.
Hypothesis를 간략화 해보자
W값에 따른 그래프를 그려보면
와 같은 그래프가 나오게 된다.
cost가 최소화되는 점을 기계적으로 찾아내는 못적이다. 여기서 많이 사용되는 알고리즘이 gradient descent algorithm이다.
Gradient descent algorithm(경사를 내려가는 알고리즘)
- cost function을 최소화 시킨다.
- 주어진 cost function을 최소화하는 w와 b를 찾는다.
어떻게 동작하는가?
아무 점에서나 시작이 가능하나 그런 다음에 W를 조금씩 바꿔나가면서 그때의 경사도를 계산한다. 경사도가 최소가 되는 지점이 cost가 최소가 되는 지점이다. 경사도는 미분을 통해 구한다.
수식을 간단히 하기 위해서 1/2를 곱해 준후 미분을 한다.
learning rate : 0.1이라고 가정한다.
학습 과정을 통해서 모델을 만든다.
시작점에 따라 도착점이 달라져버린다. 이렇게 되면 알고리즘이 잘 동작하지 않는다.
볼록 함수일때만 사용이 가능한 알고리즘이다.
'머신러닝 > 텐서플로우' 카테고리의 다른 글
Tensorflow로 간단한 Linear Regression 구현(2) (0) | 2018.07.27 |
---|---|
Tensorflow로 간단한 linear regression 구현(1) (0) | 2018.07.26 |