Machine Learning/Theory

선형회귀(Linear Regression)

ju_young 2021. 6. 24. 01:11
728x90

선형회귀 모델이란 회귀 계수를 선형적으로 결합할 수 있는 모델을 의미한다. 여기서 회귀 계수란 무엇이고 선형적으로 결합한다는 것은 무슨 말인지 알아보겠다.

회귀 계수

간단하게 설명하면 1차 함수의 기본 형식인 y = ax+b에서 a 와 b를 회귀 계수라고 한다.

선형 결합

선형 결합(linear combination)은 선형 대수의 벡터의 합에서 나온 개념이다. 즉, 서로 다른 a와 b 벡터를 더해 새로운 벡터를 얻는 과정이라고 말할 수 있다. 또한 가중치를 곱한 후 더하는 것도 선형 결합이다. 예를 들어 2a + b, a + 2b와 같은 것도 a 벡터와 b 벡터의 합을 말한다.

 

다시 선형회귀에 대해 말하면 선형회귀는 회귀 계수들이 선형 결합된 함수를 뜻하여 이 함수를 통해 데이터의 값을 예측하는 것을 선형회귀 분석이라 한다.


평균 제곱 오차(MSE, mean squared error)

선형회귀 분석에서 가장 중요한 단계는 주어진 데이터로부터 가장 알맞은 함수를 구하는 단계이다. 그렇다면 어떻게 더 나은, 더 알맞은 함수를 구할 수 있을까?

 

다음과 같은 데이터 분포에 따른 그래프를 보면 어떤 쪽이 더 나은 회귀함수를 사용했을까? 당연히 왼쪽에 있는 그래프가 더 나은 회귀함수라는 것을 알 수 있다. 하지만 수학적으로 어떻게 왼쪽의 회귀함수가 더 낫다는 것을 알 수 있을까?

가장 일반적인 방법으로는 데이터포인트에서 함수의 선까지의 거리를 더하는 방법이 있다. 즉, 다음과 같이 데이터포인트(실제값)와 회귀 직선(예측값)까지의 거리를 회귀 함수의 에러로 표시할 수 있다.

하지만 실무에서는 이 에러값보다는 에러값을 제곱한 값을 더 많이 사용한다.

이렇게 제곱한 값을 사용함으로서 항상 양수인 거리값을 얻을 수 있고 두 개의 회귀를 비교했을 때 쉽게 어느 회귀가 더 나은지 비교할 수 있다.

 

이처럼 함수까지의 거리를 제곱한 값에 평균낸 값을 평균 제곱 오차(MSE, mean squared error)라고 한다.


목적 함수

목적 함수(objective function)란 보통 어떤 함수의 최댓값 또는 최솟값을 구하는 함수이다.

 

자, 일단 직관적으로 생각해보자. 선형회귀에서 최고의 결과를 얻기 위해서 어떻게 해야할까? 위에서 설명했듯이 주어진 데이터로부터 가장 알맞은 함수를 구해야한다.

 

가장 알맞은 함수를 구하려면? 평균 제곱 오차가 최소의 값을 가져야한다.

 

바로 이 평균 제곱 오차를 최소화하는 함수를 목적 함수라고 한다.


경사하강법(gradient descent)

경사하강법(gradient descent)을 반복적으로 실행해 최소의 평균 제곱 오차를 가지는 회귀 계수(θ)를 구한다.

 

 

https://builtin.com/data-science/gradient-descent

α는 학습률(learning rate)를 의미하며 α의 값이 클수록 θ값이 크게 변경되고 α의 값이 작을수록 θ값이 적게 변경된다. 그리고 α값이 너무 크면 위 사진의 왼쪽과 같이 앞뒤로 바운스되며 최소값에 도달하지 못할 수 있다. 반대로 α가 너무 작으면 위 사진의 오른쪽과 같이 경사하강법으로 결국 최소값에 도달할 수 있지만 시간이 오래 걸릴 수 있다. 따라서 학습률(learning rate)도 너무 크거나 너무 작으면 안된다.

728x90