기계 학습에서 부스팅이란 무엇인가요?

부스팅은 예측 데이터 분석의 오차를 줄이기 위해 기계 학습에 사용되는 방법입니다. 데이터 사이언티스트는 레이블이 지정되지 않은 데이터에 대해 추측하기 위해 레이블이 지정된 데이터에 대한 기계 학습 모델이라고 불리는 기계 학습 소프트웨어를 훈련시킵니다. 단일 기계 학습 모델은 훈련 데이터 집합의 정확도에 따라 예측 오차가 발생할 수 있습니다. 예를 들어 흰색 고양이의 이미지에 대해서만 고양이 식별 모델을 훈련한 경우, 가끔 검은색 고양이를 잘못 식별할 수 있습니다. 부스팅은 여러 모델을 순차적으로 훈련하여 전체 시스템의 정확도를 향상시킴으로써 이 문제를 극복하려고 하는 것입니다.

부스팅이 중요한 이유는 무엇인가요?

부스팅은 여러 약한 학습자를 강한 단일 학습 모델로 변환하여 기계 학습의 예측 정확도 및 성능을 개선할 수 있습니다. 기계 학습 모델은 약한 학습자나 강한 학습자일 수 있습니다.

약한 학습자

약한 학습자는 무작위 추측과 비슷할 정도로 예측 정확도가 낮습니다. 약한 학습자는 과잉 맞춤에 취약합니다. 즉, 원본 데이터 집합과 너무 많이 다른 데이터는 분류할 수 없습니다. 예를 들어 모델이 뾰족한 귀를 가진 동물인 고양이를 식별하도록 훈련시킨 경우 귀가 말린 고양이는 인식하지 못할 수 있습니다.

강한 학습자

강한 학습자는 예측 정확도가 높습니다. 부스팅을 통해 약한 학습자의 시스템을 강한 단일 학습 시스템으로 변환할 수 있습니다. 예를 들어 고양이 이미지를 식별하기 위해서는 뾰족한 귀를 추측하는 약한 학습자와 고양이 눈을 추측하는 또 다른 학습자를 결합해야 합니다. 뾰족한 귀를 지닌 동물 이미지를 분석하면 시스템은 고양이 눈에 대해 다시 한번 분석합니다. 이렇게 하면 시스템의 전체적인 정확도가 개선됩니다.

Amazon SageMaker의 내장 알고리즘 웨비나 시리즈: XGBoost

부스팅은 어떻게 작동하나요?

부스팅 작동 방식을 이해하기 위해 기계 학습 모델의 결정 방법에 대해 설명해 보겠습니다. 구현 시 많은 변형이 있기는 하지만 데이터 사이언티스트는 의사 결정 트리 알고리즘을 통해 부스팅을 사용하는 경우가 많습니다.

의사 결정 트리

의사 결정 트리는 기계 학습의 데이터 구조로서 데이터 집합을 기능에 따라 계속 더 작은 하위 집합으로 분할하여 작동합니다. 이는 의사 결정 트리가 하나의 클래스만 남을 때까지 반복적으로 데이터를 분할한다는 개념입니다. 예를 들어 트리는 일련의 예 또는 아니요 질문을 하고 데이터를 단계마다 범주별로 분할할 수 있습니다.

부스팅 앙상블 방법

부스팅을 통해 여러 약한 의사 결정 트리를 순차적으로 결합하여 앙상블 모델을 생성할 수 있습니다. 또한 개별 트리의 출력에 가중치를 할당합니다. 그러면 첫 번째 의사 결정 트리의 부정확한 분류가 영향을 미쳐 다음 트리에 더 높은 가중치 및 입력을 제공합니다. 여러 차례 주기를 마치고 나면 부스팅 방법은 이런 약한 규칙을 하나의 강력한 예측 규칙과 결합시킵니다.

부스팅과 배깅의 비교

부스팅 및 배깅은 예측 정확도를 개선하는 두 가지 일반적인 앙상블 방법입니다. 이런 학습 방법의 주요 차이점은 훈련 방법입니다. 배깅을 통해 데이터 사이언티스트는 여러 데이터 집합에서 한 번에 여러 약한 학습자를 훈련시켜 약한 학습자의 정확도를 개선합니다. 이와 달리 부스팅은 약한 학습자를 차례로 훈련시킵니다.

