Linear Regression(선형 회귀 분석)

이상우·2021년 12월 21일
0


이번주부터 캐글을 위한 사전 공부인 머신러닝 기초에 대해서 공부하게 되었다. 선형 회귀와 로지스틱 회귀를 배웠다. 이론적인 부분에서 배우게 되었는데, 대체로 어떤 내용인지는 알지만 딥다이브하게는 알려면 따로 공부는 필수인 것을 느끼게 되었다. 머신러닝을 단순히 할 줄 아는 엔지니어가 아닌, 기본 개념을 알고 머신러닝을 할 줄 알아야 한다고 생각한다.

Linear Regression(선형 회귀 분석)

  • 가장 기본적이고 널리 사용되는 머신러닝 알고리즘 중 하나
  • 선형 회귀 분석은 가장 적합한 직선(회귀선)을 사용하여 종속 변수(Y)와 하나 이상의 독립 변수(X)간의 관계를 모델링
  • 직선, 즉 일차함수의 개념인 y=ax+b직선을 임의로 그려놓고, 그 직선을 바탕으로 예측하는 것

    위 그래프 중 어느 것이 예측이 정확한가? 당연 왼쪽일 것이다. 모든 점들이 직선상에 존재하기 때문이다. 하지만 왼쪽처럼 예측을 100%정확도를 볼수는 거의 없다.


즉, 예측하기 위해 만든 모델인 y=ax+b직선과 실제 데이터를 찍어놓은 점들의 y의 차이를 error라고 한다.


error는 단순히 실제 데이터의 y값과 예측 직선모델의 y값의 차이라면,
Square error는 실제 데이터의 y값과 예측 직선모델의 y값의 차이를 제곱해서 넓이로 보는 것이다.

Square error로 보는 이뉴는 무엇인가?
1.우리 눈에 보이기 쉽다.
2.수학적으로 볼때, 에러가 조금이라도 있다면, 값이 증폭되어 큰값과 작은값의 비교를 쉽게 할 수 있다.
3.딥러닝 등의 알고리즘인 Gradient Descent의 Backpropagation개념에서 계산이 용이하게 편미분된다.
*편미분은 함수의 변수가 1개가 아닌 2개 이상의 함수에서 변수 1개의 변화에 따른 기울기를 알고 싶을 때 필요하다.


위에 두 그래프를 Squeare error의 측면에서 확인해보자.

Square Error를 구하고, 그것을 평균 낸 Mean Square Error를 보면 왼쪽이 더 작다.
그러므로 왼쪽이 예측을 더 잘하는 것이다.


그럼 위 점들 찍힌 것을 가지고 어떻게 선형 회귀 분석 선을 그릴 수 있을까?
앞서 설명했듯이 Mean Square Error를 구하면 되는데 이것은 Square Error를 다 더해서 n으로 나누어 평균을 낸 값이다.

이것을 통해서 가장 좋은 선형회귀모델을 그을 것이다.
그 과정에서 사용되는 것이 Gradient Descent 알고리즘이다.
그리고 이 알고리즘을 사용하기 위해, 알아야 할 개념인 Cost functionMean Square Error와 같다고 보면 된다.

즉 실제값과 예측값의 차이를 제곱해서 평균낸 개념이 Cost Function인 것이다.
이것을 최저로 만드는 개념이 Least Mean Square Error이다.

Gradient Descent

정답이 주어진 데이터가 있을 때, 우리는 최적의 선형회귀모델(직선)을 만들고, 그 모델의 Mean Square Error 즉, Cost Function을 최소로 만드는 최적의 직선을 찾아야한다.
Gradient Descent는 cost를 최소로 만드는 예측직선 h(x) = wx에서 최적의 @(세타)를 업데이트하면서 찾아내는 과정이라고 볼 수 있다.
공식은 아래와 같다.

cost function을 시각화하면 아래와 같다.

그러면 h(x)=wx+b의 문제는 어떻게 풀 수 있을까?
위에서 본 예제는 b=0인 문제였다. 그러나 실제에서는 b(bias)가 거의 붙어있다.
이럴 때는, b를 새로운 w2라 보고, h(x) = w1x + w2x의 문제를 풀면된다.

위에서는 2차함수였지만, w가 하나 더 늘면 3차원으로 표시해야하며 아래 그림과 같다.

profile
구상한것을 구현할 수 있는 개발자가 되고 싶습니다.

0개의 댓글