Jaringan saraf vs mesin vektor dukungan: apakah yang kedua pasti lebih unggul?


52

Banyak penulis makalah yang saya baca menegaskan bahwa SVM adalah teknik yang unggul untuk menghadapi masalah regresi / klasifikasi mereka, menyadari bahwa mereka tidak bisa mendapatkan hasil yang sama melalui NNs. Seringkali perbandingan menyatakan itu

SVM, bukannya NN,

  • Memiliki teori pendirian yang kuat
  • Mencapai global optimal karena pemrograman kuadratik
  • Tidak memiliki masalah untuk memilih jumlah parameter yang tepat
  • Tidak terlalu rentan overfitting
  • Membutuhkan lebih sedikit memori untuk menyimpan model prediksi
  • Menghasilkan hasil yang lebih mudah dibaca dan interpretasi geometris

Apakah ini pemikiran serius yang diterima secara luas? Jangan mengutip Teorema Makan Siang Tanpa-Bebas atau pernyataan serupa, pertanyaan saya adalah tentang penggunaan praktis dari teknik-teknik itu.

Di sisi lain, masalah abstrak macam apa yang Anda pasti akan hadapi dengan NN?


4
Saya pikir pertanyaannya mungkin agak luas. Tetapi dalam prakteknya NNs nampaknya jauh lebih merdu dengan pilihan struktur NN, sedangkan SVM memiliki lebih sedikit parameter. Ada dua pertanyaan, jika NN secara optimal diatur untuk memecahkan masalah bagaimana itu berbanding vs SVM? Dan di tangan praktisi rata-rata, bagaimana SVM dibandingkan dengan NN?
Patrick Caldon

2
@ PatrickCaldon Saya mengerti sudut pandang Anda, tetapi lebih banyak parameter untuk menangani tidak selalu berarti alat yang lebih baik, jika Anda tidak tahu cara mengkonfigurasinya dengan cara yang sesuai. Bahkan jika memungkinkan, studi panjang mungkin diperlukan; atau, Anda mungkin tidak perlu kemampuan meremajakan yang begitu luas untuk keperluan aplikasi Anda
stackovergio

1
Itu maksudku. Pertanyaan mana yang bagaimana alat bekerja dalam keadaan ideal pada masalah tertentu? atau bagaimana alat ini bekerja untuk kebanyakan orang sebagian besar waktu? Saya pikir komponen terbesar di sini adalah orang btw. Karena itu saya pikir faktor-faktor yang relevan sering: Seberapa sulit setiap alat untuk belajar? Adakah pakar di sekitar yang tahu cara menggunakannya? dll. Itu bisa menjelaskan banyak "Saya mendapat kinerja yang baik dari X"
Patrick Caldon

1
Dari apa yang saya ketahui, JST feedforward multilayer adalah aproksimator universal kurang lebih terlepas dari fungsi aktivasi. Saya tidak mengetahui hasil yang serupa untuk SVM yang lebih banyak bergantung pada pengetahuan saya pada fungsi kernel yang digunakan.
Momo

2
Dalam penggunaan praktis, saya menemukan NNs sedikit lebih praktis karena waktu pelatihan. SVM Non-Linear tidak bisa menangani N besar dengan sangat baik. Kedua algoritma dapat menyesuaikan dan keduanya membutuhkan regularisasi yang kuat.
Shea Parkes

Jawaban:


43

Ini adalah masalah pertukaran. SVMs yang di sekarang, NNS dulu di . Anda akan menemukan semakin banyak makalah yang mengklaim Random Forests, Probabilistic Graphic Models, atau metode Nonparametric Bayesian . Seseorang harus menerbitkan model peramalan dalam Annals of Improbable Research tentang model apa yang akan dianggap sebagai tren.

Setelah mengatakan bahwa untuk banyak masalah yang sulit diawasi yang terkenal model tunggal berkinerja terbaik adalah beberapa jenis NN, beberapa jenis SVMs atau masalah metode penurunan gradien stokastik spesifik diimplementasikan menggunakan metode pemrosesan sinyal.


Pro NN:

  • Mereka sangat fleksibel dalam jenis data yang dapat mereka dukung. NNs melakukan pekerjaan yang layak dalam mempelajari fitur-fitur penting pada dasarnya struktur data apa pun, tanpa harus secara manual mendapatkan fitur.
  • NN masih mendapat manfaat dari rekayasa fitur, misalnya Anda harus memiliki fitur area jika Anda memiliki panjang dan lebar. Model ini akan tampil lebih baik untuk upaya komputasi yang sama.

  • Sebagian besar pembelajaran mesin yang diawasi mengharuskan Anda untuk memiliki data Anda terstruktur dalam pengamatan oleh fitur matriks, dengan label sebagai vektor pengamatan panjang. Pembatasan ini tidak perlu dengan NN. Ada pekerjaan fantastis dengan SVM terstruktur, tetapi tidak mungkin itu akan sefleksibel NNs.


