Trik kernelisasi, untuk jaringan saraf

9

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.)RnRmmn

DW
sumber
2
Trik kernel berfungsi ketika akses komputasi Anda ke titik data Anda terdiri dari komputasi produk dalam. Saya tidak yakin itulah yang terjadi pada jaringan saraf.
Yuval Filmus

Jawaban:

6

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.

alto
sumber
Terima kasih. Iya. Saya tahu kita dapat menganggap SVM sebagai memetakan input asli ke ruang dimensi yang lebih tinggi (atau bahkan tak terbatas), kemudian melakukan batas keputusan linier dalam ruang dimensi yang lebih tinggi itu. Jadi, dapatkah kita melakukannya dengan jaringan saraf juga? Bisakah kita memetakan input ke ruang dimensi yang lebih tinggi, lalu memperlakukannya sebagai input aktual ke jaringan saraf? Saya kira kita bisa (dan saya kira kita juga bisa melakukan ini di setiap lapisan, jika kita mau). Dan, jika kita bisa, pertanyaan saya sebenarnya adalah: apakah ini menawarkan peningkatan besar pada jaringan saraf (dalam praktiknya) seperti halnya untuk SVM? Mengapa atau mengapa tidak?
DW
Saya tahu tentang teorema pendekatan Universal, tetapi itu tidak benar-benar menjawab pertanyaan (seperti yang Anda tunjukkan). Yang saya pedulikan adalah seberapa baik kerja saraf cenderung bekerja dalam praktik. Saya bertanya-tanya apakah preprocessing input melalui trik kernelisasi mungkin membuat jaringan saraf cenderung bekerja lebih baik dalam praktiknya. Tentu saja tidak ada jaminan dan akan selalu ada situasi di mana apa pun yang Anda lakukan dapat memperburuk keadaan, tetapi saya bertanya-tanya tentang perilaku khas, dalam praktiknya (dalam arti yang sama dengan yang kita katakan kernelisasi cenderung membuat SVM secara signifikan lebih efektif, dalam praktek).
DW
2
@DW Alasan kernelisasi membuat SVM lebih efektif adalah karena memungkinkan mereka untuk mendefinisikan batas keputusan non-linear. Jaringan saraf sudah dapat menentukan batas keputusan non-linear, sehingga satu-satunya manfaat memproyeksikan data Anda ke ruang dimensi yang lebih tinggi adalah membuat masalah optimisasi lebih mudah.
alto
1

Trik kernel dimungkinkan untuk SVM karena properti khusus dari proses pembelajaran untuk SVM. Jaringan saraf tampaknya tidak memiliki properti itu (sejauh yang saya tahu).

x1,...,xnRdxsayaxsayaxsayaxj

KK(xsaya,xj)ϕ:RdRmm>dK(xsaya,xj)=ϕ(xsaya)ϕ(xj)ϕK(xsaya,xj)ϕ(xsaya),ϕ(xj)K(xsaya,xj)HAI(d)HAI(m) waktu.

xsayaxjK(xsaya,xj)xsaya

DW
sumber
1

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.masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

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. masukkan deskripsi gambar di sini

penjelajah
sumber