맨위로가기

부스팅

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

부스팅은 약한 분류기를 반복적으로 학습시켜 최종 강한 분류기를 만드는 알고리즘이다. 약한 학습기의 정확도에 따라 가중치가 부여되며, 잘못 분류된 데이터는 더 높은 가중치를 받도록 재조정된다. 부스팅 알고리즘에는 AdaBoost, Gradient Boosting, XGBoost, LightGBM, CatBoost 등이 있으며, 훈련 데이터와 가설의 가중치 부여 방식에 따라 차이가 있다. 컴퓨터 비전 분야에서 객체 분류 문제 해결에 활용되며, 이진 분류와 다중 클래스 분류 모두에 적용될 수 있다. 부스팅 알고리즘은 파이썬의 Scikit-learn, R 패키지 GBM, Weka 등 다양한 플랫폼에서 구현되어 사용된다.

더 읽어볼만한 페이지

  • 분류 알고리즘 - 인공 신경망
  • 분류 알고리즘 - 퍼셉트론
    퍼셉트론은 프랭크 로젠블랫이 고안한 인공신경망 모델로, 입력 벡터에 가중치를 곱하고 편향을 더한 값을 활성화 함수에 통과시켜 이진 분류를 수행하는 선형 분류기 학습 알고리즘이며, 초기 신경망 연구의 중요한 모델로서 역사적 의미를 가진다.
부스팅
개요
부스팅 알고리즘 다이어그램
부스팅 방법은 약한 학습기를 강한 학습기로 변환한다.
종류AdaBoost
Gradient Boosting
XGBoost
LightGBM
CatBoost
사용 분야분류
회귀
순위화
상세 정보
유형앙상블 학습
학습 패러다임지도 학습
메커니즘약한 학습기를 결합하여 강한 학습기를 생성
목표예측 정확도 향상
장점높은 정확도
다양한 모델에 적용 가능
단점과적합 가능성
계산 비용 증가 가능성
관련 개념배깅
앙상블 학습
지도 학습

2. 알고리즘

부스팅은 알고리즘적으로 제약이 없지만, 대부분의 부스팅 알고리즘은 분포에 따라 약한 분류기를 반복적으로 학습시키고 이를 최종 강한 분류기에 추가하는 방식으로 구성된다. 추가될 때, 약한 학습기의 정확도와 관련된 방식으로 가중치가 부여된다. 약한 학습기가 추가된 후, 데이터 가중치가 재조정되는데, 이를 "재가중"이라고 한다. 잘못 분류된 입력 데이터는 더 높은 가중치를 얻고, 정확하게 분류된 예시는 가중치를 잃는다. 따라서, 미래의 약한 학습기는 이전 약한 학습기가 잘못 분류한 예시에 더 집중한다.

부스팅 알고리즘의 직관을 나타내는 그림, 병렬 학습기와 가중치 데이터 세트로 구성됨


부스팅 알고리즘에는 여러 종류가 있다. Robert Schapire (재귀 다수 게이트 공식)가 제안한 초기 알고리즘[5]과 Yoav Freund (과반수에 의한 부스팅)[9]은 적응형 알고리즘이 아니어서 약한 학습기를 최대한 활용할 수 없었다. 그 후 Schapire와 Freund는 권위 있는 괴델 상을 수상한 적응형 부스팅 알고리즘인 AdaBoost를 개발했다.

확률적으로 근사적으로 정확한 학습 공식에서 증명 가능한 부스팅 알고리즘만이 정확하게 ''부스팅 알고리즘''이라고 불릴 수 있다. 부스팅 알고리즘과 정신적으로 유사한 다른 알고리즘은 때때로 "레버리징 알고리즘"이라고 불리지만, 부스팅 알고리즘으로 잘못 불리기도 한다.[9]

많은 부스팅 알고리즘 간의 주요 차이점은 훈련 데이터 포인트와 가설의 가중치 부여 방식이다. AdaBoost는 매우 널리 사용되며, 약한 학습기에 적응할 수 있는 최초의 알고리즘이라는 점에서 역사적으로 가장 중요하다. 이는 대학의 기계 학습 강좌에서 부스팅을 소개하는 데 자주 사용된다.[10] LPBoost, TotalBoost, BrownBoost, XGBoost, MadaBoost, LogitBoost 등 더 많은 최신 알고리즘이 있다. 많은 부스팅 알고리즘은 AnyBoost 프레임워크에 적합하며,[9] 이는 부스팅이 볼록 함수 분류를 위한 손실 함수를 사용하여 함수 공간에서 경사 하강법을 수행한다는 것을 보여준다.

  • AdaBoost (Adaptive Boosting)