Pro dari SVM:

  • Hyperparameter lebih sedikit. Secara umum SVM membutuhkan lebih sedikit pencarian jaringan untuk mendapatkan model yang cukup akurat. SVM dengan kernel RBF biasanya berkinerja cukup baik.

  • Dijamin global optimal.


Kekurangan NN dan SVM:

  • Untuk sebagian besar tujuan mereka berdua kotak hitam. Ada beberapa penelitian tentang menafsirkan SVM, tapi saya ragu itu akan seintu GLM. Ini adalah masalah serius di beberapa domain masalah.
  • Jika Anda akan menerima kotak hitam maka Anda biasanya dapat memeras sedikit lebih akurat dengan mengantongi / menumpuk / meningkatkan banyak banyak model dengan pengorbanan yang berbeda.

    • Hutan acak sangat menarik karena dapat menghasilkan prediksi out-of-bag (prediksi leave-one-out) tanpa usaha ekstra, mereka sangat dapat ditafsirkan, mereka memiliki trade-off bias-varians yang baik (bagus untuk model pengepakan) dan mereka relatif kuat untuk bias seleksi. Bodohnya sederhana untuk menulis implementasi paralel dari.

    • Model grafis probabilistik menarik karena mereka dapat menggabungkan domain-spesifik-pengetahuan langsung ke dalam model dan dapat ditafsirkan dalam hal ini.

    • Metode Bayesian nonparametrik (atau benar-benar sangat parametrik) menarik karena menghasilkan interval kepercayaan secara langsung. Mereka berkinerja sangat baik pada ukuran sampel kecil dan sangat baik pada ukuran sampel besar. Bodohnya sederhana untuk menulis implementasi aljabar linier dari.


41
Dengan meningkatnya pembelajaran mendalam baru-baru ini, NNs dapat dianggap "lebih dalam" daripada SVM, saya katakan.
bayerj

30

Jawaban atas pertanyaan Anda adalah dalam pengalaman saya "tidak", SVM tidak pasti unggul, dan yang berfungsi paling baik tergantung pada sifat dataset yang ada dan pada keterampilan relatif operator dengan setiap set alat. Secara umum SVM bagus karena algoritma pelatihannya efisien, dan memiliki parameter regularisasi, yang memaksa Anda untuk berpikir tentang regularisasi dan pemasangan yang berlebihan. Namun, ada dataset di mana MLP memberikan kinerja yang jauh lebih baik daripada SVM (karena mereka diizinkan untuk memutuskan representasi internal mereka sendiri, daripada memiliki itu ditentukan sebelumnya oleh fungsi kernel). Implementasi yang baik dari MLP (misalnya NETLAB) dan regularisasi atau penghentian awal atau pemilihan arsitektur (atau lebih baik lagi ketiganya) seringkali dapat memberikan hasil yang sangat baik dan dapat direproduksi (setidaknya dalam hal kinerja).

Pemilihan model adalah masalah utama dengan SVM, memilih kernel dan mengoptimalkan kernel dan parameter regularisasi sering dapat menyebabkan over-fitting yang parah jika Anda terlalu mengoptimalkan kriteria pemilihan model. Walaupun teori yang menyematkan SVM adalah kenyamanan, sebagian besar hanya berlaku untuk kernel tetap, jadi segera setelah Anda mencoba mengoptimalkan parameter kernel, itu tidak berlaku lagi (misalnya masalah optimasi yang harus dipecahkan dalam menyetel kernel. umumnya non-cembung dan mungkin memiliki minimum lokal).


7
Saya sepenuhnya setuju dengan ini. Saat ini saya sedang melatih SVM dan JST pada data antarmuka otak-komputer dan ada beberapa set data di mana SVM lebih baik dan beberapa set data di mana JST lebih baik. Yang menarik adalah: ketika saya rata-rata kinerja atas semua set data yang saya gunakan, SVM dan JST mencapai kinerja yang sama persis. Tentu saja, ini bukan bukti. Itu hanya sebuah anekdot. :)
alfa

27

