가능한 가장 간단한 용어로 설명된 앙상블 학습

앙상블 학습은 여러 모델의 예측 능력을 결합하여 더 나은 의사 결정을 내리고, 실생활의 복잡한 문제들을 해결하는 데 중요한 역할을 합니다.

머신러닝(ML) 기술은 금융, 의료, 애플리케이션 개발, 보안 등 다양한 산업 분야에서 그 영향력을 확대하고 있습니다.

적절하게 훈련된 ML 모델은 비즈니스 성과 및 개인의 직무 역량 강화에 기여하며, 이를 달성하기 위한 다양한 방법들이 존재합니다.

본 글에서는 앙상블 학습의 개념, 중요성, 실제 적용 사례 및 관련 기술들에 대해 자세히 살펴보겠습니다.

함께 알아보시죠!

앙상블 학습이란 무엇인가?

머신러닝과 통계학에서 “앙상블”이란, 공통된 기본 학습자를 활용하면서 다양한 가설을 생성하는 방식을 의미합니다.

앙상블 학습은 여러 모델(예: 전문가 또는 분류기)들을 전략적으로 조합하여 더 나은 예측이나 문제 해결을 시도하는 머신러닝 접근법입니다.

이 방법론은 모델의 예측 정확도, 함수 근사, 분류 성능 등을 향상시키는 데 초점을 맞춥니다. 또한, 여러 모델 중에서 상대적으로 성능이 떨어지는 모델을 선택할 가능성을 줄이는 데도 활용됩니다. 다양한 학습 알고리즘을 결합하여 예측 성능을 끌어올리는 것이 특징입니다.

ML에서 앙상블 학습의 중요성

머신러닝 모델은 편향(bias), 분산(variance), 노이즈 등 여러 요인으로 인해 오류가 발생할 수 있습니다. 앙상블 학습은 이러한 오류 원인을 완화하고 ML 알고리즘의 안정성과 정확성을 높이는 데 기여합니다.

다음은 다양한 시나리오에서 앙상블 학습이 활용되는 주요 이유들입니다.

올바른 분류기 선택

앙상블 학습은 잘못된 모델 선택으로 인한 위험을 감소시키고, 더욱 적합한 모델 또는 분류기를 선택하는 데 도움을 줍니다.

SVM(Support Vector Machine), MLP(Multilayer Perceptron), 나이브 베이즈 분류기, 의사 결정 트리 등 다양한 유형의 분류기가 존재하며, 각 알고리즘의 구현 방식도 다를 수 있습니다. 또한, 학습 데이터에 따라 성능이 달라질 수 있습니다.

그러나 단일 모델 선택 대신 여러 모델의 앙상블을 사용하고, 각 모델의 출력을 통합하면 최적이 아닌 모델을 선택하는 위험을 줄일 수 있습니다.

데이터 볼륨

많은 ML 모델은 데이터가 부족하거나 과도하게 많은 경우, 그 효과가 제한적일 수 있습니다.

반면 앙상블 학습은 데이터 양이 부족하거나 많은 경우에도 효과적으로 작동할 수 있습니다.

  • 데이터가 부족한 경우, 부트스트래핑 기법을 활용하여 다양한 부트스트랩 데이터 샘플을 생성하고, 이를 통해 여러 분류기를 학습시킬 수 있습니다.
  • 데이터 양이 너무 많아 단일 분류기 학습이 어려운 경우, 데이터를 전략적으로 더 작은 하위 집합으로 나누어 처리할 수 있습니다.

복잡성

단일 분류기는 매우 복잡한 문제들을 해결하지 못할 수 있습니다. 다양한 클래스의 데이터를 구분하는 결정 경계는 매우 복잡할 수 있으며, 비선형 경계에 선형 분류기를 적용하는 것은 적절하지 않습니다.

하지만 적절한 선형 분류기들의 앙상블을 구성하면 비선형 경계를 학습하도록 만들 수 있습니다. 분류기는 더 작은 여러 파티션으로 데이터를 나누어 학습하기 쉬워지며, 각 분류기는 간단한 파티션 하나만 학습합니다. 이렇게 학습된 여러 분류기를 결합하여 최종 결정 경계를 생성합니다.

신뢰도 추정

앙상블 학습은 시스템의 결정에 신뢰도 투표를 할당합니다. 주어진 문제에 대해 학습된 다양한 분류기 앙상블이 있다고 가정해 봅시다. 만약 대부분의 분류기가 동일한 결정을 내린다면, 해당 결과는 높은 신뢰도를 갖는 앙상블이라고 볼 수 있습니다.

반면, 분류기의 절반 정도가 다른 결정을 내린다면 신뢰도가 낮은 결정으로 간주됩니다.