에이다부스트는 최초로 약한 학습기의 적응을 실현한 부스팅 알고리즘으로 알려져 있다.[15] 이전 학습기가 잘못 분류한 샘플에 더 높은 가중치를 부여하여 다음 학습기가 해당 샘플에 집중하도록 유도한다.

  • Gradient Boosting


AdaBoost의 일반화된 형태이다. 부스팅 알고리즘은 데이터 포인트와 가설의 가중치 부여 방식에서 차이가 있다. 함수 공간에서의 경사 하강법을 실행할 수 있는 AnyBoost 프레임워크에 대부분 적합하며, 볼록 비용 함수를 사용한다. 경사 하강법(Gradient Descent)을 사용하여 손실 함수(Loss Function)를 최소화하는 방향으로 학습기를 결합한다. 회귀 및 분류 문제 모두에 적용 가능하다.

  • XGBoost (Extreme Gradient Boosting)


AdaBoost는 아마도 최초로 약한 학습기의 적응을 실현한 알고리즘이다. Gradient Boosting을 기반으로 한 알고리즘으로, 병렬 처리 및 과적합 방지 기능을 통해 성능을 향상시켰다.

  • LightGBM (Light Gradient Boosting Machine)


AdaBoost와 같은 초창기 부스팅 알고리즘 이후, 다양한 부스팅 알고리즘이 등장했다. 대부분의 부스팅 알고리즘은 볼록 비용 함수를 사용한 함수 공간에서의 경사 하강법을 실행하는 AnyBoost 프레임워크에 적용 가능하다. XGBoost와 유사한 Gradient Boosting 기반 알고리즘이지만, 리프 중심 트리 분할(Leaf-wise Tree Growth) 방식을 사용하여 학습 속도를 향상시켰으며, 대규모 데이터셋 처리에도 효율적이다.

  • CatBoost (Category Boosting)

AdaBoost와 같은 초창기 부스팅 알고리즘 외에도, 최근에는 다양한 알고리즘이 개발되었다. 대부분의 부스팅 알고리즘은 볼록 비용 함수를 사용한 함수 공간에서의 경사 하강법을 실행하는 AnyBoost 프레임워크에 적용할 수 있다.

2. 1. AdaBoost (Adaptive Boosting)

에이다부스트는 최초로 약한 학습기의 적응을 실현한 부스팅 알고리즘으로 알려져 있다.[15] 이전 학습기가 잘못 분류한 샘플에 더 높은 가중치를 부여하여 다음 학습기가 해당 샘플에 집중하도록 유도한다.

얼굴 인식은 에이다부스트가 사용될 수 있는 이진 분류의 한 예시이다.[15] 얼굴과 배경, 두 가지 범주를 구별하는 데 사용될 수 있다. 일반적인 알고리즘은 다음과 같다.

# 단순한 특징들의 큰 집합을 형성한다.

# 훈련 이미지에 대한 가중치를 초기화한다.

# T 라운드 동안

## 가중치를 정규화한다.

## 집합에서 사용 가능한 특징에 대해, 단일 특징을 사용하여 분류기를 훈련하고 훈련 오류를 평가한다.

## 가장 낮은 오류를 가진 분류기를 선택한다.

## 훈련 이미지의 가중치를 업데이트한다. 즉, 이 분류기에 의해 잘못 분류된 경우 가중치를 증가시키고, 올바르게 분류된 경우 감소시킨다.

# T개의 분류기의 선형 결합으로 최종 강한 분류기를 형성한다(훈련 오류가 작을수록 계수가 커진다).

부스팅 후, 200개의 특징으로 구성된 분류기는 10^{-5} 오탐율에서 95%의 탐지율을 보일 수 있다.[15]

이진 분류를 위한 부스팅의 또 다른 응용 사례는 동작과 외관의 패턴을 사용하여 보행자를 감지하는 시스템이다.[16] 이 연구는 보행자 감지를 위해 동작 정보와 외관 정보를 모두 특징으로 결합한 최초의 사례이며, 비올라-존스 객체 감지 프레임워크와 유사한 접근 방식을 취한다.

AdaBoost 외에도 LPBoost, BrownBoost, LogitBoost 등 다양한 부스팅 알고리즘이 존재한다. 대부분의 부스팅 알고리즘은 볼록 비용 함수를 사용한 함수 공간에서의 경사 하강법을 실행할 수 있는 AnyBoost 프레임워크에 적합하다.

2. 2. Gradient Boosting

