Mengapa jaringan saraf convolutional bekerja?


22

Saya sering mendengar orang mengatakan bahwa mengapa jaringan saraf convolutional masih kurang dipahami. Apakah diketahui mengapa jaringan saraf convolutional selalu berakhir dengan belajar fitur yang semakin canggih saat kita naik lapisan? Apa yang menyebabkan mereka membuat setumpuk fitur dan apakah ini juga berlaku untuk jenis jaringan saraf dalam lainnya?


Penjelasan hebat dari Jeremy Howard di paruh kedua video ini: youtube.com/watch?v=ACU-T9L4_lI
Dan

2
Saya pikir Anda salah paham. Kami benar-benar memahami dengan baik mengapa konvoi berfungsi sebagai kelas algoritma. Di sisi lain, seringkali sangat sulit untuk memahami mengapa model tertentu membuat prediksi tertentu. Inilah sebabnya kami menyebutnya "model kotak hitam: proses inferensi mereka tidak jelas bagi kami. Itu tidak berarti kami bingung mengapa mereka efektif.
David Marx

Jawaban:


19

Sebenarnya saya kira pertanyaannya agak luas! Bagaimanapun.

Memahami Jaring Konvolusi

Apa yang dipelajari dalam ConvNetsupaya meminimalkan fungsi biaya untuk mengategorikan input dengan benar dalam tugas klasifikasi. Semua perubahan parameter dan filter yang dipelajari adalah untuk mencapai tujuan yang disebutkan.

Fitur-Fitur yang Dipelajari dalam Berbagai Lapisan

Mereka mencoba mengurangi biaya dengan mempelajari fitur tingkat rendah, kadang-kadang tidak berarti, seperti garis-garis horizontal dan vertikal di lapisan pertama mereka dan kemudian menumpuknya untuk membuat bentuk abstrak, yang sering memiliki makna, di lapisan terakhir mereka. Untuk menggambarkan gambar ini. 1, yang telah digunakan dari sini , dapat dipertimbangkan. Input adalah bus dan gird menunjukkan aktivasi setelah melewati input melalui berbagai filter di lapisan pertama. Seperti dapat dilihat bingkai merah yang merupakan aktivasi filter, yang parameternya telah dipelajari, telah diaktifkan untuk tepi yang relatif horizontal. Bingkai biru telah diaktifkan untuk tepi yang relatif vertikal. Mungkin saja ituConvNetspelajari filter tidak dikenal yang bermanfaat dan kami, misalnya praktisi penglihatan komputer, belum menemukan bahwa mereka mungkin berguna. Bagian terbaik dari jaring ini adalah bahwa mereka mencoba menemukan filter yang sesuai sendiri dan tidak menggunakan filter kami yang terbatas. Mereka mempelajari filter untuk mengurangi jumlah fungsi biaya. Seperti disebutkan filter ini belum tentu diketahui.

** Gambar 1. ** * Aktivasi tingkat rendah *

Pada lapisan yang lebih dalam, fitur-fitur yang dipelajari pada lapisan sebelumnya bersatu dan membuat bentuk yang sering memiliki makna. Dalam makalah ini telah dibahas bahwa lapisan-lapisan ini mungkin memiliki aktivasi yang berarti bagi kita atau konsep-konsep yang memiliki makna bagi kita, sebagai manusia, dapat didistribusikan di antara aktivasi lainnya. Dalam gbr. 2 bingkai hijau menunjukkan aktivatin filter di lapisan kelima aConvNet. Filter ini peduli dengan wajah. Misalkan yang merah peduli dengan rambut. Ini memiliki makna. Seperti dapat dilihat ada aktivasi lain yang telah diaktifkan tepat di posisi wajah khas dalam input, bingkai hijau adalah salah satunya; Bingkai biru adalah contoh lain dari ini. Dengan demikian, abstraksi bentuk dapat dipelajari dengan filter atau banyak filter. Dengan kata lain, setiap konsep, seperti wajah dan komponennya, dapat didistribusikan di antara filter. Dalam kasus di mana konsep didistribusikan di antara lapisan yang berbeda, jika seseorang melihat masing-masing, mereka mungkin canggih. Informasi tersebut didistribusikan di antara mereka dan untuk memahami bahwa informasi semua filter itu dan aktivasinya harus dipertimbangkan walaupun mungkin terlihat sangat rumit.

