Mengapa jaringan saraf menjadi lebih dalam, tetapi tidak lebih luas?

73

Dalam beberapa tahun terakhir, jaringan saraf convolutional (atau mungkin jaringan saraf yang dalam secara umum) telah menjadi lebih dalam dan lebih dalam, dengan jaringan canggih mulai dari 7 lapisan ( AlexNet ) hingga 1000 lapisan ( Residual Nets) di ruang 4 tahun. Alasan di balik peningkatan kinerja dari jaringan yang lebih dalam, adalah bahwa fungsi yang lebih kompleks dan non-linear dapat dipelajari. Dengan data pelatihan yang memadai, ini memungkinkan jaringan untuk lebih mudah membedakan antara kelas yang berbeda.

Namun, tren tersebut tampaknya tidak diikuti dengan jumlah parameter di setiap lapisan. Sebagai contoh, jumlah peta fitur dalam lapisan konvolusional, atau jumlah node dalam lapisan yang sepenuhnya terhubung, tetap kira-kira sama dan masih relatif kecil, meskipun ada peningkatan besar dalam jumlah lapisan. Dari intuisi saya, tampaknya bahwa meningkatkan jumlah parameter per lapisan akan memberikan setiap lapisan sumber data yang lebih kaya dari mana untuk mempelajari fungsi non-liniernya; tetapi ide ini tampaknya telah diabaikan demi hanya menambahkan lebih banyak lapisan, masing-masing dengan sejumlah kecil parameter.

Jadi, sementara jaringan telah menjadi "lebih dalam", mereka tidak menjadi "lebih luas". Kenapa ini?

Karnivaurus
sumber
1
+1 tetapi untuk bersikap adil, bukan berarti 1000+ jaringan berlapis ini adalah "canggih" dalam arti mengungguli yang lain. Kertas arxiv yang Anda tautkan ke laporan sisa jaringan dengan 152 lapisan sebagai pemenang saat ini di ImageNet.
Amuba mengatakan Reinstate Monica
3
Sudahkah Anda membaca jaringan residual luas arxiv.org/abs/1605.07146 .... mungkin tidak ada alasannya .. Mengoptimalkan fungsi non-cembung dengan gradient descent tidak memiliki landasan teoretis ... hanya ada percobaan dan banyak kesalahan :-)
seanv507
@ seanv507 Sangat menarik, terima kasih untuk tautan ini. BTW, di sini ada utas yang sangat terkait: stats.stackexchange.com/questions/214360 dan ada tautan ke utas reddit ini di sana.
Amuba mengatakan Reinstate Monica
Pertanyaan yang sama telah diposting di Quora satu hari setelahnya. Mengapa jaringan saraf menjadi lebih dalam (lebih banyak lapisan) tetapi tidak lebih luas (lebih banyak node per lapisan)?
Franck Dernoncourt
Sangat sangat terkait: stats.stackexchange.com/questions/182734 .
Amoeba berkata Reinstate Monica

Jawaban:

87

Sebagai penafian, saya bekerja pada jaring saraf dalam penelitian saya, tetapi saya biasanya menggunakan jaring saraf yang relatif kecil dan dangkal daripada jaringan yang sangat dalam di ujung tombak penelitian yang Anda kutip dalam pertanyaan Anda. Saya bukan ahli tentang keanehan dan kekhasan jaringan yang sangat dalam dan saya akan tunduk pada seseorang yang ada.

Pertama, pada prinsipnya, tidak ada alasan Anda membutuhkan jaring saraf yang dalam sama sekali. Jaringan saraf yang cukup luas dengan hanya satu lapisan tersembunyi dapat memperkirakan setiap fungsi (wajar) yang diberikan data pelatihan yang cukup. Namun, ada beberapa kesulitan dengan menggunakan jaringan yang sangat luas dan dangkal. Masalah utamanya adalah bahwa jaringan yang sangat luas dan dangkal ini sangat bagus dalam menghafal, tetapi tidak begitu bagus dalam generalisasi . Jadi, jika Anda melatih jaringan dengan setiap nilai input yang mungkin, jaringan super lebar pada akhirnya bisa menghafal nilai output yang sesuai yang Anda inginkan. Tapi itu tidak berguna karena untuk aplikasi praktis Anda tidak akan memiliki setiap nilai input yang mungkin untuk dilatih.

