Apakah Support Vector Machines masih dianggap "canggih" di ceruk pasar mereka?

58

Pertanyaan ini sebagai tanggapan atas komentar yang saya lihat pada pertanyaan lain.

Komentar tersebut mengenai silabus kursus Pembelajaran Mesin di Coursera, dan di sepanjang baris "SVM tidak banyak digunakan saat ini".

Saya sendiri baru saja menyelesaikan kuliah yang relevan, dan pemahaman saya tentang SVM adalah bahwa mereka adalah algoritma pembelajaran yang kuat dan efisien untuk klasifikasi, dan bahwa ketika menggunakan kernel, mereka memiliki "niche" yang mencakup sejumlah fitur mungkin 10 hingga 1000 dan jumlah sampel pelatihan mungkin 100 hingga 10.000. Batas sampel pelatihan adalah karena algoritma inti berputar di sekitar mengoptimalkan hasil yang dihasilkan dari matriks persegi dengan dimensi berdasarkan jumlah sampel pelatihan, bukan jumlah fitur asli.

Begitu juga komentar yang saya lihat merujuk beberapa perubahan nyata sejak kursus dibuat, dan jika demikian, apa perubahan itu: Algoritme baru yang mencakup "sweet spot" SVM juga, CPU yang lebih baik yang berarti keunggulan komputasi SVM tidak bernilai sebanyak ? Atau mungkin itu pendapat atau pengalaman pribadi komentator?

Saya mencoba mencari misalnya "adalah mesin dukungan vektor dari mode" dan tidak menemukan apa pun yang menyiratkan mereka sedang mendukung hal lain.

Dan Wikipedia memiliki ini: http://en.wikipedia.org/wiki/Support_vector_machine#Issues . . . titik pelekatan utama tampaknya adalah kesulitan dalam menafsirkan model. Yang membuat SVM baik untuk mesin prediksi kotak hitam, tetapi tidak begitu baik untuk menghasilkan wawasan. Saya tidak melihat itu sebagai masalah utama, hanya hal kecil yang perlu dipertimbangkan ketika memilih alat yang tepat untuk pekerjaan itu (bersama dengan sifat data pelatihan dan tugas belajar dll).

Neil Slater
sumber
6
Saya tidak mengerti - bukankah ini pertanyaan yang harus diposting di CrossValidated? Saya terus bingung tentang apa yang terjadi antara DataScience dan CrossValidated.
fnl
@ fnl: svms memiliki beberapa kompetisi sebagai pengklasifikasi dari solusi rekayasa yang kurang "murni" secara matematis, jadi saya pikir DataScience berada dalam posisi yang lebih baik untuk membuat perbandingan di sini. Meskipun saya berbagi kebingungan Anda!
Neil Slater

Jawaban:

47

SVM adalah penggolong yang kuat. Ini memiliki beberapa keuntungan bagus (yang saya kira bertanggung jawab atas popularitasnya) ... Ini adalah:

  • Efisiensi: Hanya vektor dukungan yang berperan dalam menentukan batas klasifikasi. Semua poin lain dari set pelatihan tidak perlu disimpan dalam memori.
  • Apa yang disebut kekuatan kernel: Dengan kernel yang tepat Anda dapat mengubah ruang fitur menjadi dimensi yang lebih tinggi sehingga menjadi terpisah secara linear. Gagasan kernel bekerja dengan objek sewenang-wenang di mana Anda dapat mendefinisikan beberapa gagasan kesamaan dengan bantuan produk dalam ... dan karenanya SVM dapat mengklasifikasikan objek sewenang-wenang seperti pohon, grafik dll.

Ada beberapa kelemahan yang signifikan juga.

  • Sensitivitas parameter: Kinerja sangat sensitif terhadap pilihan parameter regularisasi C, yang memungkinkan beberapa variasi dalam model.
  • Parameter ekstra untuk kernel Gaussian: Jari-jari kernel Gaussian dapat memiliki dampak signifikan pada akurasi classifier. Biasanya pencarian kotak harus dilakukan untuk menemukan parameter yang optimal. LibSVM memiliki dukungan untuk pencarian kisi.

SVM umumnya termasuk dalam kelas "Mesin Kernel Jarang". Vektor jarang dalam kasus SVM adalah vektor dukungan yang dipilih dari kriteria margin maksimum. Mesin vektor jarang lainnya seperti Relevance Vector Machine (RVM) berkinerja lebih baik daripada SVM. Gambar berikut menunjukkan kinerja komparatif keduanya. Pada gambar, sumbu x menunjukkan data satu dimensi dari dua kelas y = {0,1}. Model campuran didefinisikan sebagai P (x | y = 0) = Unif (0,1) dan P (x | y = 1) = Unif (.5,1,5) (Unif menunjukkan distribusi seragam). 1000 poin diambil sampel dari campuran ini dan SVM dan RVM digunakan untuk memperkirakan posterior. Masalah SVM adalah bahwa nilai yang diprediksi jauh dari peluang log yang sebenarnya.

RVM vs. SVM

Penggolong yang sangat efektif, yang sangat populer saat ini, adalah Hutan Acak . Keuntungan utama adalah:

  • Hanya satu parameter untuk disetel (yaitu jumlah pohon di hutan)
  • Parameter tidak sepenuhnya sensitif
  • Dapat dengan mudah diperluas ke beberapa kelas
  • Didasarkan pada prinsip probabilistik (memaksimalkan perolehan informasi timbal balik dengan bantuan pohon keputusan)