** Gambar 2. ** * Aktivasi tingkat tinggi *

CNNsseharusnya tidak dianggap sebagai kotak hitam sama sekali. Zeiler et all dalam makalah yang luar biasa ini telah membahas pengembangan model yang lebih baik direduksi menjadi trial and error jika Anda tidak memiliki pemahaman tentang apa yang dilakukan di dalam jaring ini. Makalah ini mencoba memvisualisasikan peta fitur di ConvNets.

Kemampuan untuk Menangani Berbagai Transformasi untuk Menyamaratakan

ConvNetsgunakan poolinglayer tidak hanya untuk mengurangi jumlah parameter tetapi juga memiliki kemampuan untuk menjadi tidak sensitif terhadap posisi yang tepat dari setiap fitur. Juga penggunaannya memungkinkan lapisan untuk mempelajari fitur yang berbeda yang berarti lapisan pertama mempelajari fitur tingkat rendah sederhana seperti tepi atau busur, dan lapisan yang lebih dalam mempelajari fitur yang lebih rumit seperti mata atau alis. Max Poolingmisalnya mencoba untuk menyelidiki apakah fitur khusus ada di kawasan khusus atau tidak. Gagasan poolinglapisan sangat berguna tetapi hanya mampu menangani transisi di antara transformasi lainnya. Meskipun filter di lapisan yang berbeda mencoba menemukan pola yang berbeda, misalnya wajah yang diputar dipelajari menggunakan lapisan yang berbeda dari wajah yang biasa,CNNsoleh sana sendiri tidak memiliki lapisan untuk menangani transformasi lainnya. Untuk mengilustrasikan ini anggaplah bahwa Anda ingin mempelajari wajah-wajah sederhana tanpa rotasi dengan jaring minimal. Dalam hal ini model Anda dapat melakukannya dengan sempurna. misalkan Anda diminta mempelajari semua jenis wajah dengan rotasi wajah sewenang-wenang. Dalam hal ini model Anda harus jauh lebih besar dari jaring yang dipelajari sebelumnya. Alasannya adalah bahwa harus ada filter untuk mempelajari rotasi ini di input. Sayangnya ini tidak semua transformasi. Masukan Anda juga dapat terdistorsi. Kasus-kasus ini membuat Max Jaderberg dan semua marah. Mereka menyusun makalah ini untuk menangani masalah-masalah ini untuk menenangkan kemarahan kita sebagai masalah mereka.

Jaringan Saraf Konvolusional Bekerja

Akhirnya setelah merujuk pada poin-poin ini, mereka bekerja karena mereka mencoba untuk menemukan pola dalam data input. Mereka menumpuknya untuk membuat konsep abstrak dengan lapisan konvolusi di sana. Mereka mencoba mencari tahu apakah data input memiliki masing-masing konsep ini atau tidak di sana lapisan padat untuk mencari tahu kelas mana data input milik.

Saya menambahkan beberapa tautan yang bermanfaat:


12

ConvNets berfungsi karena mereka mengeksploitasi lokalitas fitur. Mereka melakukannya pada granularities yang berbeda, oleh karena itu mampu memodelkan fitur tingkat yang lebih tinggi secara hierarkis . Mereka adalah terjemahan terjemahan berkat unit penyatuan. Mereka bukan invarian rotasi per se , tetapi mereka biasanya menyatu dengan filter yang merupakan versi rotasi dari filter yang sama , karenanya mendukung input yang diputar.

Saya tahu tidak ada arsitektur saraf lain yang mendapat keuntungan dari fitur lokalitas dalam arti yang sama seperti yang dilakukan ConvNets.


1
Saya akan mengatakan bahwa RNN mendapat manfaat dengan cara yang mirip dengan CNN, menggunakan kembali bobot dari seri waktu. CNNs juga dapat dianggap sebagai tidak selalu terjemahan invarian, tetapi "dimensi invarian" (walaupun saya tidak yakin itu adalah istilah yang benar atau dikenal)
Neil Slater

