iMTE

Boosting and AdaBoost 본문

Machine learning

Boosting and AdaBoost

Wonju Seo 2018. 6. 12. 17:02

Boosting and AdaBoost


1. Boost


Boosting 방식은 꽤 합리적인 방법이다. 하나의 강력한 classifier로 데이터를 분류하는 것은 여러 한계가 있다. 잘 생각해보면, 우리가 '정보'를 찾을 때 네이버에서만 찾지는 않는다. 여러가지 포탈 사이트에서 정보를 찾아보면서 그 정보들을 긁어모아서 우리는 나름 '학습'을 한다. 하나의 규칙은 상황에 따라서 부정확할 수 있다. 우리는 어떤 의사결정을 할 때, 다양한 규칙들을 고려를 하고 그 규칙들을 기반으로 '선택'을 한다. 하지만 이 규칙들은 어쩔때는 잘 맞을 때도 있지만 아닐 때도 있다.


다수의 weak learner를 만들어, 이들의 결정을 voting하여 더 좋은 성능을 구현하는 것이 boosting의 핵심 아이디어이다. ensemble과 비슷하지만, ensemble은 서로 다른 알고리즘 혹은 구조로 만들어진 모델의 voting을 통해서 결정을 내리는 모델을 의미한다.


Data에서 전체를 sampling을 하지 않고, ~ % 정도의 데이터를 replacement를 갖고 sampling을 시키면서 모델을 학습시킨다. 먼저 holdout 형태로 training set과 test set을 나누고, training set에서 boosting을 사용해 모델을 만들고 test set에서 모델을 '일반화 성능'을 평가한다.


2. AdaBoost


Boosting 방식은 weak learner들을 사용해서 더 좋은 성능을 내는 방법을 사용하는 것이다. 하지만, 가끔 weak learner들이 학습을 못하는 데이터가 있다. 예를 들어, 일반화 하기 어려운 outlier들이나 noise같은 데이터들이 그런 경우이다. 모델은 일반화를 하기 때문에, 이런 데이터를 분류할 수가 없다. AdaBoost는 Adaptive boost의 줄임말로, sampling data의 분포를 재조정하는 방법이다. 분류 규칙을 적용시키면서 얻어지는 '결과'를 통해서 오분류가 높은 데이터에 높은 가중치를 부여하고, 제대로 분류된 데이터에는 낮은 가중치를 부여하여 sampling data의 분포를 조정한다. 이는 분류하기 힘든 데이터에 우선권을 주기 위한 방법이다.


이 방법은 앞에서 언급한 대로, 오분류가 높아지는 데이터에 대해서는 매우 좋은 성능을 보여주지만, 이 데이터들이 noise나 outlier들에 의한 것이라면 모델이 overfitting되도록 하는 문제가 있다. 따라서 AdaBoost를 몇번 정도 sampling data의 분포를 재조정할지를 선택해야한다.

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

Regularization  (0) 2018.06.18
Likelihood function and Maximum Likelihood Estimation  (0) 2018.06.17
확률 행렬과 Markov Chain  (0) 2018.06.12
PCA 주성분 분석  (0) 2018.06.11
Genetic Algorithm  (4) 2018.06.11
Comments