Cross validation 은 ML 모델들이 현실에서 쓰였으면 어떻게 Test 될것인지 simulation 하는 과정이 었다.
성능은 측정할수 있는데 , 성능을 높이는 방법은 무엇이 있을까? 그런 차원에서 Regularization 을 배워본다.
sampling 을 어떻게 하냐에 따라 모델이 달라질수도 있고 , 그에 따라 앞으로 올 데이터에 대한 testing 을 하였을때 에러가 커질지 , 작아질지가 정해지게 된다.
최악의 sampling 을 하게 될경우 variance가 커지게 된다.
Regularization 은 Perfect fit을 포기한다. 대신 다른쪽으로 optimizaiton 을 해보자는 Concept 이다.
그러면 training accuracy가 떨어지게 된다. 하지만 앞으로 올 test 상황에서 potential fit 이 더 좋지 않을까라는 생각해서 perfect fit을 희생하는것이다.
우리는 모델을 complex 하게 만드는 방법에 대해 배웠다. 하지만 OVerfitting이될수도 있기에 ,
모델을 complex 하지 않게 만들거나 ( 그러면 bias term이 커진다. )
혹은 Complex 한 모델을 쓰되, Complex 한 모델이 있는 데이터 셋에 대해 좀 둔감하게 만들어주는 방법이다.
데이터셋을 완벽하게 fitting 은 하지 않지만 , 전체적인 trend는 따라가도록 만든것이 Regularization 의 핵심이다.
즉 Regularization 의 목표는 데이터셋을 잘설명해야 하고 , 모델이 너무 민감하게 데이터셋에 반응하지 않는 다는것이다.
아래의 식은 train(n)은 있는 데이터넷을 의미 하고 , 마지막 파란색 부분이 regularization term 이다.
(train(n)-g(xn,w))^2은 에러를 줄이고자 하는 노력이다. 이노력은 어떠한 특정 parameter 가 커지면 error을 줄인 노력을 감쇠하게 되있다. 전체적인 E(w)가 커지면 안좋다. 전체수식이 커지면 안되기 때문에 위의 파란색 상자부분은 특정 parameter를 크게하면서 error를 줄이면 그것은 안하겠다고 선언하는 term 이다.
특정 w가 커지면 페널티가 되어 에러 줄이는 노력을 상쇠되게 된다. 즉 극단적인 paramter에 패널티를 주는 형태에 의해 위의 term의 형태가 결정 된다.
그래서 위의 term에 형태에 따라 regularization 형태가 달라진다.
우리가 가장 많이 사용하는 것은 Ridge regression 이다.
Lasso regression는 많은 parameter vector에서 많은 parameter element 들이 0이 되면서 특정 parameter에 대해서 값을 주는 형태이다.
Ridge regression는 많은 parameter vector에서 많은 parameter element 들이 값을 실제로 가지게 되는 형태 ( 0이 아닌 값)이다.
그러면 어떠한 regression 을 선택해야할까? 나한테 주어진 상황에 맞추어 선택을 해야한다.
예를 들면 Lasso regression는 몇몇 feature들에 대해서만 weight를 주니깐 빠르게 대응할수 있고, Ridge regression는 계산하기 쉽다는 장점이 있다. (미분 등)
'머신러닝 > 문일철 교수님 강의 정리 (인공지능및기계학습개론)' 카테고리의 다른 글
Week 7.9 Simple Example of Belief Propagation (0) | 2019.09.26 |
---|---|
Week 6.7. Application of Regularization (0) | 2019.08.21 |
Week 6.5. Performance Metrics (0) | 2019.08.18 |
Weeek 6.4 Cross Validation (0) | 2019.08.17 |
Week 6.3 Occam's Razor (0) | 2019.08.17 |