Model Google Inception: mengapa ada beberapa softmax?

13

Topologi model Google Inception dapat ditemukan di sini: Google Inception Netowrk

Saya perhatikan ada 3 lapisan softmax dalam model ini (# 154, # 152, # 145), dan 2 di antaranya adalah semacam pelarian awal model ini.

Dari yang saya tahu, lapisan softmax adalah untuk hasil akhir, jadi mengapa ada begitu banyak? apa tujuan dari 2 layer lainnya?

skywalkerytx
sumber

Jawaban:

27

Jawaban singkat: Arsitektur yang dalam, dan khususnya GoogLeNet (22 lapisan) berada dalam bahaya masalah gradien yang hilang selama pelatihan (algoritma back-propagation). Para insinyur GoogLeNet mengatasi masalah ini dengan menambahkan pengklasifikasi di lapisan perantara juga, sehingga kerugian akhir adalah kombinasi dari kerugian antara dan kerugian akhir. Inilah sebabnya mengapa Anda melihat total tiga lapisan kerugian, tidak seperti lapisan tunggal yang biasa sebagai lapisan terakhir jaringan.

Jawaban yang lebih panjang: Dalam Pembelajaran Mesin klasik, biasanya ada perbedaan antara rekayasa fitur dan klasifikasi. Jaringan saraf paling terkenal karena kemampuan mereka untuk memecahkan masalah "ujung ke ujung", yaitu, mereka menggabungkan tahapan belajar representasi untuk data, dan melatih classifier. Oleh karena itu, Anda dapat menganggap jaringan saraf dengan arsitektur standar (misalnya, AlexNet) sebagai terdiri dari fase "representasi pembelajaran" (lapisan-lapisan hingga sebelum ke yang terakhir) dan fase "klasifikasi", yang seperti yang diharapkan, mencakup fungsi kerugian.

Saat membuat jaringan yang lebih dalam, muncul masalah yang muncul sebagai masalah "gradien hilang". Ini sebenarnya tidak spesifik untuk jaringan saraf; bukan untuk metode pembelajaran berbasis gradien. Itu tidak sepele dan karena itu pantas penjelasan yang tepat untuk dirinya sendiri; lihat di sini untuk referensi yang bagus. Secara intuitif, Anda dapat berpikir tentang gradien yang membawa informasi semakin sedikit semakin dalam kita masuk ke dalam jaringan, yang tentu saja menjadi perhatian utama, karena kita menyetel parameter jaringan (bobot) hanya berdasarkan gradien, menggunakan "back-prop "algoritma.

Bagaimana para pengembang GoogLeNet menangani masalah ini? Mereka menyadari fakta bahwa bukan hanya fitur lapisan akhir yang membawa semua informasi diskriminatif: fitur perantara juga mampu membedakan label yang berbeda; dan, yang paling penting, nilai-nilai mereka lebih "dapat diandalkan" karena nilai-nilai tersebut diekstraksi dari lapisan sebelumnya di mana gradien membawa lebih banyak informasi. Berdasarkan intuisi ini, mereka menambahkan "classifier tambahan" dalam dua lapisan menengah. Ini adalah alasan untuk lapisan kehilangan "pelarian awal" di tengah jaringan yang Anda rujuk dalam pertanyaan Anda.

Kerugian total kemudian merupakan kombinasi dari tiga lapisan kerugian ini. Saya mengutip dari artikel asli:

Klasifikasi ini mengambil bentuk jaringan konvolusional yang lebih kecil yang diletakkan di atas output modul Inception (4a) dan (4d). Selama pelatihan, kerugian mereka ditambahkan ke total kerugian jaringan dengan bobot diskon (kerugian dari kelas tambahan ditimbang sebesar 0,3). Pada waktu inferensi, jaringan bantu ini dibuang.

Secara visual:

masukkan deskripsi gambar di sini

galoosh33
sumber
1
"... lapisan sebelumnya di mana gradien membawa lebih banyak informasi" - mengapa begitu?
maks
2

Selain jawaban @ galoosh33: Bagi saya sepertinya classifier tambahan menggunakan label yang sama dengan classifier keluaran akhir. Sumber: slide 34 di https://pdfs.semanticscholar.org/0b99/d677883883584d9a328f6f2d54738363997a.pdf

Sebelumnya, saya bertanya-tanya apakah classifier tambahan ini menggunakan label jenis lain (misalnya hanya anjing dan bukan Siberia husky).

gebbissimo
sumber