Apa kelebihan Jaringan Syaraf Tiruan dari Mesin Vektor Dukungan? [Tutup]


381

JST (Jaringan Saraf Tiruan) dan SVM (Support Vector Machines) adalah dua strategi populer untuk pembelajaran dan klasifikasi mesin yang diawasi. Tidak sering jelas metode mana yang lebih baik untuk proyek tertentu, dan saya yakin jawabannya selalu "itu tergantung." Seringkali, kombinasi keduanya bersama dengan klasifikasi Bayesian digunakan.

Pertanyaan-pertanyaan tentang Stackoverflow ini telah diajukan mengenai JST vs SVM:

Klasifikasi JST dan SVM

apa perbedaan antara JST, SVM, dan KNN dalam pertanyaan klasifikasi saya

Mendukung Mesin Vektor atau Jaringan Syaraf Tiruan untuk pemrosesan teks?

Dalam pertanyaan ini, saya ingin mengetahui secara spesifik aspek apa dari JST (khususnya, Multilayer Perceptron) yang membuatnya diinginkan untuk digunakan di atas SVM? Alasan saya bertanya adalah karena mudah untuk menjawab pertanyaan sebaliknya : Support Vector Machines sering lebih unggul daripada JST karena mereka menghindari dua kelemahan utama JST:

(1) JST sering bertemu pada minima lokal daripada minima global, yang berarti bahwa mereka pada dasarnya "kehilangan gambaran besar" kadang-kadang (atau kehilangan hutan untuk pepohonan)

(2) JST sering mengenakan pakaian berlebih jika pelatihan berlangsung terlalu lama, yang berarti bahwa untuk pola tertentu, JST mungkin mulai mempertimbangkan kebisingan sebagai bagian dari pola.

SVM tidak menderita salah satu dari dua masalah ini. Namun, tidak jelas bahwa SVM dimaksudkan sebagai pengganti total untuk JST. Jadi, keuntungan spesifik apa yang dimiliki JST atas SVM yang mungkin berlaku untuk situasi tertentu? Saya telah membuat daftar keunggulan spesifik SVM dibandingkan ANN, sekarang saya ingin melihat daftar keunggulan ANN (jika ada).


61
Sayangnya ini mungkin akan ditutup atau dipindahkan segera, tetapi saya sangat suka pertanyaannya. Saya tidak menginginkan yang lebih baik daripada melihat serangkaian jawaban bijaksana untuk yang satu ini.
duffymo

10
Saya membayangkan sebagian besar jawaban untuk pertanyaan ini akan bersifat spekulatif atau berdasarkan bukti, karena ada sangat sedikit jaminan teoritis tentang kekuatan mesin ini. Sebagai contoh (jika saya ingat dengan benar), tidak diketahui apakah jaringan saraf umpan-maju n-layer lebih kuat daripada jaringan 2-layer. Jadi bagaimana kita dapat mengatakan bahwa yang satu lebih baik daripada yang lain pada prinsipnya jika kita bahkan tidak memahami hubungan antara sedikit variasi dari model yang sama?
JeremyKun

13
Ditutup karena tidak terlalu konstruktif ... Lol!
erogol

65
Saya suka bahwa StackOverflow mencoba menjaga kualitas pertanyaan dan jawaban tetap tinggi. Aku benci StackOverflow memberlakukan ini dengan kapak, bukan pisau bedah. Ada perbedaan antara bertanya "bagaimana saya melakukan HTML stuffz?" dan pertanyaan khusus domain yang sulit ditemukan jawabannya di tempat lain. Ada alasan mengapa ini memiliki 140 upvotes - namun itu dianggap "tidak konstruktif." Pertanyaan seperti ini adalah lambang konstruktif. Tentu saja jauh lebih banyak daripada yang saya lihat setiap hari yang dengan rapi jatuh ke dalam format tanya jawab sambil tetap tidak berguna bagi hampir semua orang kecuali si penanya.
Chase Ries

20
Ini jelas konstruktif. Saya tidak mengerti mengapa itu akan ditutup. Ia meminta situasi tertentu di mana menggunakan satu algoritma memiliki keunggulan dibandingkan menggunakan algoritma alternatif. Apakah itu bukan hal yang wajar untuk ditanyakan?
Rab

Jawaban:


137

Dilihat dari contoh yang Anda berikan, saya berasumsi bahwa dengan JST, yang Anda maksud adalah jaringan umpan maju multilayer (singkatnya FF jaring), seperti perceptrons multilayer, karena mereka berada dalam persaingan langsung dengan SVM.

