Use Multiple Models at Once

지금까지는 하나의 task 에 하나의 모델을 사용했는데, 더 높은 효율과 정확도를 위해 여러 개의 모델을 적용할 수 도 있다. 이를 이루는 방법에는 여러 가지가 있다.

  1. 모델들의 결과를 합해 voting 을 진행

    image.png

  2. 모델들의 결과에 가중치를 두어 합산하는 방법

    image.png

    가중치를 얼마나 줄지는 validation set 으로 학습할 수 있다.

  3. Gating

    image.png

    입력 데이터와 가중치들 사이에 추가적인 함수를 적용한다. 2번과 달리 가중치가 validation set 뿐 만 아니라 입력 데이터에도 영향을 받게 된다.

  4. Stacking

    image.png

    여러 모델들의 결과를 받는 모델을 추가하는 방식이다.

Ensemble Methods

머신러닝의 목표는 Generalization 이기 때문에, 데이터와 모델의 다양성 (Diversity) 가 중요하다. Ensemble 은 학습 과정에 Diversity 를 주는 것이다. Weak Learners 라고 불리는 여러 모델들을 학습해 하나의 task 를 해결하는 방식이다.

Ensemble Method 들은 보통 하나의 모델을 사용하는 것 보다 좋은 정확도를 보이지만, 그만큼 연산량이 많다.

Bagging (Bootstrap Aggregation)

여러 모델을 두고, 각각 다른 샘플을 학습시킨 뒤 결과를 취합하는 방식이다. 몇 개의 샘플을 둘지, 그리고 결과 취합은 어떤 방식으로 할 지가 관건이다.

image.png

Voting 은 Inference 단계에서 이루어진다.

Bagging 은 다음과 같은 장점들이 있다.

  1. Simple Implementation

    보통 같은 모델을 여러 개 사용하기 때문이다.

  2. Better Generalization

    각 weak learner 들은 학습 데이터의 일부만 보기 때문에, 예측 시에는 개별 모델의 우연한 예측 오류로 인한 noise 가 크게 나타난다. 그런데 이 weak learner 들을 모아서 평균을 내면 노이즈는 상쇄되고, 공통된 패턴(진짜 신호)은 강조되어 일반화 성능이 증가하게 된다.

    결과적으로 개별 모델은 부정확하지만, 전체 앙상블의 정확도는 올라간다. bias-variance trade-off에서 variance는 크지만, 여러 개를 모아 variance를 줄이는 구조가 되는 것이다.

  3. Parallelization

    각 모델들은 독립적이기 때문에 병렬화가 가능하다.

Bagging 의 단점은 다음과 같다.

  1. Loss of Interpretability

    Weak Learner 들의 결과가 취합되기 때문에, 각각의 내부 메커니즘을 들여다 보는 것이 쉽지 않다.