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).
sumber
Jawaban:
SVM adalah penggolong yang kuat. Ini memiliki beberapa keuntungan bagus (yang saya kira bertanggung jawab atas popularitasnya) ... Ini adalah:
Ada beberapa kelemahan yang signifikan juga.
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.
Penggolong yang sangat efektif, yang sangat populer saat ini, adalah Hutan Acak . Keuntungan utama adalah:
sumber
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.
sumber