Perbedaan antara SVM dan perceptron


29

Saya agak bingung dengan perbedaan antara SVM dan perceptron. Biarkan saya mencoba meringkas pengertian saya di sini, dan jangan ragu untuk memperbaiki di mana saya salah dan mengisi apa yang saya lewatkan.

  1. Perceptron tidak mencoba mengoptimalkan "jarak" pemisahan. Selama menemukan hyperplane yang memisahkan dua set, itu bagus. SVM di sisi lain mencoba untuk memaksimalkan "vektor dukungan", yaitu jarak antara dua titik sampel berlawanan terdekat.

  2. SVM biasanya mencoba menggunakan "fungsi kernel" untuk memproyeksikan titik sampel ke ruang dimensi tinggi untuk membuatnya terpisah secara linear, sementara perceptron mengasumsikan titik sampel terpisah secara linear.


Jawaban:


18

Kedengarannya benar bagi saya. Orang kadang-kadang juga menggunakan kata "Perceptron" untuk merujuk pada algoritma pelatihan bersama dengan classifier. Sebagai contoh, seseorang menjelaskan hal ini kepada saya dalam menjawab pertanyaan ini . Juga, tidak ada yang menghentikan Anda dari menggunakan kernel dengan perceptron, dan ini sering kali merupakan penggolong yang lebih baik. Lihat di sini untuk beberapa slide (pdf) tentang cara menerapkan kernel perceptron.

Perbedaan praktis utama antara perceptron (kernel) dan SVM adalah bahwa perceptron dapat dilatih secara online (yaitu bobotnya dapat diperbarui ketika contoh-contoh baru tiba satu per satu) sedangkan SVM tidak bisa. Lihat pertanyaan ini untuk informasi apakah SVM dapat dilatih secara online. Jadi, meskipun SVM biasanya merupakan pengklasifikasi yang lebih baik, perceptrons masih dapat berguna karena mereka murah dan mudah untuk dilatih ulang dalam situasi di mana data pelatihan baru terus berdatangan.


3
SVM dapat dilatih secara online. Dari solusi ganda Anda dapat memperoleh primal yang sesuai dan dari yang ini Anda memperbarui bobot dengan gaya stokastik.
Firebug


4

minw2+Ci=1n(1yi(wxi+w0))+
mini=1n(yi(wxi+w0))+

Kita dapat melihat bahwa SVM memiliki tujuan yang hampir sama dengan perceptron yang diatur L2.

Karena tujuannya berbeda, kami juga memiliki skema optimisasi yang berbeda untuk kedua algoritma ini, dari , kami melihat bahwa itu adalah alasan utama untuk menggunakan pemrograman kuadratik untuk mengoptimalkan SVM.w2

Mengapa perceptron memungkinkan pembaruan online? Jika Anda melihat aturan pembaruan gradient descent untuk hilangnya engsel (engsel loss digunakan oleh SVM dan perceptron),

wt=wt1+η1Ni=1NyixiI(yiwtxi0)

Karena semua algoritma pembelajaran mesin dapat dilihat sebagai kombinasi dari fungsi kerugian dan algoritma optimisasi.

Perceptron tidak lebih dari kehilangan engsel (fungsi rugi) + penurunan gradien stokastik (optimisasi)

wt=wt1+yy+1xt+1I(yt+1wtxt+10)

Dan SVM dapat dilihat sebagai engsel loss + l2 regularisasi (loss + regularisasi) + pemrograman kuadratik atau algoritma optimasi yang lebih menarik lainnya seperti SMO (optimisasi).


-1

Perceptron adalah generalisasi SVM di mana SVM adalah perceptron dengan stabilitas optimal. Jadi Anda benar ketika Anda mengatakan perceptron tidak mencoba mengoptimalkan jarak pemisahan.

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.