Adam, “birçok nesnel işlev, farklı veri örneklerinde değerlendirilen bir dizi alt işlevden oluşur; bu durumda, bireysel alt işlevlere göre degrade adımlar atılarak optimizasyon daha verimli hale getirilebilir ...” Amaç, işlevin eğitim örnekleri üzerindeki hataların toplamı olduğu ve eğitimin bireysel örnekler ya da minibatchler üzerinde yapılabileceği anlamına geliyor. Bu, parametre güncellemelerinin daha sık olması nedeniyle büyük ölçekli problemler için toplu eğitimden daha etkili olan stokastik gradyan inişinde (SGD) aynıdır.
Adam'ın neden çalıştığına gelince, birkaç püf noktası kullanıyor.
Bu numaralardan biri, daha hızlı yakınsama sağlayabilen momentumdur. Kademeli olarak minimuma eğimli, uzun ve dar bir kanyon şeklinde olan nesnel bir işlev hayal edin. Diyelim ki bu işlevi degrade iniş kullanarak en aza indirmek istiyoruz. Kanyon duvarındaki bir noktadan başlarsak, negatif gradyan en dik iniş yönünü, yani çoğunlukla kanyon tabanını işaret eder. Bunun nedeni, kanyon duvarlarının, kanyonun minimuma doğru kademeli eğiminden çok daha dik olmasıdır. Öğrenme hızı (adım adımı) küçükse kanyon tabanına inebilir, ardından minimum seviyeye doğru takip edebiliriz. Ancak, ilerleme yavaş olacaktır. Öğrenme oranını artırabiliriz, ancak bu adımların yönünü değiştirmez. Bu durumda, kanyonun tabanını aştık ve diğer duvara dayadık. Daha sonra asgari düzeyde yavaş ilerlerken, duvardan duvara salınan bu deseni tekrarlardık. Momentum bu durumda yardımcı olabilir.
Momentum basitçe önceki güncellemenin bir kısmının geçerli güncellemeye eklendiğini, böylece belirli bir yön bileşiminde tekrarlanan güncellemeleri; Bu yönde daha hızlı ve daha hızlı hareket ederek, momentum oluştururuz. Kanyon söz konusu olduğunda, tüm güncellemeler o yönde bir bileşene sahip olduğu için minimum yönde momentum oluştururuz. Buna karşılık, kanyonun duvarları arasında ileri geri hareket etmek sürekli ters yön içerir, bu nedenle momentum bu salınımları bu yönlerde azaltmaya yardımcı olur.
Adam'ın kullandığı bir başka püf noktası da her parametre için uyarlamalı olarak ayrı bir öğrenme oranı seçmektir. Normalde daha küçük veya daha az sıklıkta güncelleme alacak parametreler Adam ile daha büyük güncellemeler alır (bunun tersi de geçerlidir). Bu, uygun öğrenme oranlarının parametrelere göre değiştiği durumlarda öğrenmeyi hızlandırır. Örneğin, derin ağlarda gradyanlar erken katmanlarda küçük olabilir ve karşılık gelen parametreler için öğrenme oranlarını artırmak mantıklıdır. Bu yaklaşımın bir başka yararı da, öğrenme oranlarının otomatik olarak ayarlanması nedeniyle, manuel ayarlamanın daha az önemli hale gelmesidir. Standart SGD, öğrenme oranlarının dikkatli bir şekilde ayarlanması (ve muhtemelen çevrimiçi ayarlanması) gerektirir, ancak bu Adam ve ilgili yöntemlerde daha az geçerlidir. Hiperparametreleri seçmek hala gerekli.
İlgili yöntemler :
Momentum genellikle standart SGD ile kullanılır. Geliştirilmiş bir sürüm Nesterov momentum veya Nesterov hızlandırılmış gradyan denir. Her parametre için otomatik olarak ayarlanmış öğrenme oranlarını kullanan diğer yöntemler şunlardır: Adagrad, RMSprop ve Adadelta. RMSprop ve Adadelta, Adagrad ile öğrenmenin durmasına neden olabilecek bir sorunu çözüyor. Adam momentum ile RMSprop'a benzer. Nadam, Adam'ı klasik momentum yerine Nesterov momentum kullanacak şekilde değiştirir.
Kaynaklar :
Kingma ve Ba (2014) . Adam: Stokastik Optimizasyon Yöntemi.
Goodfellow ve diğ. (2016) . Derin öğrenme, bölüm 8.
Geoff Hinton'ın kursundan slaytlar
Dozat (2016) . Nesterov Momentum'u Adam'a dahil etmek.