앙상블이라는 단어를 들어보신적 있나요? 앙상블은 프랑스어 "ensemble"에서 유래했다고합니다.
그 뜻은 '함께', '전체', '조화' 라는 의미를 가지고 있으며, 음악계에서 앙상블(ensemble)은 여러 연주자가 모여 하나의 작품을 함께 연주하는 그룹(합창단)을 의미한다고 합니다. 머신러닝에서도 "개별 요소들이 모여 더 나은 성과를 내는 전체" 라는 의미로 사용됩니다.
머신러닝은 집단 지성("wisdom of crowds")이라는 아이디어를 신뢰합니다. 집단 지성은 대규모 무리의 사람들이 내린 의사결정이 개인인 전문가가 내린 의사결정보다 보통은 더 적절하다고 시사합니다. 마찬가지로, 앙상블 학습은 최종 예측을 개선하기 위해 공동으로 작동하는 앙상블을 지칭합니다.
기본 학습기(weak learner, 단일 모델)은 높은 분산 혹은 높은 편향 때문에 개별적으로는 잘 작동하지 않을 수 있지만 이 단일 학습기들이 집계되면, 이들은 앙상블 (Strong 학습기)를 형성할 수 있습니다. 이들의 결합이 편향 또는 분산을 낮추므로 모델로부터 더 나은 성능을 달성할 수 있기 때문입니다. (IBM-배깅이란)
결론:
머신러닝에서 앙상블(ensemble)은 여러 개의 모델을 결합하여 하나의 예측 결과를 도출하는 방법을 의미합니다. 이를 통해 개별 모델의 약점을 보완하고 전체적인 성능을 향상시키려는 목적을 가지는데, 앙상블 기법의 대표적인 예로는 배깅(bagging), 부스팅(boosting), 스태킹(stacking) 이 있습니다.
Bagging (Bootstrap Aggregating)
bagging은 Bootstrap Aggregating의 약자인데요, 마치 베스킨 라벤스를 베라라고 부르듯 영어는 저런식으로 줄이나봅니다🤣 정말 머신러닝은 알아야 할 용어가 많군요...
- 부트스트랩(BootStrap): 원본 데이터셋에서 중복을 허용하여 여러 개의 샘플을 무작위로 뽑습니다. 이렇게 생성된 각각의 샘플을 부트스트랩 샘플이라고 합니다.
=> 부트스트래핑은 결국 동일한 데이터 세트 A의 샘플을 무작위로 중복 선택해서 여러개의 `A, ``A, ```A, ````A 를 만든다. - 병렬 훈련: 이러한 부트스트랩 샘플은 그 다음 약한 학습기 또는 기본 학습기를 사용하여 독립적으로 그리고 동시에 훈련됩니다.
=> 선택한 데이터(`A. ``A, ```A ...)를 결정트리 알고리즘을 사용해서 동시에 처리를 한다. 그래서 빠르다! - 집계: 마지막으로 작업(즉, 회귀 또는 분류)에 따라 예측의 평균값 또는 다수값으로 더 정확한 추정치를 계산합니다. 회귀의 경우에는 개별 분류기가 예측한 모든 출력값의 평균을 냅니다. 이를 소프트 보팅(soft voting)이라고 부르고, 분류 문제의 경우, 가장 많은 표를 얻은 클래스가 받아들여지는데 이를 하드 보팅(hard voting) 또는 다수결 보팅(majority voting)이라고 부릅니다.
=> 어떤 것을 사용할지 결정하는데 평균을 내면 soft voting(분류, classification), 가장 많은 것을 사용하면 hard voting(회귀, Regression)
배깅 기법으로 가장 많이 쓰이는 알고리즘: 랜덤 포레스트 알고리즘
장점
- 분산이 줄어들고(개별 모델의 예측 분산을 줄여 전체 모델의 성능을 향상)
- 과적합을 줄이고 예측 성능을 안정화시킵니다.
부스팅(Boosting)
- 작동 방식: 여러 개의 약한 학습자(weak learners)를 순차적으로 학습시킵니다. 각 단계에서 이전 모델이 예측한 오차를 보정하는 방식으로 모델을 개선해 나갑니다. 최종 예측은 모든 모델의 가중치가 부여된 합으로 결정됩니다.
- 대표 알고리즘: AdaBoost, Gradient Boosting, XGBoost, LightGBM, CatBoost.
- 장점: 모델의 예측 성능을 점진적으로 향상시켜 강력한 예측 성능을 제공합니다.
스태킹(Stacking)
- 작동 방식: 여러 개의 서로 다른 모델을 학습시키고, 이들의 예측 결과를 새로운 데이터로 사용하여 메타 모델(meta-model)을 학습시킵니다. 최종 예측은 메타 모델의 예측 결과로 결정됩니다.
- 대표 알고리즘: 다양한 모델과 메타 모델 조합으로 구현 가능. => 대부분 다 쓴다!
- 장점: 서로 다른 유형의 모델을 결합하여 더 나은 예측 성능을 얻을 수 있습니다.
보팅(Voting)
- 작동 방식: 여러 개의 서로 다른 모델을 학습시키고, 각 모델의 예측 결과를 투표 방식으로 결합합니다. 분류 문제에서는 다수결 투표를 사용하고, 회귀 문제에서는 예측값의 평균을 사용합니다.
- 대표 알고리즘: 하드 보팅(hard voting), 소프트 보팅(soft voting).
- 장점: 간단한 구현으로도 예측 성능을 향상시킬 수 있습니다.
앙상블에는 여러가지 방식들이 있는데, 하나하나 차근차근 배워봅시다!
'배움 기록' 카테고리의 다른 글
[배움기록] Segment-Anything-2 사용기 (0) | 2024.08.20 |
---|---|
[배움기록] WSL 포트포워딩 환경 설정하기! (0) | 2024.08.20 |
K겹 교차검증(K-fold cross validation) (0) | 2024.06.18 |
처음으로 돌아가기 (1) | 2024.06.18 |
[데이터 분석] 원 핫 인코딩 (1) | 2024.06.15 |