既存のSVMモデルにトレーニングデータを追加することはできますか?


14

私はlibsvmを使用していますが、svmtrain()を呼び出すたびに新しいモデルを作成し、既存のモデルにデータを配置するオプションがないようです。しかし、これは可能ですか?libsvmにこの側面が表示されないだけですか?


「既存のモデルにデータを入力する」とはどういう意味ですか?これを可能にする他の手法(SVMではない)の例を教えてください。ロジスティック回帰を例にとります。新しいデータを追加すると、「新しい」または「古い」データを参照せずに既存のセットで再トレーニングされた新しい係数のセットが取得されます。それはすべてトレーニングデータです。勾配降下型ソルバーを使用している場合は、以前に最適化された値で初期化することで時間を節約できると思います。これはおそらく新しいソリューションに近いでしょう。これはどういう意味ですか?
Bogdanovist

回答:


17

「増分」または「オンライン」の学習アルゴリズムを探しているようです。これらのアルゴリズムにより、全体を最初から再トレーニングすることなく、新しいサンプルで分類器を更新できます。

libSVMは現在サポートしていないと思いますが、サポートベクターマシンでは間違いなく可能です。それを提供するいくつかの他のパッケージを見てみる価値があるかもしれません

PS:@Bogdanovist:これについてはかなり広範な文献があります。kNNは明らかに、そして些細な増分です。確率ではなくカウントを保存することにより、ベイジアン分類器をインクリメンタル分類器に変えることができます。STAGGER、AQ *、および決定ツリーアルゴリズムのID *ファミリの一部(すべてではありません)もインクリメンタルであり、頭から離れています。


1
おもしろい、ありがとう。以前に「オンライン」という用語がバンディッドになっているのを見たことがありましたが、技術的な重要性に気付いていませんでした(文字通り「インターネットを傷つける」ことを意味すると思いました)。
ボグダノビスト

喜んでお手伝いします!前述したはずですが、一部のオンライン/インクリメンタルアルゴリズムは、実際には「最新」の例により重点を置いています。研究)。
マットクラウス

12

オンライン/インクリメンタルSVMユーティリティのほとんどは線形カーネル用であり、非線形カーネルほど難しくはないと思います。

現在利用可能な注目すべきオンライン/インクリメンタルSVMツールの一部:
+ Leon BottousのLaSVM:線形カーネルと非線形カーネルの両方をサポートします。C ++コード
+ BordesのLaRank:線形カーネルと非線形カーネルの両方をサポートします。C ++コード。リンクが今壊れているようだ:-(
+ ゲルトCauwenberghs'コードの増分と減分:線形および非線形カーネルの両方をサポートするMATLABコード。。
+ クリス・ディールのインクリメンタルSVM学習:線形および非線形カーネルの両方をサポートするMATLABコード。。
+ アリステアシルトンのSVMHeavy:バイナリ分類と回帰のみC ++コード
+ Francesco ParrellaのOnlineSVR:回帰のみ。MatlabおよびC ++。
+ Pegasos:線形と非線形の両方。Cコード:線形と非線形の両方。CおよびMatlabコード。Javaインターフェース
+ LangfordのVowpal Wabbit:わからない:-(
+ Koby CrammerのMCSVM

更新されたリストは、Quoraの回答にあります。


(+1)サイトへようこそ。これは非常に包括的なリストです!:)
2013年

4

別の可能性はアルファシーディングです。libSVMがサポートしているかどうかは知りません。アイデアは、膨大な量のトレーニングデータをチャンクに分割することです。次に、最初のチャンクでSVMをトレーニングします。結果のサポートベクトルはデータのサンプルの一部にすぎないため、それらを使用して、次のチャンクでSVMをトレーニングするために使用します。また、そのSVMを使用して、次の反復(シード)のアルファ値の初期推定値を計算します。したがって、利点は2つあります。各問題は小さく、スマートな初期化によりさらに速く収束します。このようにして、大きな問題を単純化して、一連のより単純なステップを順番に解決します。


この方法を適用しているライブラリはありますか?
d.putto

どうやらlibsvmが既にそれを行っているか、少なくともアルゴリズムwork.caltech.edu/~htlin/program/libsvmの
jpmuc

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.