[머신러닝] 앙상블 학습
앙상블 학습의 개념
복수 개의 학습기를 결합함으로써 결과적으로 더 좋은 성능을 가진 학습기를 만드는 방법
학습기의 차별화 방법
- 학습 알고리즘의 차별화
- 접근 방법이 서로 다른 학습기를 선택
- ex) 베이즈 분류기와 K-NN 분류기를 결합하거나, 신경망과 SVM을 결합
- 모델 선택과 관련된 파라미터의 차별화
- K값이 서로 다른 복수의 K-NN 분류를 사용하거나, 은닉층의 뉴런 수를 달리하면서 여러 가지 모델을 사용
- 학습 데이터의 차별화
- 같은 모델을 사용하되 학습 데이터 집합을 달리하여 복수 개의 학습기를 생성
학습기 결합 방법
- 병렬적 결합: 각 학습기의 결과를 한 번에 모두 함께 고려하여 하나의 최종 결과를 생성
- 순차적 결합: 각 학습기의 결과를 단계별로 결합
학습 데이터 생성 방법에 따른 분류
- 필터링에 의한 방법 → 초기 부스팅 방법, 캐스케이딩 방법
- 각 학습기를 학습할 때마다 새로운 데이터를 생성하고, 이를 이미 학습이 완료된 학습기에 필터링함으로써 제대로 처리되지 못하는 데이터들이 학습되도록 한다.
- 리샘플링에 의한 방법 → 배깅 방법
- 각 학습기를 학습할 때마다 학습 데이터를 새로 생성하지 않고, 주어진 전체 학습 데이터로부터 일부 집합을 추출하여 각 학습기를 학습한다.
- 가중치 조정에 의한 방법 → AdaBoost 방법
- 모든 학습기에 대해 동일한 학습 데이터를 사용하되, 각 데이터에 대해 가중치를 두어 학습에 대한 영향도를 조정
배깅과 보팅
배깅에 의한 학습
- 부트스트랩 방법을 앙상블 학습에 적용한 것
- 부트스트랩: 제한된 데이터 집합을 이용하여 시스템의 학습과 평가를 동시에 수행하기 위한 리샘플링 기법
- bagging: bootstrap aggregating의 약자
고려사항
- 데이터 집합의 크기
- 전체 학습 데이터의 집합의 크기가 충분히 크지 않으면 각 학습기를 위한 학습 데이터의 크기를 전체 학습 데이터의 크기와 동일하게 설정
- 학습기의 모델
- 판별함수가 데이터 집합의 변화에 민감한 모델을 선택하는 것이 바람직 (ex. 다층 퍼셉트론, 최근접이웃 분류기)
보팅에 의한 학습
- M개의 학습기 결과를 모두 동일한 정도로 반영하여 평균한 결과를 얻는 방법 (단순평균법)
- committee machine이라고도 함
배깅과 보팅에 의한 결정경계
- 이진 분류 문제
배깅과 보팅에 의한 오차
- 각 학습기가 내는 오차값들이 서로 독립적일 때, 결합된 학습기의 일반화 오차는 각각의 개별적인 학습기의 평균적인 일반화 오차의 1/M배로 감소
- 이것은 어디까지나 각 학습기가 내는 오차값들이 서로 독립적일 때 적용되며, 일반적으로는 일반화 오차의 감소가 클 것으로 기대하기는 어렵다.
부스팅
- 간단한 학습기들이 상호보완적 역할을 할 수 있도록 단계적으로 학습을 수행하여 결합함으로써 성능을 증폭시키는 방법
- 먼저 학습된 학습기의 결과가 다음 학습기의 학습에 정보를 제공하여 이전 학습기의 결점을 보완
필터링에 의한 부스팅
- 가장 처음 제안된 부스팅 방법
- 첫 번째와 두 번째 학습기의 결과가 서로 일치하지 않는 데이터들만 모아서 세 번째 학습기를 위한 데이터 집합을 만든다.
- 학습 데이터의 규모가 매우 커야 한다.
AdaBoost 알고리즘
- 같은 데이터 집합을 반복해서 사용하되, 학습할 때마다 각 데이터에 대한 가중치(중요도)를 조정하여 학습의 변화를 꾀함
- 이전 단계의 학습 결과를 활용하여 다음 단계의 학습에 사용될 데이터에 가중치를 부여함으로써 분류기 간의 차별성 부여
- AdaBoost: Adaptive + Boost
- 분류기의 중요도는 각 학습기의 결합 과정에서 결합계수로 사용된다.
- 오분류율이 0.5보다 작으면 학습데이터에 대한 오차를 기하급수적으로 감소시킬 수 있음을 보임
- 두 개의 클래스에 대한 이진 분류 문제에 적합
오분류율에 따른 결합 중요도
- 오분류율: ε, 결합 중요도: α
결합 방법
평균법
- 학습기의 출력이 수치형일 때 적합
- 단순평균과 가중평균이 있다.
보팅법
- 분류 문제에서 주로 사용
- 다수결 부표와 가중 보팅이 있다.
- 학습기의 출력값 유형에 따라 0 또는 1의 값으로 클래스를 표현하는 하드 보팅, 0과 1 사이의 확률값을 갖는 소프트 보팅으로 구분할 수 있다.
결합을 위한 학습기(결합기)
- 기본 학습기의 결과를 결합하는 학습기(결합기) 사용
- 기본 학습기의 학습에 사용되지 않는 새로운 학습 데이터 집합을 준비한다.
캐스케이딩
- 여러 복잡도를 가진 학습기들을 순차적으로 결합하는 방법
- 단계가 높아질수록 더욱 복잡하면서 성능이 좋은 학습기를 사용하는 것이 효과적
- 계산 시간을 줄이면서 성능도 보장
- 학습기의 출력에 대한 오류와 신뢰도를 측정하여 오류가 일정 수준 이상인 데이터들을 선택하여 다음 단계의 학습에 사용
- 신뢰도가 γ보다 높지 않은 데이터들도 함께 선택하는 것이 바람직
- 신뢰도가 충분히 높다면 다음 단계의 학습기를 수행하지 않고 결과를 출력
전문가 혼합
앙상블 학습의 결과 예시
This post is licensed under CC BY 4.0 by the author.