Ensemble 이란?
앙상블(Ensemble) 기법은 머신러닝에서 여러 모델을 결합하여 예측 성능을 향상시키는 방법임.
- 앙상블의 핵심은 단일 weak learner의 한계를 극복하기 위해 여러 모델의 예측 결과를 효과적으로 결합하여 강력한 모델(strong learner)을 만드는 것임.
- 이 기법은 모델들이 서로 다른 예측을 내더라도 이를 조합하여 더 높은 정확도와 안정성을 확보할 수 있음.
- 대표적인 앙상블 기법으로는 배깅(Bagging), 부스팅(Boosting), 스태킹(Stacking)이 있음.
이들은 서로 다른 방식으로 weak learners를 결합하며 각기 다른 장단점을 가짐.
Bagging (배깅)
배깅(Bagging, Bootstrap Aggregating)은 여러 독립적인 모델을 병렬로 훈련(Parallel Ensemble)시켜 그 예측값을 결합하는 방식임.
- 각 모델은 원본 데이터셋에서 부트스트랩(Bootstrap) 샘플링된 subset의 학습.
- 모델들은 동일한 알고리즘을 사용하지만, 각각 다른 데이터 샘플에 대한 학습.
- 최종 예측은 각 모델의 결과를 평균하거나 다수결로 결합(aggregating)하여 도출.
배깅의 대표적인 알고리즘으로는 랜덤 포레스트(Random Forest)의 존재.
- 랜덤 포레스트는 여러 개의 결정 트리(Decision Tree)를 학습하고, 그 결과를 결합(Aggregating: e.g. Majority Voting)하여 최종 예측의 생성.
배깅의 장점은 다음과 같음:
- 과적합(Overfitting)의 감소.
- 병렬 처리가 가능하여 학습 속도의 향상.
그러나 배깅의 단점은 다음과 같음:
- 모델 간의 차이가 크게 나지 않을 경우 성능 개선의 한계 존재.
- 같은 알고리즘을 사용하여 모델을 훈련하므로, 예측값의 유사성 가능성.
Boosting (부스팅)
부스팅(Boosting) 은 모델들을 순차적으로 학습(Sequential Ensemble)시키는 방식임.
- 첫 번째 모델이 예측한 후, 그 결과에서 틀린 부분에 가중치를 부여하여 두 번째 모델이 해당 부분을 더 중점적으로 학습함.
- 이 과정을 반복하여 점점 더 나은 예측을 하게끔 모델을 개선해 나가는 방식임.
- 부스팅은 모델들이 순차적으로 학습하므로, 각 모델은 이전 모델의 오류를 보완하는 역할을 하게 됨.
대표적인 부스팅 알고리즘으로는 AdaBoost, Gradient Boosting, XGBoost 등이 있음.
부스팅의 장점은
- 매우 높은 예측 성능을 낼 수 있다는 점과,
- 약한 모델(Weak Learner)도 반복적으로 학습해 강한 모델로 만들 수 있다는 점임.
그러나 부스팅의 단점은
- 학습이 순차적으로 이루어져 병렬 처리가 어렵고, 학습 시간이 길어질 수 있다는 점임.
- 또한 지나치게 학습할 경우 Overfitting(과적합)이 발생할 수 있으므로
- 정규화(Regularization) 기법이 필요함.
Stacking (스태킹)
스태킹(Stacking) 은 여러 다른 모델들의 예측 결과를 meta-model (or blending model)로 결합하여 최종 예측을 만드는 Ensemble Technique임.
- 배깅이나 부스팅과는 달리, 스태킹은 주로 서로 다른 알고리즘이나 아키텍처를 사용하는 모델들의 예측값을 결합함.
- 각 모델이 예측한 결과를 새로운 데이터셋으로 간주하고, 이 데이터를 메타 모델(Meta Model)에 입력하여 학습함으로써 최종 결과를 도출함.
스태킹에서는 서포트 벡터 머신(SVM), 로지스틱 회귀(Logistic Regression), 결정 트리(Decision Tree) 등 다양한 알고리즘을 사용하여 예측하고, 그 예측값을 결합하여 최종 결과를 도출할 수 있음. 이때 메타 모델은 예측값을 학습하여 가장 좋은 결합 방식을 학습함.
스태킹의 장점은
- 서로 다른 모델의 장점을 결합하여 더 나은 성능을 낼 수 있다는 점임.
- 단순한 평균이나 다수결이 아닌 메타 모델이 결합 방식을 학습하므로 더욱 정교한 결합이 가능함.
그러나 스태킹의 단점은
- 엔드투엔드(End-to-End) 학습이 어려우며,
- 기본 모델과 메타 모델을 따로 학습해야 하는 복잡성이 있다는 점임.
- 또한 여러 모델을 훈련하고 결합하는 과정에서 연산 자원이 많이 소모될 수 있음.
결론
앙상블 기법은 여러 모델을 결합하여 개별 모델보다 더 높은 성능을 도출할 수 있는 강력한 방법임. 배깅(Bagging), 부스팅(Boosting), 스태킹(Stacking)은 각각 장단점을 가지고 있으므로 주어진 문제에 맞추어 적절한 기법의 선택이 필요함.
- 배깅은 모델의 독립성을 유지하면서 과적합을 줄이고, ← 가장 쉽게 사용가능함.
- 부스팅은 이전 모델의 오류를 개선하며, ← 과적합 위험때문에 하이퍼파라미터의 선택에 따른 성능차가 심함 편
- 스태킹은 여러 다른 알고리즘의 장점을 결합하여 최종 성능을 극대화할 수 있음. ← 가장 강력한 방법 중 하나이나 유지보수 측면이 쉽지 않음.
연결방식의 관점에서 바라본 Ensemble
Ensemble technique은 model 연결 방식에 따라 크게 세 가지로 나눌 수 있음:
- Parallel Ensemble: 여러 model을 독립적으로 학습시키고 그 결과를 aggregating하는 방식.
- Bagging (Bootstrap Aggregating): 원본 dataset에서 bootstrap 방식으로 여러 개의 subset을 생성하고, 각 subset에 대해 model을 학습시킨 후 결과를 aggregating하는 method.
- Sequential Ensemble: 이전 model의 결과를 바탕으로 다음 model을 순차적으로 학습시키는 방식.
- Boosting: 이전 model의 error를 보완하는 방식으로 순차적으로 model을 학습시키는 method. 각 model은 이전 model이 잘못 예측한 data에 더 큰 weight를 부여.
- Stacking: weak learner를 aggregating할 때, 단순한 function 대신 학습된 model(meta-model)을 사용하는 ensemble technique.
- Stacking은 기본적으로 parallel 연결 방식(각 model은 일단 parallel로 독립적으로 training)을 사용하지만,
- meta-model을 학습시키는 process에서 sequential 연결의 특성(training된 model들을 쌓아올릴 때는 sequential 연결)도 가지고 있어 두 방식의 특성을 모두 활용.
Bagging과 boosting은 주로 같은 type의 model들을 combining하는 데 많이 사용되지만, stacking은 서로 다른 type의 model들을 combining하는 데 자주 활용됨. 이러한 특징으로 인해 stacking은 다양한 model의 advantage를 활용할 수 있는 flexible ensemble technique으로 간주됨.
'Programming > ML' 카테고리의 다른 글
[ML] Kernel Function 이란: Kernel Trick 포함 (0) | 2024.09.28 |
---|---|
[ML] Radial Basis Function Kernel (RBF Kernel) (1) | 2024.09.26 |
[Fitting] Total Least Square Regression (1) | 2024.06.22 |
[ML] RANdom SAmple Consensus (RANSAC) (0) | 2024.06.13 |
[ML] Feature Scaling (0) | 2024.05.04 |