상기 공식을 통해 오차(loss)가 기울기(gradient)에 따라 어떻게 변화하는지 관찰할 수 있었다.
* N 은 데이터 포인트 개수
* m 은 현 기울기 예측 값
* b는 현 y 절편 예측 값
일단 기울기(m)와 y 절편 값 (b)를 모두 계산할 수 있다면 두 값이 어떻게 되었을 때 오차(loss)가 최솟값이 되는지를 구할 수 있게 된다.
이를 파이썬 코드로 나타내면 하기와 같다.
이제 구배(gradient)를 계산하는 방법을 알게 되었으므로 해당 방향으로 "스텝"을 밟아야 한다. 하지만 이 스텝이 너무 과하거나 작은 건 아닌지 고려해 보는 것이 중요하다 (최소 오차를 초과해서는 안된다)
이를 위해 사용하는 방법으로 경배(gradient)에 학습력(learning rate)를 곱하여 '오버슈트'를 방지할 수 있게 된다
방법은 하기와 같다.
new_b = current_b - (learning_rate * b_gradient)
여기서 현 b값(current_b는)은 추측 값이고 여기서 학습력(learning rate) 값을 곱한 b 추측 값의 차이를 구해준다.
파이썬 코드로 정리하면 하기와 같다.