Debat
sumber
4
Saya tidak bermaksud terlalu kritis, tetapi SVM TIDAK efisien. Mereka memiliki kompleksitas kubik dalam banyak kasus, itulah sebabnya ada banyak penghentian secara bertahap.
indico
2
ya, metode konvergensi standar membutuhkan O (n ^ 3) ... tapi saya pikir saya telah melihat di suatu tempat (mungkin dari halaman rumah T. Joachims) bahwa itu telah dikurangi menjadi O (n ^ 2)
Debasis
4
@ indico untuk sebagian besar masalah praktis Kompleksitas pelatihan kernel SVM lebih dekat ke kuadratik. SMO Platt's cubic telah lama tidak digunakan. Itu masih terlalu tinggi untuk set data yang benar-benar besar, tetapi tidak seburuk yang Anda gambarkan. Linear SVM sangat efisien, dengan kompleksitas sublinear.
Marc Claesen
Keuntungan lain dari SVM: 1) Pekerjaan batin mereka dapat dibayangkan dengan baik oleh orang-orang yang kurang terbiasa dengan analisis data. [dan pada tingkat yang lebih rendah: 2) Jika umpan balik interaktif realtime oleh pakar (non data sains) diperlukan, SVM linier bisa menjadi pilihan yang lebih cepat - menghasilkan pelatihan yang lebih baik oleh para ahli.]
tsttst
2
Hutan Acak biasanya memiliki hiperparameter lain, seperti jumlah maksimum fitur per pohon, dan kedalaman maksimal. Perlu dicatat juga bahwa SVM mudah dimasukkan ke dalam produksi di lingkungan terbatas sumber daya - SVM tidak perlu banyak memori untuk menilai model.
David Anderson
8

Dalam menjawab pertanyaan ini satu perbedaan penting untuk dibuat adalah apakah kita berbicara tentang Mesin Vektor Dukungan linear atau non-linear , yaitu Mesin Vektor Dukungan kernel.

SVM linear

SVM linear adalah teori dan praktik model yang sangat baik ketika data Anda dapat dijelaskan oleh hubungan linier fitur Anda. Mereka lebih unggul daripada metode klasik seperti regresi linear (alias kuadrat-kecil) karena mereka kuat , dalam arti bahwa gangguan kecil dalam data input tidak menghasilkan perubahan signifikan dalam model. Ini diperoleh dengan mencoba menemukan garis (hyperplane) yang memaksimalkan margin antara titik data Anda. Hyperplane margin maksimum ini telah terbukti memberikan jaminan pada kemampuan generalisasi model atas poin data yang tidak terlihat, properti teoretis yang kurang dimiliki metode pembelajaran mesin lainnya.

SVM linear juga dapat ditafsirkan sebagai model linear lainnya, karena setiap fitur input memiliki bobot yang secara langsung mempengaruhi output model.

SVM linier juga sangat cepat untuk dilatih, menunjukkan waktu pelatihan bawah tanah untuk dataset yang sangat besar. Hal ini dicapai dengan memanfaatkan teknik keturunan gradien stokastik, banyak dengan cara metode pembelajaran mendalam saat ini.

SVM non-linear

SVM non-linear masih merupakan model linier, dan memiliki keuntungan teoretis yang sama, tetapi mereka menggunakan trik kernel yang disebut untuk membangun model linier ini di atas ruang yang diperbesar. Hasil yang terlihat adalah bahwa model yang dihasilkan dapat membuat keputusan non-linear pada data Anda. Karena Anda dapat memberikan persamaan penyandian kernel khusus antara titik data, Anda dapat menggunakan pengetahuan masalah untuk membuat fokus kernel seperti itu di bagian yang relevan dari masalah Anda. Namun, melakukan ini secara efektif bisa sulit, jadi secara umum hampir semua orang menggunakan kernel plug-and-play gaussian.

SVM non-linear sebagian dapat ditafsirkan, karena mereka memberi tahu Anda data pelatihan mana yang relevan untuk prediksi, dan mana yang tidak. Ini tidak mungkin untuk metode lain seperti Hutan Acak atau Jaringan Dalam.

Sayangnya SVM non-linear lambat. Algoritma state-of-the-art adalah Sequential Minimal Optimization , yang menunjukkan kinerja kuadratik, dan secara luas diimplementasikan melalui perpustakaan LIBSVM di sejumlah perpustakaan pembelajaran mesin, termasuk scikit-learning.

Popularitas metode ini

Memang benar bahwa SVM tidak begitu populer seperti dulu: ini dapat diperiksa dengan googling untuk makalah penelitian atau implementasi untuk SVM vs Hutan Acak atau metode Pembelajaran Jauh. Namun, mereka berguna dalam beberapa pengaturan praktis, khususnya dalam kasus linier.

Juga, ingatlah bahwa karena teorema makan siang tidak bebas, tidak ada metode pembelajaran mesin yang terbukti lebih unggul daripada yang lainnya daripada semua masalah. Meskipun beberapa metode bekerja lebih baik secara umum, Anda akan selalu menemukan kumpulan data di mana metode yang tidak biasa akan mencapai hasil yang lebih baik.

albarji
sumber