この記事の読者
Index
アダブースト / Ada Boost (Adaptive Boosting)
代表的なブースティングアルゴリズムに、アダブースト / Ada Boost (Adaptive Boosting)がある.
- ブースティング / Boosting
アダブーストでは、弱識別器の学習結果に従って学習データに重みが付与される.
誤った学習データに対する重みを大きくし、
正しく識別された学習データに対する重みを小さくすることで、後で学習する識別器ほど、
誤りの多い学習データに集中して学習するようにする.
アダブースは、2 クラス問題の識別器であり、 多クラス問題に対応するためには、 個の一対他の識別器を構成する必要がある.
アルゴリズム
諸定義
Ada Boosting M1 のアルゴリズム
式 (1.1) に示したように、 は、ある識別器誤った学習データの正規化された重みの和になる.
(各弱識別器の誤り率は となるように期待されて作られるので、
となる.)
それゆえ、式 (1.2) の各識別器の重み は、誤差が小さいほどに大きくな値をとる.
したがって、式 (1.4) の識別結果 の計算では、誤りの小さな に大きな重みを与えることになる.
また、式 (1.3) の学習データの重み の更新では、誤った学習データの重みが 倍される.
正しく識別された学習データの重みは変更されないが、式 (1.1) による の計算で正則化されるので相対的に小さくなる.
弱識別器の数 は、あまり大きいと過学習が生じ、汎化誤差が大きくなるので、
交差検証法などで選ぶ必要がある.
アルゴリズムの導出
誤差関数の導入
アダブースト学習アルゴリズムは、指数誤差関数
を から まで逐次最小することにより導出することができる.
ここで、 は、
で定義された、弱識別器 の から までの線形結合である.
と、かけることに注意.
目的は、 を最小にする線形結合係数 と弱識別器 のパラメータを求めることにある.
最適化
逐次的な の最小化を考えるので、 と それらの係数 は
すでに決まっているものとし、 と に関する最適化のみを考えることにする.
誤差関数 は、
と分解できる.
ある弱識別器 へのある入力データ の重み は その前の から までの識別器の統合された結果にラベル値をかけ合わせた、いわゆる誤差に依存するということか?
式(2.2) は逐次最適化の枠組みを中では定数とみなることができる.
によって正しく認識された学習データの週報を で、誤って識別された集合を で表せば、
と は か のどちらかしかとらないので、誤差関数 は
と書くことができる.
のとき: は or より
を追加.
最小値の極値を計算
に関する の最小化は、 の項が定数なので、 の最小化となる.
また、 に関する最小化は、誤差関数 を微分し、
を解けば、誤差関数の最小時の がわかる.
重みの更新
番目の学習データの重みの更新式は、
となっている.
参考
書籍
Web サイト
- はじパタ全力解説: 第11章 識別機の組み合わせによる性能強化