Berapa banyak data untuk pembelajaran mendalam?


9

Saya belajar tentang pembelajaran yang mendalam (khususnya CNN), dan bagaimana hal itu biasanya membutuhkan banyak data untuk mencegah overfitting. Namun, saya juga telah diberitahu bahwa semakin tinggi kapasitas / lebih banyak parameter model, semakin banyak data yang diperlukan untuk mencegah overfitting. Oleh karena itu, pertanyaan saya adalah: Mengapa Anda tidak bisa hanya mengurangi jumlah layer / node per layer dalam jaringan saraf yang dalam, dan membuatnya bekerja dengan jumlah data yang lebih kecil? Apakah ada "jumlah minimum parameter" mendasar yang diperlukan jaringan saraf hingga "diaktifkan"? Di bawah sejumlah lapisan tertentu, jaringan saraf tampaknya tidak berkinerja sebaik fitur kode tangan.

Jawaban:


10

Ini adalah pertanyaan yang bagus dan sebenarnya ada beberapa penelitian yang menangani masalah kapasitas / kedalaman yang Anda sebutkan.

Ada banyak bukti bahwa kedalaman dalam jaringan saraf convolutional telah menyebabkan pembelajaran hirarki fitur yang lebih kaya dan lebih beragam. Secara empiris kita melihat jaring berkinerja terbaik cenderung "dalam": Oxford VGG-Net memiliki 19 lapisan, arsitektur Google Inception mendalam, Microsoft Deep Residual Network melaporkan 152 lapisan, dan semua ini memperoleh patokan ImageNet yang sangat mengesankan hasil.

Di permukaan, itu fakta bahwa model kapasitas yang lebih tinggi memiliki kecenderungan untuk mengenakan pakaian kecuali Anda menggunakan semacam regularizer. Salah satu cara overfitting jaringan yang sangat dalam dapat merusak kinerja adalah bahwa mereka akan dengan cepat mendekati kesalahan pelatihan yang sangat rendah dalam sejumlah kecil periode pelatihan, yaitu kita tidak dapat melatih jaringan untuk sejumlah besar lintasan melalui dataset. Teknik seperti Dropout, teknik regularisasi stokastik, memungkinkan kita untuk melatih jaring yang sangat dalam untuk periode waktu yang lebih lama. Ini berlaku memungkinkan kita untuk mempelajari fitur yang lebih baik dan meningkatkan akurasi klasifikasi kita karena kita mendapatkan lebih banyak melewati data pelatihan.

Sehubungan dengan pertanyaan pertama Anda:

Mengapa Anda tidak bisa hanya mengurangi jumlah layer / node per layer dalam jaringan saraf yang dalam, dan membuatnya bekerja dengan jumlah data yang lebih kecil?

Jika kita mengurangi ukuran set pelatihan, bagaimana hal itu mempengaruhi kinerja generalisasi? Jika kami menggunakan ukuran set pelatihan yang lebih kecil, ini dapat mengakibatkan mempelajari representasi fitur yang lebih kecil, dan ini dapat mengganggu kemampuan generalisasi kami. Pada akhirnya, kami ingin dapat menggeneralisasi dengan baik. Memiliki set pelatihan yang lebih besar memungkinkan kita untuk belajar hirarki fitur terdistribusi yang lebih beragam.

Sehubungan dengan pertanyaan kedua Anda:

Apakah ada "jumlah minimum parameter" mendasar yang diperlukan jaringan saraf hingga "diaktifkan"? Di bawah sejumlah lapisan tertentu, jaringan saraf tampaknya tidak berkinerja sebaik fitur kode tangan.

Sekarang mari kita tambahkan nuansa pada diskusi di atas tentang masalah mendalam. Tampaknya, mengingat di mana kita berada sekarang dengan keadaan terkini, untuk melatih jaring kinerja tinggi dari awal, beberapa jenis arsitektur yang mendalam digunakan.

Tapi ada serangkaian hasil yang difokuskan pada kompresi model . Jadi ini bukan jawaban langsung untuk pertanyaan Anda, tetapi terkait. Kompresi model tertarik pada pertanyaan berikut: Diberikan model kinerja tinggi (dalam kasus kami katakanlah deep conv net), dapatkah kita mengompres model, mengurangi kedalamannya atau bahkan menghitung parameter, dan mempertahankan kinerja yang sama?

Kita dapat melihat kinerja tinggi, kapasitas bersih sebagai guru . Bisakah kita menggunakan guru untuk melatih model siswa yang lebih kompak ?

Anehnya jawabannya adalah: ya . Sudah ada serangkaian hasil, artikel bagus untuk perspektif internet bersih adalah artikel oleh Rich Caruana dan Jimmy Ba. Apakah Deep Nets Benar-benar Perlu Menjadi Deep? . Mereka mampu melatih model yang dangkal untuk meniru model yang lebih dalam, dengan sedikit sekali kerugian dalam kinerja. Ada beberapa pekerjaan lain juga tentang topik ini, misalnya:

di antara karya-karya lainnya. Saya yakin saya kehilangan beberapa artikel bagus lainnya.

Bagi saya hasil semacam ini mempertanyakan berapa banyak kapasitas yang dimiliki oleh model yang dangkal ini. Dalam artikel Caruana, Ba, mereka menyatakan kemungkinan berikut:

"Hasilnya menunjukkan bahwa kekuatan pembelajaran dalam mungkin timbul sebagian dari kecocokan yang baik antara arsitektur dalam dan prosedur pelatihan saat ini, dan bahwa dimungkinkan untuk merancang algoritma pembelajaran yang lebih baik untuk melatih jaring umpan-maju dangkal yang lebih akurat. Untuk yang diberikan sejumlah parameter, kedalaman mungkin membuat belajar lebih mudah, tetapi mungkin tidak selalu penting "

Penting untuk diperjelas: dalam artikel Caruana, Ba, mereka tidak melatih model yang dangkal dari awal, yaitu pelatihan hanya dari label kelas, untuk mendapatkan kinerja seni yang canggih. Sebaliknya, mereka melatih model mendalam kinerja tinggi, dan dari model ini mereka mengekstrak probabilitas log untuk setiap titik data. Kami kemudian melatih model yang dangkal untuk memprediksi probabilitas log ini. Jadi kami tidak melatih model dangkal pada label kelas, melainkan menggunakan probabilitas log ini.

Meskipun demikian, ini masih merupakan hasil yang cukup menarik. Meskipun ini tidak memberikan jawaban langsung untuk pertanyaan Anda, ada beberapa ide menarik di sini yang sangat relevan.

Secara mendasar: selalu penting untuk diingat bahwa ada perbedaan antara "kapasitas" teoretis suatu model dan menemukan konfigurasi yang baik dari model Anda. Yang terakhir tergantung pada metode optimasi Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.