Berdasarkan Apa yang harus kita lakukan ketika pertanyaan yang diposting di DataScience merupakan duplikat dari pertanyaan yang diposting di CrossValidated? , Saya memposting ulang jawaban saya untuk pertanyaan yang sama yang ditanyakan di CrossValidated ( https://stats.stackexchange.com/a/311318/89653 ).
Catatan: sepanjang jawaban ini saya mengacu pada minimalisasi kehilangan pelatihan dan saya tidak membahas kriteria berhenti seperti kehilangan validasi. Pilihan kriteria berhenti tidak mempengaruhi proses / konsep yang dijelaskan di bawah ini.
Proses pelatihan jaringan saraf adalah untuk menemukan nilai minimum dari fungsi kerugian , di mana merupakan matriks (atau beberapa matriks) dari bobot antara neuron dan mewakili dataset pelatihan. Saya menggunakan subskrip untuk untuk menunjukkan bahwa minimalisasi hanya terjadi pada bobot (yaitu, kami mencari sedemikian rupa sehingga diminimalkan) sementara diperbaiki.WXX ℒ WW ℒ XLX(W)WXXLWWLX
Sekarang, jika kita berasumsi bahwa kita memiliki elemen dalam (yaitu, ada bobot dalam jaringan), adalah permukaan dalam ruang dimensi . Untuk memberikan analog visual, bayangkan bahwa kita hanya memiliki dua bobot neuron ( ). Maka memiliki interpretasi geometris yang mudah: ia adalah permukaan dalam ruang 3 dimensi. Ini muncul dari fakta bahwa untuk setiap matriks bobot yang diberikan , fungsi kehilangan dapat dievaluasi pada dan nilai tersebut menjadi ketinggian permukaan.W P ℒ P + 1 P = 2 ℒ W XPWPLP+1P=2LWX
Tetapi ada masalah ketidakkonsistenan; permukaan yang saya jelaskan akan memiliki banyak minimum lokal, dan karena itu algoritma gradient descent rentan untuk menjadi "terjebak" dalam minimum tersebut sementara solusi yang lebih dalam / lebih rendah / lebih baik mungkin terletak di dekatnya. Ini mungkin terjadi jika tidak berubah pada semua iterasi pelatihan, karena permukaannya tetap untuk diberikan ; semua fitur-fiturnya statis, termasuk berbagai minimumnya.XXX
Solusi untuk ini adalah pelatihan batch mini yang dikombinasikan dengan pengocokan. Dengan mengocok baris dan pelatihan hanya pada sebagian dari mereka selama iterasi yang diberikan, berubah dengan setiap iterasi, dan itu sebenarnya sangat mungkin bahwa tidak ada dua iterasi pada seluruh urutan iterasi pelatihan dan zaman akan dilakukan pada sama persis . Efeknya adalah bahwa pemecah dapat dengan mudah "memantul" dari minimum lokal. Bayangkan bahwa pemecah terjebak dalam minimum lokal pada iterasi dengan pelatihan mini-batch . Minimum lokal ini sesuai dengan dievaluasi pada nilai bobot tertentu; kami akan menyebutnyaX i X i ℒ ℒ X i ( W i ) X i + 1 ℒ X i + 1 ( W i ) ℒ X i ( W i ) ℒ X i + 1 ℒ X i ℒ X W WXXiXiLLXi(Wi). Pada iterasi berikutnya bentuk permukaan kerugian kita sebenarnya berubah karena kita menggunakan , yaitu, , dapat mengambil nilai yang sangat berbeda dari dan sangat mungkin tidak sesuai dengan minimum lokal! Kami sekarang dapat menghitung pembaruan gradien dan melanjutkan pelatihan. Agar jelas: bentuk akan - secara umum - berbeda dari . Perhatikan bahwa di sini saya mengacu pada fungsi kerugian dievaluasi pada set pelatihan ; ini adalah permukaan lengkap yang didefinisikan atas semua nilaiXi+1LXi+1(Wi)LXi(Wi)LXi+1LXiLXW, daripada evaluasi kerugian itu (yang hanya skalar) untuk nilai . Perhatikan juga bahwa jika mini-batch digunakan tanpa pengocokan, masih ada tingkat "diversifikasi" permukaan yang hilang, tetapi akan ada sejumlah (hingga relatif kecil) jumlah permukaan kesalahan unik yang terlihat oleh solver (khususnya, ia akan melihat set persis mini-batch yang sama - dan karena itu kehilangan permukaan - selama setiap zaman).W
Satu hal yang sengaja saya hindari adalah diskusi tentang ukuran mini-batch, karena ada sejuta pendapat tentang ini dan memiliki implikasi praktis yang signifikan (paralelisasi yang lebih besar dapat dicapai dengan batch yang lebih besar). Namun, saya percaya yang berikut ini layak disebutkan. Karena dievaluasi dengan menghitung nilai untuk setiap baris (dan menjumlahkan atau mengambil rata-rata; yaitu, operator komutatif) untuk seperangkat matriks bobot , susunan baris tidak berpengaruh ketika menggunakan full- batch gradient descent (yaitu, ketika setiap batch adalah penuh , dan iterasi dan zaman adalah hal yang sama). X W X XLXWX X