AdaBoost의 일반화된 형태이다. 부스팅 알고리즘은 데이터 포인트와 가설의 가중치 부여 방식에서 차이가 있다. 함수 공간에서의 경사 하강법을 실행할 수 있는 AnyBoost 프레임워크에 대부분 적합하며, 볼록 비용 함수를 사용한다. 경사 하강법(Gradient Descent)을 사용하여 손실 함수(Loss Function)를 최소화하는 방향으로 학습기를 결합한다. 회귀 및 분류 문제 모두에 적용 가능하다. LPBoost, BrownBoost, LogitBoost 등의 알고리즘이 있다.

2. 3. XGBoost (Extreme Gradient Boosting)

AdaBoost는 아마도 최초로 약한 학습기의 적응을 실현한 알고리즘이다. 그 외에도 최근에는 LPBoost, BrownBoost, LogitBoost 등의 알고리즘이 있다. 부스팅 알고리즘의 대부분은 볼록 비용 함수를 사용한 함수 공간에서의 경사 하강법을 실행할 수 있는 AnyBoost 프레임워크에 적합하다. Gradient Boosting을 기반으로 한 알고리즘으로, 병렬 처리 및 과적합 방지 기능을 통해 성능을 향상시켰다. 대한민국에서도 캐글(Kaggle)과 같은 데이터 분석 경진대회에서 높은 성능을 보여 널리 사용되고 있다.

2. 4. LightGBM (Light Gradient Boosting Machine)

AdaBoost와 같은 초창기 부스팅 알고리즘 이후, LPBoost, BrownBoost, LogitBoost 등 다양한 부스팅 알고리즘이 등장했다. 대부분의 부스팅 알고리즘은 볼록 비용 함수를 사용한 함수 공간에서의 경사 하강법을 실행하는 AnyBoost 프레임워크에 적용 가능하다. LightGBM은 XGBoost와 유사한 Gradient Boosting 기반 알고리즘이지만, 리프 중심 트리 분할(Leaf-wise Tree Growth) 방식을 사용하여 학습 속도를 향상시켰으며, 대규모 데이터셋 처리에도 효율적이다.

2. 5. CatBoost (Category Boosting)

AdaBoost와 같은 초창기 부스팅 알고리즘 외에도, 최근에는 LPBoost, BrownBoost, LogitBoost 등 다양한 알고리즘이 개발되었다. 대부분의 부스팅 알고리즘은 볼록 비용 함수를 사용한 함수 공간에서의 경사 하강법을 실행하는 AnyBoost 프레임워크에 적용할 수 있다.

3. 컴퓨터 비전에서의 객체 분류

세상에 존재하는 다양한 알려진 객체를 포함하는 이미지가 주어지면, 향후 이미지에서 객체를 자동으로 통계적 분류하기 위해 이미지로부터 분류기를 학습시킬 수 있다. 객체의 일부 이미지 특징을 기반으로 구축된 단순 분류기는 분류 성능이 약한 경향이 있다. 객체 분류를 위해 부스팅 방법을 사용하는 것은 약한 분류기를 특별한 방식으로 통합하여 전체 분류 능력을 향상시키는 방법이다.

3. 1. 객체 분류 문제

객체 분류는 이미지가 특정 객체 범주를 포함하는지 여부를 결정하는 컴퓨터 비전의 전형적인 과제이다.[11] 이는 객체 범주화의 한 종류이며, 인식, 식별 및 탐지와 밀접하게 관련되어 있다.[11] 외형 기반 객체 범주화는 일반적으로 특징 추출, 학습 분류기 및 새 예제에 분류기 적용을 포함한다.[11] 객체 범주를 표현하는 방법에는 형상 분석, 단어 가방 모델 또는 SIFT와 같은 지역적 설명자 등이 있다.[11] 지도 분류기의 예로는 나이브 베이즈 분류기, 서포트 벡터 머신, 가우시안 혼합, 신경망 등이 있다.[11] 그러나 연구에 따르면 객체 범주와 이미지 내 해당 위치를 비지도 방식으로도 발견할 수 있다.[11]

3. 2. 객체 분류 현황

객체 분류는 높은 클래스 내 변동성과 다양한 환경 변화(조명, 크기, 시점 등)로 인해 어려운 문제로 여겨진다.[12] 인간은 수천 가지의 객체 유형을 인식할 수 있지만, 기존의 대부분의 객체 인식 시스템은 사람 얼굴, 자동차 등 몇 가지 객체만 인식하도록 훈련되어 있다. 연구는 더 많은 범주를 다루고 새로운 범주의 점진적인 추가를 가능하게 하는 데 매우 활발하게 진행되어 왔으며, 수백 또는 수천 개의 범주까지 다룰 수 있는 여러 다중 범주 객체 감지기가 개발되었다.[14] 하나의 방법은 특징 공유 및 부스팅을 이용하는 것이다. 최근에는 딥러닝 기반의 객체 검출(Object Detection) 기술이 발전하면서 부스팅 기반 방법과 함께 사용되어 성능을 향상시키고 있다.

