Saya sudah belajar tentang jaringan saraf dan SVM. Tutorial yang saya baca menekankan betapa pentingnya kernelisasi, untuk SVM. Tanpa fungsi kernel, SVM hanyalah sebuah classifier linier. Dengan kernelisasi, SVMs juga dapat menggabungkan fitur-fitur non-linear, yang membuatnya menjadi classifier yang lebih kuat.
Sepertinya saya juga bisa menerapkan kernelisasi ke jaringan saraf, tetapi tidak ada tutorial tentang jaringan saraf yang pernah saya sebutkan. Apakah orang-orang biasa menggunakan trik kernel dengan jaringan saraf? Saya kira seseorang pasti telah bereksperimen dengannya untuk melihat apakah itu membuat perbedaan besar. Apakah kernelisasi membantu jaringan saraf sebanyak itu membantu SVM? Mengapa atau mengapa tidak?
(Saya dapat membayangkan beberapa cara untuk memasukkan trik kernel ke dalam jaringan saraf. Salah satu caranya adalah dengan menggunakan fungsi kernel yang sesuai untuk memproses kembali input, vektor dalam , ke dalam input dimensi yang lebih tinggi, vektor di untuk . Untuk jaring multi-layer, alternatif lain adalah menerapkan fungsi kernel pada setiap level jaringan saraf.)
Jawaban:
Saya pikir Anda mungkin membingungkan terminologi dengan cara yang membuat masalah ini membingungkan. SVM bekerja dengan mendefinisikan batas keputusan linier, yaitu hyperplane. Kita dapat mendefinisikan hyperplane ini dalam hal produk dalam di antara titik-titik. Oleh karena itu, jika kita mendefinisikan produk dalam ini berada dalam ruang dimensi tinggi, atau bahkan tak terbatas, apa yang tampak seperti hyperplane di ruang baru ini adalah linier yang tidak perlu dalam ruang fitur asli. Jadi semuanya masih linier, satu-satunya hal yang telah kami lakukan adalah secara implisit (melalui produk dalam baru) menyematkan titik-titik dalam ruang dimensi yang lebih tinggi. Mungkin Anda sudah tahu semua ini.
Ada 2 masalah untuk dipertimbangkan sehubungan dengan jaringan saraf. Yang pertama dibesarkan oleh @Yuval Filmus, karena jaringan saraf lapisan tersembunyi bergantung pada lebih dari sekedar produk dalam antara titik-titik. Jika Anda menghapus lapisan tersembunyi, Anda hanya memiliki sesuatu seperti regresi logistik, yang ada versi kernelnya . Mungkin ada cara untuk mengatasi ini, tapi saya tidak melihatnya.
Kedua, Anda menyebutkan preprocessing input dengan memproyeksikan ke ruang dimensi yang lebih tinggi, tetapi tidak terbatas. Jaringan saraf mendefinisikan permukaan keputusan dan permukaan ini tidak dibatasi menjadi linear. Ini berarti keuntungan dari memproyeksikan titik ke ruang dimensi yang lebih tinggi akan berbeda, yaitu, mungkin membuatnya lebih mudah untuk menemukan set bobot yang baik, tetapi kami belum tentu membuat model kami lebih kuat. Ini mengikuti dari teorema perkiraan Universal yang memberi tahu kita dengan cukup banyak unit tersembunyi kita bisa memperkirakan fungsi apa pun (di bawah beberapa batasan). Pernyataan terakhir ini agak hampa dan saya agak benci menyebutkannya. Dengan tidak memberi tahu Anda apa-apa tentang cara menemukan bobot yang tepat, itu tidak membawa banyak ke meja dari perspektif aplikasi.
sumber
Trik kernel dimungkinkan untuk SVM karena properti khusus dari proses pembelajaran untuk SVM. Jaringan saraf tampaknya tidak memiliki properti itu (sejauh yang saya tahu).
sumber
Saya ingin berbagi beberapa pengamatan yang telah saya buat. Dimensi input: 144. Saya telah melatih jaringan saraf, dan selama pelatihan, output dari lapisan tersembunyi diberikan sebagai input untuk regresi logistik, dan nilai rata-rata fungsi kehilangan setelah pemasangan model diplot.
Kita dapat melihat bahwa dengan meningkatnya ukuran lapisan, fitur, atau output dari lapisan tersembunyi menjadi terpisah secara linear. Walaupun ini adalah tujuan mempelajari vektor fitur yang di-kernel - kan , jaringan saraf tampaknya melakukan ini secara internal.
sumber