Programming

앙상블(Ensemble)은

IT오이시이 2025. 9. 18. 09:31
728x90

 

앙상블(Ensemble)

머신러닝/딥러닝에서 앙상블이란 여러 단일 예측(or 분류)모델을 하나로 엮어 더 좋은 성능의 복합 모델을 만드는 기법을 뜻한다.

앙상블은 다수의 개별 모델이 각각 예측한 결과를 모아서 최종 예측을 하는 방법으로, 예측 정확도를 높이고 모델의 안정성과 신뢰성을 개선하는 기술입니다.ibm+2

앙상블(Ensemble)은 머신러닝에서 여러 개의 단일 모델(학습기)을 결합하여 더 강력하고 정확한 예측 성능을 내는 기법입니다. 단일 모델이 가진 약점을 보완하고, 과적합을 줄이며, 더 일반화된 결과를 얻기 위해 다양한 모델들의 예측을 합치는 방식입니다.ineed-coffee.github+2

앙상블 모델들은 개별 모델들을 여러 개 생성하고, 이들의 예측 결과를 결합하는데, 대표적인 방법으로는 보팅(Voting), 배깅(Bagging), 부스팅(Boosting)이 있습니다. 보팅은 다수결 투표 방식으로 각 모델들의 예측을 모아 최종 결정을 내리고, 배깅은 여러 데이터 샘플에 대해 병렬로 모델을 학습시켜 결과를 조합합니다. 부스팅은 순차적으로 약한 모델들을 학습하며 성능을 높여갑니다.lcyking.tistory+1

 

 앙상블 모델은 여러 개별 모델(학습기)을 조합하여 단일 모델만 사용하는 것보다 더 정확한 예측을 얻는 머신러닝 기법입니다.

 

앙상블 모델 유형

문헌에서는 머신 러닝의 앙상블 학습 방법을 크게 병렬과 순차의 두 가지로 분류합니다.

- 병렬 방법은 각 기본 학습자를 다른 학습자와 구별하여 훈련시킵니다. 따라서 병렬 앙상블은 그 이름에서 알 수 있듯이 기본 학습자를 병렬로 서로 독립적으로 훈련시킵니다.
병렬 방법은 동종 방법과 이종 방법으로 추가로 구분됩니다. 동종 병렬 앙상블은 동일한 기본 학습 알고리즘을 사용하여 모든 구성 요소 기본 학습기를 생성합니다. 이종 병렬 앙상블은 서로 다른 알고리즘을 사용하여 기본 학습기를 생성합니다.

- 순차적 방법은 이전 단계에서 학습된 모델에서 발생한 오류를 최소화하도록 새로운 기본 학습자를 훈련합니다. 즉, 순차적 방법은 기본 모델을 단계적으로 순차적으로 구성합니다

 

 

Bagging : Random Forest

Boosting : AdaBoost, Gradient Boost, XGBoost, LGBM


대표적인 방법으로 보팅(Voting), 배깅(Bagging), 부스팅(Boosting)이 있습니다.ibm+4

투표(보팅,Voting)

  • 앙상블 방법으로 기본 학습기를 최종 학습기로 결합하는 방법으로 다수결 투표방식을 이용합니다.
  • 서로 다른 알고리즘이나 모델을 조합하여, 각각의 예측 결과를 투표 방식(다수결 또는 확률 평균)으로 결합해 최종 예측을 결정하는 방식입니다.jaylala.tistory+2
  • 하드 보팅은 다수결을 택하고, 소프트 보팅은 각 모델의 예측 확률을 평균내어 가장 높은 확률을 최종 결과로 선택합니다.swingswing.tistory+1
  • 과반수 투표(Majority voting)는 주어진 데이터 인스턴스에 대한 각 기본 학습자의 예측을 고려하고 대다수의 학습자가 예측하는 것으로 결정되는 최종 예측을 출력합니다. 예를 들어, 이진 분류 문제에서 과반수 투표는 주어진 데이터 인스턴스에 대한 각 기본 분류자에서 예측을 가져와서 과반수 예측을 최종 예측으로 사용합니다. 

 Hard Voting

  •  각 모델들의 softmax(or logistic) 적용 값에서 가장 큰 값만 참고하여 비율을 계산

