만약 x와 y가 위와 같이 콤마(,) 로 구분되있다고 가정합시다.. 이를 그래프로 표현하면 그림 1 과 같습니다.
그림 1
만약 여기서 x값이 25일때는 y값은 무엇일까요? 라는 질문을 했을 때 잘은 모르겠지만 25~30 언저리 될 거에요 라고 답할 것입니다. 무의식적으로 우리는 아래와 같이 그래프에 직선을 그어서 25에 해당하는 y값을 추측한 것입니다. 하지만 컴퓨터는 무의식이나 직감으로 움직이는 녀석이 아니죠. 컴퓨터는 사람이 시킨 일만 할 수 있습니다. 따라서 우리는 컴퓨터에게 다음과 같은 과정을 거치며 값을 예측하라 가르쳐주어야합니다.
1. 직선을 무작위로 긋는다.
2. 직선과 데이터(초록색 점)과 얼마나 다른지 측정한다.
3. 측정한 수치로 직선을 다시 그린다.
각 단계별로 자세히 살펴보겠습니다.
1. 직선을 무작위로 긋는다.
일단 처음엔 컴퓨터가 무작위로 직선을 한번 그려보게 합시다. 직선은 "직선의 방정식"으로 표현이 가능합니다. 직선의 방정식은 다들 아시다시피 $f(x) = Ax + B$ 혹은 $y = Ax + B$로 표현이 가능하죠. 그리고 $H(x) = Wx + B$으로도 표현이 가능합니다. 여기서 $W$는 Weight(가중치)의 W를, H는 Hypothesis function(가설 함수)의 H를 사용한 것입니다. 현재는 직선을 긋기 위해 기울기($W$)와 y절편, 즉 편향($B$) 이 2가지만 필요하기 때문에 $W$와 $B$를 사용하지만 이 파라미터들이 더욱 많아지면 $W$, $B$로만 표기하기 힘들기 때문에
$\theta$로도 표현이 가능합니다.
그림 2
그림 2는 직선을 무작위로 그었을 때를 가정한 것인데 W와 B를 0으로 초기화시킨 모습입니다. 무작위로 그은 선이기 때문에 원래 데이터를 잘 표현하지 못하는 것 같습니다.
2. 직선을 데이터(초록색 점)과 얼마나 다른지 측정한다.
선을 그었으니 만든 선과 현재 데이터 간의 오차가 많은지 측정을 해야합니다. 그럼 직선과 데이터들과 오차를 어떻게 구할 수 있을까요? 바로 MSE(Mean Squad Error)방법 입니다. 아주 간단합니다. 직선과 데이터의 차이를 제곱하여 모두 더하고 이 값의 평균을 구하면 됩니다.
MSE를 식으로 표현하면 $MSE = (y - \widehat{y})^2 / n$ 입니다. $y$는 관측치로 그래프 상에서 초록색 점이고 $\widehat{y}$는 예측치로 빨간색 직선을 의미합니다. 그림 3은 관측치와 예측치의 차이를 검은색 직선으로 표시한 것입니다. MSE는 이런 검은색 직선의 길이를 모두 더한 것의 평균값입니다.
그림 3.
이 MSE값이 높으면 Error가 그만큼 많다는 뜻입니다. 따라서 가설함수 즉, 우리가 예측한 모델인$H(x) = Wx + B$ 는 MSE가 적은 쪽으로 학습되어 바뀔 것 입니다.
3. 측정한 수치로 직선을 다시 그린다.
이제 얼마큼 잘못되었는지 알게되었죠. 그럼 이제는 처음에 그었던 직선을 수정을 합시다. 직선을 수정한다는 것을 $Wx + B$ 이 식에서 $W$(기울기)와 $B$(y 절편)를 수정하는 것과 같습니다. $W$를 바꾸거나 $B$를 잘 바꾸면 그만큼 오차가 줄어들겠죠. 그럼 $W$ 와 $B$를 오차함수값과 같이 고려하여 생각해봅시다. 예를들어 W변화에 대한 오차값을 나타내면 그림3과 같습니다. 그림3과 같이 아래로 볼록한 그래프라고 단정지을 수 있는 이유는 오차함수인 MSE의 식은 ${(y- \widehat{y})^2} / n$이기 때문에 이는 $A^2$꼴이기 때문입니다. 이 그래프에서 가장 볼록한 부분이 MSE값 즉, 우리가 예측한 값과 정답값의 차이가 가장 작다고 볼 수 있습니다. 그리고 이렇게 밑으로 볼록모양인 이차함수에서 값이 가장 작은 부분은 기울기가 0인 값이죠. 따라서 우리는 현재 $W$가 있는 부분에서의 기울기를 구하고 기울기가 0인 부분으로 $W$를 옮기면 되는거죠. 만약 그림4 처럼 $W$가 기울기가 0인 곳보다 왼쪽에 있으면 $W$값을 오른쪽으로, 그림 5처럼 기울가 0인 곳보다 오른쪽에 있으면 왼쪽으로 $W$를 옮기면 됩니다.
W가 기울기가 0인 곳보다 왼쪽 -> W를 오른쪽으로 이동
W가 기울기가 0인 곳보다 오른쪽 -> W를 왼쪽으로 이동
W를 오른쪽으로 이동한다는 것은 W값을 + 방향으로 더한다는 의미이고 W를 왼쪽으로 이동한다는 것은 반대로 - 방향쪽으로 뺀다는 의미입니다. W가 기울기가 0보다 왼쪽이면 W의 현재 기울기가 -를 의미하고 W가 기울기가 0보다 오른쪽이면 W의 현재 기울기가 +라는 것을 알 수 있습니다.
W의 기울기가 음수(-) -> W를 ++
W의 기울기가 양수(+) -> W를 --
정리해봅시다
정리를 해보면 우리는 과정1 에서 $W$를 랜덤하게 초기화(직선을 무작위로 긋기) 했습니다. 과정 2에서는 MSE를 구했고(직선이 초록색 점과 얼마나 다른지 측정), 이제 과정3 에서는 MSE가 가장 작은 값으로 W와 B를 변경을 하면된다는 것을 알게되었습니다.