만약 나이 x에 따라 키 t를 예측하는 모델을 만든다고 하자. 다음과 같은 그래프의 데이터가 주어졌다고 가정하자.
위의 데이터가 고르지 않기 때문에 나이에 따라 키를 정확하게 맞추는 것은 불가능하다는 것을 알 수 있다. 따라서 어느 정도 오차를 허용하며 주어진 데이터에서 선을 그어 데이터를 구분짓는 것으로 그럴 듯하게 예측할 수 있다.
이 때, 직선의 방정식을 다음과 같이 나타낼 수 있다. y(x) = w_0*x + w_1
이 때, w_0와 w_1을 어떻게 정할지를 결정해야한다. 이걸 결정할 때 오차를 사용하는데 이 책에서는 평균제곱 오차를 사용하여 각 데이터 별로 모델과의 오차를 구하고 오차가 가장 작은 직선을 결정하여 w_0, w_1을 결정할 것이다.
평균 제곱 오차에서 가장 작은 오차에서의 w_0, w_1을 구하는 방법 중 가장 간단한 방벙은 경사 하강법이다. 먼저, 적당한 w_0과 w_1을 결정한 다음 이것을 J지형에 대응시킨 후 이 점에서의 기울기를 확인하고 J가 감소하는 방향의 w_0와 w_1을 진행시킨다. 이걸 여러차례 반복하면 가장 작은 J값을 갖는 w_0와 w_1 값을 구할 수 있다. 진행 방향에대해 구할 때는 J를 w_0와 w_1로 각각 편미분한 벡터의 반대 방향으로 구하면 된다.
그래서 w값의 갱신을 식으로 나타내면 w(t+1) = w(t) - α(-J를 w_0와 w_1로 편미분한 벡터) 여기서 α는 학습률이라고하는 매개변수로 w의 갱신 폭을 조절해준다. 학습률이 크다면 갱신이 커져 학습이 빨리될 수 있지만 수습이 어려워지기 때문에 적당하게 줄여야한다.
다음은 학습이 될 동안 w가 어떻게 갱신되는지를 나타낸 그림이다.
오른쪽 위의 시작 지점부터 갱신이 되어갈수록 등고선에서 가장 낮은 중앙을 향해 움직이는 것을 볼 수 있다.
이것을 우리가 처음 받았던 데이터에서 절편과 기울기를 이용해 직선을 그어보면 다음과 같이 나타난다.
위의 직선이 평균제곱오차인 J가 가장 작을 때의 직선이다. 이처럼 경사하강법을 사용한다면 J의 최소값을 구할 수 있다. 그러나 주의해야할 점은 경사하강법을 통해 구하는 해는 어디까지나 극소값이며 전체의 최소값과는 다르다. (local minimum과 global minimum의 차이)
1차원의 경우는 x는 나이만을 뜻했다면 이젠 몸무게 정보도 함께 들어갔다고 가정하자. 이 때, 나이를 X1, 몸무게를 X2로 놓고