Soft Voting

  • hard voting 보다 조금 더 정교한 계산 방식으로, softmax(or logistic) 적용 값을 모두 참고하여 비율을 계산

 

배깅(Bagging)

     Bagging 은 Bootstrapping + aggregating 의 합성 용어

  • 배깅 부트스트랩 집계라고도 불리는 동질 병렬 방법입니다. 주어진 학습 데이터 세트의 수정된 복제본을 사용하여 동일한 학습 알고리즘으로 여러 기본 학습자를 학습합니다.12 Python의 Scikit-learn 앙상블 모듈에는 배깅을 구현하기 위한 함수가 포함되어 있습니다(예: BaggingClassifier).
  • 배깅은 여러 기본 학습자를 훈련시키기 위해 부트스트랩 리샘플링(bootstrap resampling)이라는 기술을 사용하여 하나의 초기 훈련 데이터 세트에서 여러 개의 새로운 데이터 세트를 파생합니다. 
  • 같은 종류의 모델을 샘플링된 여러 데이터 하위 집합에 각각 학습시켜, 각각의 예측을 평균(회귀) 또는 다수결(분류)로 결합하는 방식입니다.pipiiiiii.tistory+2
  • 대표적으로 랜덤 포레스트가 배깅의 사례입니다.jaylala.tistory+1
  • 주로 분산(Variance)을 줄이고 과적합을 방지하는 데 효과적입니다.hye-z.tistory
  • 랜덤 포레스트는 배깅의 확장으로, 무작위 의사 결정 트리(Decision Trees)의 앙상블을 구성하기 위해 배깅을 사용하는 것을 구체적으로 나타냅니다. 이는 표준 의사 결정 트리와 다르며, 후자는 분할에 가장 적합한 것을 식별하기 위해 모든 기능을 샘플링합니다. 대조적으로, 랜덤 포레스트는 기능의 무작위 하위 집합을 반복적으로 샘플링하여 결정 노드를 만듭니다.
배깅 - 앙상블 학습이란 무엇인가요? ❘ IBM

Prediction

Averaging : Bagging을 통해 엮인 각 모델들의 출력값의 평균을 최종 출력으로 사용한다.

 

lassification

데이터 성격에 맞는 Voting 방식을 택한다.

FYI, Random Forest 모델은 각 의사결정나무의 출력을 Hard-Voting을 통해 집계한다.

 

부스팅(Boosting)

  • 부스팅 알고리즘은 순차적 앙상블 방법입니다
  • 약한 학습기를 순차적으로 학습시키며, 이전 모델이 틀린 예측(오류)에 더 많은 가중치를 두어 학습을 보완하는 방식입니다.swingswing.tistory+2
  • 대표 알고리즘에는 AdaBoost, Gradient Boosting, XGBoost, LightGBM 등이 있습니다.jaylala.tistory
  • 편향(Bias) 감소에 초점이 있고, 높은 정확도를 얻을 수 있으나 이상치에 민감할 수 있습니다.hye-z.tistory+1

Boosting은 Bagging과 비슷하게 여러 모델들을 학습시키고 각 모델을의 출력을 Averaging , 혹은 Voting하여 최종 출력을 결정한다.

Boosting은 Bagging과 다르게 앙상블 되는 모델은 동일한 알고리즘 기반 모델이며, 각 모델들이 병렬적이 아닌 순차적으로 학습하고, 집계 시 각 모델의 출력에 가중치를 적용하여 집계한다.

이 세 가지 방식을 활용해, 단일 모델의 한계를 극복하고 예측의 정확도와 신뢰도를 높일 수 있습니다.ultralytics+2

