Bagaimana cara memilih kernel untuk SVM?


95

Saat menggunakan SVM, kita perlu memilih kernel.

Saya bertanya-tanya bagaimana cara memilih kernel. Adakah kriteria pemilihan kernel?


apa ukuran masalahnya? (#variables, pengamatan)?
user603

Saya hanya meminta solusi umum, tidak ada masalah khusus
xiaohan2012

Jawaban:


54

Kernel secara efektif merupakan ukuran kesamaan, jadi memilih kernel menurut pengetahuan invarian sebelumnya seperti yang disarankan oleh Robin (+1) adalah ide yang bagus.

Dengan tidak adanya pengetahuan para ahli, kernel Radial Basis Function menjadi kernel default yang baik (setelah Anda memantapkannya, ini merupakan masalah yang membutuhkan model non-linear).

Pilihan parameter kernel dan kernel / regularisasi dapat diotomatisasi dengan mengoptimalkan pemilihan model berbasis lintas-valdiasi (atau menggunakan batas radius atau batas span). Hal paling sederhana yang harus dilakukan adalah meminimalkan kriteria pemilihan model kontinu menggunakan metode simpleks Nelder-Mead, yang tidak memerlukan perhitungan gradien dan bekerja dengan baik untuk sejumlah parameter hiper yang masuk akal. Jika Anda memiliki lebih dari beberapa hiper-parameter untuk disetel, pemilihan model otomatis cenderung mengakibatkan pemasangan berlebihan yang parah, karena varian kriteria pemilihan model. Dimungkinkan untuk menggunakan optimasi berbasis gradien, tetapi keuntungan kinerja biasanya tidak sepadan dengan upaya pengkodean itu).

Pemilihan kernel dan kernel / parameter regularisasi secara otomatis merupakan masalah yang rumit, karena sangat mudah untuk menyesuaikan kriteria pemilihan model (biasanya berdasarkan validasi silang), dan Anda dapat berakhir dengan model yang lebih buruk daripada yang Anda mulai. Pemilihan model otomatis juga dapat membuat bias penilaian kinerja, jadi pastikan evaluasi kinerja Anda mengevaluasi seluruh proses pemasangan model (pelatihan dan pemilihan model), untuk perincian, lihat

GC Cawley dan NLC Talbot, Mencegah over-fitting dalam pemilihan model melalui regularisasi Bayesian dari hyper-parameter, Journal of Machine Learning Research, volume 8, halaman 841-861, April 2007. (pdf)

dan

GC Cawley dan NLC Talbot, Over-fitting dalam pemilihan model dan bias seleksi selanjutnya dalam evaluasi kinerja, Journal of Machine Learning Research, vol. 11, hlm. 2079-2107, Juli 2010. (pdf)


Saya mendapatkan bagaimana basis radial adalah ukuran kesamaan karena hampir 0 untuk vektor yang jauh dari satu sama lain dan mencapai maksimum pada vektor identik. Namun, saya tidak melihat bagaimana ide itu berlaku untuk algoritma linier (menggunakan dot produk sebagai kernel). Bagaimana kita bisa menginterpretasikan produk titik sebagai ukuran kesamaan?
Bananin

@Bananin produk titik dapat ditulis sebagai produk dari besarnya dua kali vektor cosinus dari sudut di antara mereka, sehingga Anda dapat menganggapnya sebagai mengukur kesamaan dalam hal arah vektor (tetapi jelas juga tergantung pada magnitude mereka)
Dikran Marsupial

34

Jika Anda tidak yakin apa yang terbaik, Anda dapat menggunakan teknik seleksi otomatis (mis. Validasi silang, ...). Dalam hal ini Anda bahkan dapat menggunakan kombinasi dari pengklasifikasi (jika masalah Anda adalah klasifikasi) yang diperoleh dengan kernel yang berbeda.

Namun , "keuntungan" dari bekerja dengan kernel adalah Anda mengubah geometri "Euclidean" yang biasa sehingga cocok dengan masalah Anda sendiri. Anda juga harus benar-benar mencoba memahami apa yang menjadi minat kernel untuk masalah Anda, apa yang khusus untuk geometri masalah Anda . Ini dapat mencakup:

  • Invariance : jika ada beberapa transformasi yang tidak mengubah masalah Anda secara mendasar, kernel harus mencerminkan hal itu. Invariansi oleh rotasi terkandung dalam kernel gaussian, tetapi Anda dapat memikirkan banyak hal lain: terjemahan, homothetie, representasi grup apa pun, ....
  • Apa pemisah yang baik? jika Anda memiliki gagasan tentang apa pemisah yang baik (yaitu aturan klasifikasi yang baik) dalam masalah klasifikasi Anda, ini harus dimasukkan dalam pilihan kernel. Ingat bahwa SVM akan memberi Anda pengklasifikasi formulir

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

Jika Anda tahu bahwa pemisah linear akan menjadi yang baik, maka Anda dapat menggunakan Kernel yang memberikan fungsi affine (yaitu ). Jika Anda berpikir batas halus jauh dalam semangat KNN halus akan lebih baik, maka Anda dapat mengambil kernel gaussian ...K(x,xi)=x,Axi+c


Dalam jawaban Anda, Anda menyebutkan bahwa "Keuntungan" bekerja dengan kernel adalah Anda mengubah geometri "Euclidian" yang biasa sehingga cocok dengan masalah Anda sendiri. Selain itu, Anda harus benar-benar mencoba memahami apa yang menjadi kepentingan kernel. untuk masalah Anda, apa yang khusus untuk geometri masalah Anda. " Bisakah Anda memberikan beberapa referensi untuk memulai. Terima kasih.
Raihana

11

Saya selalu merasa bahwa setiap pemilihan parameter hiper untuk SVM dilakukan melalui validasi silang dalam kombinasi dengan pencarian grid.


2
Saya memiliki perasaan yang sama
xiaohan2012

2
pencarian grid adalah ide yang buruk, Anda menghabiskan banyak waktu mencari di daerah di mana kinerja buruk. Gunakan algoritma optimisasi bebas gradien, seperti metode simpleks Nelder-Mead, yang jauh lebih efisien dalam praktiknya (mis. Fminsearch () di MATLAB).
Dikran Marsupial

Tidak, gunakan model grafis atau proses Gaussian untuk optimisasi global dalam kombinasi dengan informasi yang diharapkan. (Lihat 'Algoritma untuk optimasi parameter hiper', Bergstra et al, NIPS yang akan datang)
bayerj

2

Secara umum, kernel RBF adalah pilihan pertama yang masuk akal. Selanjutnya, kernel linier adalah kasus khusus dari RBF, Secara khusus, ketika jumlah fitur sangat besar, seseorang hanya dapat menggunakan kernel linear.


1
Itu tergantung pada apakah data Anda terpisah secara linear atau tidak, bukan berapa banyak dimensi yang Anda miliki. Ketika jumlah fitur sangat besar, (sekali lagi tergantung pada data), Anda akan menerapkan pengurangan dimensi terlebih dahulu, PCA atau LDA (varian kernel linier atau nonlinear)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.