Perbedaan kernel di SVM?

27

Dapatkah seseorang tolong beri tahu saya perbedaan antara kernel di SVM:

  1. Linier
  2. Polinomial
  3. Gaussian (RBF)
  4. Sigmoid

Karena seperti yang kita ketahui bahwa kernel digunakan untuk memetakan ruang input kami ke ruang fitur berdimensi tinggi. Dan dalam ruang fitur itu, kami menemukan batas yang dapat dipisahkan secara linear ..

Kapan mereka digunakan (dalam kondisi apa) dan mengapa?

pengguna3378327
sumber

Jawaban:

4

Kernel linear adalah apa yang Anda harapkan, model linier. Saya percaya bahwa kernel polinom mirip, tetapi batasnya adalah dari beberapa urutan yang ditentukan tetapi sewenang-wenang

(mis. pesanan 3: ).Sebuah=b1+b2X+b3X2+b4X3

RBF menggunakan kurva normal di sekitar titik data, dan menjumlahkan ini sehingga batas keputusan dapat ditentukan oleh jenis kondisi topologi seperti kurva di mana jumlah di atas nilai 0,5. (lihat gambar ini )

Saya tidak yakin apa kernel sigmoid itu, kecuali jika itu mirip dengan model regresi logistik di mana fungsi logistik digunakan untuk menentukan kurva berdasarkan di mana nilai logistik lebih besar dari beberapa nilai (probabilitas pemodelan), seperti 0,5 seperti normal kasus.

John Yetter
sumber
Jadi, kita bisa mendapatkan hyperplane linierly terpisah (batas), jika kita menggunakan kernel linear ?? dan jika kita menggunakan polinomial atau kernel RBF, hyperlane (untuk polinomial) bisa berupa lingkaran kelas yang dikelompokkan (untuk RBF) dan kurva ?? Apakah itu benar?? scikit-learn.org/stable/modules/svm.html
user3378327
Setiap kernel bekerja untuk versi dimensi tinggi dari batas masing-masing. Apakah itu menjawab pertanyaan Anda? Anda tidak terbatas pada tiga dimensi untuk kernel apa pun yang saya ketahui.
John Yetter
Saya hanya ingin membuatnya jelas. Jadi batas dengan menggunakan kernel linear adalah linear? Untuk RBF seperti lingkaran kelas yang dikelompokkan ?? dan untuk polinomial, dapat kurva berdasarkan derajat polinomial ??
user3378327
Saya tidak akan mengatakan RBF adalah lingkaran kelas yang dikelompokkan. Pemahaman saya adalah bahwa ia menerapkan fungsi berdasarkan distribusi normal pada setiap titik data, dan menjumlahkan fungsi-fungsi ini. Kemudian batas dibentuk oleh kurva yang mewakili nilai tertentu pada fungsi itu. Jika seseorang yang berkontribusi pada perpustakaan SVM bisa berbaur, itu mungkin bisa membantu. Saya pikir pemahaman Anda tentang dua kernel lainnya benar.
John Yetter
U mengatakan bahwa Linier Kernel adalah apa yang saya harapkan (untuk mendapatkan kelas yang dapat dipisahkan secara linier) dengan menggunakan Kernel. dan dengan menggunakan classifier SVM, kami menyebutnya LINIER SVM. Tetapi bagaimana jika kita bisa mendapatkan data yang dapat dipisahkan secara linier tanpa kernel di SVM. Apa yang kita sebut itu ?? Masih Linier SVM atau Non Linier SVM ??
user3378327
11

Mengandalkan pengetahuan dasar pembaca tentang kernel.

Kernel Linear: K(X,Y)=XTY

Kernel polinomial:K(X,Y)=(γXTY+r)d,γ>0

Fungsi dasar radial (RBF) Kernel: yang dalam bentuk sederhana dapat ditulis sebagaiK(X,Y)=exp(X-Y2/2σ2)exp(-γX-Y2),γ>0

Sigmoid Kernel: yang mirip dengan fungsi sigmoid dalam regresi logistik.K(X,Y)=tanh(γXTY+r)

Di sini , , dan adalah parameter kernel.rdγ

Ashok Choudhary
sumber
3
Walaupun informasi dalam jawaban Anda benar, saya tidak berpikir itu menjawab pertanyaan yang diajukan di sini, yang lebih mengarah pada apa perbedaan praktis di antara mereka, yaitu kapan harus menggunakan satu atau yang lain.
Firebug
1
Hebatnya definisi sederhana ini sulit didapat. Mereka harus menjadi hal pertama yang disajikan ketika berbicara tentang perbedaan kernel, namun ada kegagalan luas untuk menyatakannya.
cammil
Apakah ada sumber resmi untuk ini? (Saya menguji mereka dan mereka kelihatannya benar, tetapi saya ingin mengutipnya.)
Christian Eriksson
6

Pertanyaan ini dapat dijawab dari sudut pandang teoretis dan praktis. Dari teoretis menurut teorema No-Free Lunch menyatakan bahwa tidak ada jaminan untuk satu kernel untuk bekerja lebih baik dari yang lain. Itu adalah apriori yang tidak pernah Anda ketahui atau Anda bisa mengetahui kernel mana yang akan bekerja lebih baik.

Dari sudut pandang praktis, lihat halaman berikut:

Bagaimana cara memilih kernel untuk SVM?

Gnattuha
sumber
1

Sementara merefleksikan apa yang "baik untuk" kernel atau kapan harus digunakan, tidak ada aturan yang keras dan cepat.

Jika Anda classifier / regressor berkinerja baik dengan kernel yang diberikan, itu sesuai, jika tidak, pertimbangkan untuk beralih ke kernel lain.

Wawasan bagaimana kinerja kernel Anda, khususnya jika itu adalah model klasifikasi, dapat diperoleh dengan meninjau beberapa contoh visualisasi, misalnya https://gist.github.com/WittmannF/60680723ed8dd0cb993051a7448f7805

Akan
sumber