**에이다부스트**는 Yoav Freund와 Robert Schapire가 개발한 기계 학습 메타 알고리즘이으로 이들은 AdaBoost를 개발한 공로를 인정받아 2003년 괴델상을 받았다. AdaBoost는 성능을 향상시키기 위하여 다른 많은 형태의 학습 알고리즘과 결합하여 사용할 수 있다. 다른 학습 알고리즘의 결과물들을 가중치를 두어 더하는 방법으로 가속화 분류기의 최종 결과물을 표현할 수 있다. AdaBoost는 이전의 분류기에 의해 잘못 분류된 것들을 이어지는 약한 학습기들이 수정해줄 수 있다는 점에서 다양한 상황에 적용할 수 있다(adaptive). 따라서 에이다 부스트는 잡음이 많은 데이터와 이상점(outlier)에 취약한 모습을 보인다. 그러나 또 다른 경우에는, 다른 학습 알고리즘보다 과적합(overfitting)에 덜 취약한 모습을 보이기도 한다. 개별 학습기들의 성능이 떨어지더라도, 각각의 성능이 무작위 추정보다 조금이라도 더 낫다면(이진 분류에서 에러율이 0.5보다 낮다면), 최종 모델은 강한 학습기로 수렴한다는 것을 증명할 수 있다.

모든 학습 알고리즘이 잘 적용될 수 있는 형태의 문제가 있고 그렇지 않은 문제가 있으며, 일반적으로 주어진 데이터 집합에 대한 최고의 성능을 얻기 위해서 많은 파라미터와 설정을 조절해야 하는 반면, (약한 학습기로서 결정 트리 학습법을 이용한) AdaBoost는 종종 최고의 발군의 분류기로 불린다. 결정 트리 학습법과 함께 사용되었을 때, AdaBoost 알고리즘의 각 단계에서 얻을 수 있는 각 훈련 샘플의 상대적 난이도에 대한 정보가 트리 성장 알고리즘에 반영되어 트리가 분류하기 더 어려운 경우에 집중되는 경향이 있다.

## 개요
기계학습의 문제들은 종종 차원수의 저주에 시달린다. 각 샘플은 아주 많은 숫자의 잠재적 특성(예를 들어, Viola-Jones 물체 탐지 체계에서 사용되는 하아 특징(Haar feature)의 경우 24x24픽셀 그림 윈도우에 162336개의 특성이 있을 수 있다.)들로 이루어질 수 있고, 모든 특성을 고려하는 것은 분류기의 훈련과 수행 속도를 늦출 뿐만 아니라 휴즈 효과(Hughes Effect)에 의해 예측 능력까지 떨어트리게 된다. 인공신경망이나 서포트 벡터 머신과는 다르게, AdaBoost 훈련 과정은 모델의 예측 능력을 향상시킬 것으로 생각되는 특성들만 선택하고, 이는 차원수를 줄이는 동시에 필요없는 특성들을 고려하지 않음으로써 잠재적으로 수행 시간을 개선시킨다.

### 훈련
AdaBoost는 가속화 분류기를 훈련시키는 한 방법을 이르는 말이다. 가속 분류기는 다음과 같은 형태로 표현된다.

이 때, 각 번째 분류기는 샘플 분류가 양의 부호로 예상되면 양수를, 그렇지 않은 경우 음수를 반환한다.

각각의 약한 학습기는 훈련 집합의 각각의 샘플에 대해 가설 가 배정된다.

여기서 는 최종 분류기에 더하기 위해 현재 고려하고 있는 약한 학습기이다.

### 가중치 설정
훈련 과정의 각 반복 단계에서 훈련 집합의 각각의 샘플에 대한 현재 오류 와 같은 값의 가중치가 그 샘플에 배정된다. 이러한 가중치는 약한 학습기의 훈련에 영향을 미칠 수 있는데, 예를 들어 결정 트리는 높은 가중치를 가진 샘플의 집합을 나누는 것을 선호하도록 성장할 수 있다.

## 유도 과정
번째 반복 단계 이후 우리의 가속화 분류기는 다음과 같은 형태의 약한 분류기의
선형 결합(linear combination)으로 표현된다.

번째 반복 단계에서 우리는 하나의 약한 분류기에 특정 값을 곱한 후 이를 기존의 분류기에 더하여 더 나은 가속화 분류기로 확장하고자 한다.

그러면 어떤 약한 분류기가 를 각 데이터 포인트에 대한 지수 손실의 합으로 아래와 같이 정의한다.

 라 두면, 아래와 같은 식을 얻는다.

우리는 이 식을 )로 아래와 같이 나눌 수 있다.

이 식의 우변에서 를 가진 것)인 것이다.

조금 전에 결정한를 결정하기 위하여 우리는 아래와 같은 미분을 수행한다.

이를 0으로 놓고 에 대하여 풀면 다음과 같은 식이 된다.

약한 분류기의 가중치가 고려된 오류율을 와 같이 계산할 수 있고, 따라서 다음 식이 성립한다.

이렇게 함으로써 우리는 AdaBoost 알고리즘을 유도하였다. 각 반복 단계에서, 가중치가 고려된 총 오류를 개선하는데 이용한다.

## 가속화 개념에 대한 통계적 접근
가속화(Boosting)는 각 샘플 는 측정값에 비례하는 지수비용함수를 나타낸다) 따라서 가속화는 선형회귀의 일종이라고 볼 수 있다.