Terima kasih atas jawaban anda. Koreksi saya jika saya salah pada kesimpulan berikut - 1. Tampaknya kami secara implisit merancang ConvNets untuk mempelajari fitur level tinggi secara hierarkis meskipun dikumpulkan. Ini bukan kebetulan bahwa fitur mendapatkan lapisan canggih. 2. Memasukkan informasi domain dalam desain jaringan saraf seseorang dapat membuat perbedaan besar dalam efisiensi pembelajaran. ConvNets dan RNN berusaha melakukan hal itu.
Puji Tuhan

Pernyataan Anda 1 dan 2 tampaknya benar bagi saya.
ncasas

1
Saya pikir jaringan kapsul seharusnya memanfaatkan fitur lokalitas dengan cara yang sama
David Marx

3

Seseorang seharusnya tidak pernah melupakan komponen lain dalam ConvNet yang khas. Filter konvolusi memilih fitur invarian spasial, seperti tepi dan lingkaran. Fitur-fitur ini dikuantifikasi dalam lapisan penyatuan yang mengikuti lapisan C. Akhirnya, mereka dimasukkan ke dalam (biasanya) beberapa lapisan yang sepenuhnya terhubung (fc). Kredit harus diberikan kepada lapisan yang terhubung sepenuhnya ini yang tidak lebih dari apa yang Anda temukan di MLP biasa.


3

Jaringan saraf convolutional berfungsi karena merupakan perluasan yang baik dari algoritma pembelajaran mendalam standar.

Dengan sumber daya dan uang yang tidak terbatas, tidak perlu konvolusional karena algoritma standar juga akan berfungsi. Namun, konvolusional lebih efisien karena mengurangi jumlah parameter . Pengurangan ini dimungkinkan karena memanfaatkan keunggulan fitur, persis seperti yang ditulis oleh @ncasas.


Ini harus menjadi jawaban terbaik
Jie.Zhou

1

Apakah diketahui mengapa jaringan saraf convolutional selalu berakhir dengan belajar fitur yang semakin canggih saat kita naik lapisan?

Ini adalah matematika murni. Jaringan saraf, pada akhirnya, adalah fungsi matematika yang besar. Dan semakin dalam jaringan, semakin besar fungsi yang diwakilinya. Dan yang lebih besar, saya jelas berarti dimensi tinggi. Fitur yang dipelajari lebih canggih karena mereka adalah hasil dari fungsi yang lebih canggih.

Apa yang menyebabkan mereka membuat banyak fitur

Yang cukup menarik, jaringan saraf konvensional terinspirasi oleh biologi kita sendiri, sebenarnya kucing. Hubel dan Wiesel melakukan percobaan pada korteks visual kucing, dan mereka menyadari bahwa cahaya dirasakan oleh tumpukan bidang optik. Inilah yang menginspirasikan lapisan konvolusional dan arsitektur yang lebih dalam.


0

Membangun ncasas dan horaceT jawaban, ConvNets sangat efisien karena:

  1. Mereka tidak tertarik dengan transformasi geometris dan mempelajari fitur yang semakin rumit dan terperinci, karenanya menjadi ekstraktor fitur hierarkis yang kuat berkat lapisan konvolusional.
  2. Mereka menggabungkan fitur yang diekstraksi dan menggabungkannya secara non linier untuk memprediksi output dan karenanya menjadi pengklasifikasi yang kuat berkat lapisan yang sepenuhnya terhubung.

Jika Anda ingin mempelajari lebih lanjut tentang convnets dan blok yang berbeda membangunnya serta intuisi yang mendasari, berikut adalah posting yang baru-baru ini saya tulis di blog pribadi saya yang membahas rinciannya.


3
Harap dicatat jika Anda ingin mempromosikan produk / blog Anda sendiri, Anda harus mengungkapkan afiliasi Anda dalam jawabannya , jika tidak, jawaban Anda mungkin ditandai sebagai spam. Jika Anda tidak berafiliasi dengan situs ini, saya sarankan Anda mengatakannya untuk mencegah hal ini. Silakan baca Bagaimana tidak menjadi spammer
AJ
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.