Gradient Descent adalah algoritma yang banyak digunakan untuk mengoptimalkan jaringan saraf dalam pembelajaran mendalam. Ada banyak jenis gradient descent, jadi mari kita bahas beberapa di antaranya.
Penurunan Gradien Batch (BGD)
Dalam Batch Gradient Descent, kami memproses seluruh set data pelatihan dalam satu iterasi. Kami menghitung kesalahan, gradien, dan bobot baru untuk setiap pengamatan dalam set data pelatihan, tetapi hanya memperbarui model di akhir setelah semua pengamatan pelatihan dievaluasi.
Satu siklus melalui keseluruhan set data pelatihan disebut periode pelatihan. Oleh karena itu, sering dikatakan bahwa penurunan gradien batch melakukan pembaruan model di akhir setiap periode pelatihan.
Kelebihan
1. Lebih sedikit pembaruan pada model karena menghitung semua gradien dalam satu periode lalu memperbarui model.
2. Secara umum hal ini mengarah pada gradien kesalahan yang lebih stabil dan karenanya konvergensi menjadi lebih stabil.
Kekurangan
1. Kadang-kadang dapat mengakibatkan konvergensi prematur (minimum lokal).
2. Kecepatan pelatihan biasanya menjadi sangat lambat untuk kumpulan data besar.
3. Memerlukan banyak memori saat komputasi gradien dilakukan pada seluruh kumpulan data.
Penurunan Gradien Stokastik (SGD)
Dalam Stochastic Gradient Descent, kami memproses satu observasi (bukan seluruh dataset) dari dataset pelatihan di setiap iterasi. Kami menghitung kesalahan, gradien, dan bobot baru, lalu terus memperbarui model untuk setiap observasi dalam dataset pelatihan.
Kelebihan
1. Perhitungan gradien lebih cepat dibandingkan dengan perhitungan penurunan gradien batch.
2. Pembelajaran jauh lebih cepat daripada penurunan gradien batch.
Kekurangan
1. Model terus diperbarui untuk setiap pengamatan. Pembaruan yang sering ini membutuhkan komputasi yang mahal dan dapat memakan waktu yang jauh lebih lama untuk melatih model pada kumpulan data yang besar.
2. Pembaruan yang sering juga dapat mengakibatkan sinyal gradien yang berisik.
Penurunan Gradien Batch Mini (MBGD)
Dalam Mini Batch Gradient Descent, kami memproses sebagian kecil dari kumpulan data pelatihan di setiap iterasi. Jadi, dapat dikatakan bahwa ini adalah kompromi antara BGD dan SGD. Ini menjaga keseimbangan antara ketahanan penurunan gradien stokastik dan efisiensi penurunan gradien batch. Karena menggunakan kekuatan BGD dan SGD, ini adalah penurunan gradien yang paling banyak digunakan dalam pembelajaran mendalam.
Kelebihan
1. Frekuensi pembaruan model lebih tinggi daripada penurunan gradien batch yang memungkinkan konvergensi yang lebih kuat, menghindari minimum lokal.
2. Lebih cepat daripada BGD karena menggunakan sebagian kecil dataset pelatihan dibandingkan dengan keseluruhan dataset.
3. Menghasilkan akurasi yang lebih tinggi dibandingkan SGD yang hanya menggunakan satu titik data pada setiap iterasi.
Kekurangan
1. Ukuran batch merupakan hiperparameter yang sangat penting. Ukuran ini dapat bervariasi tergantung pada kumpulan data. Jadi, menentukan ukuran batch merupakan langkah yang sangat penting dalam MBGD. Menurut beberapa penelitian dan makalah, ukuran batch 32 merupakan ukuran yang paling sesuai.
Kesimpulan
Penurunan Gradien Batch, Penurunan Gradien Batch Mini, dan Penurunan Gradien Stokastik bervariasi bergantung pada ukuran batch m dan set pelatihan berukuran n.
Untuk penurunan gradien stokastik, m=1.
Untuk penurunan gradien batch, m = n.
Untuk penurunan gradien mini-batch, m=b di mana b < n.
Yang mana yang akan digunakan?
Saya lebih suka menggunakan penurunan gradien ukuran batch mini karena ini merupakan versi yang dioptimalkan dari penurunan gradien batch dan penurunan gradien stokastik dan juga cocok untuk ukuran kumpulan data apa pun.
Note:Ada beberapa versi lanjutan dari Gradient Descent seperti NAG (Gradien Percepatan Nesterov)), AdaGrad, Ada Delta, RMSprop dan Adam (Estimasi Momen Adaptif)Saya telah menulis sebuah artikel terpisah pada algoritma ini.
Penurunan Gradien Batch (BGD)
Dalam Batch Gradient Descent, kami memproses seluruh set data pelatihan dalam satu iterasi. Kami menghitung kesalahan, gradien, dan bobot baru untuk setiap pengamatan dalam set data pelatihan, tetapi hanya memperbarui model di akhir setelah semua pengamatan pelatihan dievaluasi.
Satu siklus melalui keseluruhan set data pelatihan disebut periode pelatihan. Oleh karena itu, sering dikatakan bahwa penurunan gradien batch melakukan pembaruan model di akhir setiap periode pelatihan.
Kelebihan
1. Lebih sedikit pembaruan pada model karena menghitung semua gradien dalam satu periode lalu memperbarui model.
2. Secara umum hal ini mengarah pada gradien kesalahan yang lebih stabil dan karenanya konvergensi menjadi lebih stabil.
Kekurangan
1. Kadang-kadang dapat mengakibatkan konvergensi prematur (minimum lokal).
2. Kecepatan pelatihan biasanya menjadi sangat lambat untuk kumpulan data besar.
3. Memerlukan banyak memori saat komputasi gradien dilakukan pada seluruh kumpulan data.
Penurunan Gradien Stokastik (SGD)
Dalam Stochastic Gradient Descent, kami memproses satu observasi (bukan seluruh dataset) dari dataset pelatihan di setiap iterasi. Kami menghitung kesalahan, gradien, dan bobot baru, lalu terus memperbarui model untuk setiap observasi dalam dataset pelatihan.
Kelebihan
1. Perhitungan gradien lebih cepat dibandingkan dengan perhitungan penurunan gradien batch.
2. Pembelajaran jauh lebih cepat daripada penurunan gradien batch.
Kekurangan
1. Model terus diperbarui untuk setiap pengamatan. Pembaruan yang sering ini membutuhkan komputasi yang mahal dan dapat memakan waktu yang jauh lebih lama untuk melatih model pada kumpulan data yang besar.
2. Pembaruan yang sering juga dapat mengakibatkan sinyal gradien yang berisik.
Penurunan Gradien Batch Mini (MBGD)
Dalam Mini Batch Gradient Descent, kami memproses sebagian kecil dari kumpulan data pelatihan di setiap iterasi. Jadi, dapat dikatakan bahwa ini adalah kompromi antara BGD dan SGD. Ini menjaga keseimbangan antara ketahanan penurunan gradien stokastik dan efisiensi penurunan gradien batch. Karena menggunakan kekuatan BGD dan SGD, ini adalah penurunan gradien yang paling banyak digunakan dalam pembelajaran mendalam.
Kelebihan
1. Frekuensi pembaruan model lebih tinggi daripada penurunan gradien batch yang memungkinkan konvergensi yang lebih kuat, menghindari minimum lokal.
2. Lebih cepat daripada BGD karena menggunakan sebagian kecil dataset pelatihan dibandingkan dengan keseluruhan dataset.
3. Menghasilkan akurasi yang lebih tinggi dibandingkan SGD yang hanya menggunakan satu titik data pada setiap iterasi.
Kekurangan
1. Ukuran batch merupakan hiperparameter yang sangat penting. Ukuran ini dapat bervariasi tergantung pada kumpulan data. Jadi, menentukan ukuran batch merupakan langkah yang sangat penting dalam MBGD. Menurut beberapa penelitian dan makalah, ukuran batch 32 merupakan ukuran yang paling sesuai.
Kesimpulan
Penurunan Gradien Batch, Penurunan Gradien Batch Mini, dan Penurunan Gradien Stokastik bervariasi bergantung pada ukuran batch m dan set pelatihan berukuran n.
Untuk penurunan gradien stokastik, m=1.
Untuk penurunan gradien batch, m = n.
Untuk penurunan gradien mini-batch, m=b di mana b < n.
Yang mana yang akan digunakan?
Saya lebih suka menggunakan penurunan gradien ukuran batch mini karena ini merupakan versi yang dioptimalkan dari penurunan gradien batch dan penurunan gradien stokastik dan juga cocok untuk ukuran kumpulan data apa pun.
Note:Ada beberapa versi lanjutan dari Gradient Descent seperti NAG (Gradien Percepatan Nesterov)), AdaGrad, Ada Delta, RMSprop dan Adam (Estimasi Momen Adaptif)Saya telah menulis sebuah artikel terpisah pada algoritma ini.