Saya hanya akan mencoba menjelaskan pendapat saya yang tampaknya dibagikan oleh sebagian besar teman saya. Saya memiliki kekhawatiran berikut tentang NN yang bukan tentang SVM sama sekali:

  1. Dalam NN klasik, jumlah parameter sangat tinggi. Katakanlah Anda memiliki vektor dengan panjang 100 yang ingin Anda klasifikasikan menjadi dua kelas. Satu lapisan tersembunyi dengan ukuran yang sama dengan lapisan input akan mengarahkan Anda ke lebih dari 100.000 parameter gratis. Bayangkan saja seberapa buruk Anda bisa mengenakan pakaian (seberapa mudahnya jatuh ke minimum lokal di tempat seperti itu), dan berapa banyak poin pelatihan yang Anda perlukan untuk mencegah hal itu (dan berapa banyak waktu yang Anda perlukan untuk melatih saat itu).
  2. Biasanya Anda harus menjadi ahli nyata untuk memilih topologi secara sekilas. Itu berarti bahwa jika Anda ingin mendapatkan hasil yang baik Anda harus melakukan banyak percobaan. Itu sebabnya lebih mudah menggunakan SVM dan mengatakan, bahwa Anda tidak bisa mendapatkan hasil yang serupa dengan NN.
  3. Biasanya hasil NN tidak dapat direproduksi. Bahkan jika Anda menjalankan pelatihan NN Anda dua kali, Anda mungkin akan mendapatkan hasil yang berbeda karena keacakan algoritma pembelajaran.
  4. Biasanya Anda tidak memiliki interpretasi hasil sama sekali. Itu adalah masalah kecil, tapi tetap saja.

Itu tidak berarti bahwa Anda tidak boleh menggunakan NN, Anda hanya harus menggunakannya dengan hati-hati. Misalnya, NN Konvolusional bisa sangat baik untuk pemrosesan gambar, NN Deep lainnya terbukti bagus untuk masalah lain juga.

Semoga ini bisa membantu.


2
Untuk membuat hasil JST direproduksi, seed fungsi acak.
Franck Dernoncourt

@ Franck Itu bukan reproduktifitas nyata.
kewarasan

17

Saya menggunakan jaringan saraf untuk sebagian besar masalah. Intinya adalah bahwa itu dalam banyak kasus lebih banyak tentang pengalaman pengguna daripada tentang model. Berikut adalah beberapa alasan mengapa saya suka NNs.

  1. Mereka fleksibel. Saya bisa melempar kerugian apa pun yang saya inginkan pada mereka: kehilangan engsel, kuadrat, entropi silang, apa saja. Selama bisa dibedakan, saya bahkan bisa merancang kerugian yang pas dengan kebutuhan saya.
  2. Mereka dapat diperlakukan secara probabilistik: jaringan saraf Bayesian, variational Bayes, MLE / MAP, semuanya ada di sana. (Tetapi dalam beberapa kasus lebih sulit.)
  3. Mereka cepat. Kebanyakan MLP akan terdiri dari dua perkalian matriks dan satu komponen nonlinier yang diterapkan secara bijaksana. Kalahkan itu dengan SVM.

Saya akan membahas poin Anda yang lain selangkah demi selangkah.

Memiliki teori pendirian yang kuat

Saya akan mengatakan, NN sama kuatnya dalam hal itu: karena Anda melatih mereka dalam kerangka kerja probabilistik. Itu memungkinkan penggunaan prior dan perawatan Bayesian (misalnya dengan teknik atau pendekatan variasional) menjadi mungkin.

Mencapai global optimal karena pemrograman kuadratik

Untuk satu set hiperparameter. Namun, pencarian hps yang baik adalah non-cembung, dan Anda tidak akan tahu apakah Anda juga menemukan global optimal.

Tidak memiliki masalah untuk memilih jumlah parameter yang tepat

Dengan SVM, Anda harus memilih parameter hiper juga.

Membutuhkan lebih sedikit memori untuk menyimpan model prediksi

Anda perlu menyimpan vektor dukungan. SVM pada umumnya tidak akan lebih murah untuk menyimpan MLP, tergantung pada kasusnya.

Menghasilkan hasil yang lebih mudah dibaca dan interpretasi geometris

Lapisan atas MLP adalah regresi logistik dalam kasus klasifikasi. Dengan demikian, ada interpretasi geometris (memisahkan bidang hiper) dan interpretasi probabilistik juga.


Mengapa saya perlu menyimpan vektor dukungan? Apakah itu tidak cukup untuk menyimpan hyperplane / maring dari SVM?
Julian

Itu karena bidang hyper diwakili melalui vektor dukungan. Untuk menghitung jarak titik baru dari itu, Anda akan mengulanginya.
bayerj

0

Dalam beberapa hal, dua kategori luas dari teknik pembelajaran mesin ini saling berkaitan. Meskipun tidak sempurna, dua makalah yang saya temukan bermanfaat dalam menunjukkan kesamaan dalam teknik ini di bawah ini

Ronan Collobert dan Samy Bengio. 2004. Tautan antara perceptrons, MLP dan SVM. Dalam Prosiding konferensi internasional kedua puluh satu tentang pembelajaran Mesin (ICML '04). ACM, New York, NY, AS, 23-. DOI: https://doi.org/10.1145/1015330.1015415

dan

Andras, Peter. (2002). Kesetaraan Mesin Vektor Pendukung dan Jaringan Saraf Regularisasi. Huruf Pemrosesan Saraf. 15. 97-104. 10.1023 / A: 1015292818897.

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.