본문 바로가기

자기개발/Programming

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

지난 포스팅에서 오차(loss)값에 대해 알아봤는데 말 그대로 오차값은 적으면 적을수록 모델에 정확도가 높아지니 최솟값을 찾아 해당 값을 입력 해줘야한다. 입력값을 조정(기울기 값, y 절편 값)하여 오차(loss)를 최솟값을 찾을 수 있는데 마치 언덕 아래로 내려가다가 바닥에 이르면 멈추는 것과 같다.

the point with minumum loss value

이러한 작업을 기울기 하강(gradient descent)라고 한다. 경사도(Gradient)는 기울기(slope)를 뜻하며 오차값(loss)을 최소로 하는 값을 찾는데 이때 미적분을 사용한다. 다만 해당 개념을 이해하는 정도로만 알고 넘어가도 문제없다.

y 절편값에 따라 변하는 기울기 값은 하기 공식으로 구할 수 있는데,

N은 데이터 포인트 개수를 뜻하며

m은 현 기울기 예측값

b는 y 절편 예측값이다.

 

기본적으로
* 모든 y_values 및 x_values에 대해 y_value - (m*x_value + b)의 합을 구한다.
* 그런 다음, 합계에 -2/N의 계수를 곱한다. 

이를 파이썬 코드로 나타내면 하기와 같다.