ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Ridge Regression #2
    머신러닝 기초 2019. 10. 5. 22:53
    반응형

    이제 regression에 대한 학습과 평가가 남았다. 앞서서 모델을 학습할 때 아래와 같이 데이터셋을 training set과 test set으로 나누어 학습한다고 했다.

     

    이 경우 training set을 이용해 모델을 학습하고 test set을 이용해 모델을 평가한다. 문제는 test set에 대한 error를 최소화하는 방식으로 모델이 학습되기 때문에 test set에 대해 overly optimistic 되며 따라서 generalization error는 오히려 증가한다.

     

    실제로 이 문제를 해결하기 위해 test set을 2개로 나누어 사용하며 이 set을 validation set이라 한다.

     

    그렇다면 validation set과 test set의 차이는 무엇일까? 보통 learning rate, regularization parameter(lambda), 클러스터 수 같은  hyperparameter를 정하기 위해서 validation set을 사용하고 그렇게 학습된 모델을 test set을 이용해서 다시 평가한다.

    validation set을 이용해 훈련 중인 모델이 혹시 과적합(over-fitting)에 빠지고 있는 건 아닌지, 아니면 과소적합(under-fitting)인 것은 아닌지 검증, 감시를 하면서 최적의 적정적합(generalized-fitting) 구간을 찾아 모델을 선택한 후 (즉, 모델의 coefficients, weights 결정) test set을 사용해서 도출한 최종 모델(final model)을 평가하는 작업을 하게 된다.

     

    일반적으로 전체 데이터셋에서 training, validation, test set을 나누는 비율은 아래와 같다.

     

     

    이제 일반적인 regression model로 돌아가 보자. 모델의 일반항은 다음과 같았다.

     

    여기서 w0는 모델의 intercept(절편)을 나타낸다. 따라서 행렬 곱으로 표현하면 아래와 같이 h의 첫 번째 열이 모두 1로 채워지는 형태가 된다.

     

    앞선 내용에서 lambda(strength of penalty)가 커질수록 모델의 복잡도가 감소하며 weight의 coefficient가 감소함을 알았다. 따라서 위의 intercept 또한 같이 작아진다는 의미가 된다. 하지만 intercept가 작아지는 것이 좋은 것만은 아니다. 사실 개념적으로 intercept이 overfitting과 연관이 있는 것이 아니다. 따라서 penalty에 의해 intercept는 감소하지 않게 해야 하는데 아래 몇 가지 방법을 소개한다.

     

    우선 위와 같이 weight를 intercept와 나머지 weight로 분리하는 방법이 존재한다. 따라서 ridge regression에서 L2 norm은 intercept를  제외한 나머지 weight에만 적용된다. 앞선 내용에서 정리했던 ridge regression cost의 gradient 관련 행렬에 표현하면 다음과 같다.

     

    Imod는 기존의 identity matrix에서 (0, 0)만 0인 행렬이다. 이를 이용해 gradient descent를 수정하면

     

    와 같이 된다.

     

    또다른 방법은 애초에 데이터의 중심을 0으로 수정하는 것이다. 이러면 intercept 항이 받는 penalty는 문제가 되지 않는다.

     

    반응형

    '머신러닝 기초' 카테고리의 다른 글

    Lasso Regression #2  (0) 2019.10.09
    Lasso Regression #1  (0) 2019.10.09
    Ridge Regression #1  (0) 2019.10.03
    Bias-Variance Trade Off  (0) 2019.09.29
    Assessing Performance  (0) 2019.09.28

    댓글

Designed by black7375.