1. 기존의 정보로 가설을 세워, 예측값을 구한다.
H(x) = 가중치(Weight) * X + 고유값(Bias)
H(x) = WX +b
( 가중치 : 하나의 데이터가, 예측결과에 얼마나 영향을 미치는지 나타낸 수치 )
* 가중치를 변경해가며, 가장 오차가 적은 수치를 찾는다.
2. 예측값 H(x)와, 실제값 y를 비교하여
오차(Cost)를 줄이는 것을 목표로 한다.
Cost = H(x) - y
( 오차의 크기(절댓값)가 줄어들수록 정확한 예측 )
3. 데이터가 많아지면
오차를 모두더하고, 데이터 수로 나누어 오차평균을 구한다.
오차의 크기만 더하기 위해서, 기존의 오차에 제곱을 해준다.
( 절댓값보다 제곱을 활용하는 것이, 코딩 최적화에 효과적이다 )
총 오차크기 : ( H(x) - y )^2 + ( H(x) - y )^2 + ( H(x) - y )^2 .... ( H(x) - y )^2
데이터 수 : n
Cost = ( H(x) - y )^2 + ( H(x) - y )^2 + ( H(x) - y )^2 .... ( H(x) - y )^2 / n
4. 경사 강하 알고리즘 ( Gradient Descent Algorithm )
가중치에 따른, 오차의 크기의 좌표평면을 그리면
아래로 볼록한 2차함수가 나오는데,
이때, 가장 아래에 위치한 접점이 최소 오차가 되므로
경사를 따라 내려가며 최저 Cost를 찾는데,
이를 경사 강하 알고리즘이라고 부른다.
경사를 따라 내려가는 것은
어느 한 접점에서의 기울기를 이용한다.
기울기가 0보다 크다면 음의방향에 최저 Cost가 있을 것이고,
기울기가 0보다 작다면 양의방향에 최저 Cost가 있을 것이다.
이것을 이용해,
기울기 > 0 이면, W를 낮추고
기울기 < 0 이면, W를 높히면서
점점 최저 Cost에 다다르도록한다.