5

もともとこのように考えられていたわけではありませんが、標準の Adaboost アルゴリズムは、指数損失関数を使用して順方向の段階的な加法モデル推定を行うことと同等です。つまり、いくつかの弱分類器c1,...,cMとサンプル ポイントx1,...,xNが与えられた場合、アルゴリズムから得られる重みは次のようになります。

  1. F_0(x) = 0 に設定
  2. m = 1 からMの場合: (w_m, f_m ) = arg min over (w, c_i) of (損失関数(y_i, F_m-1(x_i) + w * c_i(x_i)) をすべての x_i に適用) に設定します。
  3. F_m(x) = F_m-1(x) + w_m * f_m(x) を設定します

強い分類器は、出力 F_M(x) です。この強力な学習器をアダブースト出力と同じにする損失関数は次のとおりです。

L(y,f(x)) = exp(-y*f(x))

{-1,1} の値を取る分類器用。これはすべて、Hastie、Tibshirani、Friedman のElements of Statistical Learningのセクション 10.4 で説明されています。

私の質問は、前方段階的回帰に関係しています。これは貪欲なアルゴリズムであり、w_i が推定されると固定され、次に重み w_i+1 が検出されます。これは、切り株分類器やツリー分類器などの「独立した」弱い分類器を処理するように実際に設計されているようです。相互に排他的な独立変数 (特徴) に制限されているため、分類器を当てはめた後の残りの部分は、その分類器によってもはや説明されません。

言い換えれば、一連の関数を特定のターゲット関数に適合させるために、最初の関数を適合させず、その係数を修正してから、2 番目の最適な係数を見つけ、最初の定数を保持するなど... 知っている場合を除きます。機能が独立していること。しかし、これは多かれ少なかれアルゴリズムが行うことです。

これは、(私の経験から) SVM のようなより包括的な分類子や線形モデルを使用した Adaboost と比較して、切り株学習器または決定木を使用した Adaboost の成功を説明していますか? 誰かが参照を与えることができますか?- 文献でこの側面が議論されているのを見たことがありません。ありがとう。

4

3 に答える 3

2

アダブーストの背後にある考え方は、各ツリー、またはより一般的には弱学習器が個別にトレーニングされ、すべての結果に対して特定の順序と重みでトレーニングされるというものです。最初の分類器は基本入力でトレーニングされ、ツリーの重みが計算されます。2 番目の分類器は、最初のツリーが正しく分類された要素の重みを下げてトレーニングされ、最初のツリーが誤って分類された要素の重みを高くしてトレーニングされ、重みが学習されます。 2 番目の分類子、3 番目の分類子は、1 番目と 2 番目のツリーの新しい分類子が正しく分類されたものを使用してトレーニングされ、重みが正しく分類されなかったものはより高く重み付けされました。

于 2013-12-11T20:52:49.830 に答える
0

1D 曲線を線形モデルに適合させる最も単純な例を考えてみてください。近似する代わりに、曲線を学習します。したがって、2 つのデータセットを選択するたびに、それらを横切る線を学習します。十分な学習時間の後、学習したすべてのパラメーター (重み) を平均することによって線が得られます。このような行は、最小のサンプル内エラーを達成します。これは、新しいトレーニング セットを指定して以前のパラメーターを更新する学習プロセスに相当します。

あなたの質問を正しく理解しているかどうかはわかりませんが、上記の例で異なるモデル (線形、2 次、3 次、指数など) に適合させようとしている場合、各モデルの重みの数は同じではありません。したがって、分類問題で人々が行うような貪欲なアプローチは、あまり適していない可能性があります。解決方法の 1 つは、各モデルに重みを付け、ブースティングを使用してトレーニング データに最適なモデルを判断することです。

この回帰を行う別の方法は、弱学習器としてニューラル ネットワークを使用することです。これは、ニューラル ネットワークにバックプロパゲーションを適用した研究の 1 つです。トレーニング セットのサブセットが、学習およびブースティング プロセスのためにランダムに選択されるたびに。また、重みの更新には、段階的な加算モデリングが使用されます。誤差計算と重み係数はわずかに異なりますが、分類で使用されるものと同様の形式です。この結果は、回帰において ada-neural network が back-propagation よりも安定していることを示しています。

分類問題では、切り株学習器を使用した AdaBoost が SVM よりも優れている理由を理解しようとしていますか? AdaBoost は貪欲な機能セレクターであるため、同じ機能セットが与えられた場合、SVM は AdaBoost よりも優れていると予想されますね。実際、AdaBoost を使用して重要な特徴を選択し、SVM を使用して例を分類することは実行可能です。また、SVM マージンに収まる機能を子ノードに配置する AdaBoost ツリーを構築し、それらが正しく分類されるまで SVM で再トレーニングすることもできます。

于 2013-12-12T00:42:12.920 に答える