Çekirdeklenmiş SVM'ler için Gradient İniş mümkün mü (eğer öyleyse, insanlar neden Quadratic Programming kullanıyorlar)?


21

İnsanlar neden çekirdek SVM'lerle uğraşırken Kuadratik Programlama tekniklerini (SMO gibi) kullanıyor? Gradyan İnişinin nesi yanlış? Çekirdekle kullanmak imkansız mı yoksa çok mu yavaş (ve neden?).

İşte biraz daha fazla bağlam: SVM'leri biraz daha iyi anlamaya çalışırken, aşağıdaki maliyet işlevini kullanarak doğrusal bir SVM sınıflandırıcısını geliştirmek için Gradient Descent kullandım:

J(w,b)=CΣben=1mmbirx(0,1-y(ben)(wtx(ben)+b))+12wtw

Aşağıdaki notasyonları kullanıyorum:

  • w , modelin özellik ağırlıklarıdır ve onun bias parametresidir.b
  • x(ben) , eğitim örneğinin özellik vektörüdür.beninci
  • y(ben) , örneği için hedef sınıftır (-1 veya 1) .beninci
  • m , antrenman örnekleri sayısıdır.
  • C normalizasyon hiperparametresidir.

Bu denklemden bir (alt) gradyan vektörü ( ve ile ilgili olarak) elde ettim ve Gradient Descent gayet iyi çalıştı.wb

Şimdi doğrusal olmayan sorunların üstesinden gelmek istiyorum. Ben sadece tüm nokta ürünlerin değiştirebilir miyim ile maliyet fonksiyonu içinde K çekirdek fonksiyonudur (örneğin Gauss RBF, K (\ mathbf {u}, \ mathbf {v}) = e ^ {- \ gamma \ | \ mathbf {u} - \ mathbf {v} \ | ^ 2} ), sonra türetmek için hesap kullanın (alt) gradyan vektörü ve Gradient Descent ile devam edin? K( u , v )KK( u , v )= E - γ u - v 2utvK(u,v)KK(u,v)=e-γu-v2

Çok yavaşsa, neden bu? Maliyet işlevi dışbükey değil mi? Yoksa gradyan çok hızlı değiştiği için mi (sürekli Lipschitz değil), algoritma iniş sırasında vadiler arasında zıplamaya devam ediyor, bu yüzden çok yavaş birleşiyor? Fakat o zaman bile, O ({n_ \ text {samples}} ^ 2 \ times n_ \ text {features}) olan Quadratic Programming'in zaman karmaşıklığından nasıl daha kötü olabilir O(nörnekler2xnÖzellikler)? Yerel bir minima meselesiyse, simüle edilmiş tavlama ile Stochastic GD bunları yenemez mi?

Yanıtlar:


6

Takım böylece ve , , burada orijinal giriş matrisinin bir eşlemesidir , . Bu, birinin SVM'yi primer formülasyon yoluyla çözmesine izin verir. Kaybınız için gösterimlerinizi kullanarak: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 x m u m x 1K bir matrisidir ve bir matrisidir. İkisi de sonsuz değil.m×mum×1

Nitekim, çift çözme işlemi genellikle daha hızlıdır, ancak ilk öncekinin de (çift formülasyonda garanti edilmeyen) yaklaşık çözümler gibi avantajları vardır.


Şimdi, neden ikili bu kadar belirgin? Neden hiç belli değil: [1]

Son on yılda yapılan araştırmaların çoğunun ikili optimizasyonla ilgili olduğu tarihsel nedenler belirsizdir . Bunun nedeni, SVM'lerin ilk olarak zorlu kar marjı formülasyonlarına dahil edildiğine inanıyoruz (Boser ve diğ., 1992). Bununla birlikte, genel olarak, eğitim verileri ayrılabilir olsa bile, yumuşak teminatlı SVM'ler tercih edilmelidir: karar sınırı daha sağlamdır çünkü daha fazla eğitim puanı dikkate alınmaktadır [Chapelle et al., 2000]


Chapelle (2007) hem ilkel hem de çift optimizasyonun zaman karmaşıklığının , en kötü durumun ) olduğunu iddia eder. , ancak kuadratik ve yaklaşık menteşe kayıplarını analiz ettiler, bu nedenle Newton'un yöntemiyle kullanılması farklı olmadığından uygun bir menteşe kaybı olmadı. O ( n, 3 )O(nnsv+nsv3)O(n3)


