Dalam saya Artikel sebelumnya pada Gradient Descent Optimizers, kita telah membahas tentang tiga jenis algoritma Gradient Descent:
1. Penurunan Gradien Batch
2. Penurunan Gradien Stokastik
3. Penurunan Gradien Batch Mini
Dalam artikel ini, kita akan melihat beberapa versi lanjutan dari Gradient Descent yang dapat dikategorikan sebagai:
1. Berbasis momentum (Momentum Nesterov)
2. Berdasarkan kecepatan pembelajaran adaptif (Adagrad, Adadelta, RMSprop)
3. Kombinasi momentum dan tingkat pembelajaran adaptif (Adam)
Pertama, mari kita pahami sesuatu tentang momentum.
Momentum
Momentum membantu mempercepat SGD ke arah yang relevan. Jadi, sebaiknya pertimbangkan juga momentum untuk setiap parameter. Momentum memiliki keuntungan sebagai berikut:
1. Menghindari minimum lokal: Karena momentum menambah kecepatan dan karenanya meningkatkan ukuran langkah, pengoptimal tidak akan terjebak dalam nilai minimum lokal.
2. Konvergensi lebih cepat: Momentum membuat konvergensi lebih cepat karena meningkatkan ukuran langkah akibat kecepatan yang diperoleh.
Sekarang, mari kita lihat beberapa jenis SGD.
1. Momentum Nesterov
Ia menemukan momentum saat ini dan berdasarkan itu memperkirakan posisi berikutnya. Dan kemudian, ia menghitung gradien sehubungan dengan posisi perkiraan berikutnya alih-alih menghitung gradien sehubungan dengan posisi saat ini. Hal ini mencegah kita bergerak terlalu cepat dan menghasilkan peningkatan responsivitas, yang secara signifikan meningkatkan kinerja SGD.
2. Adagrad
Itu terutama berfokus pada tingkat pembelajaran adaptif daripada momentum.
Dalam SGD standar, laju pembelajaran selalu konstan. Artinya, kita harus bergerak dengan kecepatan yang sama tanpa mempedulikan kemiringannya. Hal ini tampaknya tidak praktis dalam kehidupan nyata.
Apa yang terjadi jika kita tahu bahwa kita harus memperlambat atau mempercepat? Apa yang terjadi jika kita tahu bahwa kita harus mempercepat lebih banyak ke arah ini dan memperlambat ke arah itu? Itu tidak mungkin dilakukan dengan menggunakan SGD standar.
Adagrad terus memperbarui laju pembelajaran alih-alih menggunakan laju pembelajaran konstan. Ia mengumpulkan jumlah kuadrat semua gradien, dan menggunakannya untuk menormalkan laju pembelajaran, sehingga sekarang laju pembelajaran bisa lebih kecil atau lebih besar tergantung pada bagaimana gradien sebelumnya berperilaku.
Ia menyesuaikan laju pembelajaran dengan parameter, melakukan pembaruan yang lebih kecil (yaitu laju pembelajaran rendah) untuk parameter yang terkait dengan fitur yang sering muncul, dan pembaruan yang lebih besar (yaitu laju pembelajaran tinggi) untuk parameter yang terkait dengan fitur yang jarang muncul. Karena alasan ini, ia sangat cocok untuk menangani data yang jarang muncul.
2A. AdaDelta dan RMSprop
AdaDelta dan RMSprop merupakan perpanjangan dari Adagrad.
Seperti yang dibahas di bagian Adagrad, Adagrad mengumpulkan jumlah kuadrat semua gradien dan menggunakannya untuk menormalkan laju pembelajaran. Oleh karena itu, Adagrad mengalami masalah. Masalahnya adalah kecepatan belajar di Adagrad terus menurun sehingga pada suatu titik pembelajaran hampir terhenti.
Untuk menangani masalah ini, AdaDelta dan RMSprop meluruhkan gradien akumulasi masa lalu, sehingga hanya sebagian gradien masa lalu yang dipertimbangkan. Sekarang, alih-alih mempertimbangkan semua gradien masa lalu, kami mempertimbangkan rata-rata bergerak.
3 pria
Adam adalah Gradient Descent Optimizer terbaik dan digunakan secara luas. Ia menggunakan kekuatan baik momentum dan pembelajaran adaptifDengan kata lain, Adam adalah RMSprop atau AdaDelta dengan momentum. Ia mempertimbangkan momentum dan juga menormalkan laju pembelajaran menggunakan gradien kuadrat rata-rata bergerak.
Kesimpulan : Sebagian besar metode Gradient Descent di atas sudah diterapkan dalam kerangka kerja Deep Learning populer seperti Tensorflow, Keras, Caffe, dll. Namun, Adam saat ini merupakan algoritma default yang direkomendasikan untuk digunakan karena memanfaatkan fitur momentum dan pembelajaran adaptif.
Untuk rincian lebih lanjut mengenai algoritma di atas, saya sangat menyarankan ini dan ini Artikel.
1. Penurunan Gradien Batch
2. Penurunan Gradien Stokastik
3. Penurunan Gradien Batch Mini
Dalam artikel ini, kita akan melihat beberapa versi lanjutan dari Gradient Descent yang dapat dikategorikan sebagai:
1. Berbasis momentum (Momentum Nesterov)
2. Berdasarkan kecepatan pembelajaran adaptif (Adagrad, Adadelta, RMSprop)
3. Kombinasi momentum dan tingkat pembelajaran adaptif (Adam)
Pertama, mari kita pahami sesuatu tentang momentum.
Momentum
Momentum membantu mempercepat SGD ke arah yang relevan. Jadi, sebaiknya pertimbangkan juga momentum untuk setiap parameter. Momentum memiliki keuntungan sebagai berikut:
1. Menghindari minimum lokal: Karena momentum menambah kecepatan dan karenanya meningkatkan ukuran langkah, pengoptimal tidak akan terjebak dalam nilai minimum lokal.
2. Konvergensi lebih cepat: Momentum membuat konvergensi lebih cepat karena meningkatkan ukuran langkah akibat kecepatan yang diperoleh.
Sekarang, mari kita lihat beberapa jenis SGD.
1. Momentum Nesterov
Ia menemukan momentum saat ini dan berdasarkan itu memperkirakan posisi berikutnya. Dan kemudian, ia menghitung gradien sehubungan dengan posisi perkiraan berikutnya alih-alih menghitung gradien sehubungan dengan posisi saat ini. Hal ini mencegah kita bergerak terlalu cepat dan menghasilkan peningkatan responsivitas, yang secara signifikan meningkatkan kinerja SGD.
2. Adagrad
Itu terutama berfokus pada tingkat pembelajaran adaptif daripada momentum.
Dalam SGD standar, laju pembelajaran selalu konstan. Artinya, kita harus bergerak dengan kecepatan yang sama tanpa mempedulikan kemiringannya. Hal ini tampaknya tidak praktis dalam kehidupan nyata.
Apa yang terjadi jika kita tahu bahwa kita harus memperlambat atau mempercepat? Apa yang terjadi jika kita tahu bahwa kita harus mempercepat lebih banyak ke arah ini dan memperlambat ke arah itu? Itu tidak mungkin dilakukan dengan menggunakan SGD standar.
Adagrad terus memperbarui laju pembelajaran alih-alih menggunakan laju pembelajaran konstan. Ia mengumpulkan jumlah kuadrat semua gradien, dan menggunakannya untuk menormalkan laju pembelajaran, sehingga sekarang laju pembelajaran bisa lebih kecil atau lebih besar tergantung pada bagaimana gradien sebelumnya berperilaku.
Ia menyesuaikan laju pembelajaran dengan parameter, melakukan pembaruan yang lebih kecil (yaitu laju pembelajaran rendah) untuk parameter yang terkait dengan fitur yang sering muncul, dan pembaruan yang lebih besar (yaitu laju pembelajaran tinggi) untuk parameter yang terkait dengan fitur yang jarang muncul. Karena alasan ini, ia sangat cocok untuk menangani data yang jarang muncul.
2A. AdaDelta dan RMSprop
AdaDelta dan RMSprop merupakan perpanjangan dari Adagrad.
Seperti yang dibahas di bagian Adagrad, Adagrad mengumpulkan jumlah kuadrat semua gradien dan menggunakannya untuk menormalkan laju pembelajaran. Oleh karena itu, Adagrad mengalami masalah. Masalahnya adalah kecepatan belajar di Adagrad terus menurun sehingga pada suatu titik pembelajaran hampir terhenti.
Untuk menangani masalah ini, AdaDelta dan RMSprop meluruhkan gradien akumulasi masa lalu, sehingga hanya sebagian gradien masa lalu yang dipertimbangkan. Sekarang, alih-alih mempertimbangkan semua gradien masa lalu, kami mempertimbangkan rata-rata bergerak.
3 pria
Adam adalah Gradient Descent Optimizer terbaik dan digunakan secara luas. Ia menggunakan kekuatan baik momentum dan pembelajaran adaptifDengan kata lain, Adam adalah RMSprop atau AdaDelta dengan momentum. Ia mempertimbangkan momentum dan juga menormalkan laju pembelajaran menggunakan gradien kuadrat rata-rata bergerak.
Kesimpulan : Sebagian besar metode Gradient Descent di atas sudah diterapkan dalam kerangka kerja Deep Learning populer seperti Tensorflow, Keras, Caffe, dll. Namun, Adam saat ini merupakan algoritma default yang direkomendasikan untuk digunakan karena memanfaatkan fitur momentum dan pembelajaran adaptif.
Untuk rincian lebih lanjut mengenai algoritma di atas, saya sangat menyarankan ini dan ini Artikel.