- 지난시간에 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>
- 세번째 라운드도 전과 동일하다.
- 그럼 최종적으로 보완된 분류기가 만들어진다.
'ComputerScience > Pattern Recognition' 카테고리의 다른 글
패턴인식 - 11. Linear Discriminant Analysis(LDA) (0) | 2022.06.02 |
---|---|
패턴인식 - 10. Projection, 차원축소 (0) | 2022.05.26 |
패턴인식 - 8. Ensemble - Bagging (0) | 2022.05.13 |
패턴인식 - 7. Decision tree (2) (0) | 2022.05.03 |
패턴인식 - 6. Decision tree (1) (0) | 2022.04.27 |