본문 바로가기

ComputerScience/Pattern Recognition

패턴인식 - 9. Ensemble - Boosting

728x90

- 지난시간에 ensemble의 개념과 bagging에 대해 알아보았다. 

- 이번에는 ensemble의 종류 중 다른 하나인 boosting에 대해 알아보자.

1. Boosting

- 학습데이터가 제한적일 때 분류기의 성능을 높이고 싶은 경우 활용된다.

- 보통은 2개 class classification의 경우 사용된다.

- 데이터셋이 상대적으로 작을 때, 컴퓨팅 파워가 약할 때, 도움이 될 수 있다.

- AdaBoost는 bagging과 달리 bias를 낮추는데 기여한다.

 

- 부스팅은 분류기를 연속적으로 학습시킨다. 특히 잘못 분류한 데이터에 초점을 맞춰서 다시 학습시킨다.

- D1에 대해 분류를 수행해보았다. 초록 공간, 흰 공간 안에 보면 error들이 있다. 이런 분류기를 weak classifier라고 한다.

- 분류기의 err 함수를 정의해보자.

- xi를 분류 했을 때 결과를 h(xi)라고 한다. h(xi)가 정답 yi와 다를 때 실패라고 생각할 수 있다. 이 모든 에러에 대해 가중치 w를 곱한 것들의 합을 err라고 정의하자.

- 모든 데이터에 대해 가중치, weight가 있고 weight의 합은 1이다.

- 즉 잘못 분류했을때 error에 반영하는 정도라고 보면 된다.

- boosting은 weak 분류기를 반복적으로 학습시켜서 성능을 높이는 방법이다.

- 학습 dataset에서 잘못 분류한 샘플들에 대해 더 높은 가중치를 다시 부여 한다. (re-weight)

- 가중치가 다시 설정된 데이터셋에 대해 분류기를 다시 학습시킨다.

- 이 과정을 반복한다.

2. AdaBoost Algorithm

<Round1>

- 분류기가 파랑, 빨강 영역으로 분류를 수행했다. 하지만 빨간 영역에서 error가 보인다.

- 총 10개의 데이터에 대해 초기 가중치는 {1/10, 1/10, ... 1/10}이다.

- 현재 분류기의 err를 계산하면 위와 같다.

- re-weight, 가중치를 다시 계산한다.

- 새로운 가중치를 적용한 분류가 만들어졌다.

<Round2>

- 새롭게 반영된 가중치에 따라 분류를 다시 수행했다. 이번에는 파란 영역에서 에러가 보인다.

- 라운드 1에서 update된 weight를 가지고 err를 다시 구한다.

- re-weight한다. 오류가 난 샘플에 대해서만 weight를 a2를 가지고 수정한다.

-  또 새로운 가중치를 적용한 분류기가 만들어졌다.

<Round3>

- 세번째 라운드도 전과 동일하다.

- 그럼 최종적으로 보완된 분류기가 만들어진다. 

728x90
반응형