낮거나 높은 신뢰도가 항상 올바른 결정을 보장하는 것은 아니지만, 앙상블이 제대로 학습된 경우 높은 신뢰도를 가진 결정이 정확할 가능성이 높습니다.

데이터 융합을 통한 정확성

여러 데이터 소스에서 수집된 데이터를 전략적으로 통합하면 분류 결정의 정확도를 높일 수 있습니다. 이러한 정확도는 단일 데이터 소스만 사용했을 때보다 높습니다.

앙상블 학습은 어떻게 작동하는가?

앙상블 학습은 서로 다른 분류기들이 학습한 여러 매핑 함수를 결합하여 최종적으로 하나의 매핑 함수를 생성하는 방식으로 작동합니다.

앙상블 학습이 어떻게 작동하는지 이해를 돕기 위해 간단한 예시를 들어보겠습니다.

예를 들어, 최종 사용자를 위한 식품 관련 애플리케이션을 개발한다고 가정해 봅시다. 이 애플리케이션의 사용자 경험을 개선하기 위해, 사용자들의 불편사항, 오류, 버그 등 다양한 피드백을 수집하고자 합니다.

이를 위해 가족, 친구, 동료 등 여러 사람에게 음식 선택 및 온라인 주문 경험에 대한 의견을 물어볼 수 있습니다. 또한, 편향이나 노이즈 없이 실시간 피드백을 수집하기 위해 애플리케이션을 베타 버전으로 출시할 수도 있습니다.

이 과정에서 우리는 다양한 사람들의 아이디어와 의견을 종합하여 사용자 경험을 개선하는 데 활용합니다. 이것이 앙상블 학습과 유사한 방식으로 작동하는 원리입니다. 여러 모델을 활용하고 이들을 결합하여 예측 정확도와 성능을 향상시키는 것이 앙상블 학습의 핵심입니다.

기본 앙상블 학습 기법

#1. 최빈값 (Mode)

최빈값이란 데이터 세트에서 가장 많이 나타나는 값을 의미합니다. 앙상블 학습에서는 여러 모델을 사용하여 각 데이터 포인트에 대한 예측을 생성하고, 가장 많은 모델이 동의한 예측값을 최종 예측값으로 선택합니다. 주로 분류 문제에서 활용됩니다.

예를 들어, 4명의 사용자가 애플리케이션을 4점으로 평가하고, 1명이 3점으로 평가했다면, 최빈값은 다수의 의견인 4가 됩니다.

#2. 평균 (Average/Mean)

이 기법은 모든 모델의 예측값을 고려하여 평균을 계산하고, 이를 최종 예측값으로 결정합니다. 주로 회귀 문제, 분류 문제의 확률 계산 등에 사용됩니다.

예를 들어, 위 예시에서 네 명이 앱을 4점으로, 한 명이 3점으로 평가했다면, 평균값은 (4+4+4+4+3)/5 = 3.8이 됩니다.

#3. 가중 평균 (Weighted Average)

가중 평균 기법에서는 예측값을 계산할 때 각 모델에 서로 다른 가중치를 부여합니다. 여기서 가중치는 각 모델의 중요도 또는 관련성을 나타냅니다.

예를 들어, 5명의 사용자가 애플리케이션에 대한 피드백을 제공한 경우, 3명의 피드백 제공자는 개발자이고 나머지 2명은 개발 경험이 없는 사용자인 경우, 개발자 3명의 의견에 더 높은 가중치를 부여할 수 있습니다.

고급 앙상블 학습 기법

#1. 배깅 (Bagging)

배깅(Bootstrap Aggregating)은 매우 직관적이고 효과적인 앙상블 학습 기법입니다. 명칭에서 알 수 있듯이 부트스트랩(Bootstrap)과 어그리게이션(Aggregation)이라는 두 단어가 결합된 것입니다.

부트스트래핑은 원본 데이터 세트에서 관측치를 대체하여 여러 하위 집합을 생성하는 샘플링 방법입니다. 이때 하위 집합의 크기는 원본 데이터 세트와 동일합니다.

출처: 버기 프로그래머

배깅은 데이터 세트 전체의 분포를 이해하기 위해 하위 집합 또는 “백(bag)”을 사용합니다. 하위 집합은 원본 데이터 세트보다 작을 수 있으며, 배깅에는 단일 ML 알고리즘이 사용됩니다. 배깅의 목적은 서로 다른 모델의 결과를 결합하여 일반화된 결과를 얻는 것입니다.

배깅은 다음과 같은 방식으로 작동합니다.

  • 원본 데이터 세트에서 여러 하위 집합이 생성됩니다. 이때 관측치는 대체 방식으로 선택됩니다. 이러한 하위 집합들은 모델 또는 의사 결정 트리를 학습시키는 데 사용됩니다.
  • 약한 모델 또는 기본 모델이 각 하위 집합에 대해 생성됩니다. 모델들은 서로 독립적으로 병렬 실행됩니다.
  • 모든 모델의 예측 결과를 평균, 투표 등의 통계적 방법을 사용하여 결합하여 최종 예측을 도출합니다.

