One of the Ensemble classifiers that has attracted the greatest interest from researchers in recent years is undoubtedly AdaBoost (FS95). The basic idea behind AdaBoost is to construct a list of classifiers by iteratively assigning a weight to each new classifier according to its ability to recognize samples that were not correctly identified by the other classifiers already involved in training. All these classifiers vote with their assigned weights, and the final decision is made by majority vote.
Boosting techniques make it possible to generate a classifier in the form of an additive model:
| (5.79) |
Let us examine the binary classification case, and let
be the set of
samples available for training.
A fairly common choice when fitting models is to use least-squares regression (an optimal metric in the presence of Gaussian noise, for example) to obtain the additive model
, by minimizing the quantity
.
However, numerous experiments have shown that the quadratic cost function is not the optimal choice for classification problems.
The AdaBoost approach instead suggests that the combination of all these classifiers should minimize a different, better cost function, namely the exponential loss:
As discussed in Section 5.6, this function corresponds to the exponential loss. The objective of AdaBoost can therefore be interpreted as minimizing the empirical risk with respect to this loss function. The algorithm assigns a very high penalty to samples with a negative margin, progressively focusing training on the examples that are more difficult to classify.
Since global minimization of the function (5.80) is usually impossible, two approaches can be followed:
Under these assumptions, the objective of the training process is reduced to finding an additional classifier that minimizes, at each step, the quantity
AdaBoost is a technique that meets all these requirements.
Suppose, therefore, that
binary classifiers are available, each of which, by evaluating feature
, with
, returns an opinion
.
Let the function
, defined as
The objective is to obtain a strong classifier
as a weighted linear sum of the classifiers
, whose sign determines the overall hypothesis:
| (5.83) |
To assign a vote to a classifier, each input sample must be assigned a weight
: the higher the weight, the more incorrectly the sample has been classified up to that point in training, whereas the lower the weight, the more correctly it has been classified.
At the first iteration, all weights are set equal to
, so as to obtain an exact statistical distribution.
Variants such as Asymmetric AdaBoost assign different weights to the different classes involved.
Let
be the function expressing the success (
) or failure (
) of classifier
when evaluating sample
.
Given the weights associated with each sample, for each classifier it is possible to calculate
, the sum of the weights associated with failures, and
, the sum of the weights associated with correct classifications, that is, by defining
, in compact form:
Let be the error measure of classifier
, calculated as
| (5.85) |
| (5.86) |
The iterations of the AdaBoost algorithm are as follows:
The normalization parameter is
| (5.89) |
The optimal choice of (and, consequently, of
) is the one for which the function (5.88) attains its minimum, namely
Choosing the weight in Equation (5.90), which minimizes , after each iteration of AdaBoost the weights associated with correctly identified samples are decreased by a factor
, namely
, whereas the weights associated with samples incorrectly evaluated by hypothesis
are increased by a factor
, namely
.
This algorithm is referred to in the literature as AdaBoost.M1 or Discrete AdaBoost (FHT00).
The hypotheses
used by AdaBoost are features that can take only the values
.
The intuitive operation of AdaBoost is very simple: for each new classifier added to the sequence, AdaBoost focuses on the input patterns that have so far been classified least accurately.
AdaBoost has several interpretations: as a margin-maximizing classifier, as logistic regression applied to an additive model, as a discrete-step gradient-descent optimizer, and also as regression using Newton's method.
Like SVMs, AdaBoost maximizes the separation margin between classes, although using different metrics. Consequently, both methods are less sensitive to problems such as overfitting.
Paolo medici