본문 바로가기

Machine Learning

Linear Model

반응형

Linear Model

y^ = w[0]*x[0] +w[1]*x[1]+ ... +w[p]*x[p]+ b

특성이 하나(p=0)일땐, 직선
                 p=1일땐, 평면
                 p>=2 일땐, 초평면 (hyperplane)
p=0인 경우.

p가 높을수록 linear model은 유리하다.
train set의 수보다 feature가 더 많을 경우에 완벽하게 y(training)에 대해 mdeling이 가능 (overfit일 수 있긴 하지만..)


  • Linear Regression은 linear model을 기반으로 하는 알고리즘의 한 파트이다.
MSE를 이용하여 단순하게 cost를 채택하고 이를 기반으로 학습하는알고리즘
문제는 overfit을 방지할 어떤 장치도 없어 단순하게 학습하면, overfit이 되기 쉽상이다. 특히 feature수가 많으면 더더욱이 overfit에 매우 취약함

  • Ridge Regression Linear Regression overfit 문제를 해소한 알고리즘이다. regulation term을 도입한게 그 방법이다. 마찬가지로 MSE를 기반으로 한다. αΣw^2를 regul term으로 함.(L2 규제) α가 hyperparameter로 α를 증감함에 o-F나 u-F가 정해진다. α가 커지면 규제가 커지므로 상대적으로 underfit한 general model이 생성된다.
규제가 클(α가 큰값)수록 계수의 크기를 의미하는 w^2가 0에 가까워지고 규제가 작으면 Linear regression과 비슷하게 계수크기가 매우 커질 가능성이 있다.
유의해야할 점은 α를 고정한상태로 가정하고 training 데이터를 키우면 linear regression 과 Ridge가 만나게된다.
결국 데이터를 충분히 주면 규제 항은 덜 중요해져서 릿지 회귀와 선형 회귀의 성능이 같아질 것을 의미한다.  
쉽게 말하면, 충분히 많은 데이터에 overfit 해진다는 것은 결국 general 한 데이터에 overfit 해지는 것과 같다. 전수조사를 한 데이터를 훈련시킨다면, regul term은 필요없어진다.


Lasso regression ridge와 유사하지만, regul term에 차이가 있다. L1규제를 도입하는것이 차이. (릿지 L2의 경우 αΣw^2)(L1은 αΣ|W|)
L1은 훈련과정에서 제외되는 특성(0이되는 계수 즉, feature를 삭제하는 느낌.)이 존재한다.





L1과 L2의 차이? (Ridge vs Lasso)
L1의 경우 weight을 중요한 feature에 쏠리게 하는 경향이 있고, L2의 경우 feature의 weight을 평평하게 spread하는 경향이 있다.
제곱의 느낌을 곱씹어보면, 더 잘 이해될 것이다.
W성분의 합을 더하는 과정에서 W^2의 경우 각성분이 퍼질수록 값이 더 커질 수 있다. 
   예를들어 [1 0 0 0]의 경우 1이고, [1/4 1/4 1/4 1/4]의 경우 4/16 즉, 1/4가 되어 같은 가중치도 퍼진경우가 더 유리하게 L2에 작용함을 알 수 있다.
문제에 따라 사용하는 규제가 다르지만, 모두 수행해보고 좋은것을 택하는게 best
이게 불가능하다면, L1은 특성이 많고 그중 일부만 중요할때 유리= > 입력 특성 중 일부만 사용하므로 쉽게 해석할 수 있는 모델을 만들어 주기 때문.
주로 L2를 많이 이용함.
Lasso, Ridge를 결합한 Elastic이 있지만 이는 hyperparameter (각각의 계수 α)를 조절해야하므로 부담이 따른다.
다시한번 말하지만, regul term은 overfit을 방지하고자, weight W의 자유도를 낮추기 위해 도입한 term이다.



classification을 위한 (Decision Boundary 생성) Linear Model
임계치 0과 비교.
h(x) > 0 or h(x) < 0
입력되는 h(x)자체가 Decision Boundary 가 된다. h(x)모델기준 위아래로 구분.
학습알고리즘 -> 직접적으로 분류가 되서 나오는 loss의 경우 true or false 의 계단함수이므로, loss를 최소화하는 w,b를 직접적으로 조정하는것이 불가능. 결과를 학습용으로 쓰기 어렵다.
이에따라, 대체되는 loss function을 사용해야한다. 

