Broccoli's House

#2-(3) 지도학습 알고리즘 : 선형 모델 본문

공부/머신러닝

#2-(3) 지도학습 알고리즘 : 선형 모델

김콜리 2018. 1. 21. 04:59

※ 이 글의 내용은 O'REILLY의 <파이썬 라이브러리를 활용한 머신러닝> 책을 기반으로 한다.




지도 학습 알고리즘 : 선형 모델



  • 선형 모델
 - 선형 모델은 입력 특성에 대한 선형 함수를 만들어 출력을 예측한다.



  • 회귀의 선형 모델

- 일반화된 예측 함수 : y = wx+b (w : 가중치, b : 편향)

- 회귀를 위한 선형 모델은 특성이 하나일 때는 직선, 두 개일 때는 평면이 된다.



<선형 모델의 예측>



- 예측 값 y가 각 특성들의 선형 조합이라는 것은 비현실적인 가정일 수 있다. 그러나 이것은 1차원 데이터에서 생각할 수 있는 편견이다. 특성이 많은 데이터 세트, 특히나 훈련 데이터보다 특성이 더 많은 경우에는 어떤 예측 값 y도 완벽하게 선형 함수로 모델링할 수 있다.


- 회귀를 위한 선형 모델은 다양하다. 각 모델들은 훈련 데이터로부터 매개 변수 w와 b를 학습하는 방법과 모델의 복잡도를 제어하는 방법에서 차이가 있다.



  • 선형 회귀(최소 제곱법)

 - 선형 회귀(Linear Regression) : 가장 간단하고 오래된 회귀용 선형 알고리즘이다. 예측 값과 훈련 세트에 있는 y 사이의 평균 제곱 오차를 최소화하는 매개변수를 찾는다. 선형 회귀는 매개변수가 없는 것이 장점이지만, 그로 인해 모델의 복잡도를 제어할 방법 또한 없다. (최소가 되는 오차에 따라 매개변수의 값이 정해진다. 따라서 매개변수의 변화에 따라 복잡도를 조절할 수 있는 다른 모델과는 달리, 데이터 세트가 주어지고 학습이 끝나면 매개변수가 고정되므로 복잡도를 제어할 방법이 없는 것이다.)


 - 1차원 데이터 세트에서는 모델이 매우 단순하고 제한적이므로 과대적합(Overfitting)이 되지 않는다. 그러나 특성이 많은 고차원 데이터 세트에서는 선형 모델의 성능이 매우 높아져 과대적합될 가능성이 높다. 따라서 기본적인 선형 회귀 방정식 대신 일반적으로 릿지 회귀를 사용한다.




  • 릿지 회귀
 - 릿지(Ridge) : 회귀를 위한 선형 모델로써, 최소제곱법에서 사용한 것과 같은 예측 함수를 사용한다. 그러나 릿지 회귀에서의 가중치(w) 선택은 훈련 데이터를 잘 예측하기 위해서 뿐만 아니라 추가적인 제약 조건을 만족시키기 위한 목적도 있다.


 - 규제(Regularization) : 가중치의 절댓값을 가능한 작게 만든다. 즉, 가중치의 모든 원소를 0에 가깝게 하여 모든 특성이 출력에 주는 영향을 최소한으로 만든다. (기울기를 작게 만든다) 규제란 과대적합이 되지 않도록 모델을 강제로 제한한다는 의미이다. 릿지 회귀에 사용하는 규제 방식을 L2규제라 한다.


 - L2 규제 : 각 가중치 제곱의 합에 규제 강도(Regularization Strength) α를 곱한다. 그 값을 평균 제곱 오차식에 더한다. α를 크게 하면 가중치가 더 많이 감소되고(규제를 중요시함), α를 작게 하면 가중치가 증가한다(규제를 중요시하지 않음). (가중치를 계산할 때, 이전의 가중치에서 미분한 오차(cost function, 비용함수)에 학습율을 곱한 값을 빼서 계산한다. 따라서 규제 강도 α가 증가하면 오차가 커지고 가중치가 감소되는 폭 또한 커지게 된다. 즉, 규제 강도를 통해 가중치를 제어할 수 있는 것이다.)


 - α값이 커지면 w는 0에 가까워진다. 따라서 데이터의 특성을 더 많이 무시하기 때문에 성능(정확도)은 나빠지지만 복잡도가 낮아져 더 일반화된 모델이 된다. 반대로 α값이 작아지면 선형 회귀 모델과 거의 같아진다.



