Jaringan saraf dengan koneksi lompat-lapisan

26

Saya tertarik pada regresi dengan jaringan saraf.

Jaringan saraf dengan nol simpul tersembunyi + koneksi skip-layer adalah model linier.

Bagaimana dengan jaring saraf yang sama tetapi dengan simpul tersembunyi? Saya bertanya-tanya apa yang akan menjadi peran koneksi skip-layer?

Secara intuitif, saya akan mengatakan bahwa jika Anda menyertakan koneksi skip-layer, maka model terakhir akan menjumlahkan model linear + beberapa bagian non-linear.

Apakah ada keuntungan atau kerugian dalam menambahkan koneksi lompatan ke jaring saraf?

Souhaib Ben Taieb
sumber

Jawaban:

38

Saya sangat terlambat ke permainan, tetapi saya ingin memposting untuk mencerminkan beberapa perkembangan saat ini dalam jaringan saraf convolutional sehubungan dengan melewatkan koneksi .

Tim Riset Microsoft baru-baru ini memenangkan kompetisi ImageNet 2015 dan merilis laporan teknis Deep Residual Learning untuk Pengenalan Gambar yang menggambarkan beberapa ide utama mereka.

Salah satu kontribusi utama mereka adalah konsep lapisan residu dalam ini . Lapisan residu yang dalam ini menggunakan koneksi lewati . Dengan menggunakan lapisan residu yang dalam ini, mereka dapat melatih jaring lapisan 152 untuk ImageNet 2015. Mereka bahkan melatih jaring jaring lapisan 1000+ untuk CIFAR-10.

Masalah yang memotivasi mereka adalah sebagai berikut:

Ketika jaringan yang lebih dalam dapat mulai melakukan konvergensi, masalah degradasi telah terungkap: dengan meningkatnya kedalaman jaringan, akurasi menjadi jenuh (yang mungkin tidak mengejutkan) dan kemudian menurun dengan cepat. Tanpa diduga, degradasi seperti itu tidak disebabkan oleh overfitting , dan menambahkan lebih banyak lapisan ke dalam model yang sesuai mengarah pada kesalahan pelatihan yang lebih tinggi ...

Idenya adalah jika itu jika Anda mengambil jaringan "dangkal" dan hanya menumpuk pada lebih banyak lapisan untuk membuat jaringan yang lebih dalam, kinerja jaringan yang lebih dalam harus setidaknya sama baiknya dengan jaringan yang dangkal karena jaringan yang lebih dalam dapat mempelajari dangkal yang tepat jaringan dengan mengatur lapisan-lapisan yang baru ditumpuk ke lapisan-lapisan identitas (pada kenyataannya kita tahu ini mungkin sangat tidak mungkin terjadi tanpa menggunakan prior arsitektur atau metode optimasi saat ini). Mereka mengamati bahwa ini tidak terjadi dan bahwa kesalahan pelatihan kadang-kadang menjadi lebih buruk ketika mereka menumpuk lebih banyak lapisan di atas model yang lebih dangkal.

Jadi ini memotivasi mereka untuk menggunakan koneksi skip dan menggunakan apa yang disebut lapisan residu dalam untuk memungkinkan jaringan mereka untuk belajar penyimpangan dari lapisan identitas, maka istilah residual , residual di sini mengacu pada perbedaan dari identitas.

Mereka menerapkan koneksi lewati dengan cara berikut: masukkan deskripsi gambar di sini

Jadi mereka melihat peta karena beberapa peta residual. Mereka menggunakan koneksi lapisan lewati untuk memetakan pemetaan ini ke . Jadi jika residual adalah "kecil", peta kira-kira identitasnya.F(x): =H(x)-xF(x)+x=H(x)F(x)H(x)

Dengan cara ini, penggunaan lapisan residu dalam melalui koneksi skip memungkinkan jaring dalam mereka untuk mempelajari perkiraan lapisan identitas, jika memang itulah yang optimal, atau optimal secara lokal. Memang mereka mengklaim bahwa lapisan residu mereka:

Kami menunjukkan melalui percobaan (Gbr. 7) bahwa fungsi residual yang dipelajari secara umum memiliki respons kecil

Mengenai mengapa tepatnya ini bekerja, mereka tidak memiliki jawaban yang pasti. Sangat tidak mungkin bahwa lapisan identitas optimal, tetapi mereka percaya bahwa menggunakan lapisan residual ini membantu prasyarat masalah dan bahwa lebih mudah untuk mempelajari fungsi baru yang diberikan referensi / dasar perbandingan dengan pemetaan identitas daripada belajar satu "dari awal" tanpa menggunakan baseline identitas. Siapa tahu. Tapi saya pikir ini akan menjadi jawaban yang bagus untuk pertanyaan Anda.

