-
머신러닝 - Linear Regression머신러닝 & 딥러닝/머신러닝 기초 2024. 2. 8. 12:22
\ Regression이란??
머신러닝은 지도학습, 비지도학습, 강화학습으로 나눌 수 있었다. 그 중 지도학습은 Classification, Regression으로 나눌 수 있었다. 그렇다면 Regression이란 무엇일까??
Regression은 변수들의 집합 X가 주어지면 한 변수 Y를 예측하는 것이다. Regression에서 Y는 numeric이다. 즉, Regreesion은 선형 또는 비선형 모델을 가정하는 것으로 주식 시장 예측, 매출 예측 등을 예로 들 수 있겠다.
따라서 Regression은 일반적으로 numerical한 데이터들을 분석하고 모델링하는데 사용되는 기술이다.
Linear Regression이란??
Linear Regression이란 예측 함수가 입력 feature들의 선형 조합으로 표현 된다고 가정하는 것이다. 즉, Linear Regression이란 데이터 점들에서 가장 적합한 직선을 찾는 것이며 알려진 다른 데이터를 사용하여 알 수 없는 데이터의 값을 예측하는 데이터 분석 기법이다.
독립 변수 x가 1개인 경우 Simple Linear Regression이라고 하는데 Simple Linear Regression 분석에 대해서 간단히 알아보자.
Simple Linear Regression의 가설은 H(x) = wx + b로 표현된다. 여기서 w는 가중치, b는 편향이다.
Linear Regression에서는 가장 적절한 직선을 찾기 위해 적절한 w와 b를 찾으면 된다.
적절한 w와 b를 찾기 위해서 어떻게 해야할까? 머신러닝에서는 w와 b를 찾기 위해 실제값과 가설로부터 얻은 예측값의 오차를 계산하는 식을 세우고 이 식의 값을 최소화 하는 w와 b를 찾으면 된다.
실제값과 예측값의 오차에 대한 식을 cost function, loss function, objective function이라고 한다.
Linear Regression에서는 실제값과 예측값의 오차를 줄이는 loss function으로 주로 MSE(Mean Squared Error)가 많이 사용된다.
위 그림에서 오차를 구해보자. 오차를 단순히 '오차 = 실제값 - 예측값'으로 정의 할 경우 음수가 발생하는 경우도 있고 양수가 발생하는 경우도 있기 때문에 오차의 절대적인 크기를 구할 수 없다. 따라서 각각의 오차를 제곱해서 더한 후 데이터의 개수로 나누면 오차의 제곱합에 대한 평균을 구할 수 있다. 이를 MSE(Mean Squared Error)라고 한다.
오차가 클수록 MSE는 커지고 오차가 작아질수록 MSE는 작아지기 때문에 MSE를 최소가 되게 하는 w, b를 구하면 결과적으로 가장 적절한 직선을 구할 수 있다.
가장 적절한 직선을 찾기 위한 최적화 알고리즘은??
w와 b를 찾기 위해서 사용되는 알고리즘을 optimizer, 최적화 알고리즘이라고 한다.
optimizer를 통해 적절한 w, b를 찾아내는 과정을 머신러닝에서 Training이라고한다.
가장 기본적인 optimizer로는 gradient descent가 있다. H(x) = wx + b에서 w는 가중치이고 직선의 방정식에서 기울기이다. 기울기가 지나치게 크면 오차가 커지고, 지나치게 작아도 오차가 커지게 된다.
위 그림을 보면 w가 커지면 cost 값도 커지게 되고 w가 작아지면 cost도 작아지는 것을 알 수 있다. 즉, Training 목표는 가장 볼록한 부분을 찾는 것이라고 할 수 있다. 가장 볼록한 부분을 찾아가기 위해 gradient descent를 사용할 수 있는데 기울기를 계속 미분해가면서 접선의 기울기가 0이 되는 지점을 찾아가는 것을 의미한다. 즉, gradient descent의 아이디어는 loss function을 미분하여 현재 w에서 접선의 기울기를 구하고 미분하는 과정을 반복하여 접선의 기울기가 0이 되는 곳을 향해 w를 변경하는 작업을 뜻한다.
w를 업데이트 하는 과정에서 현재 w에서 접선의 기울기와 α를 곱한다. 여기서 α는 learning rate를 의미한다. learning rate는 w를 변경할 때 얼마나 크게 변경할지 0에서 1사이의 값을 갖도록 한다.
정리
머신러닝은 지도학습, 비지도학습, 강화학습으로 나눌 수 있었다. 지도학습에는 Classification, Regression이 있다.
Regression이란 numerical한 데이터들을 분석하고 모델링하는 기술이다.
Linear Regression이란 학습 데이터와 가장 잘 맞는 하나의 직선을 찾는 것이다. 독립 변수 x가 1개인 경우 Simple Linear Regression이라고 하며 H(x) = wx + b로 가설을 세울 수 있다.
결과적으로 실제값과 예측값의 오차를 최소로 하는 직선을 찾아야 하는데 Linear Regression에서 일반적으로 사용되는 loss function으로는 MSE(Mean Squared Error)를 사용하고 optimizer로는 gradient descent를 사용한다.
참고자료+
- https://ko.d2l.ai/chapter_deep-learning-basics/linear-regression.html
- https://gaussian37.github.io/ml-concept-probability_analysis_of_regression/
- https://wikidocs.net/53560
- http://www.stat.yale.edu/Courses/1997-98/101/linreg.htm
- https://aws.amazon.com/ko/what-is/linear-regression/
- https://wikidocs.net/21670
- https://en.wikipedia.org/wiki/Mean_squared_error
'머신러닝 & 딥러닝 > 머신러닝 기초' 카테고리의 다른 글
머신러닝 - Logistic Regression (0) 2024.03.04 머신러닝 - Performance Metrics (평가지표) (2) 2024.01.24 머신러닝 - 지도학습, 비지도학습, 강화학습 (0) 2024.01.22 머신러닝 - Bias and Variance trade-off (0) 2024.01.09