부스팅-앙상블 학습이란 무엇인가요? ❘ IBM

 배깅과 달리 부스팅은 첫 번째 모델 또는 학습자에서 잘못 분류된 데이터 인스턴스의 우선 순위를 지정합니다. 새로운 학습자는 이 새로운 데이터 세트d2에 대해 훈련됩니다. 그런 다음 d1 d2에서 세 번째 데이터 세트(d3)를 컴파일하고 두 번째 학습자의 잘못 분류 된 샘플과 d1  d2가 일치하지 않는 인스턴스의 우선 순위를 지정합니다. 이 프로세스는 n번 반복되어 n명의 학습자를 생성합니다. 그런 다음 부스팅은 모든 학습자를 결합하고 가중치를 부여하여 최종 예측을 생성합니다.

- 적응형 부스팅(AdaBoost)은 모델 오류에 가중치를 둡니다. 즉, 다음 학습자를 훈련하기 위해 데이터 세트의 새로운 반복(Iteration)을 생성할 때 AdaBoost는 이전 학습자의 잘못 분류된 샘플에 가중치를 추가하여 다음 학습자가 잘못 분류된 샘플의 우선 순위를 정하도록 합니다.

- 그래디언트 부스팅은 새로운 학습자를 교육할 때 잔여 오류를 사용합니다. 그래디언트 부스팅은 잘못 분류된 샘플에 가중치를 부여하는 대신 이전 모델이 남긴 오류를 사용하여 다음 모델에 대한 목표 예측을 설정합니다. 이러한 방식을 통해 한 모델이 남긴 오류 격차를 좁힙니다.19

 

 

스태킹

스태킹(Stacking): 여러 모델의 예측 결과를 메타 모델에 입력으로 사용하여, 메타 모델이 최종 예측을 수행하는 2단계 학습 방식입니다.

스태킹 또는 스택 일반화15는 메타 학습으로 알려진 것을 예시하는 이질적인 병렬 방법입니다. 메타 학습은 여러 기본 학습자의 출력에서 메타 학습자를 훈련시키는 것으로 구성됩니다.

스태킹은 각 학습자에 대해 다른 훈련 알고리즘을 사용하여 동일한 데이터 세트에서 여러 기본 학습자를 구체적으로 훈련시킵니다. 각 기본 학습자는 보이지 않는 데이터 세트에 대해 예측을 하고, 그런 다음 이러한 첫 번째 모델 예측을 컴파일하여 메타 모델인 최종 모델을 훈련하는 데 사용합니다.

스태킹 - 앙상블 학습이란 무엇인가요? ❘ IBM

 


 

교사 앙상블의 투표  

교사 앙상블의 투표 개념은 여러 개의 독립적으로 학습된 '교사(teacher)' 모델들이 동일한 입력에 대해 각각 예측하거나 판단을 내리고, 이 결과들을 모아서 가장 많이 선택된(과반수 득표된) 예측을 최종 결정으로 채택하는 방법입니다.

즉, 각 교사 모델이 투표권을 가진 구성원 역할을 하며, 새로운 데이터에 대해 다수의 의견을 수렴하여 결론을 내리는 '다수결 원리'에 기반합니다. 이 방식을 통해 단일 모델이 가지는 과적합 문제나 불확실성을 완화하고, 더 안정적이고 신뢰성 있는 결과를 얻을 수 있습니다.bigdaheta.tistory

PATE-GAN에서는 여러 교사 모델이 각기 다른 데이터 부분을 학습하고, 새로운 입력에 대해 각 교사의 생성 결과를 투표로 집계하여 학생 모델이 학습하도록 함으로써, 개별 데이터가 직접 노출되지 않으면서도 프라이버시를 보장하는 효과를 냅니다. 교사들의 투표 결과에 노이즈를 추가하여 개인정보 보호를 강화합니다.

요약하면, 교사 앙상블의 투표는 다수 교사의 판단을 모아 최종 결정을 내리는 다수결 방식으로, PATE-GAN의 프라이버시 보호 핵심 기법 중 하나입니다.bigdaheta.tistory



참조자료

728x90
반응형