Manfaat SVM sebagai alat untuk pengenalan angka

8

Saya cukup baru dalam pengenalan digit, dan saya perhatikan bahwa banyak tutorial menggunakan klasifikasi SVM, misalnya:

Saya ingin tahu apakah ada manfaat (khusus domain) untuk alat itu, dibandingkan dengan misalnya

  • Belajar jaringan saraf yang mendalam
  • Klasifikasi berdasarkan k-means

Terima kasih atas komentarnya. Klarifikasi, mengapa SVM adalah alat yang salah untuk pengakuan angka, akan dihargai juga.

Karel Macek
sumber

Jawaban:

9

Tutorial untuk banyak pengklasifikasi berbeda didasarkan pada pengenalan angka, khususnya set data MNIST. Saya pikir ini sebagian besar karena dataset ini sudah tersedia, mudah dimengerti, dan membutuhkan preprocessing minimal. Ini juga merupakan dataset patokan umum dalam literatur.

Saya tidak mengetahui argumen bahwa keluarga pengklasifikasi tertentu secara intrinsik paling cocok untuk pengenalan angka. Saya pikir ini akan menjadi argumen yang sulit untuk dibuat karena 1) Distribusi digit berasal dari dunia nyata dan kami tidak memiliki deskripsi matematika yang komprehensif tentang itu, dan 2) Himpunan semua SVM, semua jaring saraf, dll. tidak terbatas, dan kami hanya berhasil menjelajahi sebagian kecil. Mungkin neural net yang paling terkenal lebih baik daripada SVM yang paling terkenal, tetapi fungsi kernel baru bersembunyi di suatu tempat di ruang luas yang belum ditemukan yang akan membuat SVM lebih baik. Mungkin ada arsitektur jaringan syaraf lain yang masih lebih baik. Saya kira argumen dapat dibuat dalam kasus-kasus tertentu (misalnya Bayes naif pada piksel mentah mungkin merupakan ide yang buruk karena asumsi-asumsinya secara terang-terangan dilanggar).

Ada banyak alasan untuk lebih memilih setiap jenis pengklasifikasi daripada yang lain dalam keadaan yang berbeda (misalnya waktu / memori yang diperlukan untuk pelatihan / evaluasi, jumlah penyesuaian / eksplorasi yang diperlukan untuk mendapatkan model kerja yang layak, dll.). Alasan-alasan ini tidak spesifik untuk pengenalan angka, jadi saya tidak akan membahasnya di sini.

Tentu saja ada trik khusus domain yang dapat membuat pengklasifikasi lebih cocok untuk pengenalan angka. Beberapa trik ini bekerja dengan meningkatkan invarian terhadap transformasi tertentu yang orang harapkan dalam digit tulisan tangan (misalnya terjemahan, rotasi, penskalaan, deformasi). Misalnya, angka '0' harus berarti hal yang sama, bahkan jika itu bergeser ke kiri dan sedikit melengkung. Beberapa trik khusus untuk keluarga pengklasifikasi. Misalnya, jenis invarian ini dapat dimiliki dengan menggunakan kernel SVM tertentu, lapisan transformator spasial dalam jaring saraf, atau mungkin metrik jarak invarian untuk tetangga terdekat K. Trik lain dapat digunakan dengan banyak pengklasifikasi. Misalnya, dataset dapat ditambah dengan banyak salinan digit yang diubah, yang dapat membantu classifier mempelajari invarian yang tepat.

SVM, jaring saraf, dan bahkan kNN telah mencapai kinerja yang baik pada dataset MNIST. Metode lain juga berfungsi. Kinerja terbaik yang pernah saya dengar secara pribadi adalah dengan jaring saraf. Beberapa hasil diakumulasikan di berbagai makalah di sini dan di sini .

pengguna20160
sumber