1-9 TensorFlow 모듈응용 cost(W,b) 함수
hypothesis 값과 y_train 과의 차이 값의 제곱을 합하여 평균한 값인 cost 함수는 머신러닝 과정에서 항상 최소화(minimization)의 대상이 된다.
W의 초기 값은 난수를 사용하여 지정할 수도 있으나 직접 임의의 값을 주어도 된다. 아울러 처음에 난수로 주어진 b 값을 사용하여 cost 함수 값을 수치적으로 계산이 가능하다.
hypothesis는 W*x_tarin 의 형태로 계산된다. 따라서 x_train을 xi 로 y_train을 yi (i=1,2,3) 로 표현하면 cost 함수는 다음과 같이 W에 관한 2차함수의 형태로 표현된다.
cost 함수는 연속 함수이므로 W 또는 b에 관해 미분하여 cost 함수의 기울기를 계산할 수 있다. 다시 말하면 gradient를 계산할 수 있다는 뜻이다.
즉 weight W 와 bias b는 서로 독립적인 연속 변수로 볼 수 있으므로 각각에 대해서 편미분에 의해 기울기를 구해 보자.
여기서 i 와 j 는 서로 수직한 단위 벡터로 정의 된다.
그 다음 (W,b) 점에서 미소량 (△W,△b)만큼 움직인 점에서의 cost함수는Maclaurin 급수 전개 이론에 의해 다음과 같이 근사적으로 계산된다.
Maclaurin 급수 전개에서 생략된 부분은 cost 함수의 W와 b에 대한 2차 편미분 항을 포함하게 되는데 미소량들의 제곱 항과 곱해지기 때문에 미소량 자체가 대단히 작은 수라면 그 제곱은 무시할 정도로 작아지게 된다. 다라서 Maclaurin 급수 전개의 1차 항들만 가지고도 cost함수의 gradient를 쉽게 계산해 낼 수 있음을 알 수 있다.
Least square 에 의한 cost 함수의 최소화 과정에 필수적인 gradient를 계산해 낼 수 있으며 이 계산법은 머신 러닝 단계에서 필수적인 경사 하강법(Gradient Decent)을 적용하기 위한 근거가 된다. 아울러 경사 하강법에서 gradient를 계산할 수 있다는 점은 NN (neural network)에서 Back Propagation 에 의한 머신 러닝을 뒷받침하게 된다. 쉽게 말해서 경사하강법을 사용한다면 이는 Back Propagation 기법을 사용한다고 보면 될 것이다.
이 근사식을 참조하여 2△W를 TensorFlow의 GradientDescentOptimizer의 learning_rate 값 즉 α로 정의하자. 위 그래프는 바이어스 b를 일정한 상수로 볼때에 cost 함수의 변화 그래프이다. 즉 W 점에 가까운 곳에서의 근사 값을 정확하게 계산하기 위해서 learning_rate 즉 α값은 1.0 비해서 충분히 작아야한다. 만약 α값이 어느 정도 커지게 되면 경사 하강법에 의해 W 값 결정이 불가능해 질 수 도 있다.