ImageLab News 

이미지랩소식

ImageLab News

이미지랩소식

머신러닝[회귀알고리즘2] 선형 회귀

● 단순 선형 회귀


단순 선형 회귀는 독립변수도 하나, 종속변수도 하나인 선형 회귀이다. 예를 들어 주택 가격이 주택의 크기로만 결정된다고 했을 때, 일반적으로 주택의 크기가 크면 가격이 높아지는 경향이 있으므로 다음과 같이 주택 가격은 주택 크기에 대해 선형 관계로 표현할 수 있다.

실제 값과 회귀 모델의 차이에 따른 오류 값을 남은 오류, 잔차라고 부른다. 최적의 회귀 모델을 만드는 것은 이 전체 데이터의 잔차의 합이 최소가 되는 모델을 만든다는 의미이며, 동시에 오류의 합이 최소가 될 수 있게 만드는 최적의 회귀 계수를 찾는다는 의미이기도 하다.


오류 값은 +나 -가 될 수 있다. 따라서 전체 데이터의 오류 합을 구하기 위해 단순하게 모두 합산해버린다면 -값으로 인해 오류의 합이 줄어들 수 있다. 그렇기 때문에, 보통 오류의 합을 계산할 때에는 절댓값을 취하거나(Mean Absolute Error), 오류 값의 제곱을 구해서 더하는 방식(RSS, Residual Sum of Square)을 취한다. 일반적으로는 미분 등의 계산을 편하게 하기 위해 RSS 방식으로 오류의 합을 구한다. 

즉, 다음과 같다.


Error²=RSS 

RSS(w0w1)=1NN∑i=1(yi−(w0+w1×xi))² 


(i는 1부터 학습 데이터의 총건수 N까지)

회귀에서 RSS는 곧 비용(Cost)이며, w 변수(회귀 계수)로 구성되는 RSS를 비용 함수라고 한다. 머신러닝 회귀 알고리즘은 데이터를 계속 학습하며 이 비용함수가 반환하는 값, 즉 오류 값을 지속해서 감소시키고 최종적으로는 더 이상 감소하지 않는 최소의 오류 값을 구하는 알고리즘이다. 비용 함수를 다른 말로 손실 함수라고도 한다. 


● 경사 하강법


회귀 계수가 많은 경우, 고차원 방정식을 가지고 해결하기가 곤란해지는 경우가 있다. 이러한 문제를 해결하며 RSS를 최소화하는 방법을 직관적으로 제공하는 방법이 경사 하강법으로, 점진적으로 w 값을 업데이트하며 오류 값이 최소가 되는 w 값을 구하는 방법이다. 

 

이 방법의 핵심은, ‘어떻게 오류가 작아지는 방향으로 w 값을 보정할 수 있는가’이다. 로켓 등을 발사했을 때, 처음에는 가속도가 증가하며 상승하고, 가속도의 증가량이 줄어들다 마침내 -가속도가 됨과 함께 속도가 떨어지기 시작하며 땅에 추락하게 될 것이다. 이 경우의 속도와 같은 2차 함수의 최저점은 그 함수의 미분 값인 1차 함수의 기울기가 최소인 때이다.

예를 들어, 아래와 같은 포물선 형태의 2차 함수라면, 경사하강법은 최초의 w에서부터 미분을 적용한 뒤, 미분 값이 계속 감소하는 방향으로 w 값을 순차적으로 업데이트한다. 그리고 더 이상 미분된 1차 함수의 기울기가 감소하지 않는 지점을 비용함수가 최저인 지점으로 간주하고 w 값을 반환한다.


● 다항 선형 회귀


단순 선형 회귀는 

y=w0+w1x1+...+wnxn

과같이 독립변수(feature)와 종속변수(target)의 관계가 일차방정식 형태로 표현된 회귀였다. 회귀가 독립변수의 단항식이 아닌, 2차 3차 방정식과 같은 다항식으로 표현되는 것을 다항(polynomial) 회귀라고 한다. 즉, 다항 회귀는 

y=w0+w1x1+w2x2+w3x1x2+w4x12+w5xw2

와 같이 표현된다.


● 규제 선형 회귀

