7-4. 부스팅(Boosting) - 에이다부스트(Adaboost)

2021. 5. 12. 05:13Machine Learning

부스팅(Boosting)이란 약한 학습기 여러 개를 연결하여 강한 학습기로 만드는 기법을 말한다. 

 

대표적으로 에이다부스트, 그레이디언트 부스트가 있다. 

 

 

에이다부스트(Adaboost)


에이다부스트

출처 : vitalflux.com/adaboost-algorithm-explained-with-python-example/

 

에이다부스트(Adaboost)의 예측 기법은 다음과 같다. 

 

1. 첫 번째 분류기를 훈련 세트에서 훈련시키고 예측을 만든다. 

2. 잘못 분류된 샘플가중치를 상대적으로 높인다. 

3. 그 다음 예측기에서 업데이트된 가중치를 통해 훈련하고, 예측을 만든다. 

4. 반복한다.

 

상세한 가중치 업데이트의 과정은 아래와 같다. 

 

에이다부스트 가중치 업데이트 과정

출처 : stackoverflow.com/questions/55318330/why-is-the-error-of-my-adaboost-implementation-not-going-down

 

먼저 초기 가중치는 1/N(전체 샘플)으로 균일하게 초기화된다. 

 

그 다음 첫번째 분류기에서 훈련하고 예측한 결과에 대해 가중치가 적용된 에러율(weighted error)을 계산한다. 

(전체 가중치 총합에 대한 예측이 틀린 가중치 합의 비율)

 

그런 다음 (c) 식을 통해 예측기에 대한 가중치를 계산한다. (앞에 학습률 파라미터를 곱할 수 있다)

 

(d)식에서 예측이 틀린 샘플에 대해서 기존 가중치에 exp(α_m)을 곱하고, 예측이 맞은 샘플에 대해서는 

 

가중치가 변하지 않는다.

 

이 과정을 마지막 예측기에 도달하거나 완벽한 예측기가 만들어질 때까지 반복한다. 

 

최종적인 예측값은 각 예측기의 예측결과에 해당 예측기의 가중치를 곱하여 합한 뒤,

 

가중치 합이 가장 큰 클래스가 된다.