Satu manfaat spesifik yang dimiliki model-model ini dibandingkan SVM adalah ukurannya tetap: mereka adalah model parametrik , sedangkan SVM non-parametrik. Artinya, dalam JST Anda memiliki banyak lapisan tersembunyi dengan ukuran h 1 hingga h ntergantung pada jumlah fitur, ditambah parameter bias, dan mereka yang membentuk model Anda. Sebaliknya, SVM (setidaknya yang kernel) terdiri dari satu set vektor dukungan, dipilih dari set pelatihan, dengan bobot masing-masing. Dalam kasus terburuk, jumlah vektor pendukung persis jumlah sampel pelatihan (meskipun itu terutama terjadi dengan set pelatihan kecil atau dalam kasus degenerasi) dan secara umum ukuran modelnya skala secara linear. Dalam pemrosesan bahasa alami, pengklasifikasi SVM dengan puluhan ribu vektor dukungan, masing-masing memiliki ratusan ribu fitur, tidak pernah terdengar sebelumnya.

Juga, pelatihan jaring FF secara online sangat sederhana dibandingkan dengan pemasangan SVM online, dan memprediksi bisa sedikit lebih cepat.

EDIT : semua hal di atas berkaitan dengan kasus umum SVM kernel. Linear SVM adalah kasus khusus dalam bahwa mereka adalah parametrik dan memungkinkan pembelajaran online dengan algoritma sederhana seperti gradient descent stokastik.


12
Alasan lain dapat ditemukan dalam makalah ini: yann.lecun.com/exdb/publis/pdf/bengio-lecun-07.pdf . Singkatnya, penulis menyatakan bahwa "arsitektur dalam" dapat mewakili perilaku / fungsi "cerdas" dll. Lebih efisien daripada "arsitektur dangkal" seperti SVM.
alfa

1
Sebagai tambahan, pembelajaran mendalam kehilangan "keuntungan" yang diberikan di sini untuk MLP (ukuran tetap, pelatihan sederhana). Saya tidak yakin bahwa kelebihan ini sepadan.
Muhammad Alkarouri

6
@MuhammadAlkarouri: pembelajaran mendalam adalah serangkaian teknik yang cukup luas, tetapi teknik yang saya kenal mempertahankan manfaat model menjadi parametrik (ukuran tetap).
Fred Foo

Dua komentar: titik pelatihan online itu benar, tetapi ada varian pengklasifikasian mirip-SVM yang dirancang khusus untuk pembelajaran online, yang disebut MIRA (sejenis pengelompokan pasif-agresif) yang pembaruannya sepele. Kedua, perlu ditunjukkan bahwa banyak jaring saraf dapat dirumuskan sebagai SVM melalui trik kernel.
Ben Allison

1
@ FredFoo juga JST dapat terjebak di minimum lokal di mana sebagai mesin vektor dukungan tidak rentan terhadap masalah ini.
turis

62

Satu keuntungan nyata dari jaringan syaraf tiruan dari pada mesin-mesin vektor pendukung adalah bahwa jaringan syaraf tiruan mungkin memiliki sejumlah output, sementara mesin-mesin vektor pendukung hanya memiliki satu. Cara paling langsung untuk membuat n-ary classifier dengan mesin vektor dukungan adalah dengan membuat mesin dukungan n dan melatih masing-masing satu per satu. Di sisi lain, classifier n-ary dengan jaringan saraf dapat dilatih dalam sekali jalan. Selain itu, jaringan saraf akan lebih masuk akal karena satu kesatuan, sedangkan mesin vektor dukungan adalah sistem yang terisolasi. Ini sangat berguna jika keluarannya saling terkait.

Misalnya, jika tujuannya adalah untuk mengklasifikasikan angka tulisan tangan, sepuluh mesin vektor dukungan akan dilakukan. Setiap mesin dukungan vektor akan mengenali tepat satu digit, dan gagal mengenali semua yang lain. Karena setiap digit tulisan tangan tidak dapat dimaksudkan untuk menampung informasi lebih dari sekadar kelasnya, tidak masuk akal untuk mencoba menyelesaikannya dengan jaringan saraf tiruan.

Namun, misalkan tujuannya adalah untuk memodelkan keseimbangan hormon seseorang (untuk beberapa hormon) sebagai fungsi faktor fisiologis yang mudah diukur seperti waktu sejak makan terakhir, detak jantung, dll ... Karena faktor-faktor ini semuanya saling terkait, saraf tiruan regresi jaringan lebih masuk akal daripada mendukung regresi mesin vektor.


