Machine Learning with Tensorflow) 2. Linear Regression

물리학 실험같은 수업을 듣다보면, 데이터를 일차식이나 이차식에 fitting시킨 경험이 있을 것이다.

Linear Regression이 바로 그러한 부류이다. Input data를 이용하여 가장 근사하는 1차식을 찾는 것이다.
우리가 예측하려하는 모델은 y = H(x) = Wx + b로 어떠한 일차식에 대응시키는 것이 목표다.
간단히 생각하면, 우리는 Error가 가장 작은 쪽으로 H(x)를 매칭시키면 된다.
Error를 설정해줄 때 우리는 Data의 y*값과 현재 매칭된 y값과 비교하여 이 값을 모두 더해주면 된다.
이 Error가 가장 작은 쪽으로 H(x)를 수정하다보면 우리는 데이터가 잘 fitting 된 것을 확인할 수 있다.

이것이 python에서 TensorFlow를 이용하여 직접 작성한 코드이다. 여기서보면, SGD기법을 사용하여 경사가 낮은 쪽은 y값을 수정해가는 것을 확인할 수 있다.
아니 그냥 Error값이 가장 낮은 쪽으로 값을 아예 처음부터 수정하면 되는 거 아니야? 라고 생각할 수 있지만 그 과정에는 상당히 많은 오류 요인들이 담겨 있다.
데이터가 너무 Overfitting되어 다른 input data에 대하여 값을 예측 못 할 수 있을 뿐더러 그 가장 낮은 값을 구하지 못한 경우도 수두룩하다.

이러한 SGD값에서 앞에 붙여있는 알파 값은 너무 낮으면 학습 빈도가 많아야하고, 너무 높을 경우 데이터가 OverShooting될 수도 있다. 이러한 것은 기계학습을 만드는 사람이 경험적으로 설정하는 것이다.


댓글

가장 많이 본 글