Ngomong-ngomong, di belakang: jawaban sashkello bahkan lebih baik bukan?

AI indie
sumber
Apa yang Anda maksudkan dengan prasyarat? (juga jawaban Anda jauh lebih baik daripada sashkello oleh banyak imho). Juga, jadi masalahnya adalah menambahkan lapisan lebih lanjut tanpa koneksi loncatan menyulitkan jaringan yang lebih dalam untuk menemukan pemetaan identitas? (untuk beberapa alasan?)
Charlie Parker
20

Secara teori, koneksi skip-layer tidak boleh meningkatkan kinerja jaringan. Tetapi, karena jaringan yang rumit sulit untuk dilatih dan mudah digunakan, mungkin sangat berguna untuk menambahkan ini secara eksplisit sebagai istilah regresi linier, ketika Anda tahu bahwa data Anda memiliki komponen linear yang kuat. Ini mengisyaratkan model ke arah yang benar ... Selain itu, ini lebih dapat ditafsirkan karena menyajikan model Anda sebagai gangguan linier, mengurai sedikit struktur di balik jaringan, yang biasanya dilihat hanya sebagai kotak hitam.

sashkello
sumber
@sashkello dapat Anda jelaskan pada 'koneksi skip-layer seharusnya tidak meningkatkan kinerja jaringan', secara teoritis. Itu bagus untuk dipahami.
firasat
@hunch Itu karena Anda bisa memodelkan ini tanpa perlu melewatkan-lapisan. Skip-layer hanyalah istilah linear. Fungsi Sigmoid adalah ~ linear sekitar 0. Jadi, koneksi lompatan-lapisan akan berperilaku seperti simpul tersembunyi dengan bobot input yang sangat kecil.
sashkello
5

Toolbox jaringan saraf lama saya (sebagian besar saya menggunakan mesin kernel hari ini) menggunakan regularisasi L1 untuk memangkas bobot yang berlebihan dan unit tersembunyi, dan juga memiliki koneksi skip-layer. Ini memiliki keuntungan bahwa jika masalahnya pada dasarnya linier, unit tersembunyi cenderung dipangkas dan Anda dibiarkan dengan model linier, yang dengan jelas memberi tahu Anda bahwa masalahnya linear.

Seperti yang disarankan sashkello (+1), MLP adalah aproksimator universal, jadi koneksi lewati lapisan tidak akan meningkatkan hasil dalam batas data tak terbatas dan unit tersembunyi dalam jumlah tak terbatas (tetapi kapan kita pernah mendekati batas itu?). Keuntungan sebenarnya adalah membuat estimasi nilai yang baik untuk bobot lebih mudah jika arsitektur jaringan cocok dengan masalah, dan Anda mungkin dapat menggunakan jaringan yang lebih kecil dan mendapatkan kinerja generalisasi yang lebih baik.

Namun, seperti kebanyakan pertanyaan jaringan saraf, umumnya satu-satunya cara untuk mengetahui apakah akan bermanfaat atau berbahaya untuk dataset tertentu adalah dengan mencobanya dan melihat (menggunakan prosedur evaluasi kinerja yang dapat diandalkan).

Dikran Marsupial
sumber
3
"Cobalah dan lihat" - kata-kata emas :)
sashkello
0

Berdasarkan Uskup 5.1. Fungsi-fungsi Jaringan Umpan-maju: Suatu cara untuk menggeneralisasi arsitektur jaringan adalah dengan memasukkan koneksi-koneksi lewati, yang masing-masing dikaitkan dengan parameter adaptif yang sesuai. Misalnya, dalam jaringan dua lapis (dua lapisan tersembunyi) ini akan langsung dari input ke output. Pada prinsipnya, jaringan dengan unit tersembunyi sigmoidal selalu dapat meniru koneksi lapisan lompatan (untuk nilai input yang dibatasi) dengan menggunakan bobot lapisan pertama yang cukup kecil, di atas jangkauan operasinya, unit tersembunyi secara efektif linier, dan kemudian mengkompensasi dengan besar nilai bobot dari unit tersembunyi ke output.

Namun dalam praktiknya, mungkin menguntungkan untuk menyertakan koneksi lewati-layer secara eksplisit.masukkan deskripsi gambar di sini

payam jome yazdian
sumber