Memilih ukuran filter, langkah dll dalam CNN?

12

Saya telah melihat ceramah CS231N dari Stanford dan saya mencoba untuk membungkus kepala saya di beberapa masalah dalam arsitektur CNN. Apa yang saya coba pahami adalah jika ada beberapa pedoman umum untuk memilih ukuran filter konvolusi dan hal-hal seperti langkah atau apakah ini lebih merupakan seni daripada sains?

Kumpulan yang saya mengerti ada terutama untuk menginduksi beberapa bentuk invarian terjemahan ke dalam model. Di sisi lain, saya tidak memiliki intuisi yang baik tentang bagaimana ukuran langkah diambil. Apakah ada beberapa pedoman lain untuk itu kecuali mencoba mengompresi ukuran lapisan saat ini atau mencoba untuk mencapai bidang reseptif yang lebih besar ke neuron? Adakah yang tahu makalah bagus atau serupa yang membahas hal ini?

dst
sumber

Jawaban:

9

Sebagai teks pengantar untuk semua masalah yang Anda sebutkan, saya akan merekomendasikan buku pembelajaran yang mendalam . Ini memberikan gambaran luas bidang. Ini menjelaskan peran yang dimainkan masing-masing parameter tersebut.

Menurut pendapat saya sangat membantu untuk membaca tentang beberapa arsitektur paling populer (resnet, inception, alex-net), dan mengekstrak ide-ide kunci yang mengarah ke keputusan desain. Setelah membaca buku tersebut.

Dalam silabus kuliah yang Anda rujuk, dijelaskan dengan sangat rinci bagaimana lapisan konvolusi menambahkan sejumlah besar parameter (bobot, bias) dan neuron. Lapisan ini, setelah dilatih, ia mampu mengekstraksi pola makna dari gambar. Untuk lapisan bawah, filter tersebut terlihat seperti ekstraktor tepi. Untuk lapisan yang lebih tinggi, bentuk-bentuk primitif digabungkan untuk menggambarkan bentuk yang lebih kompleks. Filter-filter itu melibatkan sejumlah besar parameter, dan masalah besar dalam desain jaringan yang dalam tentang bagaimana bisa menggambarkan bentuk-bentuk kompleks dan masih dapat mengurangi jumlah parameter.

Karena piksel tetangga sangat berkorelasi (khususnya di lapisan terendah), masuk akal untuk mengurangi ukuran output dengan subsampling (penyatuan) respons filter. Semakin jauh dua piksel terpisah dari satu sama lain, semakin sedikit yang berkorelasi. Oleh karena itu, langkah besar dalam lapisan penyatuan menyebabkan hilangnya informasi yang tinggi. Berbicara secara bebas. Langkah 2 dan ukuran kernel 2x2 untuk lapisan kumpulan adalah pilihan umum.

Pendekatan yang lebih canggih adalah jaringan Inception ( Melangkah lebih dalam dengan konvolusi ) di mana idenya adalah untuk meningkatkan sparsity tetapi masih dapat mencapai akurasi yang lebih tinggi, dengan memperdagangkan sejumlah parameter dalam lapisan convolutional vs modul awal untuk jaringan yang lebih dalam.

Makalah bagus yang memberikan petunjuk tentang arsitektur saat ini dan peran beberapa dimensi desain dalam cara terstruktur dan sistematis adalah SqueezeNet: Akurasi tingkat AlexNet dengan parameter 50x lebih sedikit dan ukuran model <0,5MB . Itu dibangun di atas ide-ide yang diperkenalkan dalam model yang disebutkan sebelumnya.

jpmuc
sumber
1

Jika Anda mempertimbangkan belajar lebih baik dari waktu belajar, saya ingin menyarankan ukuran kernel dan langkah ini;

Mengenai ukuran filter, saya pikir itu tergantung pada karakteristik gambar Anda. Misalnya, sejumlah besar piksel diperlukan untuk jaringan mengenali objek, Anda dapat menggunakan filter yang lebih besar, di sisi lain jika objek agak kecil atau fitur lokal, Anda mempertimbangkan untuk menerapkan filter yang lebih kecil relatif terhadap ukuran gambar input Anda.

Untuk ukuran langkah, bagi saya, langkah kecil akan lebih baik dalam menangkap detail gambar input yang lebih bagus.

Bagi saya, manfaat penggabungan adalah mengekstrak fitur paling tajam dari sebuah gambar. Secara umum, fitur paling tajam terlihat seperti representasi level bawah terbaik dari suatu gambar.

Cloud Cho
sumber