오늘은 앙상블 기법에 대해서 알아보도록 하겠습니다.
앙상블은 여러개의 예측기를 이용하여 더 좋은 예측기를 만들어 내는 것입니다.
앙상블 기법중에서는 크게 배깅, 부스팅, 스태킹이 있습니다.
가장 먼저 배깅에 대해서 알아보도록 하겠습니다.
배깅은 같은 알고리즘의 모델을 데이터셋을 샘플링하여 각자 다른 데이터셋으로 학습하는 것입니다.
1번 모델은 1~1000 데이터셋 샘플로 학습하고,
2번 모델은 750~1750 데이터셋 샘플로 학습하고
.
.
이렇게 여러개의 모델을 학습시킵니다.
그 후에 예측을 할 때에는 각 모델들이 분류한 클래스들을 모으고, 가장 많이 예측된 클래스를 최종 예측 클래스로 정하게 됩니다. 여기서 각 모델에서 학습할때 선택되지 않은 데이터셋을 oob 샘플이라고 하고, 이와 같이 정확도를 측정하는 방법을 oob 평가라고 합니다.
정확도는 각 모델에서 학습할때 사용되지 않은 데이터셋들의 정확도의 평균을 구하여 구할 수 있습니다.
자 그 다음으로는 부스팅에 대해서 알아보도록 하겠습니다.
부스팅은 앞의 모델을 보완해나가며 점진적으로 좋은 모델을 학습시키는 것입니다.
부스팅은 에이다부스트와 그레이디언트 부스팅이 제일 많이 사용되고 있습니다.
먼저 에이다부스트부터 알아보도록 하겠습니다.
에이다부스트는 앞의 모델이 과소적합했던 훈련샘플에 가중치를 더 높여 그 다음에는 그 훈련샘플을 더 신경써서 학습합니다. 이런식으로 계속 반복해가며 모델들을 학습합니다.
j번째 예측기의 에러율은 위와 같습니다.
(y_hati)^j 는 j번째 예측기의 i번째 예측값입니다.
(가장 처음 w_i는 1/m으로 초기화됩니다.)
j번째 모델의 가중치는 위와 같습니다. 에러율이 낮을수록 모델의 가중치는 높습니다.
모델이 과소적합한 데이터셋의 가중치는 exp(a_j) 를 곱해주어 가중치를 높힙니다.
이런식으로 모델을 학습하게 됩니다.
예측은 k클래스라고 예측한 모델들의 가중치 합이 제일 높은 인덱스에 해당하는 클래스로 최종 예측하게 됩니다.
그 다음으로는 그레디언트 부스팅에 대해서 알아보도록 하겠습니다.
그레디언트 부스팅은 그 전의 모델에서의 잔여오차를 학습해가며 그 모델들을 더해서 최종 예측 모델을 만들어냅니다.
다음과 같이 그래프로 보는 것이 더 좋을 것입니다.
(작자는 핸즈온 머신러닝이라는 교재로 공부하고 있으며 블로그에 많이 참고하였습니다. 다음 그림은 핸즈온 머신러닝 2판의 Figure 7-9입니다.)
왼쪽은 잔여오차이고, 오른쪽은 앙상블 모델입니다.
점진적으로 앙상블 예측 -> 잔여오차 구하기 -> 잔여오차 모델 학습 -> 앙상블 학습 -> 앙상블 예측 ... 을 순환하며 학습해나갑니다.
그레디언트 부스팅은 아주 창의적이고, 효과적인 앙상블 기법입니다.
마지막으로 스태킹에 대해서 알아보도록 하겠습니다.
스태킹은 여러 모델들의 예측을 하나로 취합하는 과정을 아예 새로운 모델로 예측을 하는 것입니다.
예를 들어 회귀문제를 해결하려고 한다고 해봅시다.
1번 모델은 20이라고 예측을 하였고, 2번 모델은 22라고 예측했고, 3번 모델은 21이라고 예측했다면, 예측을 하나로 취합하는 모델이 각 모델들이 예측한 결과값을 입력특성으로 하여 최종예측값을 도출해낼 것입니다.
이 모델을 블렌더라고 부릅니다.
훈련시키는 방법은 다음과 같습니다.
훈련세트를 두개의 샘플로 나누고, 첫번째 샘플은 첫번째 레이어들을 학습시킵니다.
그리고 각 모델들(첫번째 레이어)이 두번째 샘플에 대한 예측을 합니다.
그러면 블렌더는 첫번째 레이어의 예측값을 입력 특성으로 하고, 두번째 샘플의 타깃값은 그대로 하여 학습을 진행합니다.
레이어들을 여러 층으로 설계하여 더 복잡한 구조를 만들어서 앙상블 모델을 만들 수 있습니다.
앙상블 기법은 모델의 성능을 높이는데에 효과적인 알고리즘입니다.
(아주 간단하게 각기 다른 알고리즘의 모델들을 학습시키고, 가장 많이 예측된 클래스를 최종 예측 클래스로 하는 투표 기반 분류기라는 방법도 존재합니다. 간단하지만 강력합니다.)
'인공지능 > 이론' 카테고리의 다른 글
(15) 비지도학습 (0) | 2021.10.23 |
---|---|
(14) 차원 축소 PCA (0) | 2021.10.22 |
(12) 결정 트리 (0) | 2021.10.12 |
(11) SVM (0) | 2021.10.11 |
(8) 선형회귀 과대적합/과소적합 (0) | 2021.10.10 |