회귀 방식에서는 최소자승오차(Least square error)  오차의 기하급수적 증가는 이상점에 과도한 가중치를 부여하게 된다.

지수오차함수를 사용하면 최종적응모델의 오차는 의 오차를 재계산하는 것과 같다고 볼 수 있다.

손실함수(Loss function)은 유연하게 선택할 수 있다. 손실함수가 단조적이고 연속적으로 미분가능할 때, 분류기는 항상 알맞은 값(purer solution)에 근접한다. 장은 최소자승을 기반으로하여 수정된 후버 손실함수(Huber loss function)을 제안하였다.

-4y f(x) & \mbox{if } \, y f(x) < -1, \\
(y f(x) - 1)^2 &\mbox{if } \, -1 \le y f(x) \le 1, \\
0 &\mbox{if } \, y f(x) > 1
\end{cases}

이 함수는 )에는 페널티를 주지 않으며, 선형적으로 신뢰도(confidence)가 1보다 큰 잘못 분류된 샘플에 대해서만 페널티를 준다. 따라서 2차 또는 지수방식과는 달리 이상점에 덜 민감한 경향을 보인다.

## 기울기 하강(Gradient Descent)을 통한 가속화
가속화 과정은 함수의 볼록 집합(convex set)에 대한 볼록손실함수(convex loss function)의 최소화 과정으로 볼 수 있다. 구체적으로는, AdaBoost는 지수 함수 를 통해 최소화를 수행한다.

기울기 하강 유추기법에서, 각 훈련값(training point)에 대한 분류기의 결과는 n차 공간에서의 점를 찾는 기법)을 수행하는 셈이다.

## 알고리즘 예시 (불연속적 AdaBoost)
다음과 같은 조건일 때:
에 대하여:

### 가중치 의 선택
라 가정하였을 때, 지수함수의 볼록성(convexity)를 이용하면 다음과 같은 식을 만족한다.

위식을 에 대하여 미분하고 상한값의 최솟값을 구하기 위해 0으로 설정한다.

이러한 관계는 를 최소화하는 값으로 정해진다.

## 변형

### 실수형 에이다부스트(Real AdaBoost)
이산 AdaBoost에서 쓰이는 분류기는 그 결과를 를 유도하였다(최소제곱법).

이를 이용하면 전체 트리에 대하여 연산을 하는 대신에 잎사귀 값들을 이전 값의 로지스틱 변환의 절반을 취하는 것으로 대체할 수 있다. 이산 AdaBoost와의 가장 큰 차이점은 이산 AdaBoost에서는 결과의 신뢰도를 따로 계산해야 하지만 실수 AdaBoost에서는 약한 분류기의 신뢰도가 확률로써 그대로 표현된다는 것에 있다.

### 로지스틱 부스트(LogitBoost)
로지스틱 회귀분석을 이용하여 AdaBoost을 실현하는 것이 로지스틱 가속이다. 를 최소화하는(최소제곱법) 약한 학습기를 사용한다:

에 대한 로그 가능도의 오류를 최소화하는 항이다.
또한 를 최소화하는 약한 학습기이다.

의 최솟값을 강제로 지정함으로써 피할 수 있다.

### 관대한 에이다부스트(Gentle AdaBoost)
이전의 가속 방법들은 각 반복 과정에서 오류를 최소화하는 를 구하고 이를 이용해서 전체 오류를 최소화하였다 (탐욕 알고리즘).
반면에 부드러운 AdaBoost에서는 반복 횟수를 제한한다.

### 빠른 종료(Early Termination)
가속화 분류기의 속도를 올리는 방법 중 하나는 분류 작업을 끝까지 진행하지 않고 일정 신뢰 구간을 확보한 시점에서 미리 종료하는 것이다. 이 방법은 Viola 와 Jones의 물체 인식 프레임워크에 소개되어 있다.

통계학에서 AdaBoost를 사용할 때에 빠른 종료 기법은 과적합(overfitting)을 방지하기 위해서 쓰인다.
훈련에 사용되는 데이터 이외에 검증을 위한 데이터를 따로 준비하고, 훈련이 진행됨에 따라 검증 데이터의 정확도를 같이 확인한다. 만일 과적화가 일어났다면 훈련 데이터에 대한 판별의 정확도는 더 좋아지지만 검증 데이터에 대한 정확도는 오히려 낮아지게 된다. 이 시점을 기준으로 빠른 종료를 하게 된다.

### 전체 보정형 알고리즘(Totally Corrective Algorithm)
가파른 경사를 사용하는 AdaBoost화 기법에서  들과 비슷할 수는 있다. LP부스트 등의 전체 보정형 알고리즘에서는 각 단계에서의 최적화 값이 그 전에 등장한 모든 단계의 결과와 독립이 되도록 최적화가 진행된다. 이는 퇴각 적합화(backfitting)이나 선형 계획법 등을 이용해서 이루어질 수 있다.

### 가지치기
가지치기는 낮은 성능을 내는 약한 분류기를 미리 제거하는 것이다. 이는 가속화 분류기의 연산 속도 및 메모리 사용량을 줄여준다. 간단하게는 낮은- 가중치, 계수, 경계값, 정확도 - 들을 가지는 분류기를 제거할 수 있고, 이는 전체 보정형 알고리즘과 함께 했을 때 효율적일 수 있다. 이 외에도 분류 결과의 다양성이 가장 높은 분류기를 제거하는 방법이 Margineantu 와 Dietterich에 의하여 제시되었다.