RMSProp dan Adam vs SGD

12

Saya melakukan percobaan pada set validasi EMNIST menggunakan jaringan dengan RMSProp, Adam dan SGD. Saya mencapai akurasi 87% dengan SGD (tingkat belajar 0,1) dan dropout (0,1 dropout prob) serta regularisasi L2 (penalti 1e-05). Saat menguji konfigurasi persis yang sama dengan RMSProp dan Adam serta tingkat pembelajaran awal 0,001, saya mencapai akurasi 85% dan kurva pelatihan yang secara signifikan kurang mulus. Saya tidak tahu bagaimana menjelaskan perilaku ini. Apa yang bisa menjadi alasan di balik kurangnya kelancaran dalam kurva pelatihan dan akurasi yang lebih rendah dan tingkat kesalahan yang lebih tinggi tercapai?

Alk
sumber
Ini tergantung pada jaringan. Bisakah Anda menunjukkan kepada kami detail tentang jaringan? Bisakah Anda memberikan kurva belajar?
Memming
Ini adalah jaringan dengan 5 lapisan (Dropout, Affine, ELU di setiap lapisan), diatur sebagai berikut: 150 dimensi tersembunyi, fungsi aktivasi ELU digunakan, 0,1 tingkat pembelajaran untuk SGD, laju pembelajaran 0,001 untuk RMS dan Adam, regularisasi L2 dengan 1e -05 penalti, Dropout dengan probabilitas eksklusi 0,1.
Alk
Dan ketika Anda mengatakan "konfigurasi yang sama persis ... tingkat pembelajaran awal 0,001", maksud Anda Anda menggunakan tingkat pembelajaran yang berbeda atau Anda melakukan dua percobaan: satu dengan tingkat belajar yang sama dan satu dengan yang berbeda? Ini mungkin tergantung pada perangkat lunak aktual yang Anda gunakan untuk parameter apa yang default untuk apa.
Wayne
Jadi saya menggunakan 0,1 untuk SGD dan 0,001 untuk Adam dan RMSProp. Ini karena ketika saya menjalankan Adam dan RMSProp dengan tingkat pembelajaran 0,1 mereka berdua berperforma buruk dengan akurasi 60%. Juga, 0,001 adalah nilai yang direkomendasikan dalam makalah tentang Adam.
Alk
Anda harus memposting kurva belajar, dan apakah Anda mengukur kesalahan pada tes atau data pelatihan.
Jakub Bartczuk

Jawaban:

4

Setelah meneliti beberapa artikel online dan dokumentasi Keras disarankan bahwa pengoptimal RMSProp direkomendasikan untuk jaringan saraf berulang. https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L209

Stochastic Gradient Descent tampaknya memanfaatkan tingkat pembelajaran dan momentumnya di antara setiap batch untuk mengoptimalkan bobot model berdasarkan pada informasi fungsi kerugian dalam kasus saya 'kategorikal_crossentropi'.

Saya sarankan http://ruder.io/optimizing-gradient-descent/index.html untuk informasi tambahan tentang algoritma pengoptimalan.

Alejandro Trujillo
sumber
Saya tidak yakin apa yang Anda maksud dengan "pengoptimal RMSProp direkomendasikan untuk jaringan saraf berulang". Tautan yang Anda masukkan sekarang rusak dan tidak disebutkan di mana pun direkomendasikan.
Harshal Parekh