Dalam Alex Krizhevsky, et al. Klasifikasi imagenet dengan jaringan saraf convolutional yang mendalam mereka menyebutkan jumlah neuron di setiap lapisan (lihat diagram di bawah).
Input jaringan adalah 150.528-dimensi, dan jumlah neuron dalam lapisan jaringan yang tersisa diberikan oleh 253.440–186.624–64.889–64.889–43.264–4096–4096–1000.
Tampilan 3D
Jumlah neuron untuk semua lapisan setelah yang pertama jelas. Salah satu cara sederhana untuk menghitung neuron adalah dengan hanya mengalikan tiga dimensi dari lapisan itu ( planes X width X height
):
- Layer 2:
27x27x128 * 2 = 186,624
- Layer 3:
13x13x192 * 2 = 64,896
- dll.
Namun, melihat lapisan pertama:
- Lapisan 1:
55x55x48 * 2 = 290400
Perhatikan bahwa ini tidak 253,440
seperti yang ditentukan di koran!
Hitung Ukuran Output
Cara lain untuk menghitung tensor keluaran konvolusi adalah:
Jika gambar input adalah tensor 3D
nInputPlane x height x width
, ukuran gambar output akan berada dinOutputPlane x owidth x oheight
tempat
owidth = (width - kW) / dW + 1
oheight = (height - kH) / dH + 1
.
(dari Dokumentasi SpatialConvolution Torch )
Gambar input adalah:
nInputPlane = 3
height = 224
width = 224
Dan lapisan konvolusi adalah:
nOutputPlane = 96
kW = 11
kH = 11
dW = 4
dW = 4
(mis. ukuran kernel 11
, langkah 4
)
Memasukkan angka-angka itu kita dapatkan:
owidth = (224 - 11) / 4 + 1 = 54
oheight = (224 - 11) / 4 + 1 = 54
Jadi kita kekurangan 55x55
dimensi yang kita butuhkan untuk mencocokkan kertas. Mereka mungkin padding (tetapi cuda-convnet2
model secara eksplisit menetapkan padding ke 0)
Jika kita mengambil 54
dimensi -ukuran kita mendapatkan 96x54x54 = 279,936
neuron - masih terlalu banyak.
Jadi pertanyaan saya adalah ini:
Bagaimana mereka mendapatkan 253.440 neuron untuk lapisan konvolusional pertama? Apa yang saya lewatkan?
Jawaban:
Dari catatan Stanford di NN:
ref: http://cs231n.github.io/convolutional-networks/
Catatan ini menyertai kelas Stanford CS CS231n: Jaringan Syaraf Konvolusional untuk Pengakuan Visual. Untuk pertanyaan / masalah / laporan bug tentang kontak Justin Johnson mengenai tugas, atau hubungi Andrej Karpathy mengenai catatan kursus
sumber
Makalah ini benar-benar membingungkan. Pertama, ukuran input gambar salah 224x224 tidak memberikan output 55. Neuron itu hanya seperti piksel yang dikelompokkan dalam satu, jadi outputnya adalah gambar 2D dari nilai acak (nilai neuron). Jadi pada dasarnya jumlah neuron = widthxheightxdepth, tidak ada rahasia untuk mencari tahu.
sumber