Bagaimana cara kerja arsitektur bottleneck dalam jaringan saraf?

21

Kami mendefinisikan arsitektur bottleneck sebagai jenis yang ditemukan dalam kertas ResNet di mana [dua lapisan 3x3 konv] diganti oleh [satu konv 1x1, satu konv 3x3, dan lapisan konv 1x1 lainnya].masukkan deskripsi gambar di sini

Saya mengerti bahwa lapisan konv 1x1 digunakan sebagai bentuk pengurangan dimensi (dan restorasi), yang dijelaskan dalam posting lain . Namun, saya tidak jelas tentang mengapa struktur ini seefektif tata letak asli.

Beberapa penjelasan yang baik mungkin termasuk: Berapa panjang langkah yang digunakan dan pada lapisan apa? Apa contoh dimensi input dan output dari setiap modul? Bagaimana peta fitur 56x56 terwakili dalam diagram di atas? Apakah 64-d merujuk pada jumlah filter, mengapa ini berbeda dari 256-d filter? Berapa banyak bobot atau FLOP yang digunakan pada setiap lapisan?

Diskusi apa pun sangat dihargai!

derekchen14
sumber
Saya pikir ini dapat membantu dengan generalisasi dan pencegahan over fitting. Tapi itu hanya ingatan yang tidak jelas.
Chris

Jawaban:

5

Arsitektur bottleneck digunakan dalam jaringan yang sangat dalam karena pertimbangan komputasi.

Untuk menjawab pertanyaan Anda:

  1. Peta fitur 56x56 tidak terwakili dalam gambar di atas. Blok ini diambil dari ResNet dengan ukuran input 224x224. 56x56 adalah versi input downsampled pada beberapa lapisan menengah.

  2. 64-d mengacu pada jumlah peta fitur (filter). Arsitektur bottleneck memiliki 256-d, hanya karena dimaksudkan untuk jaringan yang lebih dalam, yang mungkin mengambil gambar beresolusi lebih tinggi sebagai input dan karenanya memerlukan lebih banyak fitur peta.

  3. Lihat gambar ini untuk parameter setiap lapisan bottleneck di ResNet 50.

Newstein
sumber
1
Untuk pembaca masa depan, saya harus menyebutkan bahwa saya pikir konvoi 1x1 telah berjalan = 1 dan pad = 0, untuk melestarikan (WxH) dari 56x56. Demikian pula, konvoi 3x3 memiliki langkah = 1 dan pad = 1 untuk mempertahankan ukuran juga.
derekchen14
Masih saya tidak mengerti. Sepertinya keduanya memiliki jumlah parameter yang sama, dalam hal ini saya masih tidak mengerti tujuan dari layer bootleneck.
user570593
-1

Saya benar-benar berpikir bahwa poin ke-2 dalam jawaban Newstein menyesatkan.

The 64-datau 256-dharus mengacu pada jumlah saluran dari peta fitur input - bukan jumlah fitur input peta.

Pertimbangkan blok "bottleneck" (kanan gambar) dalam pertanyaan OP sebagai contoh:

  • 256-dberarti kami memiliki satu peta fitur input dengan dimensi n x n x 256. Dalam 1x1, 64gambar berarti 64 filter , masing-masing adalah 1x1dan memiliki 256saluran ( 1x1x256).
  • Jadi di sini kita dapat melihat bahwa konvolusi filter tunggal ( 1x1x256) dengan peta fitur input ( n x n x 256) memberi kita n x noutput.
  • Sekarang kita memiliki 64filter, oleh karena itu, dengan menumpuk output, dimensi peta fitur keluaran adalah n x n x 64.

Diedit:

  • @Michael Chernick: Oke, maka ini akan menjadi jawaban parsial, ketika saya mencoba untuk memperbaiki jawaban yang diterima. Bisakah Anda meluangkan waktu untuk melihat jawaban parsial saya dan memberi tahu saya jika saya mengerti dengan benar?
Menyalakan
sumber
Terlepas dari reputasi Anda tidak boleh menggunakan jawaban untuk komentar.
Michael R. Chernick