부스팅에서의 훈련은 어떻게 이뤄지나요?

훈련 방법은 부스팅 알고리즘이라고 하는 부스팅 프로세스 유형에 따라 달라집니다. 그러나 알고리즘은 다음과 같은 일반적인 단계를 따라 부스팅 모델을 훈련시킵니다.

1단계

부스팅 알고리즘은 각 데이터 샘플에 동일한 가중치를 할당합니다. 기본 알고리즘이라고 하는 첫 번째 기계 모델에 데이터를 공급합니다. 기본 알고리즘을 통해 각 데이터 샘플에 대해 예측을 할 수 있습니다.

2단계

부스팅 알고리즘은 모델 예측을 평가하고 더 심각한 오차가 있는 샘플의 가중치를 증가합니다. 또한 모델 성능에 따라 가중치를 할당합니다. 탁월한 예측을 내놓는 모델은 최종 결정에 대해 상당한 수준의 영향을 미칩니다.

3단계

알고리즘은 가중치 적용 데이터를 다음 의사 결정 트리로 이동합니다.

4단계

알고리즘은 훈련 오차 인스턴스가 특정 임계값 이하로 떨어질 때까지 2단계와 3단계를 반복합니다.

부스팅 유형에는 무엇이 있나요?

부스팅의 주요 세 가지 유형은 다음과 같습니다.

적응형 부스팅

적응형 부스팅(AdaBoost)은 초기에 개발된 부스팅 모델 중 하나입니다. AdaBoost는 부스팅 프로세스의 반복 시 변화를 적용하여 자체 수정을 시도합니다. 

AdaBoost는 초기에 각 데이터 집합에 동일한 가중치를 부여합니다. 그런 다음, 매 의사 결정 트리 이후에 데이터 포인트의 가중치를 자동으로 조절합니다. 부정확하게 분류된 항목에 가중치를 더 많이 부여하여 다음 차례에서 해당 항목을 수정합니다 실제 값과 예측 값의 차이인 잔차가 수용 가능한 임계값 아래로 떨어질 때까지 이 프로세스를 반복합니다.

AdaBoost는 많은 예측 도구에서 사용될 수 있으며 대개 다른 부스팅 알고리즘만큼 민감하지는 않습니다. 이런 접근법은 기능 간에 상관 관계가 있거나 데이터 차원이 높은 경우 제대로 작동하지 않습니다. 전반적으로 AdaBoost는 분류 문제에 적합한 유형의 부스팅입니다.

그래디언트 부스팅

그래디언트 부스팅(GB)은 AdaBoost와 비슷한 순차적인 훈련 기법입니다. AdaBoost와 GB의 차이는 GB는 부정확하게 분류된 항목에 가중치를 더 많이 부여하지 않는다는 점입니다. 대신 GB 소프트웨어는 기본 학습자를 순차적으로 생성하여 손실 함수를 최적화하므로 현재의 기본 학습자가 이전 기본 학습자보다 항상 더 효과적입니다. 이 방법은 AdaBoost처럼 프로세스 전반에 걸쳐 오차를 수정하지 않고 초기에 정확한 결과를 생성하려고 시도합니다. 이런 이유로 GB 소프트웨어를 통해 보다 정확한 결과를 도출할 수 있습니다. 그래디언트 부스팅은 분류 및 회귀 기반 문제 모두에 도움을 줄 수 있습니다.

익스트림 그래디언트 부스팅

익스트림 그래디언트 부스팅(XGBoost)은 컴퓨팅 속도 및 확장을 위해 여러 방법으로 그래디언트 부스팅을 개선합니다. XGBoost는 훈련 중에 학습이 병렬로 발생할 수 있도록 CPU에서 멀티 코어를 사용합니다. 대규모 데이터 집합을 처리할 수 있는 부스팅 알고리즘이며 빅 데이터 애플리케이션에 유용합니다. XGBoost의 주요 기능은 병렬 처리, 분산 컴퓨팅, 캐시 최적화 및 외부 메모리 처리입니다.

부스팅을 사용하면 어떤 이점이 있나요?

부스팅은 다음과 같은 이점을 제공합니다.

쉬운 구현

