SVM için çekirdek nasıl seçilir?


95

SVM kullanırken, bir çekirdek seçmemiz gerekir.

Nasıl bir çekirdek seçileceğini merak ediyorum. Çekirdek seçiminde herhangi bir kriter var mı?


sorunun büyüklüğü nedir? (# değişkenler, gözlemler)?
user603

Sadece genelleştirilmiş bir çözüm istiyorum, belirli bir sorun belirtilmedi
xiaohan2012

Yanıtlar:


54

Çekirdek etkili bir benzerlik ölçütüdür, bu nedenle Robin (+1) tarafından önerilen önceki değişimlere göre çekirdeği seçmek iyi bir fikirdir.

Uzman bilgisinin yokluğunda, Radyal Temel İşlev çekirdeği iyi bir varsayılan çekirdek yapar (bir kez kurduktan sonra doğrusal olmayan bir model gerektiren bir problemdir).

Çekirdek ve çekirdek / normalleştirme parametrelerinin seçimi, çapraz değerleme temelli bir model seçiminin optimize edilmesiyle otomatikleştirilebilir (veya yarıçapı sınırını veya aralık sınırlarını kullanın). Yapılması gereken en basit şey, gradyan hesaplaması gerektirmeyen ve makul sayıda hiper parametresi için iyi çalışan Nelder-Mead simplex yöntemini kullanarak sürekli bir model seçim kriterini en aza indirmektir. Ayarlamak için birkaç hiper parametreniz varsa, otomatik model seçiminin, model seçim kriterinin farklılığından dolayı aşırı fazla uyuşmaya neden olması muhtemeldir. Gradyan tabanlı optimizasyon kullanmak mümkündür, ancak performans kazancı genellikle onu kodlama çabasına değmez).

Otomatik çekirdek seçimi ve çekirdek / normalleştirme parametreleri zor bir sorundur, çünkü model seçim kriterini (tipik olarak çapraz onaylama temelli) yenmek çok kolaydır ve başladığınızdan daha kötü bir modelle sonuçlanabilir. Otomatik model seçimi ayrıca performans değerlendirmesini de önleyebilir, bu nedenle performans değerlendirmenizin modele uygun tüm süreci değerlendirdiğinden emin olun (eğitim ve model seçimi), bkz.

GC Cawley ve NLC Talbot, Hiper parametrelerin Bayesian düzenlenmesi yoluyla model seçiminde aşırı uyumu önleme, Makine Öğrenimi Araştırma Dergisi, cilt 8, sayfa 841-861, Nisan 2007. (pdf)

ve

GC Cawley ve NLC Talbot, Model seçiminde aşırı uydurma ve performans değerlendirmesinde sonraki seçim önyargısı, Makine Öğrenimi Araştırma Dergisi, vol. 11, s. 2079-2107, Temmuz 2010. (pdf)


Radyal tabanın nasıl bir benzerlik ölçüsü olduğunu anlıyorum, çünkü birbirlerinden uzaktaki vektörler için neredeyse 0'dır ve aynı vektörler üzerinde maksimumuna ulaşmaktadır. Ancak, bu fikrin lineer algoritmaya nasıl uygulandığını göremiyorum (dot ürünü çekirdek olarak kullanmak). Nokta ürünü benzerlik ölçüsü olarak nasıl yorumlayabiliriz?
Bananin

@Bananan nokta ürünü, iki vektörün büyüklüğünün çarpımı çarpımı arasındaki aralığın kosinüsünün çarpımı olarak yazılabilir, bu nedenle vektörlerin yönü açısından benzerliği ölçmek olarak düşünebilirsiniz (ama tabii ki ayrıca bağımlı kendi büyüklüklerinde)
Dikran Marsupial

34

Neyin en iyi olacağından emin değilseniz, otomatik seçim tekniklerini kullanabilirsiniz (örneğin, çapraz doğrulama, ...). Bu durumda , farklı çekirdekten elde edilen (eğer sizin probleminiz sınıflandırma ise) sınıflandırıcı kombinasyonunu bile kullanabilirsiniz .

Bununla birlikte , bir çekirdekle çalışmanın "avantajı", normal "Öklid" geometrisini kendi probleminize uyacak şekilde değiştirmenizdir. Ayrıca, probleminize çekirdeğin ilgisini ve probleminizin geometrisine özgü olanı gerçekten anlamaya çalışmalısınız . Bu şunları içerebilir:

  • Değişmezlik : Sorununuzu temelden değiştirmeyen bir familya dönüşümü varsa, çekirdek bunu yansıtmalıdır. Gauss çekirdeğinde rotasyona göre değişmezlik vardır, ancak başka pek çok şey düşünebilirsiniz: çeviri, homojenlik, herhangi bir grup gösterimi, ....
  • İyi bir ayırıcı nedir? Sınıflandırma probleminizde iyi bir ayırıcının ne olduğu (yani iyi bir sınıflandırma kuralı) hakkında bir fikriniz varsa, bunun çekirdek seçimine dahil edilmesi gerekir. Remmeber, SVM'nin formun sınıflandırıcılarını size vereceğini

f^(x)=i=1nλiK(x,xi)

Doğrusal bir ayırıcının iyi olacağını biliyorsanız, afinite işlevlerini veren Çekirdeği kullanabilirsiniz (yani ). Düzgün KNN ruhunda pürüzsüz sınırların çok daha iyi olacağını düşünüyorsanız, o zaman bir Gauss çekirdeği alabilirsiniz ...K(x,xi)=x,Axi+c


Cevabınıza göre, bir çekirdekle çalışmanın "avantajı" nın, normal "Öklid" geometrisini kendi probleminize uyacak şekilde değiştirdiğinizden bahsettiniz. Sorununuz için, probleminizin geometrisine özgü olan şey " Başlamak için birkaç referans verebilir misiniz? Teşekkürler.
Raihana

11

Her zaman SVM'ler için herhangi bir hiper parametre seçiminin ızgara arama ile birlikte çapraz doğrulama ile yapıldığı hissine kapılıyorum.


2
Ben de aynı hislere
sahibim

2
şebeke araması kötü bir fikirdir, performansın kötü olduğu bölgelerde arama yapmak için çok zaman harcıyorsunuz. Uygulamada çok daha etkili olan Nelder-Mead simplex metodu (örneğin MATLAB'da fminsearch ()) gibi gradyansız optimizasyon algoritmaları kullanın.
Dikran Marsupial

Hayır, beklenen bilgilerle birlikte global optimizasyon için grafik modeller veya Gauss işlemleri kullanın. (Bkz. 'Hiper parametre optimizasyonu için algoritmalar', Bergstra ve diğerleri, yaklaşan NIPS)
bayerj 7/11

2

Genel olarak, RBF çekirdeği makul bir seçimdir. Dahası, doğrusal çekirdek, RBF'nin özel bir durumudur, Özellikle, özelliklerin sayısı çok fazla olduğunda, yalnızca doğrusal çekirdeği kullanabilirsiniz.


1
Verilerinizin doğrusal olarak ayrılabilir olup olmamasına, kaç boyuta sahip olduğunuza bağlı değildir. Özelliklerin sayısı çok büyük olduğunda (yine verilere bağlı olarak), önce boyutsallık azaltma, PCA veya LDA (doğrusal veya doğrusal olmayan çekirdek varyantları)
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.