<릿지 α값에 따른 가중치 w의 크기 변화>


<릿지 회귀와 선형 회귀의 학습 곡선>


 - 데이터 세트의 크기에 따른 모델의 성능 변화를 나타낸 그래프를 학습 곡선이라 한다.

 - 릿지 회귀에는 규제가 적용되므로 릿지 회귀의 훈련 데이터 점수가 선형 회귀의 훈련 데이터 점수보다 전체적으로 낮다. 선형 회귀의 경우 데이터의 크기가 커질수록 훈련 데이터 점수가 낮아지는데, 이것은 데이터의 크기가 커지면 모델이 데이터를 기억하거나 과대적합(Overfitting)하기 어려워지기 때문이다.

 - 테스트 데이터의 경우 릿지 회귀의 점수가 더 높으며 데이터 세트의 크기가 작을수록 더 그렇다. 그러나 데이터가 충분하다면, 릿지 회귀와 선형 회귀의 성능은 같아진다.




    • 라쏘

 - 라쏘(Lasso) : 선형 회귀에 규제를 적용하는 데에 있어 릿지(Ridge) 회귀의 대안이 된다. 릿지 회귀에서와 같이 라쏘도 계수를 0에 가깝게 만들려고 한다. 그러나 릿지는 L2 규제를 사용하지만, 라쏘는 L1 규제를 사용한다는 점에서 차이가 있다. 


 - L1 규제 : L1 규제는 가중치의 제곱의 합이 아닌 가중치의 합을 더한 값에 α를 곱하여 오차에 더한다. 이렇게 하면 L2 규제와는 달리 어떤 가중치 w는 실제로 0이 된다. 즉, 모델에서 완전히 제외되는 특성이 생기는 것이다. 일부 계수를 0으로 만듦으로써 모델을 이해하기 쉬워지고, 모델의 가장 중요한 특성이 무엇인지 드러나는 것이다. 



<라쏘 α값에 따른 가중치 w의 크기 변화>


 - 릿지 회귀와는 달리 라쏘 α값이 증가하면 어떤 계수들은 실제로 0이 된다. 

 - 두 모델 중에서 보통은 릿지 회귀를 선호하지만, 특성이 많고 그 중 일부분만 중요하면 라쏘가 더 좋은 선택이다.

 - ElasticNet 모델 : 라쏘와 릿지를 결합한 모델. L1과 L2 규제를 위한 매개변수 두 개를 조정해야한다.




  • 분류용 선형 모델

 -  y = wx+b의 함수에서 계산한 값이 0보다 작은지 큰지를 판단하여 클래스를 예측한다.

 - 회귀용 선형 모델에서는 출력이 선형 함수이지만, 분류용 선형 모델에서는 결정 경계가 입력의 선형 함수이다.

 - 선형 분류 알고리즘에는 로지스틱 회귀(Logistic Regression, 이름에 회귀가 들어가지만 분류 알고리즘이다), 선형 서포트 벡터 머신(Support Vector Machine : SVC)이 가장 널리 알려져 있다.



<같은 데이터에 대한 선형 SVC 모델(좌)과 로지스틱 회귀 모델(우)의 분류>


 - 릿지(Ridge) 회귀와 마찬가지로, 선형 SVC와 로지스틱 회귀 둘 모두 L2 규제를 사용한다. 따라서 둘은 비슷한 결정 경계를 그리고, 그림에서도 동일한 데이터 포인트 하나를 잘못 분류한 것을 볼 수 있다.


 - 로지스틱 회귀와 선형 SVC에서 규제의 강도를 결정하는 매개변수는 C이다. 회귀에서는 α와는 반대로, C의 값이 커지면 규제는 오히려 감소한다. 



