인공지능/머신러닝

[머신러닝 - 이론] Ensemble - Boosting (앙상블 학습 - 부스팅)

바보1 2022. 10. 19. 19:06


앞의 글을 읽으시면 이해에 도움이 됩니다.

 

2022.10.19 - [Computer Science/머신러닝] - [머신러닝 - 이론] Ensemble - Bagging (앙상블 학습 - 배깅)

 

[머신러닝 - 이론] Ensemble - Bagging (앙상블 학습 - 배깅)

앞의 글을 읽으시면 이해에 도움이 됩니다. 2022.10.18 - [Computer Science/머신러닝] - [머신러닝 - 이론] Decision Tree (결정 트리) [머신러닝 - 이론] Decision Tree (결정 트리) 1. Decision Tre..

hi-guten-tag.tistory.com


1. Boosting(부스팅)이란?

 

 

부스팅weak learner을 여러 개 연결하여 strong learner을 만드는 것입니다.

 

부스팅의 아이디어는 앞의 모델을 보완해나가면서 일련의 예측기를 학습시키는 것입니다.

 

앞선 Bagging, Random Forest는 학습된 모델을 하나로 합쳐서 예측기를 만드는 방식이었다면,

Boosting은 모델을 학습하면서 합치는 방식입니다.

 

Boosting의 가장 인기있는 것은 AdaBoost(Adaptive Bossting, 에이다 부스트)와 Gradient Boosting(그레이디언트 부스팅)이 있습니다.

 

에이다 부스트 먼저 보도록 하겠습니다.


2. AdaBoost (에이다 부스트)

 

 

에이다 부스트는 이전 모델이 UnderFitting했던 훈련 데이터의 가중치를 더 높이는 것입니다.

 

이렇게 하면 새로운 예측기는 학습하기 어려운 샘플에 더 맞춰지게 됩니다.

 

이것이 에이다 부스트의 방식입니다.

AdaBoost

예를 들어 에이다 부스트는 알고리즘이 기반이 되는 첫 번째 분류기를 훈련 데이터에서 훈련시키고, 예측을 만듭니다.

 

그 다음에 알고리즘이 잘못 분류된 훈련 데이터의 가중치를 상대적으로 높입니다.

 

두 번째 분류기는 업데이트된 가중치를 사용해 훈련 세트에서 훈련하고 다시 예측을 만듭니다.

 

그 다음에 또 다시 가중치를 업데이트 하는 방식으로 계속됩니다.

 

좌측은 학습률 = 1, 우측은 학습률 = 0.5

해당 그림은 moons 데이터셋에서 훈련된 다섯 개의 연속된 예측기의 결정 경계입니다.

 

첫 번째 분류기가 많은 샘플을 잘못 분류해서 이 샘플들의 가중치가 상대적으로 높아졌습니다.

 

경사 하강법은 비용 함수를 최소화하기 위해서 하나의 예측기의 파라미터를 반복적으로 변경하는 반면,

에이다 부스트는 점차 더 좋아지도록 앙상블에 예측기를 추가합니다.


3. Gradient Boosting (그레이디언트 부스팅)

 

 

앞선 에이다 부스트의 경우 잘못 예측된 샘플의 가중치를 변경하는 방법으로 새로운 예측기를 학습시켰는데, 

그레이디언트 부스팅은 이전 예측기가 만든 잔여 오차(residual error)에 대해 새로운 예측기를 학습시킵니다

 

즉 앞선 예측기가 틀린 값에 대해서만 보고, 그것만 예측하겠다는 것이 그레이디언트 부스팅의 방식입니다.

 

 좌측의 초록색은 예측기가 예측하는 결과이고, 우측은 그것들을 합친 앙상블 예측기입니다.

 

좌측 하단의 예측기의 그래프를 보면 위의 예측기가 잘못 예측한 값에 대해서만 예측하는 모습을 볼 수 있습니다.

 

따라서 이를 합치면 우측 하단의 그래프처럼 더욱 정교한 그래프가 나오게 됩니다.

 

다음 글에서는 여러 개의 예측기에서 내놓은 결과를 voting하는 모델을 만드는 스태킹에 대해 알아보겠습니다.

 

감사합니다.

 

지적 환영합니다.