Adaptive boosting based classification algorithm
AdaBoost (アダブースト、 Ada ptive Boosting の 略 )は、 1995年に ヨアヴ・フロイント と ロバート・シャピレ によって考案された 統計分類 メタアルゴリズムであり、2人はその功績により2003年の ゲーデル賞を 受賞しました。AdaBoostは、様々な学習アルゴリズムと組み合わせて用いることで、パフォーマンスを向上させることができます。複数の 弱学習器の出力を重み付け和として統合し、ブースティングされた分類器の最終出力を生成します。通常、AdaBoostは 2値分類 に用いられますが、複数のクラスや 実 数値の境界付き区間にも一般化できます 。 [1] [2]
AdaBoostは、後続の弱学習器(モデル)が、以前のモデルによって誤分類された事例を優先するように調整されるという意味で適応的です。問題によっては、他の学習アルゴリズムよりも過 学習 の影響を受けにくい場合があります。個々の学習器は弱くても、それぞれのパフォーマンスがランダムな推測よりもわずかに優れている限り、最終的なモデルは強い学習器に収束することが証明できます。
AdaBoostは通常、弱ベース学習器(決定木 など)を組み合わせるために使用されますが、強ベース学習器(より深い 決定木 など )も効果的に組み合わせて、より正確なモデルを生成することが示されています。 [3]
すべての学習アルゴリズムは、ある種類の問題には他の種類よりも適している傾向があり、通常、 データセット で最適なパフォーマンスを達成する前に調整すべき多くの異なるパラメータと構成があります。AdaBoost(弱学習者として決定木を使用)は、すぐに使用できる最高の分類器と呼ばれることがよくあります。 [4] [5] 決定木学習で使用する場合、AdaBoostアルゴリズムの各段階で収集された各トレーニングサンプルの相対的な「難しさ」に関する情報がツリー成長アルゴリズムに取り込まれ、後のツリーでは分類が難しい例に重点が置かれるようになります。
トレーニング AdaBoostは、ブースティング分類器を学習させる特定の手法を指します。ブースティング分類器
とは 、各分類 器がオブジェクトを 入力として受け取り、そのオブジェクトのクラスを示す値を返す弱学習器である、という形式の分類器です。例えば、2クラス問題では、弱学習器の出力の符号が予測されるオブジェクトクラスを識別し、絶対値がその分類の信頼度を示します。 F T ( x ) = ∑ t = 1 T f t ( x ) {\displaystyle F_{T}(x)=\sum _{t=1}^{T}f_{t}(x)} f t {\displaystyle f_{t}} x {\displaystyle x}
各弱学習器は、訓練セットの各サンプルに対する 予測を固定する 出力仮説を生成する。各反復において 、弱学習器が選択され、 結果として得られる 段ブースティング分類器の 総訓練誤差 が最小化されるように係数が割り当てられる。 h {\displaystyle h} h ( x i ) {\displaystyle h(x_{i})} t {\displaystyle t} α t {\displaystyle \alpha _{t}} E t {\displaystyle E_{t}} t {\displaystyle t}
E t = ∑ i E [ F t − 1 ( x i ) + α t h ( x i ) ] {\displaystyle E_{t}=\sum _{i}E[F_{t-1}(x_{i})+\alpha _{t}h(x_{i})]}
これは 、前のトレーニング段階までに構築されたブースト分類器であり、 最終的な分類器に追加することが検討されている弱学習器です。 F t − 1 ( x ) {\displaystyle F_{t-1}(x)} f t ( x ) = α t h ( x ) {\displaystyle f_{t}(x)=\alpha _{t}h(x)}
重み付け 学習プロセスの各反復において、学習セット内の各サンプルに、そのサンプルの現在の誤差に等しい 重みが割り当てられます 。これらの重みは、弱学習器の学習に使用できます。例えば、大きな重みを持つサンプルセットを分割することを優先する決定木を成長させることができます。 w i , t {\displaystyle w_{i,t}} E ( F t − 1 ( x i ) ) {\displaystyle E(F_{t-1}(x_{i}))}
導出 この導出はロハス(2009)に従っている: [6]
各アイテムに クラス が関連付けられている データセット と、 各アイテムの 分類結果を出力する弱分類器の集合があるとします。 回の反復処理の後、ブースト分類器は、以下の形式の弱分類器の線形結合になります。 ここで、クラス は の符号です 。 回の反復処理では 、別の重み を持つ 別の弱分類器 を追加することで、これをより優れたブースト分類器に拡張します 。 { ( x 1 , y 1 ) , … , ( x N , y N ) } {\displaystyle \{(x_{1},y_{1}),\ldots ,(x_{N},y_{N})\}} x i {\displaystyle x_{i}} y i ∈ { − 1 , 1 } {\displaystyle y_{i}\in \{-1,1\}} { k 1 , … , k L } {\displaystyle \{k_{1},\ldots ,k_{L}\}} k j ( x i ) ∈ { − 1 , 1 } {\displaystyle k_{j}(x_{i})\in \{-1,1\}} ( m − 1 ) {\displaystyle (m-1)} C ( m − 1 ) ( x i ) = α 1 k 1 ( x i ) + ⋯ + α m − 1 k m − 1 ( x i ) , {\displaystyle C_{(m-1)}(x_{i})=\alpha _{1}k_{1}(x_{i})+\cdots +\alpha _{m-1}k_{m-1}(x_{i}),} C ( m − 1 ) ( x i ) {\displaystyle C_{(m-1)}(x_{i})} m {\displaystyle m} k m {\displaystyle k_{m}} α m {\displaystyle \alpha _{m}} C m ( x i ) = C ( m − 1 ) ( x i ) + α m k m ( x i ) {\displaystyle C_{m}(x_{i})=C_{(m-1)}(x_{i})+\alpha _{m}k_{m}(x_{i})}
したがって、 に対してどの弱分類器が最適か 、そしてその重みはどの程度にすべきかを決定することが残されている。 の 総誤差を、各データ点における 指数損失 の合計として定義し 、以下のように表す。 k m {\displaystyle k_{m}} α m {\displaystyle \alpha _{m}} E {\displaystyle E} C m {\displaystyle C_{m}} E = ∑ i = 1 N e − y i C m ( x i ) = ∑ i = 1 N e − y i C ( m − 1 ) ( x i ) e − y i α m k m ( x i ) {\displaystyle E=\sum _{i=1}^{N}e^{-y_{i}C_{m}(x_{i})}=\sum _{i=1}^{N}e^{-y_{i}C_{(m-1)}(x_{i})}e^{-y_{i}\alpha _{m}k_{m}(x_{i})}}
および を とする と 、 次の式が得られます。 w i ( 1 ) = 1 {\displaystyle w_{i}^{(1)}=1} w i ( m ) = e − y i C m − 1 ( x i ) {\displaystyle w_{i}^{(m)}=e^{-y_{i}C_{m-1}(x_{i})}} m > 1 {\displaystyle m>1} E = ∑ i = 1 N w i ( m ) e − y i α m k m ( x i ) {\displaystyle E=\sum _{i=1}^{N}w_{i}^{(m)}e^{-y_{i}\alpha _{m}k_{m}(x_{i})}}
この合計を、 によって正しく分類されたデータ ポイント(つまり ) と誤分類された データ ポイント (つまり ) に分割できます 。 k m {\displaystyle k_{m}} y i k m ( x i ) = 1 {\displaystyle y_{i}k_{m}(x_{i})=1} y i k m ( x i ) = − 1 {\displaystyle y_{i}k_{m}(x_{i})=-1} E = ∑ y i = k m ( x i ) w i ( m ) e − α m + ∑ y i ≠ k m ( x i ) w i ( m ) e α m = ∑ i = 1 N w i ( m ) e − α m + ∑ y i ≠ k m ( x i ) w i ( m ) ( e α m − e − α m ) {\displaystyle {\begin{aligned}E&=\sum _{y_{i}=k_{m}(x_{i})}w_{i}^{(m)}e^{-\alpha _{m}}+\sum _{y_{i}\neq k_{m}(x_{i})}w_{i}^{(m)}e^{\alpha _{m}}\\&=\sum _{i=1}^{N}w_{i}^{(m)}e^{-\alpha _{m}}+\sum _{y_{i}\neq k_{m}(x_{i})}w_{i}^{(m)}\left(e^{\alpha _{m}}-e^{-\alpha _{m}}\right)\end{aligned}}}
この式の右辺で に依存する部分は のみ であるため、 を最小化する は 、セット内で を 最小化するものである ことがわかります ( と仮定 )。つまり、重み付け誤差が最も低い弱分類器 (重み ) です。 k m {\displaystyle k_{m}} ∑ y i ≠ k m ( x i ) w i ( m ) {\textstyle \sum _{y_{i}\neq k_{m}(x_{i})}w_{i}^{(m)}} k m {\displaystyle k_{m}} E {\displaystyle E} { k 1 , … , k L } {\displaystyle \{k_{1},\ldots ,k_{L}\}} ∑ y i ≠ k m ( x i ) w i ( m ) {\textstyle \sum _{y_{i}\neq k_{m}(x_{i})}w_{i}^{(m)}} α m > 0 {\displaystyle \alpha _{m}>0} w i ( m ) = e − y i C m − 1 ( x i ) {\displaystyle w_{i}^{(m)}=e^{-y_{i}C_{m-1}(x_{i})}}
先ほど決定した を 最小化する 望ましい重量を決定するには 、次のように微分します。 α m {\displaystyle \alpha _{m}} E {\displaystyle E} k m {\displaystyle k_{m}} d E d α m = d ( ∑ y i = k m ( x i ) w i ( m ) e − α m + ∑ y i ≠ k m ( x i ) w i ( m ) e α m ) d α m {\displaystyle {\frac {dE}{d\alpha _{m}}}={\frac {d(\sum _{y_{i}=k_{m}(x_{i})}w_{i}^{(m)}e^{-\alpha _{m}}+\sum _{y_{i}\neq k_{m}(x_{i})}w_{i}^{(m)}e^{\alpha _{m}})}{d\alpha _{m}}}}
幸いなことに、これをゼロに設定して解くと最小値が発生し、次のようになります 。 α m {\displaystyle \alpha _{m}} α m = 1 2 ln ( ∑ y i = k m ( x i ) w i ( m ) ∑ y i ≠ k m ( x i ) w i ( m ) ) {\displaystyle \alpha _{m}={\frac {1}{2}}\ln \left({\frac {\sum _{y_{i}=k_{m}(x_{i})}w_{i}^{(m)}}{\sum _{y_{i}\neq k_{m}(x_{i})}w_{i}^{(m)}}}\right)}
弱分類器の重み付きエラー率を計算すると となり 、
これは負のロジット関数に0.5を掛けた値です。 の関数としての の 凸性により 、 に対するこの新しい式は 損失関数の大域的最小値を与えます。 ϵ m = ∑ y i ≠ k m ( x i ) w i ( m ) ∑ i = 1 N w i ( m ) {\displaystyle \epsilon _{m}={\frac {\sum _{y_{i}\neq k_{m}(x_{i})}w_{i}^{(m)}}{\sum _{i=1}^{N}w_{i}^{(m)}}}} α m = 1 2 ln ( 1 − ϵ m ϵ m ) {\displaystyle \alpha _{m}={\frac {1}{2}}\ln \left({\frac {1-\epsilon _{m}}{\epsilon _{m}}}\right)} E {\displaystyle E} α m {\displaystyle \alpha _{m}} α m {\displaystyle \alpha _{m}}
注: この導出は の場合にのみ適用されますが 、弱学習器に偏りがある場合 ( )、複数の葉がある場合 ( )、または他の関数 の場合など、他の場合にも適切な初期推測値になります 。 k m ( x i ) ∈ { − 1 , 1 } {\displaystyle k_{m}(x_{i})\in \{-1,1\}} k m ( x ) ∈ { a , b } , a ≠ − b {\displaystyle k_{m}(x)\in \{a,b\},a\neq -b} k m ( x ) ∈ { a , b , … , n } {\displaystyle k_{m}(x)\in \{a,b,\dots ,n\}} k m ( x ) ∈ R {\displaystyle k_{m}(x)\in \mathbb {R} }
このようにして、AdaBoost アルゴリズムを導出しました。各反復で、 合計重み付けエラー を最小化する分類器 を選択し 、これを使用してエラー率 を計算し 、これを使用して重み を計算し 、最後にこれを使用してブーストされた分類器 をに改善します 。 k m {\displaystyle k_{m}} ∑ y i ≠ k m ( x i ) w i ( m ) {\textstyle \sum _{y_{i}\neq k_{m}(x_{i})}w_{i}^{(m)}} ϵ m = ∑ y i ≠ k m ( x i ) w i ( m ) ∑ i = 1 N w i ( m ) {\displaystyle \epsilon _{m}={\frac {\sum _{y_{i}\neq k_{m}(x_{i})}w_{i}^{(m)}}{\sum _{i=1}^{N}w_{i}^{(m)}}}} α m = 1 2 ln ( 1 − ϵ m ϵ m ) {\displaystyle \alpha _{m}={\frac {1}{2}}\ln \left({\frac {1-\epsilon _{m}}{\epsilon _{m}}}\right)} C m − 1 {\displaystyle C_{m-1}} C m = C ( m − 1 ) + α m k m {\displaystyle C_{m}=C_{(m-1)}+\alpha _{m}k_{m}}
ブースティングの統計的理解 ブースティングは線形回帰 の一種 で、各サンプルの特徴は、ある弱い学習器 を適用した 出力です 。 x i {\displaystyle x_{i}} h {\displaystyle h} x i {\displaystyle x_{i}}
回帰は、一般性を損なうことなく可能な限り正確 に 近似しようと試み、通常は 最小二乗 誤差を使用します 。一方、AdaBoostの誤差関数は 最終結果の符号のみを使用するため、 誤差を増加させることなく1よりはるかに大きな値にすることができます。しかし、サンプルの誤差が指数関数的に増加する ため 、外れ値に過剰な重みが割り当てられることになります。 F ( x ) {\displaystyle F(x)} y ( x ) {\displaystyle y(x)} E ( f ) = ( y ( x ) − f ( x ) ) 2 {\displaystyle E(f)=(y(x)-f(x))^{2}} E ( f ) = e − y ( x ) f ( x ) {\displaystyle E(f)=e^{-y(x)f(x)}} | F ( x ) | {\displaystyle |F(x)|} x i {\displaystyle x_{i}} − y ( x i ) f ( x i ) {\displaystyle -y(x_{i})f(x_{i})}
指数誤差関数を選択することの特徴の1つは、最終的な加法モデルの誤差が各ステージの誤差の積、つまり となることです 。したがって、AdaBoostアルゴリズムにおける重みの更新は、各ステージの後に の誤差を再計算することと同等であることがわかります 。 e ∑ i − y i f ( x i ) = ∏ i e − y i f ( x i ) {\displaystyle e^{\sum _{i}-y_{i}f(x_{i})}=\prod _{i}e^{-y_{i}f(x_{i})}} F t ( x ) {\displaystyle F_{t}(x)}
損失関数の選択には多くの柔軟性が認められる。損失関数が 単調かつ 連続 微分可能 である限り、分類器は常により純粋な解へと向かう。 [7] Zhang (2004)は、最小二乗法に基づく損失関数、すなわち修正 Huber損失関数 を提供している。 ϕ ( y , f ( x ) ) = { − 4 y f ( x ) if y f ( x ) < − 1 , ( y f ( x ) − 1 ) 2 if − 1 ≤ y f ( x ) ≤ 1. 0 if y f ( x ) > 1 {\displaystyle \phi (y,f(x))={\begin{cases}-4yf(x)&{\text{if }}yf(x)<-1,\\(yf(x)-1)^{2}&{\text{if }}-1\leq yf(x)\leq 1.\\0&{\text{if }}yf(x)>1\end{cases}}}
この関数は、1 または -1 に近い値 に対して LogitBoost よりも適切に動作し、修正 されていない最小二乗法とは異なり、「自信過剰な」予測 ( ) をペナルティの対象にせず、2 次または指数関数的ではなく線形的に、信頼度が 1 を超える誤分類サンプルのみをペナルティの対象とするため、外れ値の影響を受けにくくなります。 f ( x ) {\displaystyle f(x)} y f ( x ) > 1 {\displaystyle yf(x)>1}
勾配降下法としてのブースティング ブースティングは、凸関数の集合に対する 凸 損失関数 の最小化と見ることができる 。 [8] 具体的には、AdaBoostによって最小化される損失は指数損失である のに対し、LogitBoostはロジスティック回帰を実行し、 ∑ i ϕ ( i , y , f ) = ∑ i e − y i f ( x i ) , {\displaystyle \sum _{i}\phi (i,y,f)=\sum _{i}e^{-y_{i}f(x_{i})},} ∑ i ϕ ( i , y , f ) = ∑ i ln ( 1 + e − y i f ( x i ) ) . {\displaystyle \sum _{i}\phi (i,y,f)=\sum _{i}\ln \left(1+e^{-y_{i}f(x_{i})}\right).}
勾配降下法のアナロジーでは、各トレーニングポイントにおける分類器の出力は n次元空間内の点とみなされ、各軸はトレーニングサンプルに対応し、各弱学習器は 固定の方向と長さのベクトルに対応します。そして、目標は最小ステップでターゲットポイント (または損失関数の値 がそのポイントの値よりも小さい領域)に到達することです。したがって、AdaBoostアルゴリズムは、トレーニングエラーの最適化として、 コーシー最適化 ( 最も急な勾配を持つポイントを見つけ、 テストエラーを最小化するように選択する)または ニュートン 最適化(ターゲットポイントを選択し、そのポイントに最も近いポイントを見つける ) のいずれかを実行します。 ( F t ( x 1 ) , … , F t ( x n ) ) {\displaystyle \left(F_{t}(x_{1}),\dots ,F_{t}(x_{n})\right)} h ( x ) {\displaystyle h(x)} ( y 1 , … , y n ) {\displaystyle (y_{1},\dots ,y_{n})} E T ( x 1 , … , x n ) {\displaystyle E_{T}(x_{1},\dots ,x_{n})} h ( x ) {\displaystyle h(x)} α {\displaystyle \alpha } α h ( x ) {\displaystyle \alpha h(x)} F t {\displaystyle F_{t}}
アルゴリズムの例(離散AdaBoost) と:
サンプル x 1 … x n {\displaystyle x_{1}\dots x_{n}} 望ましい出力 y 1 … y n , y ∈ { − 1 , 1 } {\displaystyle y_{1}\dots y_{n},y\in \{-1,1\}} 初期重み は w 1 , 1 … w n , 1 {\displaystyle w_{1,1}\dots w_{n,1}} 1 n {\displaystyle {\frac {1}{n}}} 誤差関数 E ( f ( x ) , y i ) = e − y i f ( x i ) {\displaystyle E(f(x),y_{i})=e^{-y_{i}f(x_{i})}} 弱い学習者 h : x → { − 1 , 1 } {\displaystyle h\colon x\rightarrow \{-1,1\}} の 場合 : t {\displaystyle t} 1 … T {\displaystyle 1\dots T}
選ぶ : h t ( x ) {\displaystyle h_{t}(x)} 誤分類された点の重み付き合計誤差を 最小化する 弱学習器を見つける h t ( x ) {\displaystyle h_{t}(x)} ϵ t {\displaystyle \epsilon _{t}} ϵ t = ∑ h t ( x i ) ≠ y i i = 1 n w i , t {\displaystyle \epsilon _{t}=\sum _{\stackrel {i=1}{h_{t}(x_{i})\neq y_{i}}}^{n}w_{i,t}} 選ぶ α t = 1 2 ln ( 1 − ϵ t ϵ t ) {\displaystyle \alpha _{t}={\frac {1}{2}}\ln \left({\frac {1-\epsilon _{t}}{\epsilon _{t}}}\right)} アンサンブルに追加: F t ( x ) = F t − 1 ( x ) + α t h t ( x ) {\displaystyle F_{t}(x)=F_{t-1}(x)+\alpha _{t}h_{t}(x)} 重みを更新: w i , t + 1 = w i , t e − y i α t h t ( x i ) {\displaystyle w_{i,t+1}=w_{i,t}e^{-y_{i}\alpha _{t}h_{t}(x_{i})}} のため に i {\displaystyle i} 1 … n {\displaystyle 1\dots n} 次のように 正規化する w i , t + 1 {\displaystyle w_{i,t+1}} ∑ i w i , t + 1 = 1 {\displaystyle \sum _{i}w_{i,t+1}=1} (注: すべてのステップで が示されるため 、新しい重みの計算が簡素化されます。) ∑ h t ( x i ) = y i w i , t + 1 ∑ h t ( x i ) ≠ y i w i , t + 1 = ∑ h t ( x i ) = y i w i , t ∑ h t ( x i ) ≠ y i w i , t {\displaystyle {\frac {\sum _{h_{t}(x_{i})=y_{i}}w_{i,t+1}}{\sum _{h_{t}(x_{i})\neq y_{i}}w_{i,t+1}}}={\frac {\sum _{h_{t}(x_{i})=y_{i}}w_{i,t}}{\sum _{h_{t}(x_{i})\neq y_{i}}w_{i,t}}}}
変種
リアルアダブースト 決定木の出力はクラス確率推定値であり、これは 正のクラスに含まれる 確率である。 [7] Friedman、Hastie、Tibshiraniは、 ある固定値 (通常は重み付き最小二乗誤差を使用して選択される)に対する解析的最小化子を導出する。 p ( x ) = P ( y = 1 | x ) {\displaystyle p(x)=P(y=1|x)} x {\displaystyle x} e − y ( F t − 1 ( x ) + f t ( p ( x ) ) ) {\displaystyle e^{-y\left(F_{t-1}(x)+f_{t}(p(x))\right)}} p ( x ) {\displaystyle p(x)}
f t ( x ) = 1 2 ln ( x 1 − x ) {\displaystyle f_{t}(x)={\frac {1}{2}}\ln \left({\frac {x}{1-x}}\right)} 。 したがって、ツリー全体の出力を何らかの固定値で乗算するのではなく、各リーフ ノードは、 前の値の ロジット変換の半分を出力するように変更されます。
ロジットブースト LogitBoostは、確立されたロジスティック回帰 手法をAdaBoost法に適用したものです 。yに関する誤差を最小化するのではなく、yに関する(重み付き最小二乗)誤差を最小化するように弱学習器が選択されます。 ここ で f t ( x ) {\displaystyle f_{t}(x)} z t = y ∗ − p t ( x ) 2 p t ( x ) ( 1 − p t ( x ) ) , {\displaystyle z_{t}={\frac {y^{*}-p_{t}(x)}{2p_{t}(x)(1-p_{t}(x))}},} p t ( x ) = e F t − 1 ( x ) e F t − 1 ( x ) + e − F t − 1 ( x ) , {\displaystyle p_{t}(x)={\frac {e^{F_{t-1}(x)}}{e^{F_{t-1}(x)}+e^{-F_{t-1}(x)}}},} w t = p t ( x ) ( 1 − p t ( x ) ) {\displaystyle w_{t}=p_{t}(x)(1-p_{t}(x))} y ∗ = y + 1 2 . {\displaystyle y^{*}={\frac {y+1}{2}}.}
つまり、 ステージ での対数尤度誤差の最小化の ニュートン・ラプソン 近似であり 、弱学習器は重み付き最小二乗法によって 最もよく近似する学習器として選択されます 。 z t {\displaystyle z_{t}} t {\displaystyle t} f t {\displaystyle f_{t}} z t {\displaystyle z_{t}}
pが1または0に近づくと、の値は 非常に小さくなり、誤分類サンプルでは大きくなる z 項は、機械精度の丸め誤差により 数値的に不安定になる可能性があります。これは、 z の絶対値と w の最小値 に何らかの制限を課すことで克服できます。 p t ( x i ) ( 1 − p t ( x i ) ) {\displaystyle p_{t}(x_{i})(1-p_{t}(x_{i}))}
ジェントルアダブースト 従来のブースティングアルゴリズムは 貪欲に選択を行い、各ステップで全体的なテスト誤差を可能な限り最小化しますが、GentleBoostはステップサイズが制限されています。 は を 最小化するように選択され 、それ以上の係数は適用されません。したがって、弱学習器が完全な分類性能を示す場合、GentleBoostは と正確に等しいを選択し 、最急降下法アルゴリズムは を設定しようとします。GentleBoostの優れた性能に関する経験的観察は、 の値が過度に大きくなると 汎化性能が低下する可能性が あるというSchapireとSingerの指摘を裏付けているようです。 [9] [10] f t {\displaystyle f_{t}} f t {\displaystyle f_{t}} ∑ i w t , i ( y i − f t ( x i ) ) 2 {\textstyle \sum _{i}w_{t,i}(y_{i}-f_{t}(x_{i}))^{2}} f t ( x ) = α t h t ( x ) {\displaystyle f_{t}(x)=\alpha _{t}h_{t}(x)} y {\displaystyle y} α t = ∞ {\displaystyle \alpha _{t}=\infty } α {\displaystyle \alpha }
早期終了 ブースト分類器の処理を高速化する手法である早期終了とは、各潜在的オブジェクトを、ある信頼度閾値を満たすのに必要な数の最終分類器の層でのみテストすることを指します。これにより、オブジェクトのクラスが容易に判別できる場合の計算が高速化されます。このような手法の一つとして、ViolaとJonesによって導入されたオブジェクト検出フレームワークがあります。 [11] 陽性サンプルよりも陰性サンプルがはるかに多いアプリケーションにおいて、個別のブースト分類器のカスケードがトレーニングされます。各ステージの出力は、陽性サンプルの許容範囲内でごくわずかな割合が陰性として誤ってラベル付けされるようにバイアスされ、各ステージ後に陰性としてマークされたサンプルはすべて破棄されます。各ステージで陰性サンプルの50%が除去されれば、分類器全体を通過するオブジェクトはごく少数になり、計算量が削減されます。この手法はその後一般化され、各ステージで最適な閾値を選択して、望ましい偽陽性率と偽陰性率を達成するための式が提供されています。 [12]
統計分野では、AdaBoostは中程度の次元の問題によく適用され、 早期停止は 過剰適合を 減らす戦略として使用されます 。 [13] 検証サンプルセットをトレーニングセットから分離し、トレーニングに使用したサンプルに対する分類器のパフォーマンスを検証サンプルのパフォーマンスと比較し、トレーニングセットのパフォーマンスが向上続けているにもかかわらず検証サンプルのパフォーマンスが低下した場合はトレーニングを終了します。
完全に修正的なアルゴリズム AdaBoostの最急降下法では、 各層 tにおいてテストエラーを最小化するように が選択されるが、次に追加される層は層 t から 最大限独立して いると言われる 。 [14]学習器 t に類似した弱学習器 t+1 が選択される可能性は低い。しかし、 t+1 が 以前の他の層と同様の情報を生成する 可能性は残る。LPBoost などの完全補正アルゴリズムは、各ステップの後にすべての係数の値を最適化し、追加される新しい層が常に以前のすべての層から最大限独立になるようにする。これは、 バックフィッティング、 線形計画法 、またはその他の方法 によって実現できる。 α t {\displaystyle \alpha _{t}}
剪定 プルーニングとは、ブーストされた分類器のメモリと実行時間のコストを改善するために、パフォーマンスの低い弱分類器を削除するプロセスです。最も単純な手法は、重みトリミングまたはマージントリミングです。これは、ある弱分類器の係数、つまり総テストエラーへの寄与が特定の閾値を下回った場合、その分類器を削除します。Margineantu & Dietterich [15] は、トリミングの代替基準を提案しました。弱分類器は、アンサンブルの多様性が最大化されるように選択されるべきです。2つの弱学習器が非常に類似した出力を生成する場合、一方を削除し、残りの弱学習器の係数を増加させることで効率を向上させることができます。 [16]
参照
参考文献 ^ Freund, Yoav; Schapire, Robert E. (1995), オンライン学習の決定論的一般化とブースティングへの応用 , Lecture Notes in Computer Science, ベルリン, ハイデルベルク: Springer Berlin Heidelberg, pp. 23– 37, doi :10.1007/3-540-59119-2_166, ISBN 978-3-540-59119-1 、 2022年6月24日 取得 ^ Hastie, Trevor; Rosset, Saharon; Zhu, Ji; Zou, Hui (2009). 「多クラスAdaBoost」. 統計とそのインターフェース . 2 (3): 349– 360. doi : 10.4310/sii.2009.v2.n3.a8 . ISSN 1938-7989. ^ Wyner, Abraham J.; Olson, Matthew; Bleich, Justin; Mease, David (2017). 「補間分類器としてのAdaBoostとランダムフォレストの成功の説明」. Journal of Machine Learning Research . 18 (48): 1– 33. 2022年 3月17日 閲覧 。 ^ ケーグル、バラズ (2013 年 12 月 20 日)。 「AdaBoost.MH の復活: マルチクラス ハミング ツリー」。 arXiv : 1312.6086 [cs.LG]。 ^ Joglekar, Sachin (2016年3月6日). 「adaboost – Sachin Joglekarのブログ」 codesachin.wordpress.com . 2016年 8月3日 閲覧 。 ^ Rojas, Raúl (2009). 「AdaBoostと分類器のスーパーボウル:適応ブースティング入門チュートリアル」 (Tech. Rep.) ベルリン自由大学。 ^ ab Friedman, Jerome; Hastie, Trevor; Tibshirani, Robert (1998). 「加法ロジスティック回帰:ブースティングの統計的観点」 Annals of Statistics . 28 : 2000. CiteSeerX 10.1.1.51.9525 . ^ Zhang, T. (2004). 「凸型リスク最小化に基づく分類手法の統計的挙動と一貫性」 Annals of Statistics . 32 (1): 56– 85. doi : 10.1214/aos/1079120130 . JSTOR 3448494. ^ Schapire, Robert; Singer, Yoram (1999). 「信頼度評価予測を用いたブースティングアルゴリズムの改良」: 80–91 . CiteSeerX 10.1.1.33.4002 . ^ Freund; Schapire (1999). 「ブースティング入門」 (PDF) : ^ Viola, Paul; Jones, Robert (2001). 「ブーストされた単純な特徴のカスケードを用いた高速物体検出」 CiteSeerX 10.1.1.10.6807 . ^ McCane, Brendan; Novins, Kevin; Albert, Michael (2005). 「カスケード分類器の最適化」 ^ トレバー・ハスティー、ロバート・ティブシラニ、ジェローム・フリードマン (2009). 『統計学習の要素:データマイニング、推論、予測』(第2版). ニューヨーク: シュプリンガー. ISBN 978-0-387-84858-7 . 2015年3月13日時点のオリジナルよりアーカイブ 。 2014年3月13日 閲覧。 ^ Šochman, Jan; Matas, Jiří (2004). 高速顔検出のための完全修正更新機能を備えたAdaboost . IEEE Computer Society. ISBN 978-0-7695-2122-0 。 ^ Margineantu, Dragos; Dietterich, Thomas (1997). 「Pruning Adaptive Boosting」. CiteSeerX 10.1.1.38.7017 . ^ タモン・クリスティーノ、シアン・ジエ(2000年)。「ブースティング・プルーニング問題について」
さらに読む Freund, Yoav; Schapire, Robert E (1997). 「オンライン学習の意思決定理論的一般化とブースティングへの応用」 Journal of Computer and System Sciences . 55 : 119– 139. CiteSeerX 10.1.1.32.8918 . doi :10.1006/jcss.1997.1504: AdaBoost が初めて紹介された Yoav Freund と Robert E.Schapire のオリジナル論文。 周志華 (2008). 「ブースティングアルゴリズムのマージン説明について」 (PDF) . 第21回学習理論年次会議 (COLT'08) 論文集 : 479–490 . ブースティングアルゴリズムのマージンの説明について。 周志華 (2013). 「ブースティングのマージン説明に関する疑問について」 (PDF) . 人工知能 . 203 (2013): 1– 18. arXiv : 1009.3613 . Bibcode :2010arXiv1009.3613G. doi :10.1016/j.artint.2013.07.002. S2CID 2828847. ブースティングのマージン説明についての疑問について。