Keuntungan dari banyak lapisan adalah mereka dapat mempelajari fitur pada berbagai tingkat abstraksi . Sebagai contoh, jika Anda melatih jaringan saraf convolutional yang mendalam untuk mengklasifikasikan gambar, Anda akan menemukan bahwa lapisan pertama akan melatih dirinya sendiri untuk mengenali hal-hal yang sangat mendasar seperti tepi, lapisan berikutnya akan melatih dirinya untuk mengenali koleksi tepi seperti bentuk, selanjutnya lapisan akan melatih dirinya untuk mengenali koleksi bentuk seperti mata atau hidung, dan lapisan berikutnya akan mempelajari fitur tingkat tinggi seperti wajah. Beberapa layer jauh lebih baik dalam generalisasi karena mereka mempelajari semua fitur antara antara data mentah dan klasifikasi tingkat tinggi.

Jadi itu menjelaskan mengapa Anda mungkin menggunakan jaringan yang dalam daripada jaringan yang sangat luas tapi dangkal. Tetapi mengapa tidak jaringan yang sangat dalam, sangat luas? Saya pikir jawabannya ada bahwa Anda ingin jaringan Anda menjadi sekecil mungkin untuk menghasilkan hasil yang baik. Ketika Anda meningkatkan ukuran jaringan, Anda benar-benar hanya memperkenalkan lebih banyak parameter yang perlu dipelajari jaringan Anda, dan karenanya meningkatkan kemungkinan overfitting. Jika Anda membangun jaringan yang sangat luas, sangat dalam, Anda menjalankan peluang setiap lapisan hanya menghafal seperti apa output yang Anda inginkan, dan Anda berakhir dengan jaringan saraf yang gagal menggeneralisasi ke data baru.

Selain dari momok overfitting, semakin luas jaringan Anda, semakin lama waktu yang dibutuhkan untuk berlatih . Jaringan yang dalam sudah bisa menjadi komputasi yang sangat mahal untuk dilatih, jadi ada insentif yang kuat untuk membuatnya cukup lebar sehingga bisa bekerja dengan baik, tetapi tidak lebih luas.

J. O'Brien Antognini
sumber
+1. Ada komentar di arxiv.org/abs/1605.07146 ?
Amuba kata Reinstate Monica
2
Saya hanya membaca sepintas lalu, jadi saya tidak bisa mengatakan apa pun yang berwibawa, tetapi sepertinya penulis menemukan bahwa setidaknya dalam kasus jaringan residual lebar (tapi masih 16 lapisan!) Mengungguli jaring yang sempit, sangat dalam (1000 lapisan) ) bersih. Saya tidak tahu banyak tentang jaringan residual, tetapi menurut pengantar tampaknya kesulitan dalam melatihnya adalah bahwa ada kecenderungan bagi layer untuk tidak belajar apa-apa dan dengan demikian tidak berkontribusi banyak pada hasilnya. Tampaknya memiliki lebih sedikit, tetapi lebih kuat, lapisan menghindari ini. Apakah ini berlaku untuk NN jenis lain, saya tidak tahu.
J. O'Brien Antognini
Jawaban yang jelas dan singkat, dilakukan dengan baik. @ J
ctwardy
21

Saya tidak berpikir ada jawaban yang pasti untuk pertanyaan Anda. Tetapi saya pikir kebijaksanaan konvensional berlaku sebagai berikut:

Pada dasarnya, ketika ruang hipotesis dari algoritma pembelajaran bertambah, algoritma tersebut dapat mempelajari struktur yang lebih kaya dan lebih kaya. Tetapi pada saat yang sama, algoritma menjadi lebih rentan terhadap overfitting dan kesalahan generalisasinya cenderung meningkat.

Jadi pada akhirnya, untuk setiap dataset yang diberikan, disarankan untuk bekerja dengan model minimal yang memiliki kapasitas yang cukup untuk mempelajari struktur data yang sebenarnya. Tetapi ini adalah saran yang sangat bergelombang, karena biasanya "struktur data yang sebenarnya" tidak diketahui, dan seringkali bahkan kapasitas model kandidat hanya dipahami secara samar-samar.