3. 3. 이진 분류를 위한 부스팅

에이다부스트는 얼굴 인식과 같은 이진 분류 문제에 사용될 수 있다. 이 때 두 범주는 얼굴 대 배경으로 구성된다.[15] 일반적인 알고리즘은 다음과 같다.

# 단순한 특징들의 큰 집합을 형성한다.

# 훈련 이미지에 대한 가중치를 초기화한다.

# T 라운드 동안

## 가중치를 정규화한다.

## 집합에서 사용 가능한 특징에 대해, 단일 특징을 사용하여 분류기를 훈련하고 훈련 오류를 평가한다.

## 가장 낮은 오류를 가진 분류기를 선택한다.

## 훈련 이미지의 가중치를 업데이트한다: 이 분류기에 의해 잘못 분류된 경우 증가시키고, 올바르게 분류된 경우 감소시킨다.

# T개의 분류기의 선형 결합으로 최종 강한 분류기를 형성한다(훈련 오류가 작을수록 계수가 커진다).

부스팅 후, 200개의 특징으로 구성된 분류기는 10^{-5}의 오탐율에서 95%의 탐지율을 보일 수 있다.[15]

이진 분류를 위한 부스팅의 또 다른 적용 사례는 동작과 외관의 패턴을 사용하여 보행자를 감지하는 시스템이다.[16] 이 연구는 보행자를 감지하기 위해 동작 정보와 외관 정보를 모두 특징으로 결합한 최초의 사례이며, 비올라-존스 객체 감지 프레임워크와 유사한 접근 방식을 취한다.

3. 4. 다중 클래스 분류를 위한 부스팅

다중 클래스 분류는 여러 범주에서 동시에 공유할 수 있는 공통적인 특징을 찾으며, 이는 더 일반적인 가장자리와 같은 특징으로 나타난다. 학습 과정에서 각 범주에 대한 검출기를 함께 학습시킬 수 있다. 개별적으로 학습하는 것과 비교하여 일반화가 더 잘 되고, 더 적은 학습 데이터가 필요하며, 동일한 성능을 달성하기 위해 더 적은 특징이 필요하다.[17]

알고리즘의 주요 흐름은 이진 분류의 경우와 유사하다. 다른 점은, 공동 학습 오류의 척도가 사전에 정의되어야 한다는 것이다. 각 반복 과정에서 알고리즘은 단일 특징의 분류기를 선택한다(더 많은 범주에서 공유할 수 있는 특징을 권장한다). 이는 다중 클래스 분류를 이진 분류(일련의 범주 대 나머지)로 변환하거나, 분류기의 특징이 없는 범주로부터 벌점 오류를 도입하여 수행할 수 있다.[18]

A. Torralba 등의 논문 "다중 클래스 및 다중 뷰 객체 감지를 위한 시각적 특징 공유"에서 젠틀부스트를 부스팅에 사용하였으며, 학습 데이터가 제한적인 경우, 특징 공유를 통해 학습하는 것이 공유하지 않는 경우보다 훨씬 더 나은 결과를 보인다는 것을 입증했다. 또한, 주어진 성능 수준에서 특징 공유 검출기에 필요한 총 특징 수(따라서 분류기의 실행 시간 비용)는 클래스 수에 대해 대략 로그적으로 증가하는 것으로 관찰되었다. 즉, 공유하지 않는 경우의 선형 증가보다 느리다. 유사한 결과가 논문 "시각적 형태 알파벳을 사용한 객체 검출기의 점진적 학습"에서 나타났지만, 저자들은 아다부스트를 부스팅에 사용했다.

4. 구현체

Scikit-learn은 파이썬을 위한 오픈 소스 머신 러닝 라이브러리이다. Orange, Weka, R 패키지 GBM 등도 부스팅 알고리즘을 구현한다. jboost는 AdaBoost, LogitBoost, RobustBoost, Boostexter 및 교대 의사 결정 트리를 제공한다. R 패키지 adabag는 Multiclass AdaBoost.M1, AdaBoost-SAMME 및 Bagging을 적용한다. R 패키지 xgboost는 선형 및 트리 기반 모델을 위한 그래디언트 부스팅 구현이다.

