1

私たちは機械学習プロジェクトに取り組んでおり、特定のオンライン サンプル埋め込みメソッドが SVM に及ぼす影響を確認したいと考えています。

その過程で、Pegasosおよびdlibとのインターフェースを試み、独自の SVM 実装を設計 (および記述) しました。

dlib は、ユーザーが作成したカーネルとのインターフェースを可能にするため、有望なようです。それでも、カーネルは望ましい「オンライン」動作を提供しません (その仮定が間違っていない限り)。

そのため、オンラインの埋め込みとカスタム作成の埋め込み機能をサポートする SVM ライブラリについて知っていれば、非常に役立ちます。


「オンライン」について明確にするために。

メモリの大量使用を避けるために、埋め込みプロセスがオンラインで行われることが重要です。

基本的に、Stochastic subGradient Decent (非常に一般的な疑似コード) 内で次のことを行いたいと考えています。

w = 0 vector
for t=1:T
  i = random integer from [1,n]

  embed(sample_xi)

  // sample_xi is sent to sub gradient loss i as a parameter
  w = w - (alpha/t)*(sub_gradient(loss_i))
end
4

2 に答える 2

2

あなたの場合、Wang、Crammer、Vuceticによる大規模 SVM トレーニング (BSGD) [1]の予算確率的勾配降下法を検討することをお勧めします。

これは、「カーネル化の呪い」に関する論文で指定されているように、質問の疑似コードで示したものの代わりに、このオプションを調べたい場合があるためです。

Shark Machine Learning LibraryはBSGD を実装しています。ここで簡単なチュートリアルを確認してください

于 2015-05-11T09:39:28.170 に答える