Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

ブースティング

ブースティング(boosting)はKearns (1988)の「(0.5よりわずかに正解率が高い程度の)弱い学習器を使って強い学習器を作ることはできるか?」という仮説(boosting hypothethis)から生まれた

Schapire (1990) The strength of weak learnability. の提案は

  1. 分類器h1h_1NN個のサンプルで訓練する

  2. h1h_1で分類に失敗したサンプルと正しく分類できたサンプルを半々にしたNN個のサンプルでh2h_2を訓練する

  3. h1h_1h2h_2で分類結果が一致しないNN個でh3h_3を訓練する

  4. ブーストされた分類器hBh_Bh1,h2,h3h_1, h_2, h_3の分類結果の多数決で分類を行う

AdaBoost

誤差に適応的に重みをかけてブースティングする。

2000年代前半に大ヒットした

Friedman (2001)がAdaBoostを一般化して勾配ブースティングを提案。誤差関数を指数誤差としたときの勾配ブースティングと同値であることを示した。

勾配ブースティング

Friedman, J. H. (2001). Greedy function approximation: a gradient boosting machine. Annals of statistics, 1189-1232.

勾配が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)

の形で予測モデルを構築することを考える。ここでθ=(θ0,,θM)\boldsymbol{\theta} = (\theta_0, \dots, \theta_M)は関数を形づくるパラメータ(例えば線形回帰の重み)である。

このモデルはβ,θ\boldsymbol{\beta}, \boldsymbol{\theta}の2つのパラメータベクトルを推定する必要がある。 すべてのパラメータを一度に学習するのではなく、βmfm(x;θm)\beta_m f_m(x; \theta_m)を一つずつ学習していく方法で考える。全体としては次のように行う

誤差関数が二乗誤差L(y,f(x))=(yf(x))2L(y, f(x)) = (y - f(x))^2の場合、

L(yi,fm1(xi)+βf(xi;θ))=(yifm1(xi)βf(xi;θ))2=(residualimβf(xi;θ))2\begin{align} L(y_i, f_{m-1}(x_i) + \beta f(x_i; \theta)) &= (y_i - f_{m-1}(x_i) - \beta f(x_i; \theta))^2 \\ &= (\text{residual}_{im} - \beta f(x_i; \theta))^2 \end{align}

となり、これはm1m-1回目のモデルの残差yifm1(xi)y_i - f_{m-1}(x_i)を近似するようにmm回目のモデルを学習させると捉えることができる

Friedman et al. (2000)はAdaboostが段階的加法モデルと等しいことを指摘した。

最急降下法からの説明

最急降下法は最小化問題

minxf(x)\newcommand{\b}[1]{\boldsymbol{#1}} \min_{\b{x}} f(\b{x})

において、勾配

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}を探索する方法である

書き方を変えると、t+1t+1回目の入力\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)αt\alpha_tで加重和していることがわかる。

この負の勾配を再現して加重和を行うのが段階的加法モデルでありブースティングであり、勾配ブースティングである