Suatu masalah yang sering saya lihat dalam konteks Neural Networks pada umumnya, dan Deep Neural Networks pada khususnya, adalah bahwa mereka "lapar data" - yaitu mereka tidak berkinerja baik kecuali kita memiliki kumpulan data yang besar untuk melatih jaringan.
Pemahaman saya adalah bahwa ini disebabkan oleh fakta bahwa NNets, terutama Deep NNets, memiliki sejumlah besar derajat kebebasan. Jadi sebagai model, NNet memiliki jumlah parameter yang sangat besar, dan jika jumlah parameter model tersebut relatif besar terhadap jumlah poin data pelatihan, ada kecenderungan meningkat untuk kecocokan.
Tetapi mengapa masalah ini tidak diselesaikan dengan regularisasi? Sejauh yang saya tahu NNets dapat menggunakan regularisasi L1 dan L2 dan juga memiliki metode regularisasi sendiri seperti dropout yang dapat mengurangi jumlah parameter dalam jaringan.
Bisakah kita memilih metode regularisasi kita sehingga mereka menegakkan kekikiran dan membatasi ukuran jaringan?
Untuk memperjelas pemikiran saya: Katakanlah kita menggunakan Deep NNet yang besar untuk mencoba memodelkan data kita, tetapi set datanya kecil dan sebenarnya bisa dimodelkan dengan model linier. Lalu mengapa bobot jaringan tidak bertemu sedemikian rupa sehingga satu neuron mensimulasikan regresi linier dan semua yang lain berkumpul menjadi nol? Mengapa regularisasi tidak membantu dengan ini?
sumber
Jawaban:
Cara sederhana untuk menjelaskannya adalah bahwa regularisasi membantu untuk tidak cocok dengan kebisingan, itu tidak melakukan banyak hal dalam menentukan bentuk sinyal. Jika Anda menganggap pembelajaran mendalam sebagai aproksimasi fungsi agung raksasa, maka Anda menyadari bahwa ini membutuhkan banyak data untuk menentukan bentuk sinyal kompleks.
Jika tidak ada noise maka peningkatan kompleksitas NN akan menghasilkan perkiraan yang lebih baik. Tidak akan ada penalti untuk ukuran NN, lebih besar akan lebih baik dalam setiap kasus. Pertimbangkan perkiraan Taylor, lebih banyak istilah selalu lebih baik untuk fungsi non-polinomial (mengabaikan masalah presisi numerik).
Ini rusak di hadapan kebisingan, karena Anda mulai menyesuaikan diri dengan kebisingan. Jadi, inilah regularisasi untuk membantu: mungkin mengurangi kesesuaian dengan kebisingan, sehingga memungkinkan kami untuk membangun NN yang lebih besar agar sesuai dengan masalah nonlinier.
Diskusi berikut ini tidak penting untuk jawaban saya, tetapi saya menambahkan sebagian untuk menjawab beberapa komentar dan memotivasi bagian utama dari jawaban di atas. Pada dasarnya, sisa jawaban saya adalah seperti api Prancis yang datang dengan hidangan burger, Anda dapat melewatinya.
(Ir) Kasus yang relevan: Regresi polinomial
Mari kita lihat contoh mainan dari regresi polinomial. Ini juga merupakan pendekatan yang cukup baik untuk banyak fungsi. Kita akan melihat fungsi di wilayah x ∈ ( - 3 , 3 ) . Seperti yang dapat Anda lihat dari seri Taylor-nya di bawah ini, ekspansi urutan ke-7 sudah sangat cocok, sehingga kita dapat berharap bahwa polinomial dari urutan 7+ harus sangat cocok juga:dosa( x ) x ∈ ( - 3 , 3 )
Selanjutnya, kita akan menyesuaikan polinomial dengan tatanan yang semakin tinggi ke kumpulan data kecil yang sangat bising dengan 7 pengamatan:
Kita dapat mengamati apa yang telah kita ketahui tentang polinomial oleh banyak orang yang tahu: mereka tidak stabil, dan mulai terombang-ambing secara liar dengan peningkatan urutan polinomial.
Namun, masalahnya bukan polinomial itu sendiri. Masalahnya adalah kebisingan. Ketika kita memasukkan polinomial ke data berisik, bagian dari kesesuaiannya adalah noise, bukan ke sinyal. Berikut adalah polinomial yang sama persis yang cocok untuk kumpulan data yang sama tetapi dengan noise yang sepenuhnya dihapus. Cocok sangat bagus!
Perhatikan juga bahwa polinomial orde tinggi tidak sesuai dengan urutan 6, karena tidak ada cukup pengamatan untuk mendefinisikannya. Jadi, mari kita lihat apa yang terjadi dengan 100 pengamatan. Pada bagan di bawah ini Anda melihat bagaimana kumpulan data yang lebih besar memungkinkan kami untuk menyesuaikan polinomial dengan tingkat yang lebih tinggi, sehingga mencapai kesesuaian yang lebih baik!
Hebat, tapi masalahnya kita biasanya berurusan dengan data yang berisik. Lihatlah apa yang terjadi jika Anda cocok dengan 100 pengamatan data yang sangat bising, lihat grafik di bawah ini. Kami kembali ke titik awal: polinomial orde tinggi menghasilkan pas berosilasi mengerikan. Jadi, meningkatkan set data tidak banyak membantu dalam meningkatkan kompleksitas model untuk lebih menjelaskan data. Ini, sekali lagi, karena model kompleks lebih cocok tidak hanya dengan bentuk sinyal, tetapi juga untuk bentuk kebisingan.
Akhirnya, mari kita coba beberapa regularisasi lumpuh pada masalah ini. Bagan di bawah ini menunjukkan regularisasi (dengan hukuman yang berbeda) yang diterapkan untuk memesan 9 regresi polinomial. Bandingkan ini dengan order (power) 9 fit polinomial di atas: pada tingkat regularisasi yang tepat dimungkinkan untuk menyesuaikan polinomial orde tinggi dengan data yang bising.
Kalau-kalau itu tidak jelas: Saya tidak menyarankan untuk menggunakan regresi polinomial dengan cara ini. Polinomial baik untuk kesesuaian lokal, sehingga polinomial sepotong-bijaksana bisa menjadi pilihan yang baik. Menyesuaikan seluruh domain dengan mereka sering merupakan ide yang buruk, karena mereka peka terhadap kebisingan, memang, sebagaimana harus dibuktikan dari plot di atas. Apakah suara itu numerik atau dari sumber lain tidak begitu penting dalam konteks ini. kebisingan adalah kebisingan, dan polinomial akan bereaksi dengan bersemangat.
sumber
Pada titik waktu ini, itu tidak dipahami dengan baik kapan dan mengapa metode regularisasi tertentu berhasil dan gagal. Bahkan, itu tidak dipahami sama sekali mengapa pembelajaran yang mendalam bekerja di tempat pertama.
Mempertimbangkan fakta bahwa jaring saraf yang cukup dalam dapat menghafal sebagian besar data pelatihan yang berperilaku baik, ada solusi yang jauh lebih salah daripada ada hak untuk jaring dalam tertentu. Regularisasi, secara luas, adalah upaya untuk membatasi ekspresifitas model untuk solusi "salah" ini - di mana "salah" didefinisikan oleh heuristik yang kami anggap penting untuk domain tertentu . Tetapi seringkali sulit untuk mendefinisikan heuristik sehingga Anda tidak kehilangan ekspresif "benar" dengannya. Contoh yang bagus dari ini adalah hukuman L2.
Sangat sedikit metode yang akan dianggap sebagai bentuk regularisasi yang umumnya berlaku untuk semua area aplikasi ML. Masalah penglihatan, NLP, dan prediksi terstruktur semuanya memiliki buku resep mereka sendiri mengenai teknik regularisasi yang telah terbukti efektif secara eksperimen untuk domain-domain tertentu. Tetapi bahkan dalam domain tersebut, teknik ini hanya efektif dalam keadaan tertentu. Sebagai contoh, normalisasi bets pada jaringan residu dalam nampaknya membuat dropout mubazir, meskipun faktanya keduanya telah terbukti secara independen meningkatkan generalisasi.
Pada catatan terpisah, saya pikir istilah regularisasi sangat luas sehingga menyulitkan untuk memahami apa pun tentang hal itu. Mempertimbangkan fakta bahwa konvolusi membatasi ruang parameter secara eksponensial berkenaan dengan piksel, Anda dapat mempertimbangkan jaringan saraf convolutional sebagai bentuk regularisasi pada jaringan saraf vanili.
sumber
Satu kelas teorema yang menunjukkan mengapa masalah ini mendasar adalah Teorema Tanpa Makan Siang Gratis . Untuk setiap masalah dengan sampel terbatas di mana regularisasi tertentu membantu, ada masalah lain di mana regularisasi yang sama akan memperburuk keadaan. Seperti yang ditunjukkan Austin, kita umumnya menemukan bahwa regularisasi L1 / L2 sangat membantu untuk banyak masalah di dunia nyata, tetapi ini hanya pengamatan dan, karena teorema NFL, tidak ada jaminan umum.
sumber
Saya akan mengatakan bahwa pada tingkat tinggi, bias induktif DNNs (jaringan saraf dalam) kuat tetapi sedikit terlalu longgar atau tidak cukup dikemukakan. Maksud saya, DNN menangkap banyak statistik permukaan tentang apa yang sedang terjadi, tetapi gagal mencapai struktur tingkat tinggi kausal / komposisi yang lebih dalam. (Anda dapat melihat konvolusi sebagai spesifikasi bias induktif pria miskin).
Selain itu, diyakini dalam komunitas pembelajaran mesin bahwa cara terbaik untuk menggeneralisasi (membuat kesimpulan / prediksi yang baik dengan sedikit data) adalah dengan menemukan program terpendek yang memunculkan data. Tetapi induksi / sintesis program sulit dan kami tidak memiliki cara yang baik untuk melakukannya secara efisien. Jadi alih-alih kita mengandalkan perkiraan dekat yang merupakan pencarian rangkaian, dan kita tahu bagaimana melakukannya dengan backpropagation. Di sini , Ilya Sutskever memberikan ikhtisar tentang gagasan itu.
Untuk mengilustrasikan perbedaan kekuatan generalisasi model yang direpresentasikan sebagai program aktual vs model pembelajaran dalam, saya akan menunjukkan yang ada di makalah ini: Simulasi sebagai mesin pemahaman adegan fisik .
Maksud saya di sini adalah bahwa kecocokan dalam C benar-benar baik, karena modelnya menangkap bias yang benar tentang bagaimana manusia membuat penilaian fisik. Ini sebagian besar karena memodelkan fisika aktual (ingat bahwa itu adalah mesin fisika aktual) dan dapat mengatasi ketidakpastian.
Sekarang pertanyaan yang jelas adalah: dapatkah Anda melakukannya dengan pembelajaran yang mendalam? Inilah yang dilakukan Lerer dkk dalam karya ini: Mempelajari Intuisi Fisik Menara Blok dengan Contoh
Model mereka:
Model mereka sebenarnya cukup baik pada tugas yang dihadapi (memprediksi jumlah blok jatuh, dan bahkan arah jatuh mereka)
Tapi itu menderita dua kelemahan utama:
Ada studi perbandingan yang dilakukan oleh laboratorium Tenenbaum tentang dua pendekatan ini: Evaluasi Komparatif Perkiraan Simulasi Probabilistik dan Jaringan Neural Dalam sebagai Akun Pemahaman Adegan Fisik Manusia .
Mengutip bagian diskusi:
Kembali ke pokok yang ingin saya sampaikan: sementara jaringan saraf adalah model yang kuat, mereka tampaknya tidak memiliki kemampuan untuk mewakili struktur sebab akibat, komposisi dan kompleks. Dan mereka menebusnya dengan membutuhkan banyak data pelatihan.
Dan kembali ke pertanyaan Anda: Saya berani mengatakan bahwa bias induktif yang luas dan fakta bahwa jaringan saraf tidak memodelkan kausalitas / komposisionalitas adalah mengapa mereka membutuhkan begitu banyak data pelatihan. Regularisasi bukanlah perbaikan besar karena cara mereka menggeneralisasi. Perbaikan yang lebih baik adalah mengubah bias mereka, seperti yang saat ini sedang dicoba oleh Hinton dengan kapsul untuk pemodelan geometri seluruh / bagian, atau jaringan interaksi untuk hubungan pemodelan.
sumber
Pertama-tama ada banyak metode regularisasi yang digunakan dan dalam penelitian aktif untuk pembelajaran yang mendalam. Jadi premis Anda tidak sepenuhnya pasti.
Adapun metode yang digunakan, pembusukan berat adalah implementasi langsung dari hukuman L2 pada bobot melalui gradient descent. Ambil gradien norma kuadrat dari bobot Anda dan tambahkan langkah kecil ke arah ini untuk mereka di setiap iterasi. Putus sekolah juga dianggap sebagai bentuk regularisasi, yang memaksakan semacam struktur rata-rata. Ini tampaknya menyiratkan sesuatu seperti penalti L2 atas ansambel jaringan dengan parameter bersama.
Anda mungkin bisa meningkatkan level ini atau teknik lain untuk mengatasi sampel kecil. Tetapi perhatikan bahwa regularisasi menyiratkan pengenaan pengetahuan sebelumnya. Denda L2 pada bobot menyiratkan Gaussian sebelum bobot, misalnya. Meningkatkan jumlah regularisasi pada dasarnya menyatakan bahwa pengetahuan Anda sebelumnya semakin pasti dan bias hasil Anda terhadap itu sebelumnya. Jadi Anda bisa melakukannya dan itu akan lebih sedikit tetapi output bias mungkin menyedot. Jelas solusinya adalah pengetahuan sebelumnya yang lebih baik. Untuk pengenalan gambar, ini akan berarti prior yang lebih terstruktur mengenai statistik masalah Anda. Masalah dengan arah ini adalah Anda memaksakan banyak keahlian domain, dan menghindari keharusan memaksakan keahlian manusia adalah salah satu alasan Anda menggunakan pembelajaran yang mendalam.
sumber
Jaring saraf bisa dilatih seperti ini. Jika regularisasi L1 yang tepat digunakan maka banyak dari bobot dapat di-nolkan dan ini akan membuat jaring saraf berperilaku seperti gabungan dari 1 atau lebih neuron regresi linier dan banyak neron nol lainnya. Jadi ya - regularisasi L1 / L2 atau sejenisnya dapat digunakan untuk membatasi ukuran atau kekuatan representasional dari jaringan saraf.
Sebenarnya ukuran model itu sendiri adalah semacam regularisasi - jika Anda membuat model besar, itu berarti bahwa Anda menyuntikkan pengetahuan sebelumnya tentang masalah, yaitu, masalahnya sangat kompleks sehingga membutuhkan model yang memiliki kekuatan representasional yang tinggi. Jika Anda membuat model kecil, maka itu berarti Anda menyuntikkan pengetahuan bahwa masalahnya sederhana sehingga model tidak membutuhkan banyak kapasitas.
Dan ini berarti regularisasi L2 tidak akan membuat jaringan "jarang" seperti yang Anda gambarkan, karena regularisasi L2 menyuntikkan pengetahuan sebelumnya bahwa kontribusi setiap neuron (berat) harus kecil tetapi tidak nol. Jadi jaringan akan menggunakan masing-masing neuron daripada hanya menggunakan set kecil neuron.
sumber
Poin kunci di sini adalah bahwa regularisasi tidak selalu membantu. Sebaliknya, mengatur ke arah yang seharusnya benar mungkin sangat membantu, tetapi mengatur ke arah yang salah jelas buruk.
Tapi sekarang anggaplah data kami adalah gambar kucing yang dimasukkan ke dalam jaringan saraf yang dalam. Jika "telinga runcing" sebenarnya sangat membantu untuk mengidentifikasi kucing, mungkin kita ingin mengurangi hukuman untuk memberikan kekuatan prediksi ini. Tapi kami tidak tahu di mana dalam jaringan ini akan diwakili! Kami masih dapat memberikan penalti sehingga sebagian kecil dari sistem tidak mendominasi keseluruhan jaringan, tetapi di luar itu, sulit untuk memperkenalkan regularisasi dengan cara yang berarti.
Singkatnya, sangat sulit untuk memasukkan informasi sebelumnya ke dalam sistem yang tidak kami mengerti.
sumber