앞의 글을 읽으시면 이해에 도움이 됩니다.
2022.10.19 - [Computer Science/머신러닝] - [머신러닝 - 이론] Ensemble - Bagging (앙상블 학습 - 배깅)
2022.10.19 - [Computer Science/머신러닝] - [머신러닝 - 이론] Ensemble - Boosting (앙상블 학습 - 부스팅)
1. Stacking (스태킹)이란?
앙상블 학습에서 마지막으로 이야기할 모델은 스태킹입니다.
이는 간단한 아이디어에서 출발했는데, 아이디어는
앙상블에 속한 모든 예측기의 예측을 취합하는 간단한 함수를 사용하는 대신에 취합하는 모델을 훈련시킬 수 없을까요?
입니다.
즉 voting하는 것 또한 학습해서 머신으로 활용하겠다는 의미입니다.
아래의 세 예측기는 각각 다른 값을 예측하고, Blender(블렌더)가 아래의 예측을 입력으로 받아 최종 예측을 만듭니다.
블렌더를 학습하는 방법은 hold-out(홀드 아웃) 세트를 사용하는 것입니다.
홀드 아웃 세트란 학습 데이터를 여러 개로 나누어서 예측기와 블렌더를 학습하는 학습 데이터를 의미합니다.
이때 학습 데이터를 두 개의 서브셋으로 나눈 뒤에, 첫 번째 서브셋은 세 개의 예측기를 학습하는데 사용되고,
두 번째 서브셋은 블렌더를 학습하는데 사용됩니다.
예측기들이 훈련하는 동안 두 번째 서브셋은 전혀 보지 못했기 때문에 이때 두 번째 서브셋으로 만들어진 예측 값은 완전히 새로운 것입니다.
이를 블렌더에 입력으로 사용하여 새로운 훈련 세트를 만들고, 블렌더가 새 훈련 세트로 훈련됩니다.
즉, 첫 번째 레이어의 예측을 가지고 타깃값을 예측하도록 학습됩니다.
이를 또 multilayer stacking을 사용하여 아래의 앙상블 모델을 만들 수 있습니다.
이때 홀드 아웃 세트는 세 개의 서브셋으로 나뉘어지게 됩니다.
첫 번째 서브셋은 Layer 1을 학습하고,
두 번째 서브셋은 Layer 2를 학습하고,
세 번째 서브셋은 Layer 3을 학습합니다.
이렇게 모든 앙상블 방법에 대한 얘기가 끝났습니다.
앙상블의 순서는 단순히 예측기를 모아서 Voting하는 것이었고,
이때 예측기를 독립적이게 학습하기 위해서 Bagging이 발전되었습니다.
또한 예측기를 순차적으로 학습시키면서 앙상블에 모델을 추가하기 위하여 Boosting이 생겼고,
마지막으로 취합하는 모델까지 포함하는 Stacking이 있습니다.
감사합니다.
지적 환영합니다.
'인공지능 > 머신러닝' 카테고리의 다른 글
[머신러닝 - 이론] Dimensionality Reduction (차원 축소) (2) | 2022.10.19 |
---|---|
[머신러닝 - 이론] Support Vector Machine (SVM, 서포트 벡터 머신) (0) | 2022.10.19 |
[머신러닝 - 이론] Ensemble - Boosting (앙상블 학습 - 부스팅) (0) | 2022.10.19 |
[머신러닝 - 이론] Ensemble - Random Forest (앙상블 학습 - 랜덤 포레스트) (0) | 2022.10.19 |
[머신러닝 - 이론] Ensemble - Bagging (앙상블 학습 - 배깅) (1) | 2022.10.19 |