이번 포스팅에서는
머신러닝으로 선형 회귀 문제를 푸는 과정에 대해 설명해보겠습니다.
그림1에서 좌측의 표가 주어진 데이터라고 생각을 해 봅시다.
앞서 머신러닝은 "데이터를 가장 잘 설명하는 모델(함수)을 찾는 것"이라고 정리했습니다.
이 정리를 선형 회귀 문제에 적용시켜 보면,
X데이터와 Y데이터 간 관계를 정의할 수 있는 선형 함수
즉, 그림1의 우측 그래프에서 빨간 직선 (Y = aX + b)을 구하는 것이라고 할 수 있습니다.
따라서 이 함수의 기울기(a)와 절편(b)를 구하는 문제가 되는 것입니다.
함수(H)의 정보에 대해 아는 것이 없으므로
먼저 이 함수의 기울기가 -1, 가중치가 100이라고 가정해봅시다.
그러면 함수는 H(x) = -X + 100 꼴(그림2 그래프) 이 되고,
각 X입력에 대해 예측값을 계산해 볼수 있습니다.(그림2 테이블)
이때, 함수의 예측값(Prediction)과 실제 Y값(Truth)의 차이를 Loss라고 정의하며,
이 Loss의 크기를 통해 가정한 함수가 실제 데이터와
얼마나 괴리가 있는지파악 할 수 있습니다. (그림3)
즉, Loss가 클수록 실제 데이터 분포와 차이가 심한 것이다 라고 생각할 수 있습니다.
모든 X값에 대해 Loss를 계산하고 값을 제곱하여 평균하여 전체 데이터에 대한
Mean Square Error Loss를 계산합니다.
이 Loss값이 클수록 가중치 (a, b)를 크게 변화시키고,
작으면 작게 변화시키는 방식으로 Loss가 작은 값으로 수렴할 때까지
이 과정을 반복 해나가는 것입니다.
함수의 기울기가 -2, 절편이 1이 되었을 때,
데이터를 매우 가깝에 추종하는 것을 볼 수 있습니다. (그림4)
그리고 이 과정을 '학습'이라고 합니다.
마지막으로, 찾아낸 함수 H(x) = -2x-1에
학습 데이터가 아닌 테스트 데이터 "35"를 입력으로 주었을 때,
주어진 데이터들과 유사항 경향성을 갖는
적절한 기대값을 구할 수 있게 됩니다.
다음 포스팅에서는 가중치를 업데이트 하는 방법인
경사하강법(Gradient Descent Algorithm)과 응용 알고리즘들에 대해
포스팅 하겠습니다.
'머신러닝(Machine Learning)' 카테고리의 다른 글
[Machine Learning] Batch normalization tips (0) | 2021.03.25 |
---|---|
어떻게 컴퓨터가 사진을 인식하는가 (0) | 2020.10.04 |
[머신러닝] 경사하강법 (Gradient Descent Algorithm) 이해해보기 (0) | 2020.04.12 |