Kernel linear dan kernel non-linear untuk mesin vektor dukungan?

45

Saat menggunakan mesin dukungan vektor, apakah ada pedoman untuk memilih kernel linear vs kernel nonlinier, seperti RBF? Saya pernah mendengar bahwa kernel non-linear cenderung tidak berkinerja baik setelah jumlah fitur besar. Apakah ada referensi tentang masalah ini?

pengguna3269
sumber
1
menurut kebijaksanaan saya, ini didasarkan pada masalah yang ada dan berbahaya untuk menggunakan thumbrules dalam praktek.
htrahdis

Jawaban:

66

Biasanya, keputusannya adalah apakah akan menggunakan kernel linear atau RBF (alias Gaussian). Ada dua faktor utama yang perlu dipertimbangkan:

  1. Memecahkan masalah optimasi untuk kernel linear jauh lebih cepat, lihat misalnya LIBLINEAR.
  2. Biasanya, kinerja prediktif terbaik lebih baik untuk kernel nonlinier (atau setidaknya sebaik yang linear).

Telah ditunjukkan bahwa kernel linear adalah versi RBF yang merosot , karenanya kernel linear tidak pernah lebih akurat daripada kernel RBF yang disetel dengan benar. Mengutip abstrak dari makalah yang saya tautkan:

Analisis juga menunjukkan bahwa jika pemilihan model lengkap menggunakan kernel Gaussian telah dilakukan, tidak perlu mempertimbangkan SVM linier.

Aturan dasar praktis secara singkat dibahas dalam panduan praktis NTU untuk mendukung klasifikasi vektor (Lampiran C).

Jika jumlah fitur besar, seseorang mungkin tidak perlu memetakan data ke ruang dimensi yang lebih tinggi. Artinya, pemetaan nonlinier tidak meningkatkan kinerja. Menggunakan kernel linear cukup baik, dan satu-satunya mencari parameter C.

Kesimpulan Anda kurang lebih benar tetapi Anda memiliki argumen mundur. Dalam praktiknya, kernel linear cenderung berkinerja sangat baik ketika jumlah fitur besar (misalnya tidak perlu memetakan ke ruang fitur dimensi yang lebih tinggi). Contoh khas dari ini adalah klasifikasi dokumen, dengan ribuan dimensi dalam ruang input.

Dalam kasus-kasus itu, kernel nonlinier belum tentu secara signifikan lebih akurat daripada kernel linier. Ini pada dasarnya berarti kernel nonlinier kehilangan daya tarik mereka: mereka membutuhkan sumber daya yang jauh lebih banyak untuk melatih dengan sedikit atau tidak ada keuntungan dalam kinerja prediksi, jadi mengapa repot-repot.

TL; DR

Selalu coba linier terlebih dahulu karena cara ini lebih cepat untuk melatih (DAN tes). Jika akurasinya mencukupi, tepuk diri Anda di belakang untuk pekerjaan yang dilakukan dengan baik dan beralih ke masalah berikutnya. Jika tidak, coba kernel nonlinier.

Marc Claesen
sumber
1
Saya punya penjelasan untuk trik kernel ini: stats.stackexchange.com/questions/131138/…
37

Andrew Ng memberikan penjelasan praktis yang bagus dalam video ini mulai 14:46, meskipun seluruh video layak ditonton.

Poin-Poin Utama

  • Gunakan kernel linear ketika jumlah fitur lebih besar dari jumlah pengamatan.
  • Gunakan kernel gaussian ketika jumlah pengamatan lebih besar dari jumlah fitur.
  • Jika jumlah pengamatan lebih besar dari 50.000 kecepatan bisa menjadi masalah saat menggunakan kernel gaussian; karenanya, orang mungkin ingin menggunakan kernel linear.
Akavall
sumber
setuju ................
datmannz
1
tautan sudah mati: Saya pikir ini adalah video yang sama: youtube.com/watch?v=hDh7jmEGoY0
ihebiheb