カーネル化されたSVMでGradient Descentは可能ですか(可能であれば、なぜ人々は2次プログラミングを使用するのですか)


21

カーネル化されたSVMを扱うときに、なぜ人々は2次計画法(SMOなど)を使用するのですか?Gradient Descentの何が問題になっていますか?カーネルで使用することは不可能ですか、それとも遅すぎますか(およびその理由)。

ここにもう少しコンテキストがあります:SVMをもう少しよく理解しようとして、私は次のコスト関数を使用して線形SVM分類器を訓練するために勾配降下を使用しました:

Jwb=C=1mmaバツ01ywtバツ+b+12wtw

私は次の表記法を使用しています:

  • wはモデルの特徴の重みであり、はそのバイアスパラメーターです。b
  • バツは、トレーニングインスタンスの特徴ベクトルです。番目
  • yは、インスタンスのターゲットクラス(-1または1)です。番目
  • mはトレーニングインスタンスの数です。
  • Cは正則化ハイパーパラメーターです。

この方程式から(およびに関して)(サブ)勾配ベクトルを導き出しましたが、勾配降下はうまく機能しました。wb

ここで、非線形問題に取り組みたいと思います。コスト関数ですべてのドット積をに置き換えることができますはカーネル関数です(たとえば、ガウスRBF、)、計算を使用して導出(サブ)勾配ベクトルと勾配降下を進めますか?あなたはtvKあなたはvKKあなたはv=eγあなたはv2

遅すぎる場合、それはなぜですか?コスト関数は凸型ではありませんか?それとも、勾配の変化が速すぎて(リプシッツ連続ではない)、降下中にアルゴリズムが谷間をジャンプし続けるため、収束が非常に遅いためですか?しかし、それでも、二次計画法の時間の複雑さであるO({n_ \ text {samples}} ^ 2 \ times n_ \ text {features})よりも悪化する可能性はありO(nsamples2×nfeaturesますか?極小の問題であれば、アニーリングをシミュレートしたストキャスティックGDはそれらを克服できませんか?

回答:


6

セットよう及び、および、ここでは元の入力行列のマッピング、。これにより、基本定式化によりSVMを解くことができます。損失の表記を使用して:W T φ X= U TK W T W = U T K U K = φ X T φ X)、φ X Xw=ϕ(x)uwtϕ(x)=utKwtw=utKuK=ϕ(x)tϕ(x)ϕ(x)x

J(w,b)=Ci=1mmax(0,1y(i)(utK(i)+b))+12utKu

m × m u m × 1Kは行列で、は行列です。どちらも無限ではありません。m×mum×1

実際、双対は通常、解くのが速いですが、主解には近似解などの利点もあります(双対定式化では保証されません)。


さて、なぜデュアルがそれほど顕著であるのかはまったく明らかではありません:[1]

過去10年間の研究のほとんどが二重最適化に関するものであった歴史的理由は不明です。これは、SVMがハードマージン定式化で最初に導入されたためであると考えられています[Boser et al。、1992]。このため、二重最適化(制約のため)がより自然に思えます。ただし、一般に、トレーニングデータが分離可能であっても、ソフトマージンSVMを優先する必要があります。より多くのトレーニングポイントが考慮されるため、決定境界はより堅牢になります[Chapelle et al。、2000]


Chapelle(2007)は、主最適化と双対最適化の両方の時間の複雑さが、最悪の場合は、しかし、彼らは二次および近似ヒンジ損失を分析したので、適切なヒンジ損失ではありません。これは、ニュートン法で使用するのに微分できないためです。 O n 3 Onnsv+nsv3On3


[1] Chapelle、O.(2007)。プライマルでのサポートベクターマシンのトレーニング。ニューラル計算、19(5)、1155-1178。


1
+1時間の複雑さについても拡張できますか?
seanv507

@ seanv507ありがとう、確かに私はそれに対処すべきだった、私はすぐにこの答えを更新します。
Firebug

4

変換をすべての入力重みベクトル()に適用すると、次のコスト関数が得られます。x i ϕバツ

J(w,b)=Ci=1mmax(0,1y(i)(wtϕ(x(i))+b))+12wtw

カーネルトリックは、を置き換えます。重みベクトルので、されていない形質転換、カーネルトリックは、上記コスト関数に適用することができませんK UVのwϕ(u)tϕ(v)K(u,v)w

上記のコスト関数は、SVM目標の主形式に対応します。

minw,b,ζCi=1mζ(i)+12wtw

対象そして用のζ I 0 iは= 1 My(i)(wtϕ(x(i))+b)1ζ(i))ζ(i)0i=1,,m

デュアル形式は次のとおりです。

minα12αtQα1tα

対象とのために0 α ICI=12Mytα=00αiCi=1,2,,m

ここで、は1でいっぱいのベクトルで、は要素もつ行列です。。Q M × M Q 、I 、J = Y I Y J φ X I Tφ X J 1Qm×mQij=y(i)y(j)ϕ(x(i))tϕ(x(j))

ように計算することで、カーネルトリックを使用できます。Qij

Qij=yyjKバツバツj

そのため、カーネルトリックは、SVM問題の二重形式(およびロジスティック回帰などの他のアルゴリズム)でのみ使用できます。

既製の2次プログラミングライブラリを使用してこの問題を解決するか、ラグランジュ乗数を使用して制約のない関数(デュアルコスト関数)を取得し、勾配降下法またはその他の最適化手法を使用して最小値を検索できます。最も効率的なアプローチの1つは、libsvmライブラリによって実装されるSMOアルゴリズム(カーネル化されたSVM用)のようです。


1
なぜコミュニティWikiに回答をマークしたのかわかりません。これはあなたの質問に対する完全に有効な答えのようです。
シコラックスは、モニカ

@GeneralAbrialに感謝します。質問をする前に答えを知っているという疑念を避けるために、私は自分の答えをコミュニティWikiとしてマークしました。
MiniQuark

1
あなたは常に自分が正しいと思うことをするべきですが、自分の質問をして答えることは完全にコーシャです。
シコラックスは、モニカの復活を

ウェイトベクトルを変換できなかったので、およびで、で、サンプルの重みを最適化?w=ϕバツあなたはwtϕバツ=あなたはKwtw=あなたはtKあなたはK=ϕtϕあなたは
Firebug

2

私は間違っているかもしれませんが、二重問題に変えずにドット製品をカーネルに置き換える方法はわかりません。

カーネルは、がなるいくつかの機能空間に暗黙的に入力をマッピングし、損失関数は ガウスカーネルが適用される場合、 はifiniteを持ちます。次元なので、同様です。バツϕバツ
Jwb=C=1mmaバツ01ywtϕバツ+b+12wtw
ϕバツw

勾配降下法を直接使用して、無限次元のベクトルを最適化することは難しいようです。


Firebugの答えを更新すると、ドット積を主定式のカーネルに置き換える方法がわかります。

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