개발자의시작

[머신러닝][딥러닝] 에이다부스트(Adaboost) 개념 정리 본문

머신러닝(machine learning)

[머신러닝][딥러닝] 에이다부스트(Adaboost) 개념 정리

LNLP 2020. 4. 8. 16:18

이 글은 머신러닝에서 사용되는 에이다부스트(Adaboost)알고리즘에 대해 정리한 글입니다.

 

에이다부스트를 이해하기 위해 먼저 간단하게 기계학습(machine learning)과 부스트(boost)에 대해 짚고 넘어갈 필요가 있습니다.

 

기계학습 (machine learning)

- 프로그램이 주어진 데이터를 스스로 학습하여 정보를 얻거나 예측 및 분석하는 것.

기계학습 중 지도 학습(supervised learning)은 크게 두 단계로 이루어져 있습니다.

 

1) 주어진 데이터로 학습하여 특징 추출(feature extraction)

2) 특징을 이용하여 분류(classification)

 

부스팅(boosting)

- 예측 성능이 낮은 약한 분류기(weak classfier)들을 활용하여 조금 더 좋은 성능을 보이는 하나의 강한 분류기(strong classifier)를 만드는 방법.

( 사실 ensemble methods와 혼동이 되었는데 찾아보니 ensemble mothods의 경우엔 다수의 classifier들을 병렬적으로(parallel) 조합하여 예측성능을 향상시키는 반면, boosting의 경우 병렬적인 과정이 아니라 순차적인(sequential) 과정이라고 합니다. 종종 ensemble-based classifier의 일종으로 보는 경우도 있다고 합니다.)

 

에이다부스트 (Adaboost)

- 에이다부스트는 Adaptive + Boosting 로 만들어진 단어입니다.

 

알고리즘의 정의를 살펴보면 다음과 같습니다.

-약한 분류기(weak classifier)들이 상호보완 하도록 순차적(sequential)으로 학습하고, 이들을 조합하여 최종적으로 강한 분류기(strong classifier)의 성능을 향상시키는 것입니다.

 

작동방법은 다음과 같습니다.

 

- 약한 분류기(weak classifier)들은 한 번에 하나씩 순차적으로 학습을 진행한다. 먼저 학습된 분류기는 제대로 분류를 해내는 데이터와 제대로 분류해내지 못하는 데이터들이 발생한다. 먼저 학습된 분류기가 제대로 분류한 결과 정보와 잘못 분류한 결과 정보를 다음 분류기에 전달한다. 다음 분류기는 이전 분류기로부터 받은 정보를 활용하여 잘 분류해내지 못한 데이터들의 가중치(weight)를 높인다. 즉, 이전 분류기가 잘못 분류한 샘플의 가중치를 adaptive하게 바꿔가며 잘 못 분류되는 데이터에 더 집중하여 학습이 더 잘되게 한다. 이러한 특징 때문에 adaptive라는 이름이 붙음. 최종 분류기(strong classifier)는 이전에 학습한 약한 분류기들에 각각 가중치를 적용하고 조합하여 학습을 진행한다. 

 

정리하면 예측 성능이 낮은 약한 분류기들을 조합하여 최종적으로 조금 더 성능이 좋은 강한 분류기 하나를 만드는 것이다. 약한 분류기들이 상호보완적(adaptive)으로 학습해나가고, 이러한 약한 분류기들을 조합하여 하나의 분류기를 만들기 때문에 boosting이 된다. 

 

이를 수식으로 나타내면 아래와 같다.

T개의 약한 분류기(weak classifier)를 weight linear combination 하여 최종 강한 분류기(strong classifier)를 만든다.

 

H(x) : 최종 강한 분류기

h : 약한 분류기

α : 약한 분류기의 가중치

t : 반복 횟수

 

 

이 글은 https://blog.naver.com/dic1224/220989033563님의 글을 보고 정리한 내용입니다.

 

오류 또는 수정사항 있다면 댓글로 남겨주세요.

감사합니다.

Comments