Mengapa algoritma keturunan “Saddle-Free Newton” tidak digunakan dalam praktik?

13

Baru-baru ini saya telah membaca makalah oleh Yann Dauphin et al. Mengidentifikasi dan menyerang masalah saddle point dalam optimasi non-cembung dimensi tinggi , di mana mereka memperkenalkan algoritma keturunan yang menarik yang disebut Saddle-Free Newton , yang tampaknya dirancang khusus untuk optimalisasi jaringan saraf dan tidak boleh menderita macet di sadel poin seperti metode urutan pertama sebagai vanilla SGD.

Makalah ini tanggal kembali ke 2014, jadi bukan hal yang baru, namun, saya belum melihatnya digunakan "di alam liar". Mengapa metode ini tidak digunakan? Apakah perhitungan Hessian terlalu mahal untuk masalah / jaringan berukuran dunia nyata? Apakah bahkan ada beberapa implementasi open source dari algoritma ini, mungkin untuk digunakan dengan beberapa kerangka pembelajaran yang mendalam?

Pembaruan Feb 2019: ada implementasi yang tersedia sekarang: https://github.com/dave-fernandes/SaddleFreeOptimizer )

Jan Kukacka
sumber
Pertanyaan bagus, saya tidak dapat menemukan apa pun. Namun, kodesemu sangat sederhana sehingga Anda dapat mencobanya sendiri, dalam hal ini ada beberapa detail implementasi yang berguna dalam salah satu tesis doktoral penulis (halaman 103, papyrus.bib.umontreal.ca/xmlui/bitstream/handle / 1866/13710 / ... )
galoosh33
1
Saya menemukan referensi untuk makalah yang sama ini dalam posting Blog Uber Deep-Neuroevolution. Tautan: eng.uber.com/deep-neuroevolution Anda dapat bertanya kepada penulis apakah mereka memiliki implementasi online / dibagikan melalui GitHub.
Cantren
berikut ini adalah implementasi untuk TensorFlow: github.com/dave-fernandes/SaddleFreeOptimizer
Dave F
Jika saya harus menebak, asumsi saya adalah bahwa komputasi + membalik Hessian tidak praktis ketika model Anda memiliki jutaan parameter.
Sycorax berkata Reinstate Monica
1
Bisakah Anda saring pertanyaan Anda dari "apakah ada implementasi"? Yang tampaknya mampu, ya / tidak jawaban & / atau terdengar seperti permintaan perangkat lunak (yang di luar topik di sini). Bisakah pertanyaan Anda dijabarkan menjadi sesuatu seperti, 'kesulitan apa yang menjelaskan mengapa tampaknya tidak ada lebih banyak implementasi'?
gung - Reinstate Monica

Jawaban:

2

Optimalisasi yang lebih baik tidak selalu berarti model yang lebih baik. Pada akhirnya yang kami pedulikan adalah seberapa baik model tersebut digeneralisasi, dan belum tentu seberapa baik kinerja pada set pelatihan. Teknik optimasi yang lebih bagus biasanya berkinerja lebih baik dan menyatu lebih cepat pada set pelatihan, tetapi tidak selalu menggeneralisasi serta algoritma dasar. Misalnya makalah ini menunjukkan bahwa SGD dapat menggeneralisasi lebih baik daripada pengoptimal ADAM. Ini juga dapat terjadi dengan beberapa algoritma optimasi urutan kedua.


[Sunting] Menghapus titik pertama karena tidak berlaku di sini. Terima kasih kepada bayerj untuk menunjukkan ini.

Soroush
sumber
1
Meskipun saya setuju dengan poin kedua, yang pertama tidak valid di sini. Penulis mengusulkan untuk melakukan optimasi hanya di ruang bagian Krylov, yang tidak memerlukan kompleksitas kuadratik.
bayerj