Ensemble Learning

2026. 7. 31. 11:18Computer Science/AI(ML, DL, RL, etc)

 

Ensemble Learning을 여러 분류기의 의견을 종합해서 결과를 도출하는 방식이다. 대표적으로 과반수 이상의 투표를 받았을 때 선출하는 과반수 투표 방식이 있을 것이다(물론 각 동등한 1표를 부여할 수도 있겠으나, 가중치가 적용된 다수결 투표 또한 가능하다.) 그리고 이는 이항 이론상 개별 분류기가 무작위 추측보다 성능이 좋다고 하면은, 앙상블의 에러 확률은 개별 분류기 보다 항상 좋다.

 

개별 분류기 - 앙상블의 에러 비교

 

Bagging

Bagging은 다수결 투표와 밀접하긴 하지만... 원본 훈륜 데이터셋에서 부트스트랩(중복허용 랜덤샘플)을 한다는게 특징이다. 이에 대해서 1994년 레오 브레이만이 Bagging을 사용하면 Overfit을 줄일 수 있다는 것을 보였다. 추가로, 배깅은 부트스트랩을 사용하기 때문에 여분의 샘플(OOB 샘플)이 생길 수도 있다. 이를 사용하면 검증 데이터 셋을 굳이 안만들고 모델에 대한 평가가 가능하기도 하다.

 

Boosting

Boosting은 중복을 허용하지 않고, 훈련 데이터 셋에서 랜덤 샘플을 추출해 부분집합을 구성한다. 대충 아래와 같은 단계로 구성된다.

  1. 훈련 데이터 셋에서 중복을 허용하지 아니하고, 랜덤한 부분 집합을 뽑아서 약한 학습기(weak learner)를 훈련한다.
  2. 하나 더 부분집합을 뽑고 이전에 잘못 분류된 샘플의 반을 더해서 다른놈을 만든다.
  3. 한놈을 더 만든다
  4. (반복)
  5. 약한 학습기들을 다수결 투표로 연결한다.

다만 가장 유명한 부스팅 구현인 AdaBoost(Adaptive Boosting)의 경우는, 약한 학습기를 훈련할 때 훈련 데이터셋 전체를 사용한다. 또한 XGBoost와 같은놈의 초석이 되는 gradient boosting이라는 놈도 있다. 그레디언트 부스팅은 일련의 트리를 만들어 출력값을 업데이트 한다. (상세한 공식은 머리가 아프다...)

'Computer Science > AI(ML, DL, RL, etc)' 카테고리의 다른 글

Linear Discriminant Analysis  (0) 2026.07.27
PCA and SVD  (0) 2026.07.24
Kernel SVM  (0) 2026.07.23
Logistic Regression  (0) 2026.07.20
참으로 쓸데없는 것을 만들어 보았다  (0) 2026.05.26