<매개변수 C값의 변화에 따른 선형 SVC의 분류>


 - 매개변수 C가 크면 규제가 거의 없어 선형 분류 알고리즘은 훈련 데이터에 최대한 맞추려고 한다. 그러면 가중치 w는 일반적인 선형 모델과 거의 같아지고, 정확도는 올라가지만 모델은 복잡해져서 일반화가 잘 되지않아 과대적합(Overfitting)이 일어날 가능성이 생긴다. 반대로 매개변수 C가 작아지면 규제는 심해져서 데이터 각각의 특성이 많이 무시된다. 가중치 w는 0에 가깝게 수렴하고, 정확도는 떨어지지만 덜 복잡하고, 더 일반화된 모델이 생성된다.


 - 회귀와 비슷하게, 분류에서의 선형 모델 또한 낮은 차원의 데이터에서 결정 경계가 직선 혹은 평면이어서 매우 제한적인 것처럼 보인다. 그러나 고차원으로 갈수록 분류에 대한 선형 모델이 매우 강력해지며, 특성이 많아지면 과대적합되지 않도록 하는 것이 매우 중요하다.




  • 다중 클래스 분류용 선형 모델

 - 로지스틱 회귀(Logistic Regression)을 제외하고는, 많은 선형 분류 모델은 이진 분류만을 지원하지 않고, 다중 클래스를 지원하지 않는다. 이진 분류 알고리즘을 다중 클래스 분류 알고리즘으로 확장하기 위해 주로 일대다(one-vs-rest : ovr) 방법을 사용한다. 

 - 일대다(ovr) 방법 : 일대다 방법은 각 클래스를 모든 클래스와 구분하도록 이진 분류 모델을 학습시킨다. 그렇게 하면 결국에는 클래스의 수만큼 이진 분류 모델이 만들어지고, 예측 시에 만들어진 모든 이진 분류기가 작동하여 가장 높은 점수를 내는 분류기의 클래스를 예측값으로 선택하는 방법이다.



<다중 클래스 분류 모델>


 - 각각의 선이 이진 분류 모델을 뜻한다. 클래스의 수만큼 이진 분류 모델이 만들어진 것을 볼 수 있다. 이를 토대로 결정 경계가 그려진다. 이진 분류 모델 사이의 중앙 삼각형 영역 내부에 데이터 포인트가 들어올 경우, 각각의 모델이 평가한 값 중에서 가장 큰 쪽으로 분류되게 된다. 즉, 가장 가까운 직선의 클래스가 된다.




  • 매개변수 선정

 - 매개변수 : 회귀모델에서는 α, 분류 모델에서는 C이다. α가 클수록, C는 작을수록 가중치는 0에 가까워지고 모델은 단순해진다. 보통 C와 α는 로그 스케일로 최적치를 정한다. 특별히 회귀 모델에서 매개변수를 조정하는 일이 매우 중요하다.


 - 규제 : L1 규제와 L2 규제 중 어떤 규제를 사용할지를 정해야 한다. 중요한 특성이 많지 않다고 생각하거나 해당 모델의 중요한 특성이 무엇인지 해석할 때는 L1 규제를 사용하지만, 그렇지 않으면 기본적으로 L2 규제를 사용해야 한다. 




  • 선형 모델 평가

 - 장점 : 학습 속도가 빠르고 예측이 빠르다. 매우 큰 데이터 세트나 희소한 데이터 세트에서도 잘 작동한다. 또한 공식이 존재하여 예측이 어떻게 만들어지는지 비교적 쉽게 이해할 수 있다. 

 - 단점 : 데이터 세트의 특성들이 서로 깊게 연관되어 있을 때, 가중치의 값이 명확하지 않아 분석하기 매우 어려울 수 있다. 데이터 세트가 클 때나 고차원에서 잘 작동하나 저차원의 데이터 세트에서는 다른 모델들의 일반화 성능이 더 좋다.


Comments