본문 바로가기
개발 관련 공부/머신러닝

Ensemble(앙상블)이란?

by swlotto 2024. 12. 17.

[오늘의 공부]

내가 인공지능을 처음 접했을 때부터 자주 사용하는 앙상블 알고리즘에 대해 공부해보고자 한다.

 

▶ 앙상블이란

여러 개의 분류기를 생성하고, 그 예측을 결합함으로써 보다 정확한 예측을 도출하는 기법이다.

 

▶ 개요

특정 알고리즘이 모든 데이터에 대한 성능 즉, 분류나 예측을 진행할 때 항상 1등인 알고리즘은 존재할까? 라는 궁금증이 생겼다.

조사를 해보니 JMLR에 발표한 논문 중 121개의 데이터 세트를 171개의 알고리즘(boosting 제외)으로 30번 학습을 한 결과가 있는데 결론을 말하자면, 상대적으로 RF, SVM 계열이 높게 나오긴 했으나 절대적으로 성능이 좋은 알고리즘은 없다는 것을 보여준다.

결론적으로 최적의 알고리즘은 문제의 목적, 데이터의 형태 등을 종합적으로 고려하여 선택해야 하며, 성능이 좋은 단일 알고리즘 보다는 개별 객체들이 적절하게 결합 됐을 때 성능이 좋다는 것을 알 수 있다.

 

▶ 앙상블의 종류

앙상블에는 일반적으로 Voting(이하 보팅), Bagging(이하 배깅), Boosting(이하 부스팅) 세가지가 존재한다.

 

  •  보팅: 여러 개의 분류기가 투표를 통해 최종 예측 결과를 결정하는 방식이다.

     - 하드 보팅: 다수의 분류기가 예측한 결과값을 최종 결과로 선정한다.

     - 소프트 보팅: 모든 분류기가 예측한 레이블 값의 결정 확률 평균을 구한 뒤 가장 확률이 높은 레이블 값을 최종 결과로 선정한다.

  • 배깅: 데이터 샘플링을 통해 모델을 학습시키고 결과를 집계하는방식이다.

     - 같은 유형의 알고리즘을 사용하며 과적합 방식에 효과적이다.

     - 자세한 내용은 다음 챕터에서 다룰 예정이다.

  • 부스팅: 이전 분류기가 예측이 틀린 데이터에 대해 올바르게 예측할 수 있도록 다음 분류기에게 가중치를 부여하면서 학습과 예측을 진행하는 방식이다.

     - 대표적인 알고리즘은 XGBoost, LightGBM 등이 있다.

     - 부스팅 또한 자세한 내용은 다른 챕터에서 다룰 예정이다.

 

▶ Bias(편향)과 Variance(분산)

Bias(편향)평균 추정값이 진짜 정답과 얼마나 차이가 나는지에 대한 값이다.

  • bias가 작고 반복적으로 수행하면 평균적으로 잘 맞출 수 있다.
  • 값이 크면 아무리 노력을 해도 정답을 맞출 가능성이 낮아진다.

Variance(분산): 개별적인 추정값이 평균 대비 얼마나 넓게 퍼져 있는지에 대한 값

  • variance가 작으면 노이즈가 바뀐다고 해서 함수의 추정값이 크게 영향을 받지 않는다.
  • variance가면 노이즈가 바뀔수록 개별 추정값이 크게 바뀐다.

아래의 그림은 Bias와 Variance에 대한 그림으로, 파란색은 예측값, 주황색이 정답을 뜻한다.

 

 

  • bias가 크고 variance가 낮은 모델은 복잡도가 낮으며, RF, 회귀분석, 로지스틱, LDA, K-NN 등이 있다.
  • bias가 낮고 variance가 큰 모델은 복잡성이 높으며, DT, ANN, SVM, K-NN이 있다.

앙상블의 큰 목적은 서로 다른 여러 개의 모델을 만들어서 결합하여 에러를 줄이는 것이다.

에러를 줄이기 위한 전략에는 우선 배깅(복잡한 데이터에 잘 맞음)Variance를 줄이자 이며 Boosting(복잡하지 않은 데이터에 잘 맞음)Bias를 줄이자 이며, 여기서 전제 조건은 각 모델의 평균적인 성능다양성이 확보 되어야 한다.

 

▶ 참고자료

http://www.dinnopartners.com/__trashed-4/