앙상블 Bagging과 Boosting
앙상블 학습은 여러 학습기의 예측을 결합해 단일 모형보다 일반화 성능을 높이는 기법이다. 결합 방식에 따라 Bagging, Boosting, Stacking으로 구분된다. 이 중 두 방식이 핵심이다. 두 방식은 학습기를 병렬로 학습하느냐, 순차로 학습하느냐에서 갈린다…
주요 장면
대본
앙상블 학습의 정의
앙상블 학습은 여러 학습기의 예측을 결합해 단일 모형보다 일반화 성능을 높이는 기법이다.
결합 방식에 따라 Bagging, Boosting, Stacking으로 구분된다. 이 중 두 방식이 핵심이다.
두 방식은 학습기를 병렬로 학습하느냐, 순차로 학습하느냐에서 갈린다.
Bagging: 병렬 학습으로 분산 감소
Bagging은 원본 데이터에서 복원추출한 부트스트랩 표본으로 학습기를 독립적으로 병렬 학습한다.
분류는 다수결, 회귀는 평균으로 결합한다. 한 표본은 같은 예제를 여러 번 포함할 수 있다.
학습에 쓰이지 않은 예제는 OOB 표본이 되어 별도 검증에 쓰인다.
불안정한 학습기를 여러 개 평균내므로 분산이 줄어든다.
Boosting: 순차 학습으로 편향 감소
Boosting은 이전 학습기가 틀린 예제에 더 큰 가중치를 두고 순차적으로 학습한다.
처음에는 모든 샘플이 1/N 가중치를 갖고, 틀린 샘플의 가중치는 반복마다 키운다.
최종 예측은 학습기별 가중합으로 만든다. 약한 학습기를 반복 결합해 강한 학습기를 만든다.
체계적으로 놓치는 패턴인 편향을 줄이는 것이 핵심이다.
두 방식 비교와 확인 문제
두 방식은 학습기 사이의 의존 관계에서 가장 크게 갈린다.
Bagging은 병렬·독립 학습으로 분산을, Boosting은 순차 학습으로 편향을 줄인다.
결합 방식도 다르다. Bagging은 다수결·평균, Boosting은 학습기별 가중합을 쓴다.
방금 배운 내용을 직접 확인해 보자.
대표 알고리즘 비교
대표 알고리즘은 Bagging 계열의 랜덤 포레스트, Boosting 계열의 AdaBoost와 그래디언트 부스팅이다.
다음 학습기에 넘기는 것이 다르다. 랜덤 포레스트는 독립 표본, AdaBoost는 오분류 가중치다.
그래디언트 부스팅은 이전 모형의 잔차, 즉 음의 그라디언트를 학습한다.
노이즈에 대한 민감도도 다르다. AdaBoost는 높고 랜덤 포레스트는 낮다.
헷갈리는 점
시험에서 자주 틀리는 부분을 짚어 본다.
첫째, 랜덤 포레스트를 Boosting의 예로 드는 실수다. 랜덤 포레스트는 Bagging 계열이다.
둘째, Boosting이 이상치에 민감한 점을 빠뜨리는 경우다.
셋째, Boosting은 학습률과 반복 횟수를 잘못 잡으면 과적합이 생긴다.
암기 정리
정리하면 앙상블은 여러 학습기를 결합해 일반화 성능을 높이는 기법이다.
Bagging은 병렬 학습으로 분산을, Boosting은 순차 보정으로 편향을 줄인다.
과적합과 과소적합 중 무엇이 문제인지에 따라 두 방식 중 하나를 고르는 근거가 된다.