Saya mencoba memahami bidang reseptif CNN dengan lebih baik. Untuk melakukan itu saya ingin menghitung bidang reseptif dari setiap neuron di LeNet. Untuk MLP normal itu agak mudah (lihat http://deeplearning.net/tutorial/lenet.html#sparse-connectivity ), tetapi lebih sulit untuk menghitung bidang reseptif dari neuron dalam lapisan berikut satu atau lebih lapisan konvolusional dan lapisan penyatuan.
Apa bidang reseptif dari neuron dalam 2. lapisan konvolusional? Berapa besar itu di lapisan subsampling / pooling berikut? Dan apa rumus untuk menghitung ini?
Jawaban:
Jika Anda berpikir tentang jaring konvolusional sebagai turunan dari MLP standar, Anda bisa mengetahui bidang reseptif dengan cara yang persis sama dengan contoh yang Anda tautkan.
Ingatlah bahwa lapisan konvolusional pada dasarnya adalah singkatan untuk lapisan dengan banyak pola berulang, seperti pada gambar ini (dari jawaban ini , berasal dari sini ):
Setiap "piksel tujuan" dari gambar tersebut sesuai dengan neuron yang inputnya adalah kotak biru pada gambar sumber. Bergantung pada arsitektur jaringan Anda konvolusi mungkin tidak sama persis dengan piksel seperti itu, tetapi ide yang sama. Bobot yang digunakan sebagai input untuk semua neuron konvolusional terikat, tetapi itu tidak relevan dengan apa yang Anda pikirkan di sini.
Pooling neuron dapat dipikirkan dengan cara yang sama, menggabungkan bidang reseptif dari masing-masing input mereka.
sumber
Dalam Faster-rcnn, bidang penerimaan efektif dapat dihitung sebagai berikut (VGG16):
Img->
Conv1 (3) -> Conv1 (3) -> Pool1 (2) ==>
Conv2 (3) -> Conv2 (3) -> Pool2 (2) ==>
Conv3 (3) -> Conv3 (3) ) -> Conv3 (3) -> Pool3 (2) ==>
Conv4 (3) -> Conv4 (3) -> Conv4 (3) -> Pool4 (2) ==>
Conv5 (3) -> Conv5 (3) ) -> Conv5 (3) ====>
jendela 3 * 3 di peta fitur.
Mari kita ambil satu dimensi untuk kesederhanaan. Jika kita turun kembali dari ukuran 3, bidang penerimaan asli:
1). di awal Conv5: 3 + 2 + 2 + 2 = 9
2). di awal Conv4: 9 * 2 + 2 + 2 + 2 = 24
3). di awal Conv3: 24 * 2 + 2 + 2 + 2 = 54
4). di awal Conv2: 54 * 2 + 2 + 2 = 112
5). di awal Conv1 (input asli): 112 * 2 + 2 + 2 = 228
sumber