[1] Chapelle, O. (2007). Bir destek vektör makinesini ilk elden eğitin. Sinirsel hesaplama, 19 (5), 1155-1178.


1
+1 Zaman karmaşıklığını da genişletebilir misiniz
seanv507

@ seanv507 teşekkürler, gerçekten ele almalıydım, yakında bu cevabı güncelleyeceğim.
Firebug

4

Bir dönüşüm uygulanır ise tüm giriş ağırlık vektörlerine ( ), aşağıdaki maliyet fonksiyonu olsun:x ( i )ϕx(i)

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

Çekirdek numarası, yerine . Ağırlık Vektörün yana olduğu değil dönüştürülmüş, çekirdek trick üzerinde maliyet fonksiyonunun tatbik edilemez .K ( u , v ) wϕ(u)tϕ(v)K(u,v)w

Yukarıdaki maliyet işlevi , SVM hedefinin ilk biçimine karşılık gelir :

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

tabi ve içinζ ( i )0 i = 1 , , my(i)(wtϕ(x(i))+b)1ζ(i))ζ(i)0i=1,,m

İkili formu geçerli:

minα12αtQα1tα

tabi ve için0 α iC i = 1 , 2 , , mytα=00αiCi=1,2,,m

burada 1s dolu ve bir vektördür bir olduğunu elemanlarla matrisi .1QQ i j = y ( i )m×mQij=y(i)y(j)ϕ(x(i))tϕ(x(j))

Şimdi çekirdek numaralarını gibi hesaplayarak kullanabiliriz :Qij

Qij=y(i)y(j)K(x(i),x(j))

Bu yüzden çekirdek numarası yalnızca SVM probleminin ikili formunda kullanılabilir (artı lojistik regresyon gibi bazı algoritmalar).

Artık bu sorunu çözmek için kullanıma hazır Quadratic Programlama kitaplıklarını kullanabilir ya da sınırsız bir işlev (çift maliyet işlevi) elde etmek için Lagrangian çarpanlarını kullanabilir, ardından Gradient Descent veya başka bir optimizasyon tekniğini kullanarak minimum değeri arayabilirsiniz. En etkili yaklaşımlardan biri, libsvmkütüphanenin uyguladığı SMO algoritması gibi görünüyor (çekirdeklenmiş SVM için).


1
Topluluk Wiki cevabınızı neden işaretlediğinizden emin değilim. Bu, sorunuza tamamen geçerli bir cevap gibi görünüyor.
Sycorax, Reinstate Monica

@GeneralAbrial teşekkür ederiz. Soruyu sormadan önce cevabı bildiğimden şüphelenmemek için cevabımı Topluluk Wiki olarak işaretledim.
MiniQuark

1
Her zaman doğru olduğunu düşündüğün şeyi yapmalısın, ama kendi soruna sormak ve cevaplamak mükemmeldir.
Sycorax, Reinstate Monica

Eğer ağırlık vektör dönüşümü olabilir Bekle böylece ve ile ve optimize örnek ağırlıklar ? w t φ ( x ) = uK ağırlık t ağırlık = u t K u K = φ t φ uw=φ(x)uwtφ(x)=uKwtw=utKuK=φtφu
Firebug

2

Yanılıyor olabilirim, ancak nokta ürünleri çift problem haline getirmeden, çekirdekleri çekirdeklerle nasıl değiştirebileceğimizi anlamıyorum.

Çekirdekler bir özellik boşluğuna dolaylı giriş harita olur , kayıp fonksiyonu şu şekilde olur: Gauss çekirdeği uygulanırsa, ifinite olur boyutlar, böylece .xφ(x)
J(w,b)=CΣben=1mmbirx(0,1-y(ben)(wtφ(x(ben))+b))+12wtw
φ(x(ben))w

Doğrudan degrade iniş kullanarak sonsuz boyutlu bir vektörün optimize etmek zor görünüyor.


Firebug'un cevabını güncellemek , ilk ürünleri formülasyondaki nokta ürünlerinin çekirdeklerle değiştirmenin bir yolunu sunar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.