배깅에 주로 사용되는 알고리즘은 다음과 같습니다.

  • 랜덤 포레스트
  • 배깅된 의사 결정 트리

배깅 기법은 의사 결정 트리에서 분산 오류를 최소화하는 데 효과적입니다.

#2. 스태킹 (Stacking)

이미지 출처: OpenGenus IQ

스태킹(Stacking), 또는 누적 일반화는 여러 모델(예: 의사 결정 트리)의 예측 결과를 사용하여 새로운 모델을 학습시키고, 이 모델을 이용하여 최종 예측을 수행하는 방식입니다.

스태킹은 배깅과 마찬가지로 모델 학습을 위한 부트스트랩 데이터 하위 집합 생성을 포함합니다. 하지만 스태킹에서는 각 모델의 출력이 다음 단계의 분류기(메타 분류기)의 입력으로 사용됩니다. 이 메타 분류기는 최종 예측을 수행합니다.

스태킹에서 2개의 분류기 레이어를 사용하는 이유는 훈련 데이터 세트가 적절하게 학습되었는지 확인하기 위해서입니다. 2개 레이어가 일반적이지만 더 많은 레이어를 사용할 수도 있습니다.

예를 들어, 첫 번째 레이어(레벨 1)에서 3-5개의 모델을 사용하고, 두 번째 레이어(레벨 2)에서 하나의 단일 모델을 사용할 수 있습니다. 두 번째 레이어의 모델은 첫 번째 레이어에서 얻은 예측 결과를 결합하여 최종 예측을 생성합니다.

예측 집계를 위해 선형 회귀, 로지스틱 회귀 등과 같은 다양한 ML 학습 모델을 사용할 수 있습니다.

스태킹에 주로 사용되는 ML 알고리즘은 다음과 같습니다.

  • 블렌딩
  • 슈퍼 앙상블
  • 누적 모델

참고: 블렌딩은 예측을 위해 훈련 데이터 세트의 검증 또는 홀드아웃(hold-out) 세트를 사용합니다. 스태킹과 달리 블렌딩은 홀드아웃 세트에서만 예측을 수행합니다.

#3. 부스팅 (Boosting)

부스팅은 이전 분류 결과를 바탕으로 특정 관측치에 가중치를 부여하는 반복적인 앙상블 학습 방법입니다. 이전 모델에서 발견된 오류를 수정하는 것을 목표로 하는 여러 모델을 순차적으로 학습시키는 방식입니다.

만약 관측치가 잘못 분류된 경우, 부스팅은 해당 관측치에 더 높은 가중치를 부여합니다.

부스팅에서 모델 학습자는 전체 데이터 세트에서 첫 번째 부스팅 알고리즘을 학습시킵니다. 다음으로, 이전 부스팅 알고리즘에서 추출된 잔차를 사용하여 후속 ML 알고리즘을 구축합니다. 따라서 이전 모델에서 잘못 예측한 관측치에 더 높은 가중치가 부여됩니다.

부스팅은 다음과 같은 단계로 진행됩니다.

  • 원본 데이터 세트에서 하위 집합이 생성됩니다. 초기에는 모든 데이터 포인트가 동일한 가중치를 갖습니다.
  • 기본 모델이 하위 집합에서 생성됩니다.
  • 전체 데이터 세트에 대한 예측이 수행됩니다.
  • 실제 값과 예측 값을 사용하여 오류가 계산됩니다.
  • 잘못 예측된 관측치에 더 높은 가중치가 부여됩니다.
  • 새로운 모델이 생성되고, 이전 모델에서 잘못 예측된 데이터를 수정하기 위해 노력합니다. 여러 모델이 이러한 방식으로 순차적으로 생성됩니다.
  • 최종 예측은 모든 모델의 가중 평균을 사용하여 최종 모델에서 생성됩니다.

부스팅에 주로 사용되는 알고리즘은 다음과 같습니다.

  • 캣부스트
  • 라이트GBM
  • 에이다부스트

부스팅의 장점은 뛰어난 예측 성능을 제공하고 편향으로 인한 오류를 줄이는 데 도움이 된다는 것입니다.

기타 앙상블 기법

전문가 혼합(Mixture of Experts): 여러 분류기를 학습하는 데 사용되며, 각 분류기의 출력은 일반 선형 규칙과 앙상블로 통합됩니다. 이 때 조합에 부여되는 가중치는 학습 가능한 모델에 의해 결정됩니다.

과반수 투표(Majority Voting): 홀수 개의 분류기를 선택하고 각 샘플에 대해 예측을 계산합니다. 가장 많은 클래스에 속하는 것으로 예측된 클래스가 앙상블의 예측 클래스가 됩니다. 주로 이진 분류 문제 해결에 사용됩니다.

