일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 답변
- 사랑
- 번역
- 질문
- SAS
- 꿈
- TensorFlow Tutorials
- 한국어
- Tutorial
- openai
- DeepLearning
- 딥러닝
- tutorials
- Andrej Karpathy
- tensorflow
- SQL
- 매크로
- 인공지능
- 세상
- neural networks
- Reinforcement Learning
- 신경망
- deep learning
- 행복
- 머신러닝
- 강화학습
- machine learning
- Artificil Intelligence
- Hvass-Lab
- cs231n
- Today
- Total
Economics & Deeplearning
앙상블 기법 4 - 부스팅 본문
부스팅
AdaBoost 알고리즘
부스팅은 간단한 학습기들이 상호보완적 역할을 할 수 있도록 단계적으로 학습을 수행하여 결합함으로써 그 성능을 증폭시키는 것을 기본 목적으로 하는 방법으로, 그 이름도 이러한 목적에서 유래하였다.
부스팅이 배깅과 다른 가장 큰 차이점은 분류기들을 순차적으로 학습하도록 하여, 먼저 학습된 분류기의 결과가 다음 분류기의 학습에 정보를 제공하여, 이전의 분류기의 결점을 보완하는 방향으로 학습이 이루어지도록 한다는 것이다.
가장 처음에 제안된 부스팅 방법에서는, 각 학습기별로 서로 다른 데이터 집합을 사용하는 것이다.
첫 번째 데이터 집합을 이용해서 첫 번째 분류기를 학습하고, 두 번째 분류기를 학습할 때에는 새로운 집합을 생성하여 첫 번째 분류기에 입력으로 주어 분류를 수행하게 한 후, 잘못된 분류 결과를 내는 데이터들을 찾는다. 이 오분류된 데이터와 함께 바르게 분류된 데이터들도 일부 추출하는데, 그 수가 오분류된 데이터와 같은 정도로만 추출한다. 이렇게 만들어진 학습 집합을 이용하여 두 번째 분류기를 학습한다. 이어서 세 번째 분류기의 경우에는 새로운 집합을 먼저 첫 번째와 두 번째 분류기에 입력으로 주어 두 분류기의 결과가 일치하지 않는 데이터들만 모아서 세 번째 분류기를 위한 학습데이터 집합을 만든다. 이렇게 세 개의 분류기의 학습이 완료되면, 새로운 데이터가 주어졌을 때 인식을 위해서는 먼저 첫 번째와 두 번째를 이용하여 분류를 수행한 후, 그 결과가 일치하면 그것을 최종 결과로 하고, 만약 일치하지 않으면 세 번째의 결과를 최종 결과로 선택한다. 이러한 방법은 필터링에 의한 부스팅이라고 하며, 간단한 분류기의 분류 성능을 증폭시킬 수 있음을 보였다.
그러나 이 방법은 각 분류기를 학습할 때마다 새로운 데이터 집합을 생성해야 하며, 두 번째와 세 번재에 생성되는 데이터는 학습에 그 일부만 활용될 수 있다. 따라서 제대로 학습이 수행되기 위해 필요한 학습데이터의 규모가 매우 크다는 문제점을 가지고 있다. 이를 해결하기 위하여 AdaBoost에서는 같은 데이터 집합을 반복해서 사용하되, 학습할 대마다 각 데이터에 대한 중요도를 적절히 조정하여 학습에 변화를 준다.
'머신러닝' 카테고리의 다른 글
40 Must know Questions to test a data scientist on Dimensionality Reduction techniques (0) | 2017.03.21 |
---|---|
41 Essential Machine Learning Interview Questions (with answers) (0) | 2017.03.21 |
앙상블 기법 3 - 배깅과 보팅 (2) | 2016.01.26 |
앙상블 기법 2 (0) | 2016.01.26 |
앙상블 기법 1 (3) | 2016.01.26 |