SVM parametre seçimi


9

Daha iyi eğitim performansı sağlayan C ve Gamma'yı seçmek için daha iyi alternatif yöntemler var mı?

Yanıtlar:


5

Şebeke araması yavaştır, çünkü en uygun yere yakın olmayan hiper parametre ayarlarını araştırmak için çok zaman harcar. Daha iyi bir çözüm, degrade bilgilerinin hesaplanmasını gerektirmeyen ve uygulanması kolay olan Nelder-Mead simpleks algoritmasıdır (Wikipedia sayfasında yeterli bilgi olmalıdır). Weka araç kutusunda bazı java kodu da olabilir , ancak MATLAB'da çalışıyorum ve Weka'ya çok ayrıntılı bir şekilde bakmadım.

SMO, hiper parametreler yerine model parametrelerini bulmak için bir algoritmadır.


Matlab uygulamanızı sağlayabilir misiniz?
Zach

1
Burada bir tane theoval.cmp.uea.ac.uk/matlab/#optim var, ancak zaten optimizasyon araç kutusuna sahipseniz fminsearch de Nelder-Mead yöntemi IIRC'nin bir uygulamasıdır.
Dikran Marsupial

5

Nelder-Mead simpleks yöntemi, basit bir ızgara araması kadar işlev değerlendirmesi içerebilir. Genellikle hata yüzeyi, daha küçük bir bölgede kaba bir ızgara aramasının ve daha ince bir alanın yeterli olması gereken optimal parametre değerlerine yeterince yakındır.

C ve gamaların gradyan tabanlı optimizasyonu ile ilgileniyorsanız, yarıçap marjı sınırlarını optimize etme veya bir doğrulama kümesindeki hata oranını optimize etme gibi yöntemler vardır. Objektif fonksiyonun gradyanının hesaplanması, bir SVM treni gibi bir şey içerir, ancak basit bir gradyan inişi sadece birkaç düzine yineleme içerebilir. ( Bir makale ve Matlab uygulaması için http://olivier.chapelle.cc/ams/ adresine bakın.)


Deneyimlerime göre, nelder-mead genellikle ızgara aramasından daha hızlıdır ve degrade inişi daha az yineleme gerektirirken, degradeyi hesaplama maliyeti yüksektir. Dolayısıyla, degrade iniş sağlayan bir uygulamanız varsa kullanın, ancak Nelder-Mead muhtemelen çok geride olmayacaktır. Tabii ki ızgara aramayı ayarlamak için ikiden fazla hiper parametreniz olur olmaz hemen en yavaş yöntem haline gelir. Her yöntemin karşılaştırmalı verimlilikleri üzerine bir çalışma görmek ilginç olacaktır.
Dikran Marsupial

Parametrelerin sayısı bir çiftten fazlaysa, şebeke aramasının geçerli olmadığını haklısınız. Fakat aynı şey Nelder-Mead için de geçerlidir, çünkü simpleks boyutu boyutsallık tarafından belirlenir.
Innuo

yalnızca degrade iniş ile aynı ölçüde, soruna fazladan bir boyut eklemek, simpleks için sadece bir ekstra nokta ekler, böylece degrade inişi gibi hiper parametre sayısında kabaca doğrusal olarak ölçeklenir. Ben 40 + hiper parametreleri ile sorunları ile kullandım ve degrade iniş sadece biraz daha yavaş (bu birçok hiper parametreleri ile olsa her iki şekilde de model seçiminde aşırı uydurma eğilimindedir).
Dikran Marsupial

0

İşte Alex Smola'nın blogunda sorunuzla ilgili bir giriş

İşte bir teklif:

[...] veri kümenizden rastgele 1000 çift (x, x ') seçin, tüm bu çiftlerin mesafesini hesaplayın ve medyan, 0.1 ve 0.9 kantil'i alın. Şimdi bu üç sayının tersi olmak için λ'yı seçin. Biraz çapraz doğrulama ile üçünden hangisinin en iyi olduğunu anlayacaksınız. Çoğu durumda başka arama yapmanız gerekmez.

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.