부스팅에는 실수에서 배울 수 있는 이해하기 쉽고 해석하기 쉬운 알고리즘이 있습니다. 이런 알고리즘은 데이터 전처리가 필요하지 않으며 내장 루틴이 있어 누락 데이터를 처리할 수 있습니다. 또한 대부분 언어에는 내장 라이브러리가 있어 많은 파라미터를 통해 부스팅 알고리즘을 구현하여 성능을 미세 조정할 수 있습니다.

편향 감소

편향은 기계 학습 결과에 불확실성 또는 부정확성이 존재하는 것입니다. 부스팅 알고리즘은 여러 약한 학습자를 순차적으로 결합하여 관측치를 반복적으로 개선합니다. 이 접근법을 사용하면 기계 학습 모델에 공통된 높은 편향을 줄일 수 있습니다.

컴퓨팅 효율성

부스팅 알고리즘은 훈련 동안 예측 정확도를 높일 수 있는 기능에 우선 순위를 지정합니다. 이를 사용하면 데이터 속성을 줄이고 대규모 데이터 집합을 효율적으로 처리할 수 있습니다.

부스팅의 어려움에는 무엇이 있나요?

부스팅 모드의 공통 한계는 다음과 같습니다.

이상치 데이터의 취약성

부스팅 모델은 나머지 데이터 집합과 다른 이상치 또는 데이터 값에 취약합니다. 각 모델은 선행 작업의 오류를 수정하려고 하기 때문에 이상치로 인해 결과가 상당히 왜곡될 수 있습니다.

실시간 구현

알고리즘은 다른 프로세스보다 더 복잡하기 때문에 부스팅을 실시간 구현에 사용하는 데 어려움이 있을 수 있습니다. 부스팅 방법은 상당히 적응력이 높으므로 다양한 모델 파라미터를 사용하여 모델의 성능에 즉각 영향을 미칠 수 있습니다.

AWS는 부스팅으로 어떤 도움을 줄 수 있나요?

AWS 네트워킹 서비스는 기업에 다음을 제공하도록 설계되었습니다.

Amazon SageMaker

Amazon SageMaker는 기계 학습을 위해 구축된 광범위한 기능들을 하나로 모았습니다. 이를 사용하면 고품질의 기계 학습 모델을 빠르게 준비, 구축, 훈련 및 배포할 수 있습니다.

Amazon SageMaker Autopilot

Amazon SageMaker Autopilot은 기계 학습 모델을 구축하는 과도한 작업을 없애주고, 데이터를 기반으로 모델을 자동으로 구축 및 훈련시킬 수 있습니다. SageMaker Autopilot을 사용하는 경우, 테이블 형식의 데이터 집합을 제공하고 예측 대상 열(숫자 또는 범주)을 선택합니다. SageMaker Autopilot은 여러 솔루션을 자동으로 탐색하여 최상의 모델을 찾습니다. 그런 다음 한 번의 클릭으로 모델을 프로덕션에 직접 배포하거나, Amazon SageMaker Studio에서 권장된 솔루션에 대해 반복하여 모델 품질을 더 개선할 수 있습니다.

Amazon SageMaker Debugger

Amazon SageMaker Debugger를 사용하면 훈련 지표를 실시간으로 캡처하고 오류가 감지될 때 알림을 전송하여 기계 학습 모델을 쉽게 최적화할 수 있습니다. 이렇게 하면 이미지의 잘못된 식별 등의 부정확한 모델 예측을 즉시 바로잡을 수 있습니다.

Amazon SageMaker는 대규모 딥 러닝 모델 및 데이터 집합을 훈련할 수 있는 빠르고 쉬운 방법을 제공합니다. SageMaker 분산 훈련 라이브러리를 사용하면 대용량 데이터 집합을 더 빠르게 훈련시킬 수 있습니다.

지금 AWS 계정을 생성하여 Amazon SageMaker를 시작하세요.

AWS 기계 학습 다음 단계

Sign up for a free account
무료 기계 학습 서비스 확인

AWS 프리 티어를 사용하여 무료 기계 학습 서비스에 즉시 액세스하세요.

무료 기계 학습 서비스 확인 
Standard Product Icons (Start Building) Squid Ink
콘솔에서 구축 시작

AWS Management Console에서 Sagemaker를 사용하여 구축을 시작하세요.

가입하기