18
Sebenarnya, ada formulasi multiclass benar dari mesin vektor dukungan (lihat makalah Crammer & Singer). Saya percaya LibSVM berisi implementasi dari ini.
Fred Foo

3
Namun, melatih multiclass SVM tidak begitu mudah dan kinerjanya tampaknya lebih baik dalam OVA daripada pendekatan AVA.
crodriguezo

3
"Tidak masuk akal untuk mencoba menyelesaikan ini dengan jaringan saraf tiruan" Anda dapat menggunakan jaringan saraf untuk menyelesaikan klasifikasi angka tulisan tangan. Saya telah melakukan ini sebagai tugas untuk kelas. Lapisan output berisi probabilitas semua digit. Kelas dengan probabilitas tertinggi digunakan sebagai hipotesis. Saya memiliki tingkat akurasi 94%.
user3266824

Maksud Anda membuat n angka 1 vs N-1 SVM pengklasifikasi vs menggunakan NN untuk membuat n output. SVM tampaknya lebih lambat dengan cara ini?
mskw

@ user3266824 Ya, kutipan itu tidak menua dengan baik.
runDOSrun

46

Satu hal yang perlu diperhatikan adalah bahwa keduanya sebenarnya sangat terkait. SVM linear setara dengan NN single-layer (yaitu, perceptrons), dan NN multi-layer dapat diekspresikan dalam istilah SVM. Lihat di sini untuk beberapa detail.


18

Jika Anda ingin menggunakan kernel SVM, Anda harus menebak kernelnya. Namun, JST adalah penduga universal dengan hanya menebak yang harus dilakukan adalah lebar (akurasi aproksimasi) dan tinggi (efisiensi aproksimasi). Jika Anda mendesain masalah optimisasi dengan benar, Anda tidak terlalu fit (silakan lihat daftar pustaka untuk over-fitting). Ini juga tergantung pada contoh pelatihan jika mereka memindai ruang pencarian dengan benar dan seragam. Penemuan lebar dan kedalaman adalah subjek pemrograman bilangan bulat.

Misalkan Anda memiliki fungsi terikat f (.) Dan aproksimator universal terikat pada I = [0,1] dengan rentang lagi I = [0,1] misalnya yang diparetrize dengan urutan nyata dukungan kompak U (., A) dengan properti yang ada urutan dengan

lim sup { |f(x) - U(x,a(k) ) | : x } =0

dan Anda menggambar contoh dan tes (x,y)dengan distribusi D onIxI .

Untuk dukungan yang ditentukan, apa yang Anda lakukan adalah menemukan yang terbaik sehingga

sum {  ( y(l) - U(x(l),a) )^{2} | : 1<=l<=N } is minimal

Biarkan ini a=aa yang merupakan variabel acak !, pas kemudian

rata-rata menggunakan D and D^{N} of ( y - U(x,aa) )^{2}

Izinkan saya menjelaskan mengapa, jika Anda memilih aasedemikian rupa sehingga kesalahan diminimalkan, maka untuk sekumpulan nilai yang jarang Anda miliki sangat cocok. Namun, karena mereka jarang, rata-rata tidak pernah 0. Anda ingin meminimalkan yang kedua meskipun Anda memiliki pendekatan diskrit untuk D. Dan perlu diingat bahwa panjang dukungan gratis.


14

Satu jawaban yang saya lewatkan di sini: Multi-layer perceptron dapat menemukan hubungan antara fitur. Misalnya diperlukan dalam visi komputer ketika gambar mentah disediakan untuk algoritma pembelajaran dan sekarang fitur canggih dihitung. Pada dasarnya level menengah dapat menghitung fitur baru yang tidak dikenal.


12

Kami juga harus mempertimbangkan bahwa sistem SVM dapat diterapkan langsung ke ruang non-metrik, seperti seperangkat grafik atau string berlabel. Faktanya, fungsi kernel internal dapat digeneralisasikan dengan benar ke hampir semua jenis input, asalkan persyaratan kepastian positif dari kernel terpenuhi. Di sisi lain, untuk dapat menggunakan JST pada set grafik berlabel, prosedur embedding eksplisit harus dipertimbangkan.


6
Dalam pikiran saya, membangun kernel yang masuk akal dan membangun penanaman metrik yang masuk akal sama-sama bermasalah. Jadi ini hanya komentar bahwa mungkin ada kernel yang lebih bervariasi daripada metrik, tapi saya tidak benar-benar membelinya. ohli.de/download/papers/Deza2009.pdf
JeremyKun
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.