Bir süredir sinir ağları kullanıyorum. Bununla birlikte, sürekli mücadele ettiğim bir şey, ağı eğitmek için bir iyileştirici seçimidir (backprop kullanarak). Genellikle yaptığım şey sadece biriyle (örneğin standart SGD) başlamak ve diğerlerini hemen hemen rastgele denemek. İyi bir optimizer bulmak için daha iyi (ve daha az rastgele) bir yaklaşım olup olmadığını merak ediyordum, örneğin bu listeden:
- SGD (momentumlu veya momentumsuz)
- AdaDelta
- AdaGrad
- RMSProp
- Adem
Özellikle, eğitim verilerinin belirli bir özelliği olduğu, örneğin seyrek olduğu göz önüne alındığında, diğerinin üzerinde seçim yapmak için bazı teorik gerekçelerin olup olmadığıyla ilgileniyorum. Ayrıca bazı optimize edicilerin belirli alanlardaki diğerlerinden daha iyi çalıştığını düşünebilirim;
Herhangi biriniz optimize edicileri nasıl seçeceğiniz konusunda bir strateji ve / veya sezgi geliştirdiyseniz, bunu duymakla çok ilgilenirim. Dahası, birbirini seçmek için teorik gerekçe sağlayan bir çalışma varsa, bu daha da iyi olurdu.