부스팅 알고리즘
부스팅 알고리즘은 여러 개의 약한 학습기를 순차적으로 학습-예측하면서 잘못 예측한 데이터에 가중치 부여를 통해 오류를 개선해 나가면서 학습하는 방식이다.
구현 알고리즘
부스팅의 대표적인 구현은 AdaBoost(Adaptive boosting)와 GBM(Gradient Boost Machine)이 있다.
- AdaBoost
- 오류 데이터에 가중치를 부여하면서 부스팅을 수행하는 대표적인 알고리즘
학습 진행 방법은 다음과 같다.
만약 +, -로 피처 데이터셋이 존재하고 Iteration 1과 같이 +를 탐지하려 하였으나 탐지를 하지 못하게되면 Iteration 2와 같이 +의 크기를 키워(가중치를 키워) 다음 약한 학습기가 더 잘 분류할 수 있도록 진행한다.
에이다 부스트는 위와 같이 약한 학습기가 순차적으로 오류 값에 대해 가중치를 부여한 예측 결정 기준을 모두 결합해 예측을 수행한다.
그 결과 위 그림의 Final Classifier/Strong classifier와 같이 이전의 학습기를 모두 결합한 예측을을 하여 정확도가 높아지는 것을 알 수 있다.
- GBM (Gradient Boosting Machine)
- 에이다부스트와 유사한, 가중치 업데이트를 경사 하강법을 이용하는 것이 큰 차이다.
오류 값은 "실제 값 - 예측 값"이다. 분류의 실제 결과값을 $y$, 피처를 $x_1, x_2,\dots, x_n$, 그리고 이 피처에 기반한 예측 함수를 $F(x)$ 함수라고 하면 오류식 $h(x) = y - F(x)$가 된다.
해당 오류식 $h(x) = y - F(x)$를 최소화 하는 방향성을 가지고 반복적으로 가중치 값을 업데이트하는 것이 경사 하강법이다. 경사 하강법은 머신러닝에서 중요한 기법 중 하나이며, "반복 수행을 통해 오류를 최소화할 수 있도록 가중치의 업데이트 값을 도출하는 기법"으로 이해하면 좋다. 또한 경사 하강법의 경우 회귀를 다룰 때 구체적인 개념을 더 필요로 한다.
Reference
[1] 파이썬 머신러닝 완벽가이드
[2] https://www.youtube.com/watch?v=BoGNyWW9-mE
'Artificial Intelligence > 머신러닝-딥러닝' 카테고리의 다른 글
[머신러닝 이론] LightGBM (0) | 2020.03.05 |
---|---|
[머신러닝 이론] XGBoost (0) | 2020.03.05 |
[머신러닝 이론] 랜덤 포레스트 (0) | 2020.03.05 |
[머신러닝 이론] 앙상블 학습 (0) | 2020.03.05 |
[머신러닝 이론] 결정 트리 (1) | 2020.03.05 |