Saya ingin tahu tentang bagaimana gradien diperbanyak kembali melalui jaringan saraf menggunakan modul ResNet / lewati koneksi. Saya telah melihat beberapa pertanyaan tentang ResNet (mis. Jaringan saraf dengan koneksi lompatan-lapisan ) tetapi yang satu ini menanyakan secara khusus tentang back-propagation of gradien selama pelatihan.
Arsitektur dasarnya ada di sini:
Saya membaca makalah ini, Studi Residual Networks untuk Pengenalan Gambar , dan di Bagian 2 mereka berbicara tentang bagaimana salah satu tujuan dari ResNet adalah untuk memungkinkan jalur yang lebih pendek / lebih jelas agar gradien merambat kembali ke lapisan dasar.
Adakah yang bisa menjelaskan bagaimana gradien mengalir melalui jenis jaringan ini? Saya tidak begitu mengerti bagaimana operasi penambahan, dan kurangnya lapisan parameter setelah penambahan, memungkinkan untuk propagasi gradien yang lebih baik. Apakah itu ada hubungannya dengan bagaimana gradien tidak berubah ketika mengalir melalui operator add dan entah bagaimana didistribusikan kembali tanpa multiplikasi?
Selain itu, saya bisa mengerti bagaimana masalah gradien hilang dikurangi jika gradien tidak perlu mengalir melalui lapisan berat, tetapi jika tidak ada aliran gradien melalui bobot maka bagaimana mereka diperbarui setelah melewati mundur?
the gradient doesn't need to flow through the weight layers
, dapatkah Anda menjelaskan hal itu?Jawaban:
Tambah mengirimkan gradien kembali sama ke kedua input. Anda dapat meyakinkan diri sendiri tentang hal ini dengan menjalankan yang berikut di tensorflow:
Keluaran:
Jadi, gradiennya adalah:
Sunting: ada pertanyaan: "apa operasi pada titik di mana koneksi jalan raya dan blok jaring saraf bergabung kembali bersama, di bagian bawah Gambar 2?"
Ada jawabannya adalah: mereka dijumlahkan. Anda dapat melihat ini dari rumus Gambar 2:
Apa yang dikatakan adalah:
Edit 2:
Menulis ulang dengan kata-kata yang sedikit berbeda:
Blok residual memodifikasi gradien yang mengalir mundur, tetapi tidak ada fungsi 'squashing' atau 'aktivasi' yang mengalir melalui gradien. Fungsi 'squashing' / 'aktivasi' adalah apa yang menyebabkan masalah gradien meledak / menghilang, jadi dengan menghapusnya dari bus itu sendiri, kami mengurangi masalah ini secara signifikan.
Sunting 3: Secara pribadi saya membayangkan resnet di kepala saya seperti diagram berikut. Secara topologis identik dengan gambar 2, tetapi ini menunjukkan lebih jelas mungkin bagaimana bus hanya mengalir langsung melalui jaringan, sementara blok residu hanya mengetuk nilai-nilai dari itu, dan menambah / menghapus beberapa vektor kecil terhadap bus:
sumber