サポートベクターマシンはまだニッチで「最先端」と見なされていますか?


58

この質問は、別の質問で私が見たコメントへの回答です。

コメントはCourseraの機械学習コースシラバスに関するもので、「SVMは今ではあまり使用されていません」と書かれています。

関連する講義を自分で終えたばかりであり、SVMの理解は、それらが分類のための堅牢で効率的な学習アルゴリズムであり、カーネルを使用する場合、おそらく10から1000までの機能をカバーする「ニッチ​​」トレーニングサンプルの数は、おそらく100〜10,000です。トレーニングサンプルの制限は、コアアルゴリズムが、元の特徴の数ではなく、トレーニングサンプルの数に基づく次元を持つ正方行列から生成された結果の最適化を中心に展開するためです。

それで、私が見たコメントは、コースが行われてからの実際の変更について言及しています。もしそうなら、その変更は何ですか:SVMの「スイートスポット」をカバーする新しいアルゴリズム、SVMの計算上の利点を意味するより良いCPU ?それとも、コメント者の意見や個人的な経験でしょうか?

たとえば、「サポートベクターマシンは時代遅れです」などの検索を試みましたが、他の何かを支持してドロップされたことを示唆するものは何も見つかりませんでした。

そしてウィキペディアにはこれがあります:http : //en.wikipedia.org/wiki/Support_vector_machine#Issues。。。主な問題点は、モデルの解釈の難しさのようです。ブラックボックス予測エンジンではSVMは問題ありませんが、洞察の生成にはあまり適していません。私はそれを大きな問題として見ていません。仕事に適したツールを選ぶ際に考慮すべきもう一つの小さなことです(トレーニングデータや学習タスクなどの性質とともに)。



6
わかりません-これはCrossValidatedに投稿すべき質問ではありませんか?私は、DataScienceとCrossValidatedの間のどこに行くのかについて、混乱し続けています。
-fnl

@fnl:svmsは、数学的に「純粋でない」工学的ソリューションからの分類子としていくつかの競合があるため、DataScienceはここで比較するのに適していると思います。混乱を共有しますが!
ニールスレーター

回答:


47

SVMは強力な分類器です。それにはいくつかの素晴らしい利点があります(その人気の原因だったと思います)...

  • 効率:分類境界の決定においてサポートベクトルのみが役割を果たします。トレーニングセットの他のすべてのポイントをメモリに保存する必要はありません。
  • いわゆるカーネルの力:適切なカーネルを使用すると、機能空間をより高い次元に変換して、線形に分離可能にすることができます。カーネルの概念は、内積の助けを借りて類似性の概念を定義できる任意のオブジェクトで機能します...したがって、SVMはツリー、グラフなどの任意のオブジェクトを分類できます。

いくつかの重大な欠点もあります。

  • パラメーターの感度:正規化パラメーターCを選択すると、パフォーマンスが非常に敏感になります。これにより、モデルにある程度のばらつきが生じます。
  • ガウスカーネルの追加パラメーター:ガウスカーネルの半径は、分類器の精度に大きな影響を与える可能性があります。通常、最適なパラメーターを見つけるには、グリッド検索を実行する必要があります。LibSVMはグリッド検索をサポートしています。

SVMは通常、「スパースカーネルマシン」のクラスに属します。SVMの場合のスパースベクトルは、最大マージン基準から選択されるサポートベクトルです。Relevance Vector Machine(RVM)などの他のスパースベクターマシンは、SVMよりもパフォーマンスが高くなります。次の図は、2つのパフォーマンスの比較を示しています。図では、x軸は2つのクラスy = {0,1}からの1次元データを示しています。混合モデルは、P(x | y = 0)= Unif(0,1)およびP(x | y = 1)= Unif(.5,1.5)として定義されます(Unifは均一分布を示します)。この混合物から1000ポイントをサンプリングし、SVMとRVMを使用して事後を推定しました。SVMの問題は、予測値が真の対数オッズから大きく外れていることです。

RVMとSVM

現在非常に人気のある非常に効果的な分類子は、ランダムフォレストです。主な利点は次のとおりです。

  • 調整するパラメーターは1つだけです(つまり、フォレスト内のツリーの数)
  • 全くパラメーターに敏感ではない
  • 複数のクラスに簡単に拡張できます
  • 確率論的原理に基づいています(決定木を使用して相互情報量を最大化します)

