問題タブ [adaboost]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1352 参照

threshold - Haar-feature のしきい値は、Viola-Jones が論文で説明している唯一の方法で計算されますか?

Viola-Jones の顔検出アルゴリズムを実装していますが、haar-feature のしきい値について少し混乱しています。フォローを使用して、haar-feature のしきい値を計算しています。手順:

a) 同じ位置に対応するすべてのポジティブ (顔) 画像の haar-feature 値を計算します。b) 最小特徴値と平均特徴値の間にあるすべての特徴値を取得してリストを取得します。images(Pos.) 顔と偽陽性 (FP) の数として分類します。d) 機能値は、最大 (Pos-FP) を取得する特定の機能のしきい値と見なされます。

反対に、ブースティングの各ラウンドで、Haar 機能のしきい値は同じままです。Viola-Jones の論文で説明されているように、Haar 機能のしきい値は、ブースティングのすべてのラウンドで変化します。

私の質問は次のとおりです。1) Haar-feature しきい値の計算に正しい方法を使用していますか? 2) ブーストのラウンドごとに、しきい値を変更する必要がありますか?

私はPythonを使用しています。

ありがとう!

0 投票する
0 に答える
1019 参照

python - 勾配ブースティングの私の実装

現在、Peter Harrington 著の「Machine Learning in Action」を読んでいます。本のコードの一部を AdaBoost に使用して、勾配ブースティングを実装しようとしました。Trevor Hastie らによるThe Elements of Statistical Learning」の疑似コードを使用しました。およびフリードマンの勾配ブースト アルゴリズム。私はPythonでアルゴリズムを実装するのに少なからず時間と労力を費やしたので、私の間違いがどこにあるかを教えていただければ非常に感謝しています.

本から適応されたヘルパー関数です。絶対誤差損失を損失関数として使用しました コードは次のとおりです。

予測が実際の値からかなりかけ離れているため、何かが大きく間違っています。必要に応じて、さらに明確な説明を提供できることを非常に嬉しく思います。前もって感謝します。

0 投票する
1 に答える
91 参照

opencv - 特徴の決定はどのように私たちのオブジェクトの特徴ですか?

train_cascade を実行しているときに、OpenCV がオブジェクトの機能についてどのように決定するのか、誰か説明できますか?

0 投票する
1 に答える
869 参照

adaboost - ブースティングの各ラウンドで、Viola-jones の顔検出方法で同じ Haar 特徴が選択されるとどうなりますか?

人間の顔を検出するために Viola-Jones の顔検出を実装しています。Adaboost を使用してトレーニングしている間、ブースト ラウンドは同じ haar 機能を選択します。たとえば(x,y,w,h,f,p)、最初の 3 ラウンドで選択された Haar-feature が(0,0,4,2,1,0)(1,3,5,2,3,1)(2,4,7,2,4,1)残りのブースト ラウンドで同じ haar-feature が選択された場合、選択した Haar-feature のリストは次のようになります。

[(0,0,4,2,1,0),(1,3,5,2,3,1),(2,4,7,2,4,1),(1,2,4,8,1,0),(1,2,4,8,1,0),(1,2,4,8,1,0),(1,2,4,8,1,0),(1,2,4,8,1,0)].

ここ、 x,y = x_y coordinate, w = width of Haar-feature, h = height of Haar-feature, f = feature type, p = parity of Haar-feature.

私の質問:

1) ブースティングの各ラウンドで同じ Haar 特徴が選択される場合、比較的誤差が最小の次の Haar 特徴を選択する必要があります。

ありがとう!

0 投票する
3 に答える
4118 参照

opencv - LBP 顔検出

トレーニングにあまり時間がかからない顔検出アルゴリズムを実装したいと考えています。ビオラ・ジョーンズ法を見ましたが、トレーニング時間が長すぎます。LBP と、顔検出での LBP の使用方法について読みました。Linux で動作する開発ボードに C で実装したいと考えています。LBP は、viola-jones が使用する浮動小数点演算とは対照的に、バイナリ演算を使用するため、マイクロプロセッサで使用するのにより適しているようです。

開発ボードで C を使用して実装する必要があるため、openCV の使用は避けたいと考えています。論文以外に、LBP を説明するオンラインの有用なリソースはありますか。誰かがLBPを非常に簡単な方法で説明できれば素晴らしいと思います.

0 投票する
3 に答える
3943 参照

algorithm - Adaboost およびフォワード ステージワイズ加算モデリング

もともとこのように考えられていたわけではありませんが、標準の 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) です。この強力な学習器をアダブースト出力と同じにする損失関数は次のとおりです。

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

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

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

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

0 投票する
1 に答える
935 参照

python - アダブースト分類子をシリアライズする scikit-learn

scikit-learn AdaBoostClassifier を使用しようとしており、cPickle を使用して出力分類子をシリアル化してデータベースまたはファイルに保存しようとしていますが、メモリ不足エラーが発生し、マーシャルを使用すると、非マーシャブル オブジェクト。だから、この学習した分類器をどのようにシリアル化できるのだろうかと思っています。

前もって感謝します