AdaBoost ( Adaptive Boostingの略)は、1995年にYoav FreundとRobert Schapireによって考案された統計的分類メタアルゴリズムであり、彼らはその功績により2003年のゲーデル賞を受賞しました。これは、パフォーマンスを向上させるために、多くの種類の学習アルゴリズムと組み合わせて使用できます。複数の弱学習器の出力は、ブーストされた分類器の最終出力を表す重み付き和に結合されます。通常、AdaBoostは二値分類のために提示されますが、複数のクラスまたは実数値の境界区間に一般化することもできます。[ 1 ] [ 2 ]
AdaBoostは、後続の弱い学習器(モデル)が、前のモデルによって誤分類されたインスタンスを優先するように調整されるという意味で適応的です。問題によっては、他の学習アルゴリズムよりも過学習を起こしにくい場合があります。個々の学習器は弱くても構いませんが、それぞれの性能がランダムな推測よりもわずかに優れていれば、最終的なモデルは強い学習器に収束することが証明されています。
AdaBoostは通常、弱いベース学習器(決定スタンプなど)を組み合わせるために使用されますが、強力なベース学習器(より深い決定木など)を効果的に組み合わせ、さらに正確なモデルを生成することも示されています。[ 3 ]
どの学習アルゴリズムも、特定の問題タイプには適しているものの、他の問題タイプには適していない傾向があります。また、データセットで最適なパフォーマンスを達成するには、通常、調整すべきさまざまなパラメータや構成が多数存在します。AdaBoost(弱学習器として決定木を使用)は、すぐに使える最良の分類器としてよく言及されます。[ 4 ] [ 5 ]決定木学習で使用する場合、AdaBoostアルゴリズムの各段階で収集された、各トレーニングサンプルの相対的な「難しさ」に関する情報がツリー成長アルゴリズムに入力され、後のツリーは分類が難しい例に焦点を当てる傾向があります。
AdaBoostとは、ブースト分類器を訓練する特定の方法を指します。ブースト分類器とは、次の形式の分類器です。 それぞれオブジェクトを受け取る弱い学習者入力としてオブジェクトを受け取り、オブジェクトのクラスを示す値を返します。例えば、2クラス分類問題では、弱学習器の出力の符号が予測されたオブジェクトのクラスを示し、絶対値はその分類に対する信頼度を示します。
各弱学習器は出力仮説を生成する予測を修正するトレーニングセット内の各サンプルについて。各反復で弱い学習器が選択され、係数が割り当てられます。総訓練誤差結果として生じる-ステージブースト分類器が最小化されます。
こここれは、前のトレーニング段階まで構築されたブースト分類器であり、これは、最終的な分類器に追加することが検討されている弱い学習器です。
トレーニングプロセスの各反復で、重みトレーニングセット内の各サンプルには、現在のエラーと同じ値が割り当てられます。そのサンプルに対して、これらの重みは弱学習器の学習に使用できます。例えば、重みの大きいサンプルセットの分割を優先するような決定木を構築できます。
この導出はロハス(2009)に従っている:[ 6 ]
データセットがあると仮定します各アイテム関連クラスがあります、および一連の弱い分類器それぞれが分類結果を出力する各項目について。第 1 回目の反復では、ブースト分類器は次の形式の弱分類器の線形結合になります。 クラスは.第 1 回目の反復では、別の弱分類器を追加することで、これをより優れたブースト分類器に拡張します。別の重りと共に:
したがって、どの弱分類器が最適かを決定する必要がある。、そしてその重さはそうあるべきです。総誤差を定義しますの各データポイントにおける 指数関数的損失の合計として、以下のように表されます。
賃貸そしてのために、 我々は持っています:
この合計は、正しく分類されたデータポイント間で分割できます。(それで)そして誤分類されたもの(そのため):
この方程式の右辺のうち、に依存する部分ははすると、最小限に抑えるセットの中の1つです最小限に抑える[]、つまり重み付き誤差が最も低い弱分類器(重み付き))
希望する重量を決定する最小限に抑えると共に先ほど決定したように、以下のように区別します。
価値上記の式を最小化する式は次のとおりです。
なぜなら依存しない
弱分類器の重み付きエラー率を計算すると次のようになります。したがって、次のことが導かれる。 これは負のロジット関数に0.5を掛けたものです。凸性のため、関数としてこの新しい表現は損失関数のグローバル最小値を与える。
注:この導出は、次の場合にのみ適用されます。ただし、弱い学習器が偏っている場合など、他のケースでは良い初期推測となる可能性があります()は複数の葉を持つ()または他の関数。
このようにして、AdaBoostアルゴリズムを導出しました。各反復で、分類器を選択します。これは、加重誤差の合計を最小化する。これを使用してエラー率を計算しますこれを使って重量を計算しますそして最後に、これを利用してブースト分類器を改善する。に。
ブースティングは、各サンプルの特徴を線形回帰の一種として用いるものです。弱い学習器の出力です適用された。
回帰分析は適合させようとするが、に一般性を損なうことなく可能な限り正確に、通常は最小二乗誤差を用いて一方、AdaBoostのエラー関数は最終結果の符号のみが使用されるという事実を考慮すると、誤差を増加させることなく 1 よりはるかに大きくなる可能性があります。ただし、サンプルの誤差の指数関数的増加として増加することで、外れ値に過剰な重みが割り当てられることになる。
指数誤差関数を選択する特徴の一つは、最終的な加法モデルの誤差が各段階の誤差の積である、つまり、したがって、AdaBoost アルゴリズムの重み更新は、誤差の再計算に相当することがわかります。各段階の後。
損失関数の選択には多くの柔軟性が認められています。損失関数が単調かつ連続的に微分可能である限り、分類器は常に純粋な解へと導かれます。[ 7 ] Zhang (2004) は、最小二乗法に基づく損失関数、修正されたHuber 損失関数を提供しています。
この関数は、LogitBoostよりも動作が安定しています。1または-1に近い値で、「過信」予測にペナルティを与えない()修正されていない最小二乗法とは異なり、1より大きい信頼度で誤分類されたサンプルに対して、2次または指数関数的ではなく線形的にのみペナルティを課すため、外れ値の影響を受けにくい。
ブースティングは、凸関数集合上の凸損失関数の最小化と見なすことができる。[ 8 ]具体的には、AdaBoostによって最小化される損失は指数損失である。 一方、LogitBoostはロジスティック回帰を実行し、
勾配降下法のアナロジーでは、各トレーニングポイントに対する分類器の出力はポイントとみなされます。n 次元空間では、各軸がトレーニング サンプルに対応し、各弱学習器はこれは固定された方向と長さのベクトルに対応し、目標はターゲットポイントに到達することです。(または損失関数の値が最小ステップで、その時点での値よりも小さい値を見つけます。したがって、AdaBoost アルゴリズムは、コーシー(その時点での値を見つける) またはコーシー(その時点での値よりも小さい値を見つけます)を実行します。最も急な勾配で、テストエラーを最小限に抑えるため)またはニュートン法(ターゲットポイントを選択し、それはその点に最も近い)トレーニング誤差の最適化。
と:
のためにで:
決定木の出力はクラス確率推定値である確率は正のクラスに属する。[ 7 ]フリードマン、ハスティ、ティビシラニは、の解析的最小化を導出している。ある固定値に対して(通常は重み付き最小二乗誤差を用いて選択される):
したがって、ツリー全体の出力に固定値を乗算するのではなく、各リーフノードは、その前の値のロジット変換値の半分を出力するように変更されます。
LogitBoost は、確立されたロジスティック回帰技術を AdaBoost メソッドに適用したものです。y に関する誤差を最小化するのではなく、(重み付き最小二乗) 誤差を最小化するように弱い学習器が選択されます。に関して どこ
それはは、段階における対数尤度誤差の最小化のニュートン・ラフソン近似である。学習能力の低い人最も近似する学習器として選択されます。重み付き最小二乗法による。
pが1または0に近づくと、が非常に小さくなり、誤分類されたサンプルでは大きくなるz項は、機械精度の丸め誤差のために数値的に不安定になる可能性があります。これは、 zの絶対値とwの最小値に何らかの制限を設けることで克服できます。
従来のブースティングアルゴリズムではGentleBoostは、各ステップで全体のテスト誤差を可能な限り最小化するように貪欲に計算しますが、ステップサイズに制限があります。最小化するために選択されます、そしてそれ以上の係数は適用されません。したがって、弱い学習器が完璧な分類性能を示す場合、GentleBoost はちょうど最急降下アルゴリズムは、GentleBoost の優れたパフォーマンスに関する経験的観察は、Schapire と Singer の、過度に大きな値を許容すると汎化性能の低下につながる可能性がある。[ 9 ] [ 10 ]
ブースト分類器の処理を高速化する手法である早期終了は、各潜在オブジェクトを、ある信頼度閾値を満たすために必要な最終分類器の層数だけでテストすることを指し、オブジェクトのクラスが容易に決定できる場合の計算を高速化します。そのようなスキームの 1 つは、Viola と Jones によって導入されたオブジェクト検出フレームワークです。[ 11 ]正例よりも負例が著しく多いアプリケーションでは、個別のブースト分類器のカスケードがトレーニングされ、各ステージの出力は、正例の許容できる小さな割合が負例として誤ってラベル付けされるようにバイアスされ、各ステージの後に負としてマークされたすべてのサンプルは破棄されます。負例の 50% が各ステージでフィルタリングされると、ごく少数のオブジェクトのみが分類器全体を通過するため、計算負荷が軽減されます。この方法はその後一般化され、望ましい偽陽性率と偽陰性率を達成するために各ステージで最適な閾値を選択するための式が提供されています。[ 12 ]
統計学の分野では、AdaBoostは中程度の次元の問題によく適用され、過学習を減らすための戦略として早期停止が用いられます。[ 13 ]検証用サンプルセットがトレーニングセットから分離され、トレーニングに使用されたサンプルでの分類器のパフォーマンスが検証用サンプルでのパフォーマンスと比較され、トレーニングセットでのパフォーマンスが向上し続けているにもかかわらず、検証用サンプルでのパフォーマンスが低下していることが確認された場合は、トレーニングが終了します。
AdaBoostの最急降下バージョンでは、テスト誤差を最小化するために各層tで が選択され、次に追加される層は層tから最大限独立していると言われます。[ 14 ]学習器tに似た弱い学習器t+1を選択する可能性は低いですが、t+1が以前の他の層と同様の情報を生成する可能性は残っています。LPBoost などの完全修正アルゴリズムは、各ステップの後にすべての係数の値を最適化し、追加される新しい層が常に以前のすべての層から最大限独立するようにします。これは、バックフィッティング、線形計画法、またはその他の方法によって実現できます。
プルーニングとは、性能の低い弱分類器を削除して、ブーストされた分類器のメモリと実行時間のコストを改善するプロセスです。最も単純な方法は、特に完全修正トレーニングと併用すると効果的な重みまたはマージントリミングです。つまり、ある弱分類器の係数、つまりテスト全体のエラーへの寄与が一定の閾値を下回ると、その分類器は削除されます。Margineantu & Dietterich [ 15 ]は、トリミングの代替基準を提案しました。弱分類器は、アンサンブルの多様性が最大になるように選択する必要があります。2 つの弱学習器が非常に似た出力を生成する場合、そのうちの 1 つを削除して残りの弱学習器の係数を増やすことで効率を改善できます。[ 16 ]
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ){{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ){{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ){{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ){{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)