최대 규칙(Max Rule): 각 분류기의 확률 분포를 사용하여 예측에 대한 확신도를 나타냅니다. 주로 다중 클래스 분류 문제에 사용됩니다.

앙상블 학습의 실제 사용 사례

#1. 얼굴 및 감정 인식

앙상블 학습은 독립 성분 분석(ICA)과 같은 기술을 활용하여 얼굴 인식 기능을 수행합니다.

또한 음성 인식 기술과 결합하여 사람의 감정을 감지하는 데에도 사용됩니다. 이러한 기능은 사용자가 얼굴을 통해 감정을 인식하는 데 도움을 줍니다.

#2. 보안

사기 탐지: 앙상블 학습은 정상적인 행동 패턴을 모델링하는 데 강력한 도구입니다. 신용카드 사기, 은행 시스템 사기, 통신 사기, 자금 세탁 등 다양한 사기 행위를 탐지하는 데 효율적으로 활용됩니다.

DDoS 공격 방어: 분산 서비스 거부(DDoS) 공격은 ISP(인터넷 서비스 제공업체)에 심각한 피해를 줄 수 있습니다. 앙상블 분류기는 오류 감지율을 높이고 정상 트래픽과 악성 트래픽을 구별하는 데 효과적입니다.

침입 탐지: 앙상블 학습은 네트워크 또는 시스템 모니터링, 이상 징후 탐지 등을 통해 침입자 코드를 식별하는 침입 탐지 도구와 같은 모니터링 시스템에 사용될 수 있습니다.

악성코드 탐지: 머신러닝 기법을 활용하여 컴퓨터 바이러스, 웜, 랜섬웨어, 트로이 목마, 스파이웨어 등 다양한 악성코드를 탐지하고 분류하는 데 앙상블 학습이 매우 효과적입니다.

#3. 증분 학습

증분 학습에서 ML 알고리즘은 기존 학습 내용을 유지하면서 이전 데이터에 접근하지 않고 새로운 데이터 세트에서 학습을 진행합니다. 앙상블 시스템은 사용 가능한 모든 데이터 세트에서 추가된 분류기를 학습시켜 증분 학습에 활용됩니다.

#4. 의학

앙상블 분류기는 알츠하이머병과 같은 신경인지 장애 진단과 같은 의료 분야에서 유용하게 사용됩니다. MRI 데이터 세트를 입력으로 사용하여 자궁경부 세포학을 분류하고 감지 기능을 수행할 수 있습니다. 이 외에도 단백질 연구(프로테오믹스), 신경과학 및 기타 분야에도 적용됩니다.

#5. 원격 감지

변화 감지: 앙상블 분류기는 베이지안 평균 및 다수결 투표와 같은 방법을 통해 변화 감지 작업을 수행하는 데 활용됩니다.

토지 피복 매핑: 부스팅, 의사 결정 트리, 커널 주성분 분석(KPCA) 등과 같은 앙상블 학습 방법을 활용하여 토지 피복을 효율적으로 탐지하고 매핑합니다.

#6. 금융

정확성은 금융 분야에서 매우 중요합니다. 이는 의사 결정의 결과에 큰 영향을 미치기 때문입니다. 앙상블 학습은 주식 시장 데이터 변화 분석, 주가 조작 감지 등 다양한 작업에 활용됩니다.

추가 학습 자료

#1. 기계 학습을 위한 앙상블 방법

이 책은 앙상블 학습의 주요 방법들을 처음부터 학습하고 구현하는 데 도움을 줄 것입니다.

#2. 앙상블 방법: 기초 및 알고리즘

이 책에서는 앙상블 학습의 기본 원리와 알고리즘을 설명하고, 실제 세계에서 어떻게 사용되는지를 보여줍니다.

#3. 앙상블 학습

통합 앙상블 방법, 과제, 응용 등에 대한 소개를 제공합니다.

#4. 앙상블 기계 학습: 방법 및 응용 프로그램

이 책에서는 고급 앙상블 학습 기술에 대한 광범위한 내용을 다룹니다.

결론

이 글을 통해 앙상블 학습의 개념, 방법, 활용 사례 및 왜 이러한 기술이 필요한지에 대한 이해를 높이셨기를 바랍니다. 보안 및 앱 개발부터 금융, 의료 분야에 이르기까지 앙상블 학습은 실생활의 다양한 문제를 해결할 수 있는 잠재력을 가지고 있습니다. 그 활용 범위가 점차 확대되고 있으므로 앞으로 이 분야가 더욱 발전할 것으로 기대됩니다.

또한, 머신러닝 모델 훈련을 위한 합성 데이터 생성 도구를 살펴보는 것도 유익할 것입니다.