Ketika datang ke jaringan saraf, ukuran ruang hipotesis dikendalikan oleh jumlah parameter. Dan tampaknya untuk sejumlah parameter tertentu (atau urutan besarnya tetap), semakin dalam memungkinkan model untuk menangkap struktur yang lebih kaya (misalnya makalah ini ).

Ini sebagian dapat menjelaskan keberhasilan model yang lebih dalam dengan parameter yang lebih sedikit: VGGNet (dari 2014) memiliki 16 lapisan dengan ~ 140 juta parameter, sementara ResNet (dari 2015) mengalahkannya dengan 152 lapisan tetapi hanya ~ 2 juta parameter

(sebagai sisi, model yang lebih kecil mungkin secara komputasi lebih mudah untuk dilatih - tetapi saya tidak berpikir itu merupakan faktor utama dengan sendirinya - karena kedalaman sebenarnya mempersulit pelatihan)

Perhatikan bahwa tren ini (lebih dalam, lebih sedikit parameter) sebagian besar hadir dalam tugas terkait visi dan jaringan konvolusional, dan ini membutuhkan penjelasan khusus domain. Jadi inilah perspektif lain:

Setiap "neuron" dalam lapisan konvolusional memiliki "bidang reseptif", yang merupakan ukuran dan bentuk input yang memengaruhi setiap output. Secara intuitif, setiap kernel menangkap semacam hubungan antara input terdekat. Dan kernel kecil (yang umum dan disukai) memiliki bidang reseptif kecil, sehingga mereka dapat memberikan informasi hanya mengenai hubungan lokal.

Tetapi ketika Anda masuk lebih dalam, bidang reseptif dari masing-masing neuron sehubungan dengan beberapa lapisan sebelumnya menjadi lebih besar. Jadi lapisan dalam dapat menyediakan fitur dengan makna semantik global dan detail abstrak (hubungan relasi ... relasi objek), sementara hanya menggunakan kernel kecil (yang mengatur hubungan yang dipelajari jaringan, dan membantu konvergen dan generalisasi).

Jadi kegunaan jaringan konvolusional yang mendalam dalam visi komputer dapat sebagian dijelaskan oleh struktur spasial gambar dan video. Mungkin saja waktu akan mengatakan bahwa untuk berbagai jenis masalah, atau untuk arsitektur non-konvolusional, kedalaman sebenarnya tidak berfungsi dengan baik.

Borbei
sumber
Bagian Mesin Boltzmann Terbatas dari jaringan dalam adalah pengganda besar pada waktu konvergensi. (afaict)
EngrStudent
4
RBM tidak melekat pada pembelajaran yang mendalam. Banyak (sekarang, sebagian besar?) Jaringan dalam yang sukses tidak menggunakan RBM.
Borbei
3
Terima kasih telah menautkan ke makalah itu, saya belum pernah melihatnya dan terlihat sangat relevan.
J. O'Brien Antognini
@ Borbei - Bagaimana mereka memastikan pemisahan fitur tanpa RBM?
EngrStudent
1
+1. Ada komentar di arxiv.org/abs/1605.07146 ?
Amuba kata Reinstate Monica
10

Menambahkan lebih banyak fitur membantu tetapi manfaat dengan cepat menjadi marjinal setelah banyak fitur ditambahkan. Itulah salah satu alasan mengapa alat-alat seperti PCA berfungsi: beberapa komponen menangkap sebagian besar varian fitur. Oleh karena itu, menambahkan lebih banyak fitur setelah beberapa titik hampir tidak berguna.

Di sisi lain menemukan fungsional yang tepat untuk fitur tersebut selalu merupakan ide yang bagus. Namun, jika Anda tidak memiliki teori yang baik, tentu saja sulit menghasilkan fungsi yang benar. Jadi, menambahkan layer sangat membantu sebagai bentuk pendekatan brute force.

Pertimbangkan kasus sederhana: hambatan udara mobil. Katakanlah, kita tidak tahu persamaan: di mana - area crossectional mobil, - kerapatan udara, dan - kecepatan mobil. Kita dapat memperkirakan bahwa pengukuran mobil itu penting dan menambahkannya sebagai fitur, kecepatan mobil juga akan masuk. Jadi kami terus menambahkan fitur, dan mungkin menambahkan tekanan udara, suhu, panjang, lebar mobil, jumlah kursi, dll.

