Yapay sinir ağları bağlamında, öğrenme hızı ve kilo kaybı arasındaki fark nedir?
Yapay sinir ağları bağlamında, öğrenme hızı ve kilo kaybı arasındaki fark nedir?
Yanıtlar:
Öğrenme oranı, bir güncelleme adımının ağırlıkların mevcut değerini ne kadar etkilediğini belirleyen bir parametredir. Ağırlık azalması, ağırlık güncelleme kuralında ek bir terim olsa da, başka bir güncelleme planlanmadığında ağırlıkların üssel olarak azalmasına neden olur.
Diyelim ki en aza indirmek istediğimiz bir maliyet veya hata fonksiyonumuz . Gradyan iniş ağırlıkları değiştirmek için bize en dik iniş yönünde : nerede öğrenme oranıdır ve büyükse ağırlıklarında buna bağlı olarak büyük bir değişiklik (genel olarak çok büyük olmamalıdır, aksi takdirde maliyet fonksiyonunuzdaki yerel minimum ).
Modelinizdeki serbest parametre sayısını etkin bir şekilde sınırlamak için aşırı uydurmayı önlemek amacıyla, maliyet işlevini düzenlemek mümkündür. Bunu yapmanın kolay bir yolu, ağırlıklardan önce sıfır ortalama bir Gaussian tanıtmaktır; bu, maliyet işlevini . Uygulamada bu, ağırlıkları cezalandırır ve modelinizdeki özgürlüğü etkili bir şekilde sınırlandırır. Düzenleme parametresi , orijinal maliyetini büyük ağırlıklar halinde nasıl ödeyeceğinizi belirler .
Degrade inişini bu yeni maliyet işlevine uygulayarak elde ederiz: Düzenlemeden gelen yeni terim , ağırlığın boyutuna oranla neden olur.
@ Mrig'in cevabına (+1) ek olarak, sinir ağlarının birçok pratik uygulaması için, Levenberg-Marquardt (küçük-orta ölçekli ağlar) veya ölçeklenmiş eşlenik gradyan inişi (orta-büyük ölçekli) gibi daha gelişmiş bir optimizasyon algoritması kullanmak daha iyidir. ağlar), çünkü bunlar çok daha hızlı olacak ve öğrenme hızını belirlemeye gerek kalmayacak (her iki algoritma da temel olarak eğriyi ve degradeyi kullanarak öğrenme hızını uyarlar). İyi bir sinir ağı paketi veya kütüphanesi, bu yöntemlerden birinin, muhtemelen eski olmayan bir paketin uygulamalarına sahip olacaktır. NETLAB kütüphanesini büyük bir kit parçası olan MATLAB için kullanıyorum.
Basit terimler:
learning_rate: Bir sinir ağı modelinin bir sorunu ne kadar çabuk veya yavaş öğrendiğini kontrol eder.
ref: https://machinelearningmastery.com/learning-rate-for-deep-learning-neural-networks/
wight_decay: Aşırı uyumdan kaçınmak için kullanılan bir düzenleme tekniğidir.
ref: https://metacademy.org/graphs/concepts/weight_decay_neural_networks