Pedoman untuk memilih pengoptimal untuk pelatihan jaringan saraf

18

Saya telah menggunakan jaringan saraf untuk sementara waktu sekarang. Namun, satu hal yang selalu saya perjuangkan adalah pemilihan pengoptimal untuk melatih jaringan (menggunakan backprop). Apa yang biasanya saya lakukan hanyalah mulai dengan satu (misalnya SGD standar) dan kemudian coba yang lain cukup banyak secara acak. Saya bertanya-tanya apakah ada pendekatan yang lebih baik (dan kurang acak) untuk menemukan pengoptimal yang baik, misalnya dari daftar ini:

  • SGD (dengan atau tanpa momentum)
  • AdaDelta
  • AdaGrad
  • RMSProp
  • Adam

Secara khusus, saya tertarik jika ada beberapa pembenaran teoretis untuk memilih satu sama lain mengingat data pelatihan memiliki beberapa properti, misalnya itu jarang. Saya juga akan membayangkan bahwa beberapa pengoptimal bekerja lebih baik daripada yang lain dalam domain tertentu, misalnya ketika melatih jaringan konvolusional vs jaringan umpan-maju atau klasifikasi vs regresi.

Jika ada di antara Anda yang telah mengembangkan beberapa strategi dan / atau intuisi tentang bagaimana Anda memilih pengoptimal, saya akan sangat tertarik mendengarnya. Selain itu, jika ada beberapa pekerjaan yang memberikan pembenaran teoretis untuk memilih satu sama lain, itu akan lebih baik.

mplappert
sumber

Jawaban:

3

1) AdaGrad menghukum tingkat pembelajaran terlalu keras untuk parameter yang sering diperbarui dan memberikan lebih banyak tingkat pembelajaran untuk parameter jarang, parameter yang tidak diperbarui sesering mungkin. Dalam beberapa masalah sering kali informasi yang paling kritis ada dalam data yang tidak sesering tetapi jarang. Jadi jika masalah yang Anda kerjakan berkaitan dengan data jarang seperti tf-idf, dll. Adagrad bisa bermanfaat.

2) AdaDelta, RMSProp hampir bekerja pada baris yang sama dengan satu-satunya perbedaan di Adadelta Anda tidak memerlukan tingkat pembelajaran awal yang konstan untuk memulai.

3) Adam menggabungkan sifat-sifat baik dari Adadelta dan RMSprop dan karenanya cenderung lebih baik untuk sebagian besar masalah.

4) Penurunan gradien stokastik sangat mendasar dan jarang digunakan sekarang. Satu masalah adalah dengan tingkat pembelajaran global yang terkait dengan hal yang sama. Oleh karena itu tidak berfungsi dengan baik ketika parameter berada dalam skala yang berbeda karena tingkat belajar yang rendah akan membuat pembelajaran menjadi lambat sementara tingkat belajar yang besar dapat menyebabkan osilasi. Juga penurunan gradien Stochastic umumnya mengalami kesulitan untuk keluar dari titik pelana. Adagrad, Adadelta, RMSprop dan ADAM umumnya menangani poin sadel lebih baik. SGD dengan momentum memberikan kecepatan pada pengoptimalan dan juga membantu menghindari minimum lokal lebih baik.

Santanu_Pattanayak
sumber
2

Pendekatan pribadi saya adalah memilih pengoptimal yang terbaru (yaitu jurnal terbaru yang diterbitkan oleh rekan sejawat), karena mereka biasanya melaporkan hasil pada dataset standar, atau mengalahkan seni, atau keduanya. Ketika saya menggunakan Caffe misalnya, saya selalu menggunakan Adam ( http://arxiv.org/abs/1412.6980 ).

mprat
sumber
0
Nadam(lr=0.002, beta_1=0.9, beta_2=0.999, epsilon=None, schedule_decay=0.004)

Sama seperti Adampada dasarnya RMSpropdengan momentum, Nadamadalah Adam RMSpropdengan momentum Nesterov.

rigo
sumber