Bagaimana cara menentukan jumlah operator konvolusional di CNN?

10

Dalam tugas visi komputer, seperti klasifikasi objek, dengan Convolutional Neural Networks (CNN), jaringan memberikan kinerja yang menarik. Tapi saya tidak yakin bagaimana mengatur parameter di lapisan convolutional. Sebagai contoh, gambar grayscale ( 480x480), lapisan konvolusional pertama dapat menggunakan operator convolutional seperti 11x11x10, di mana angka 10 berarti jumlah operator convolutional.

Pertanyaannya adalah bagaimana menentukan jumlah operator konvolusional di CNN?

Zhi Lu
sumber

Jawaban:

11

Saya berasumsi bahwa ketika Anda mengatakan 11x11x10maksud Anda memiliki lapisan dengan filter 10, 11x11. Jadi jumlah konvolusi yang akan Anda lakukan hanyalah 10, konvolusi diskrit 2D per filter di bank filter Anda. Jadi, katakanlah Anda memiliki jaringan:

480x480x1    # your input image of 1 channel
11x11x10     # your first filter bank of 10, 11x11 filters
5x5x20       # your second filter bank of 20, 5x5 filters
4x4x100      # your final filter bank of 100, 4x4 filters    

Anda akan melakukan: konvolusi 2D multi-channel masing-masing dengan kedalaman 1, 10, dan 20 masing-masing. Seperti yang Anda lihat, kedalaman setiap konvolusi akan berubah sebagai fungsi dari kedalaman volume input dari lapisan sebelumnya.10+20+100=130

Tapi saya berasumsi bahwa Anda mencoba mencari cara membandingkan ini dengan konvolusi 2D saluran tunggal. Nah, Anda bisa mengalikan kedalaman setiap volume input dengan jumlah filter di setiap layer dan menambahkannya bersama-sama. Dalam kasus Anda: .10+200+2000=2,210

Sekarang ini hanya memberitahu Anda berapa banyak saluran tunggal 2D convolutions Anda lakukan, bukan bagaimana komputasi intensif setiap konvolusi adalah, intensitas komputasi masing-masing lilitan akan tergantung pada berbagai parameter termasuk image_size, image_depth, filter_size, Anda stride(seberapa jauh Anda melangkah antara masing-masing individu perhitungan filter), jumlah lapisan penyatuan yang Anda miliki, dll.

sabalaba
sumber