선형분류 알고리즘의 대표적인 방식은 
  • Logistic Regression (B.C -> logistic loss function, M.C -> cross-entropy loss function이용.) (LR)
  • Support Vector Machine (SVM)
*LogisticRegression은 이름과 달리 regression 알고리즘이 아닌 classification 알고리즘. 즉, Linear Regression과 다른것.
기본적으로 L2 reg를 사용한다.
규제 강도를 결정하는 parameter는 C이며, α와 달리 C값이 커지면 reg가 감소하며, C가 작아지면 reg가 커진다.
α = k*1/C (k는 임의의 실수)로 생각하면, 직관적 이해가 가능. (엄밀히 말하면 틀림)
C가 커질수록 모든 성분에 민감해지고, overfit 하는 경향이 있음. 
C가 매우 클때, 복잡도가 높은 즉, training data가 모집단을 충분히 설명할 수 있는 feature의 다양성이 보장되면, 성능이 좋아진다. Feature가 많은 복잡한 Linear model에 C 가 크면 알고리즘 성능이 좋다.


L2 규제 이용
  • 규제의 계수(C)에 따라, feature의 parameter 변화를 관찰하면 클래스와 feature사이의 정보를 얻을 수 있다.
가령, texture error의 경우 악성종양의 기준이 되는 명확한 특성임을 알 수 있다.  규제가 약화( C= 100)되면 parameter인 계수가 큰폭으로 커지기 때문이다. 이는 해당 parameter(feature의 weight. 즉, 영향력 )이 큰 것을 의미한다.
반대로, 3번째 특성인 mean perimeter는 규제의 크기에 따라 변화하는 것을 미루어 보아 양성이나, 악성 신호 모두가 될 수 있다.


L1규제 이용


위의 결과처럼 feature의 특성을 분석하기 위해 모델을 단순화하는 L1을 사용하는 것은 현명한 방법이다. L2에서 보이지 않던 특징들이 L1에선 뚜렷하게 보이기 때문.
L2규제는 특성을 고르게 분포 시키지만, L1은 중요한 특성에 몰아주는 경향이 있어 상대적으로 중요하지 않은 feature는 0으로 처리하기도 한다. 반대로 L2는 0이되는 feature가 존재 하지 않음.


다중 클래스 분류 선형모델  ( Multi-class classification )

일반적으로 Linear model 에서 다중분류를 지원하지 않으므로, one vs all 을 확장하여 (각 클래스별 적용) 가장 높은 점수를 내는 분류기에 클래스 예측값으로 산출하는 방식.




Linear Model 정리
Hyper-Parameter 
  • Regression -> α
  • Classification -> C (Linear SVC, Logistic Regression

Regulation term
  • L1 (|W|) 1) 
  1. 중요한 특성이 많지 않을때. 즉, 0이되도 무방한 특성들이 많을때.
  2. 모델의 해석이 중요한 요소일때. 즉, 중요한 특성이 무엇이고 그 효과가 어느 정도인지를 파악하기 쉬움
  • L2(W^2) 위의 사항을 제외하면 주로 L2를 사용한다.

Linear Model의 장점
  • 학습 속도가 빠르고 예측도 빠름.
  • 회귀와 분류에서 본 공식을 사용하여 예측이 어떤식으로 만들어 지는지 이해하기 쉬우며, 직관적인 시각화에 유리.
  • data set 수의 비해 특성이 많을 때 잘 작동함.
  • 다른 모델로 학습하기 어려운 매우 큰 데이터셋에도 선형모델이 많이 이용됨.

Linear Model의 단점
  • 계수의 값들이 왜 그런지 명확하지 않을 수 있으며, 특히 데이터셋 특성들이 서로 깊게 연관되어 있을 때 계수분석에 매우 불리함.
  • 저차원의 데이터셋 에서는 다른 모델들의 일반화 성능이 더 좋음.


반응형

'Machine Learning' 카테고리의 다른 글

Decision Tree's Ensemble  (0) 2019.01.25
Naive Bayes, Decision Tree  (0) 2019.01.23
KNN Classifier, Regression  (0) 2019.01.21
Restricted Boltzmann Machine  (0) 2019.01.19
Bias term의 필요성  (0) 2019.01.13