4
私は過度に批判的になるつもりはありませんが、SVMは効率的ではありません。ほとんどの場合、それらは立方体の複雑さを持っているため、多くの段階的な廃止が行われています。
インディコ14

2
はい、標準の収束方法はO(n ^ 3)を取ります...しかし、どこか(T. Joachimsのホームページからかもしれません)がO(n ^ 2)に縮小されているのを見たと思います
Debasis

4
@indicoは、ほとんどの実用的な問題で、カーネルSVMのトレーニングの複雑さは2次に近くなります。PlattのキュービックSMOはかなり長い間使用されていません。本当に大きなデータセットにはまだ高すぎますが、描写するほど悪くはありません。線形SVMは非常に効率的で、線形以下の複雑さを備えています。
マーククレセン14

SVMのその他の利点:1)データ分析に精通していない人々は、その内部の仕組みをよく想像できます。[さらに少ない範囲で:2)(データサイエンス以外の)専門家によるリアルタイムのインタラクティブフィードバックが必要な場合、線形SVMはより高速なオプションになる可能性があり、専門家によるトレーニングが向上します。]
tsttst

2
通常、ランダムフォレストには、ツリーごとの最大フィーチャ数や最大深度など、他のハイパーパラメーターがあります。また、リソースに制約のある環境でSVMを簡単に運用環境に導入できることにも注目してください。モデルをスコアリングするために多くのメモリを必要としません。
デビッドアンダーソン

8

この質問に答える際の重要な違いの1つは、線形サポートベクターマシンと、非線形の、つまりカーネル化されたサポートベクターマシンについて話しているかどうかです。

線形SVM

線形SVMは理論上、また、データが特徴の線形関係によって説明できる場合、非常に優れたモデルです。入力データの小さな摂動がモデルに大きな変化をもたらさないという意味で、それらはロバストであるため、線形(別名最小二乗)回帰などの古典的な方法よりも優れています。これは、データポイント間のマージンを最大化する線(超平面)を見つけようとすることで達成されます。この最大余白超平面は、他の機械学習法にはない理論的特性である、見えないデータポイントに対するモデルの一般化能力を保証することが示されています。

各入力フィーチャにはモデル出力に直接影響する重みがあるため、線形SVMは他の線形モデルとしても解釈できます。

また、線形SVMは非常に高速ですにトレーニングされ、非常に大きなデータセットのサブライントレーニング時間を示します。これは、現在のディープラーニング手法とほぼ同様に、確率的勾配降下法を使用することで実現されます。

非線形SVM

非線形SVMは依然として線形モデルであり、同じ理論的利点を誇っていますが、カーネルトリックと呼ばれる手法を使用して、この線形モデルを拡大された空間に構築します。目に見える結果は、結果のモデルがデータに対して非線形の決定を下せるということです。データポイント間の類似性エンコードするカスタムカーネルを提供できるため、問題の知識を利用して、そのようなカーネルを問題の関連部分に集中させることができます。ただし、これを効果的に行うことは困難な場合があるため、一般的に、ほぼ全員がプラグアンドプレイガウスカーネルを使用します。

非線形SVMは、予測に関連するトレーニングデータとそうでないトレーニングデータを示すため、部分的に解釈可能です。これは、ランダムフォレストやディープネットワークなどの他の方法では不可能です。

残念ながら、非線形SVMは低速です。最先端のアルゴリズムはSequential Minimal Optimizationであり、2次パフォーマンスを示し、LIBSVMライブラリを介してscikit-learnを含む多くの機械学習ライブラリに広く実装されています。

これらの方法の人気

SVMが以前ほど普及していないことは事実です。これは、研究論文やSVM vsランダムフォレストまたはディープラーニングメソッドの実装をグーグルで調べることで確認できます。それでも、いくつかの実用的な設定、特に線形の場合に役立ちます。

また、昼食なしの定理により、機械学習法がすべての問題において他のどの方法よりも優れていることを示すことはできないことに留意してください。いくつかの方法は一般的にうまく機能しますが、それほど一般的でない方法でより良い結果が得られるデータセットを常に見つけます。

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