규제 이전의 선형 모델의 비용함수는 RSS의 최소화, 즉 실제 값과 예측값의 차이의 최소화만을 고려했다. 그러다 보니 학습 데이터에 지나치게 과적합되고, 회귀 계수가 지나치게 커졌다. 이럴 경우 변동성이 높아져 테스트 데이터 세트에서 예측 성능이 저하되기 쉽다. 이를 반영해 비용함수는 RSS를 최소화하는 방법과, 과적합을 방지하기 위해 회귀계수 값이 커지지 않게 하는 방법이 균형을 이루어야 한다.

 

이렇게 회귀계수의 크기를 제어해 과적합을 개선하려면 비용(Cost) 함수의 목표가 다음과 같이 

RSS(W)+alpha×||W||22

를 최소화하는 것으로 변경될 수 있다.

비용함수크기 = Min(RSS(W)+alpha×||W||22)

여기서 alpha는 학습 데이터 적합도와 회귀 계수 값의 크기 제어를 수행하는 튜닝 파라미터이다. 비용함수가 

RSS(W)+alpha×||W||22

을 최소화하는 W 벡터를 찾는 것일 때, alpha가 어떤 역할을 하는지 살펴본다.

 

alpha가 0 혹은 아주 작은 값이라면 비용 함수 식은 기존과 동일한


Min=RSS(W)


이 될 것이다. 반면에 alpha가 무한대 혹은 아주 큰 값이라면 비용함수식은 RSS(W)에 비해 


alpha×||W||22


값이 너무 커지게 되므로 W 값을 0 또는 매우 작게 만들어야 Cost가 최소화되는 비용 함수 목표를 달성할 수 있다. 즉, alpha 값을 크게 하면 비용 함수는 회귀 계수 W의 값을 작게 해 과적합을 개선할 수 있으며, 반대로 작게 하면 회귀 계수 W의 값이 커져도 어느 정도 상쇄가 가능하므로 학습 데이터 적합을 더 개선할 수 있다.


· alpha = 0인 경우는 W가 커도 

alpha×||W||22

가 0이 되어 비용함수는 Min(RSS(W))

· alpha = 무한대인 경우는 

alpha×||W||22

도 무한대가 되므로 비용 함수는 W를 0에 가깝게 최소화해야 한다.


즉, alpha를 0에서부터 지속적으로 값을 증가시켜나가면 회귀 계수 값의 크기를 감소시킬 수 있다. 이처럼 비용 함수에 alpha 값으로 패널티를 부여해 회귀계수 값의 크기를 감소시켜 과적합을 개선하는 방식을 규제(Regularization)이라고 한다. 규제는 크게 L2 방식과 L1 방식으로 구분된다. L2는 위에서 말한 것처럼 

alpha×||W||22


와 같이 W의 제곱에 대해 패널티를 부여하는 방식을 말한다. L2 규제를 적용한 회귀를 Ridge 회귀라고 하며, L1 규제를 적용한 회귀를 Lasso 회귀라고 한다. L1 규제는

alpha×||W||1

와 같이 W의 절댓값에 대해 패널티를 부여한다. L1 규제를 적용하면 영향력이 크지 않은 회귀계수 값을 0으로 변환한다.

 

엘라스틱넷 회귀는 L2 규제와 L1 규제를 결합한 회귀이다. 따라서 엘라스틱넷 회귀 비용 함수의 목표는 

RSS(W)+alpha×||W||22+alpha×||W||2

식을 최소화하는 W를 찾는 것이다. Lasso 회귀는 서로 상관관계가 높은 피처들의 경우에 중요 피처만을 선택하고 다른 피처들의 회귀 계수를 모두 0으로 만드는 경향이 강하다. 이러한 경향으로 인해 alpha 값에 따라 회귀계수의 값이 급격히 변동할 수 있는데, 이를 완화하기 위해 L2 규제를 Lasso 회귀에 추가한 것이다. 이 방식의 단점은, 두 가지 규제가 결합된 규제로 인해 수행 시간이 상대적으로 오래 걸린다는 것이다.



Image Lab 이미지랩

본사 경기도 과천시 과천대로7길 33, A동 7층 710호

(갈현동, 디테크타워 과천)

연구소 경기도 성남시 수정구 창업로 43,

판교글로벌비즈센터 B1013호

Tel. 031-757-9472 Fax. 031-759-1489

Image Lab 이미지랩

본사 경기도 과천시 과천대로7길 33, A동 7층 710호(갈현동, 디테크타워 과천)

연구소 경기도 성남시 수정구 창업로 43, 판교글로벌비즈센터 B1013호

Tel. 031-757-9472 Fax. 031-759-1489  E-mail. imagelabinc@gmail.com