본문 바로가기

자기개발/Programming

머신러닝(Machine Learning) 기초 - 13 : 선형 회귀 분석(Linear Regression) - 기울기 하강 (Gradient Descent) 2

상기 공식을 통해 오차(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 추측 값의 차이를 구해준다.

파이썬 코드로 정리하면 하기와 같다.