fCρAv2/2
Aρv

Kita akan berakhir dengan model seperti Anda melihat bagaimana fitur-fitur ini tidak akan merakit diri ke dalam persamaan "true" kecuali jika kita menambahkan semua interaksi dan polinomial. Namun, jika persamaan yang sebenarnya tidak sesuai secara polinomial, katakan itu memiliki eksponen atau fungsi transendental aneh lainnya, maka kita tidak akan memiliki kesempatan untuk menirunya dengan memperluas set fitur atau memperluas jaringan.

fiβixi

Namun, membuat jaringan lebih dalam akan dengan mudah membawa Anda ke persamaan di atas hanya dengan dua lapisan. Fungsi yang lebih rumit akan membutuhkan lebih banyak lapisan, itu sebabnya memperdalam jumlah lapisan bisa menjadi cara untuk mengatasi banyak masalah.

Aksakal
sumber
5
Anda menganggap fungsi transfer linier. Tetapi ada banyak pilihan (umum) lainnya, dan menurut teorema aproksimasi universal JST , bahkan satu lapisan non-linier tersembunyi (jika cukup lebar) dapat mendekati fungsi yang bagus. Jadi keterwakilan tidak dapat benar-benar menjelaskan keberhasilan jaringan yang mendalam.
Borbei
2
Contoh saya linear tetapi ini berlaku untuk satu set kasus yang lebih luas. Anda menganggap fungsi "bagus" tetapi banyak yang tidak begitu baik. Misalnya ketika saya memilih mobil untuk membeli mengapa algoritma keputusan saya menjadi fungsi yang bagus?
Aksakal
2

Untuk jaring saraf yang terhubung rapat dengan kedalaman dan lebar , jumlah parameter (karenanya, RAM yang diperlukan untuk menjalankan atau melatih jaringan) adalah . Jadi, jika Anda hanya memiliki sejumlah parameter, sering kali lebih masuk akal untuk lebih memilih peningkatan kedalaman yang besar daripada peningkatan lebar yang kecil.dwO(dw2)

Mengapa Anda mencoba membatasi jumlah parameter? Sejumlah alasan:

  • Anda berusaha menghindari overfitting. (Meskipun membatasi jumlah parameter adalah instrumen yang sangat tumpul untuk mencapai hal ini.)
  • Penelitian Anda lebih mengesankan jika Anda dapat mengungguli model orang lain menggunakan jumlah parameter yang sama.
  • Melatih model Anda jauh lebih mudah jika model tersebut (ditambah param momen jika Anda menggunakan Adam) dapat masuk ke dalam memori satu GPU.
  • Dalam aplikasi kehidupan nyata, RAM seringkali mahal ketika melayani model. Ini terutama berlaku untuk menjalankan model pada misalnya ponsel, tetapi kadang-kadang dapat berlaku bahkan untuk melayani model dari cloud.

Dari mana datangnya ? Untuk dua lapisan tetangga dengan lebar , koneksi di antara keduanya dijelaskan oleh . Jadi jika Anda memiliki lapisan lebar (ditambah input dan lapisan keluaran), jumlah parameter adalah Alih-alih membatasi lebar, strategi alternatif yang kadang-kadang digunakan adalah menggunakan koneksi jarang. Misalnya, ketika menginisialisasi topologi jaringan, Anda dapat mengakui setiap koneksi dengan probabilitas sehingga jumlah total parameter adalahw 1 , w 2 w 1 × w 2 ( d - 2 ) w ( d - 2 ) w 2 + w ( lebar lapisan input ) + w ( lebar lapisan output ) = O ( d w 2 ) . 1 / O(dw2)w1,w2w1×w2(d2)w

(d2)w2+w(input layer width)+w(output layer width)=O(dw2).
O(dw)1/wO(dw). Tetapi jika Anda melakukan ini, tidak jelas bahwa meningkatkan lebar tentu akan meningkatkan kapasitas model untuk belajar.
Charles Staats
sumber