R 패키지 GBM (Generalized Boosted Regression Models)은 Freund와 Schapire의 AdaBoost 알고리즘과 Friedman의 그래디언트 부스팅 머신에 대한 확장을 구현한다. R 패키지 adabag는 Multiclass AdaBoost.M1, AdaBoost-SAMME 및 Bagging을 적용한다. R 패키지 xgboost는 선형 및 트리 기반 모델을 위한 그래디언트 부스팅 구현을 제공한다.

Orange는 데이터 마이닝 및 머신 러닝을 위한 시각화 도구로, 부스팅 알고리즘을 지원한다. Weka는 자바로 작성된 머신 러닝 소프트웨어로, 다양한 부스팅 알고리즘을 제공한다. Jboost는 AdaBoost, LogitBoost 등을 구현한 자바 라이브러리이다.

4. 1. 파이썬 (Python)

Scikit-learn은 파이썬을 위한 오픈 소스 머신 러닝 라이브러리이다. Orange, Weka, R 패키지 GBM 등도 부스팅 알고리즘을 구현한다. jboost는 AdaBoost, LogitBoost, RobustBoost, Boostexter 및 교대 의사 결정 트리를 제공한다. R 패키지 adabag는 Multiclass AdaBoost.M1, AdaBoost-SAMME 및 Bagging을 적용한다. R 패키지 xgboost는 선형 및 트리 기반 모델을 위한 그래디언트 부스팅 구현이다.

4. 2. R (프로그래밍 언어)

R 패키지 GBM (Generalized Boosted Regression Models)은 Freund와 Schapire의 AdaBoost 알고리즘과 Friedman의 그래디언트 부스팅 머신에 대한 확장을 구현한다. R 패키지 adabag는 Multiclass AdaBoost.M1, AdaBoost-SAMME 및 Bagging을 적용한다. R 패키지 xgboost는 선형 및 트리 기반 모델을 위한 그래디언트 부스팅 구현을 제공한다.

4. 3. 기타

Orange는 데이터 마이닝 및 머신 러닝을 위한 시각화 도구로, 부스팅 알고리즘을 지원한다. Weka는 자바로 작성된 머신 러닝 소프트웨어로, 다양한 부스팅 알고리즘을 제공한다. Jboost는 AdaBoost, LogitBoost 등을 구현한 자바 라이브러리이다.

5. 비고

참조

[1] 웹사이트 BIAS, VARIANCE, AND ARCING CLASSIFIERS https://web.archive.[...] TECHNICAL REPORT 2015-01-19
[2] 서적 Ensemble Methods: Foundations and Algorithms Chapman and Hall/CRC 2012
[3] 문서 Thoughts on Hypothesis Boosting http://www.cis.upenn[...] 1988
[4] 서적 Proceedings of the twenty-first annual ACM symposium on Theory of computing - STOC '89 ACM 1989
[5] 간행물 The Strength of Weak Learnability https://web.archive.[...] 2012-08-23
[6] 간행물 Arcing classifier (with discussion and a rejoinder by the author) 1998
[7] 문서 A Decision-Theoretic Generalization of On-Line Learning and an Application to Boosting https://www.cis.upen[...] 1997
[8] 문서 Arcing Classifier (with Discussion and a Rejoinder by the Author) http://projecteuclid[...] 1998
[9] 문서 Boosting Algorithms as Gradient Descent MIT Press 2000
[10] 웹사이트 Boosting (AdaBoost algorithm) http://math.mit.edu/[...] 2018-10-10
[11] 문서 Discovering objects and their location in images 2005
[12] 문서 Generic Object Recognition with Boosting 2006
[13] 문서 Semantic Hierarchies for Visual Object Recognition 2007
[14] 웹사이트 Large Scale Visual Recognition Challenge http://image-net.org[...] 2017-12-01
[15] 문서 Robust Real-time Object Detection 2001
[16] 학회자료 Detecting Pedestrians Using Patterns of Motion and Appearance http://www.merl.com/[...]
[17] 문서 Sharing visual features for multiclass and multiview object detection 2006
[18] 문서 Incremental learning of object detectors using a visual shape alphabet 2006
[19] 문서 25th International Conference on Machine Learning (ICML) 2008
[20] 간행물 Random classification noise defeats all convex potential boosters https://www.cs.colum[...] 2015-11-17
[21] 문서 Thoughts on hypothesis boosting. https://www.cis.upen[...] 1988
[22] 문서 Strength of Weak Learnability 1990
[23] 문서 Boosting a weak learning algorithm by majority 1990
[24] 문서 Leveraging the margin more carefully 2004
[25] 문서 Boosting algorithms as gradient descent MIT Press 2000



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com