Makalah Adam mengatakan, "... banyak fungsi obyektif terdiri dari sejumlah subfungsi yang dievaluasi pada berbagai subsampel data; dalam hal ini optimisasi dapat dibuat lebih efisien dengan mengambil langkah-langkah gradien pada subfungsi individual ..." Di sini, mereka hanya berarti bahwa fungsi obyektif adalah jumlah kesalahan atas contoh pelatihan, dan pelatihan dapat dilakukan pada contoh individu atau minibatch. Ini sama seperti pada stochastic gradient descent (SGD), yang lebih efisien untuk masalah skala besar daripada pelatihan batch karena pembaruan parameter lebih sering.
Adapun mengapa Adam bekerja, itu menggunakan beberapa trik.
Salah satu trik ini adalah momentum, yang dapat memberikan konvergensi yang lebih cepat. Bayangkan fungsi objektif yang berbentuk seperti ngarai panjang dan sempit yang secara bertahap miring ke minimum. Katakanlah kita ingin meminimalkan fungsi ini menggunakan gradient descent. Jika kita mulai dari suatu titik di dinding ngarai, gradien negatif akan menunjuk ke arah penurunan paling curam, yaitu sebagian besar menuju lantai ngarai. Ini karena dinding ngarai jauh lebih curam daripada kemiringan bertahap ngarai menuju minimum. Jika tingkat belajar (yaitu ukuran langkah) kecil, kita bisa turun ke lantai ngarai, lalu ikuti ke minimum. Tetapi, kemajuan akan lambat. Kami dapat meningkatkan tingkat pembelajaran, tetapi ini tidak akan mengubah arah langkah-langkahnya. Dalam hal ini, kami akan melampaui lantai ngarai dan berakhir di dinding seberangnya. Kami kemudian akan mengulangi pola ini, berosilasi dari dinding ke dinding sambil membuat kemajuan lambat menuju minimum. Momentum dapat membantu dalam situasi ini.
Momentum berarti bahwa sebagian kecil dari pembaruan sebelumnya ditambahkan ke pembaruan saat ini, sehingga pembaruan berulang dalam senyawa arah tertentu; kami membangun momentum, bergerak lebih cepat dan lebih cepat ke arah itu. Dalam hal ngarai, kami akan membangun momentum ke arah minimum, karena semua pembaruan memiliki komponen ke arah itu. Sebaliknya, bergerak bolak-balik melintasi dinding ngarai melibatkan pembalikan arah secara konstan, sehingga momentum akan membantu meredam osilasi ke arah itu.
Trik lain yang digunakan Adam adalah secara adaptif memilih tingkat pembelajaran terpisah untuk setiap parameter. Parameter yang biasanya menerima pembaruan yang lebih kecil atau kurang sering menerima pembaruan yang lebih besar dengan Adam (kebalikannya juga benar). Ini mempercepat pembelajaran dalam kasus di mana tingkat pembelajaran yang sesuai bervariasi di seluruh parameter. Sebagai contoh, dalam jaringan yang dalam, gradien dapat menjadi kecil pada lapisan awal, dan masuk akal untuk meningkatkan tingkat pembelajaran untuk parameter yang sesuai. Manfaat lain dari pendekatan ini adalah bahwa, karena tingkat pembelajaran disesuaikan secara otomatis, penyetelan manual menjadi kurang penting. SGD standar membutuhkan penyetelan yang hati-hati (dan mungkin penyesuaian online) dari tingkat pembelajaran, tetapi ini kurang benar dengan Adam dan metode terkait. Masih perlu untuk memilih hyperparameters,
Metode terkait :
Momentum sering digunakan dengan SGD standar. Versi yang ditingkatkan disebut momentum Nesterov atau gradien yang dipercepat Nesterov. Metode lain yang menggunakan tingkat pembelajaran yang disetel secara otomatis untuk setiap parameter meliputi: Adagrad, RMSprop, dan Adadelta. RMSprop dan Adadelta menyelesaikan masalah dengan Adagrad yang dapat menyebabkan pembelajaran berhenti. Adam mirip dengan RMSprop dengan momentum. Nadam memodifikasi Adam untuk menggunakan momentum Nesterov alih-alih momentum klasik.
Referensi :
Kingma dan Ba (2014) . Adam: Metode untuk Optimasi Stochastic.
Goodfellow et al. (2016) . Pembelajaran mendalam, bab 8.
Slide dari kursus Geoff Hinton
Dozat (2016) . Memasukkan Momentum Nesterov ke dalam Adam.