ブースティング(boosting)はKearns (1988)の「(0.5よりわずかに正解率が高い程度の)弱い学習器を使って強い学習器を作ることはできるか?」という仮説(boosting hypothethis)から生まれた
Schapire (1990) The strength of weak learnability. の提案は
分類器を個のサンプルで訓練する
で分類に失敗したサンプルと正しく分類できたサンプルを半々にした個のサンプルでを訓練する
とで分類結果が一致しない個でを訓練する
ブーストされた分類器はの分類結果の多数決で分類を行う
AdaBoost¶
誤差に適応的に重みをかけてブースティングする。
2000年代前半に大ヒットした
Friedman (2001)がAdaBoostを一般化して勾配ブースティングを提案。誤差関数を指数誤差としたときの勾配ブースティングと同値であることを示した。
勾配ブースティング¶
勾配が0なのが最適性の1次条件なので、勾配を説明して0に近づける
加法モデルの観点からの説明¶
複数の関数に重みをかけて足し合わせた関数
\newcommand{\argmin} attempting to redefine \argmin; use \renewcommand
\newcommand{\argmin}{\mathop{\rm arg~min}\limits}
f(x; \boldsymbol{\theta}) = f_0(x; \theta_0) + \beta_1 f_1(x; \theta_1) + \cdots + \beta_M f_M(x; \theta_M)の形で予測モデルを構築することを考える。ここでは関数を形づくるパラメータ(例えば線形回帰の重み)である。
このモデルはの2つのパラメータベクトルを推定する必要がある。 すべてのパラメータを一度に学習するのではなく、を一つずつ学習していく方法で考える。全体としては次のように行う
誤差関数が二乗誤差の場合、
となり、これは回目のモデルの残差を近似するように回目のモデルを学習させると捉えることができる
Friedman et al. (2000)はAdaboostが段階的加法モデルと等しいことを指摘した。
最急降下法からの説明¶
最急降下法は最小化問題
において、勾配
Undefined control sequence: \b at position 10: \nabla f(\̲b̲{x}) =
\begin{p…
\nabla f(\b{x}) =
\begin{pmatrix}
\frac{\partial f(\b{x})}{ \partial x_1 }\\
\\
\vdots
\\
\frac{\partial f(\b{x})}{ \partial x_n }
\end{pmatrix}を用いて
Undefined control sequence: \b at position 1: \̲b̲{x}_{t+1} = \b{…
\b{x}_{t+1} = \b{x}_t - \alpha_t \nabla f(\b{x}_t)のような更新を反復して最適な\b{x}を探索する方法である
書き方を変えると、回目の入力\b{x}_t+1はそれまでの反復の和
Undefined control sequence: \b at position 1: \̲b̲{x}_{t+1} = \b{…
\b{x}_{t+1} = \b{x}_0 - \alpha_1 \nabla f(\b{x}_1) - \alpha_2 \nabla f(\b{x}_2) - \cdots - \alpha_t \nabla f(\b{x}_t)であり、負の勾配-\nabla f(\b{x}_t)をで加重和していることがわかる。
この負の勾配を再現して加重和を行うのが段階的加法モデルでありブースティングであり、勾配ブースティングである