본문 바로가기

Data Science/ML & DL

[Module 4] 6.Ensemble | 머신러닝 모델을 동시에 사용하기

Ensemble Learning

 

 

이미 사용하고 있거나 개발한 알고리즘의 간단한 확장

Supervised learning task에서 성능을 올릴 수 있는 방법

 

Emsemble(함께, 동시에, 한꺼번에 협력하여 - 프랑스어 /소규모의 합주단 - 영어)

=> 머신러닝에서 알고리즘의 종류에 상관 없이 서로 다르거나,

같이 매커니즘으로 동작하는 다양한 머신러닝 모델을 묶어 함께 사용하는 방식

 

구조

1. 각 모델에 Data Set을 S1 ~SN까지 나눠서 학습을 진행

학습하는 Ensemble은 서로 다른 모델로 구성될 수 있지만 같은 학습모델로 구성될 수도 있음

그래서 같은 학습데이터로 학습하는 것을 지양해야함

2. 각각 학습을 진행한 다수의 모델의 다수결 Voting으로 예측결과를 제공

 

장점 

예측 모델을 안정적으로 결정 가능 - 여러 모델 사용해 noise

쉽게 구현가능 - 여러개의 모델을 학습하고, 직접적으로 연합하여 적용하기 때문에 간편하게 사용할 수 있음.

각 모델들이 독립적으로 동작하므로 모델 파라미터 튜닝이 많이 필요하지 않음

 

단점

모델 자체로 compact한 표현이 되기 어려움

 

Ensemble 기본 요소 기술 : Bagging / Boosting

 

1. Bagging : 학습과정에서 training sample을 랜덤하게 나누어 선택해 학습

 

Original 학습 데이터를 N개로 구분해 > 별개의 다른데이터 Sub Sample 사용 > 각 Classifier를 학습

모델을 병렬적으로 학습가능. 학습Set이 다른 모델에 영향을 주지 않기 때문임

 

 

 

bagging  - 보다 lower variance의 안정적인 성능을 제공하는데 유용한 방법

Overfitting의 문제( Training sample의 숫자가 적음/Model이 복잡) 해결

 : Sample을 랜덤하게 선택하는 과정에서 Data Augmentation 효과

간단한 Model을 집합적으로 사용해서 안정적인 성능 제공

 

 

- Bagging을 구성하는것은 Boostrapping/ aggregation

Boostrapping: 다수의 sample data set을 생성해서 학습하는 방식

Si : n개의 데이터 셋 - 데이터셋은 Original data set과 같을 수도, 다를 수도 있음

같은 모델 사용 : 모델 파라미터가 서로 달라야함 => 샘플을 랜덤하게 선택

서로 다른 모델 사용 : 같은 샘플을 이용해도 됨