앙상블 기법은 여러 개의 다른 모델들의 예측 결과를 합쳐서 더 좋은 예측을 만드는 기법이다.
앙상블 기법에서 바탕이 되는 가정은 서로 독립적으로 훈련된 모델들이 각자 다른 장점을 갖는다는 것이고,
각 모델들은 예측을 만들기 위해 데이터를 각자 조금씩 다른 관점에서 바라본다.
즉, 모델의 다양성이 앙상블 기법의 핵심이다.
반대로 말하면 모든 모델들이 동일한 편향을 갖는다면 이들을 앙상블한 모델 역시 동일한 편향을 갖게될 것이다.
그렇기에 각기 다른 알고리즘으로 모델들을 학습시키면 모델들이 서로 독립적이기 때문에 앙상블 모델이 기존의 모델들 보다 더 높은 성능을 갖게된다.
앙상블 기법이 확률적으로 성능을 향상시킬 수 있는지 예시를 통해 확인해보자.
정확도가 아래와 같은 3개의 독립적인 classifier 모델이 있을 때, 각 모델의 결과를 취합하여 다수결로 최종 결과를 낸다고하자. (hard voting)
(이때, 문제를 단순화하기 위해 각 모델에 대한 가중치는 동일하다고 한다)
Model 1 | Model 2 | Model 3 | |
Accuracy | 0.9 | 0.89 | 0.7 |
이때 앙상블 모델의 정확도는 (다수결이기 때문에) 최소 2개 이상의 모델이 정답을 맞출 확률을 구하면 된다.
- 모든 모델이 정답을 맞출 확률
- $0.9 \times 0.89 \times 0.7 = 0.5607$
- 두 개의 모델이 정답을 맞출 확률
- $0.9 \times 0.89 \times 0.3 + 0.9 \times 0.11 \times 0.7 + 0.1 \times 0.89 \times 0.7 = 0.3719$
=> 앙상블 모델의 정확도 = 0.5607 + 0.3719 = 0.9326
확률적으로 가장 정확도가 높은 모델의 정확도인 0.9보다 앙상블 모델의 정확도가 높은 것을 확인할 수 있다.
(반대로 1개 이하로 정답을 맞출 확률을 통해 앙상블 모델의 정확도를 구하는 예)
- 한 개의 모델이 정답을 맞출 확률
- $0.9 \times 0.11 \times 0.3 + 0.1 \times 0.89 \times 0.3 + 0.1 \times 0.11 \times 0.7 = 0.0641$
- 모든 모델이 정답을 맞추지 못할 확률
- $0.1 \times 0.11 \times 0.3 = 0.0033$
=> 앙상블 모델의 정확도 = 1 - (0.0641 + 0.0033) = 0.9326
지금의 예제에서는 모델의 성능 차이가 있는 경우에도 모두 동일한 가중치를 두었지만,
모델의 성능 차이가 큰 경우 정확도가 높은 모델의 결정에 더 가중치를 둘 수도 있다.
케라스 창시자에게 배우는 딥러닝의 저자 Francois Chollet는 그의 책에서 앙상블 기법을 사용하여 성능을 높인 일화를 얘기한다.
2014년에 안드레이 콜레프(Andrei Kolev)와 필자는 캐글의 힉스 보손 붕괴(Higgs Boson decay) 감지 대회(https://www.kaggle.com/c/higgs-boson)에서 여러 가지 트리 모델과 심층 신경망을 사용하여 4위를 했습니다.
특별하게 앙상블 모델 중 하나는 다른 방법을 사용해서 만들었습니다 (RGF(Regularized Greedy Forest) 모델이었습니다).
이 모델은 다른 모델보다 눈에 띄게 나빴습니다. 당연히 앙상블에서 낮은 가중치를 할당했습니다.
하지만 놀랍게도 이 모델이 전체 앙상블의 성능을 크게 향상시켰습니다. 이 모델이 다른 모델과 매우 달랐기 때문입니다.
다른 모델이 가지지 못한 정보를 제공한 것입니다.
이것이 앙상블의 핵심입니다. 최상의 모델이 얼마나 좋은지보다 앙상블의 후보 모델이 얼마나 다양한지가 중요합니다.
이렇듯 앙상블 기법은 더 정확한 결과를 내기위한 하나의 방법으로써 캐글과 같은 경진대회에서도 자주 쓰이고 있는 기법이다.
참고
'Machine Learning' 카테고리의 다른 글
ROC Curve (0) | 2024.05.23 |
---|---|
Classification task에서 Cross-Entropy (0) | 2024.05.18 |
L1, L2 Regularization (0) | 2024.05.07 |
Feature scaling 과 머신러닝 학습 (0) | 2024.04.26 |
Gradient Descent (0) | 2024.03.03 |
댓글