brunch

앙상블 연주는 알겠는데, 앙상블 모델은 모르겠다고?

출퇴근길에 공부하는 머신러닝

by 별똥별 shooting star


들어가며

앙상블(Ensemble)은 여러 개의 모델을 조화롭게 학습시켜 그 모델들의 예측 결과들을 이용하여 더 정확한 예측 값을 도출하는 방법이다. 앙상블 기법은 머신러닝 모델의 성능을 향상시키기 위해 널리 사용되며, 여러 개의 약한 모델을 결합하여 강한 모델을 만든다.



1. 앙상블의 필요성

어떤 알고리즘도 모든 상황에서 다른 알고리즘보다 우월하다는 결론을 내릴 수 없다. 따라서, 문제의 목적, 데이터의 형태 등을 종합적으로 고려하여 최적의 알고리즘을 선택해야 하며, 앙상블 기법을 사용하면 다양한 모델의 장점을 결합하여 더욱 정확한 예측이 가능하다. 앞선 편에서도 이야기 했듯이 이러한 앙상블은 클래스 불균형 문제를 해결해주기도 한다.



2. 앙상블의 종류

앙상블 기법에는 주로 Bagging, Boosting, Stacking 세 가지 방법이 사용됩니다.


1) Bagging (Bootstrap Aggregating)

목적 : Bagging은 주로 고분산의 모델, 예를 들어 결정 트리에서 유용하게 사용된다. 이는 여러 모델의 예측을 평균하여 모델의 분산을 줄여, 과적합을 방지할 수 있게 해준다.

동작 방식 : Bagging은 원본 데이터셋에서 여러 번 Bootstrap Sample(복원추출을 통한 샘플)을 생성한다. 각 Bootstrap Sample에 대해 모델을 독립적으로 학습시키고, 회귀의 경우 이 모델들의 예측을 평균하여, 분류의 경우 투표를 통해 최종 예측을 한다. 추가적으로 Booststrap Sample이란 같은 데이터 포인트들을 여러 번 샘플링 할 수 있는 추출 방법이다.

예시 : 랜덤 포레스트는 Bagging의 대표적인 예시로, 여러 결정 트리를 학습시키고 그 결과를 종합하여 예측합니다.


2) Boosting

목적 : Boosting은 약한 모델, 즉 편향이 높은 모델을 개선하는데 초점을 둔다. 이 방식은 모델이 훈련 데이터에서 잘못 예측한 샘플에 더 많은 가중치를 부여하여, 순차적으로 모델을 개선해 나간다.

동작 방식 : Boosting은 여러 개의 약한 학습기를 순차적으로 학습시킨다. 각 학습기는 이전 학습기가 만든 오류를 수정하는 방식으로 학습된다. 모든 학습기의 예측이 종합되어 강력한 최종 모델이 만들어진다.

예시 : AdaBoost, Gradient Boosting 등이 Boosting 기법의 예시이다.


3) Stacking

목적 : Stacking은 여러 다른 모델의 예측을 입력으로 받아, 새로운 메타 모델(meta-model)을 학습시킨다. 이 메타 모델은 개별 모델의 예측을 종합하여 최종 예측을 수행한다.

동작 방식 : 여러 개의 Base Model을 학습시키고, 각 모델의 예측 결과를 스택(stack)합니다. 이렇게 스택된 예측 결과를 입력으로 사용하여 새로운 메타 모델을 학습시킨다.

예시 : 다양한 모델(예: 선형 회귀, 결정 트리, SVM 등)이 Base Model로 사용될 수 있으며, 메타 모델로는 로지스틱 회귀 등이 사용될 수 있다.



앙상블의 실용성

2016년 샌프란시스코 머신러닝 컨퍼런스(MLConf SF)에서는 앙상블 기법이 "거의 항상 더 나은 성능을 보인다"고 결론지었다. 또한, 앙상블 기법은 딥러닝이 해결하지 못하는 다양한 문제에도 적용할 수 있어, 상황에 맞는 평가 지표와 함께 앙상블을 활용하는 것이 중요하다고 강조되었다.



마치며

앙상블 기법은 다양한 모델의 성능을 향상시켜 주는 강력한 방법이다. 모든 상황에 적합한 알고리즘이 없기 때문에, 문제의 특성과 데이터를 고려하여 앙상블 기법을 적절히 활용하면 더욱 정확한 예측이 가능해진다. 이러한 이유로, 현업에서도 앙상블 기법은 여전히 많이 사용되고 있다.

keyword
매거진의 이전글분류 모델은 어떻게 평가를 할까?