Yanıtlar:
İlk not: Gerçekten de her bir özellik (piksel) değerinin standart sapmasına da bölünmüş olmalısınız. Ortalamanın çıkarılması girdiyi 0'a merkezler ve standart sapmaya bölünmesi, ölçeklenmiş herhangi bir özelliğin değerini, ortalamadan uzaktaki standart sapmaların sayısını yapar.
Sorunuzu cevaplamak için: Bir sinir ağının ağırlığını nasıl öğrendiğini düşünün. C (NN) ler, sürekli bir şekilde çoğaltmadan hesaplanan ve eğitim örnekleri boyunca ağ boyunca çeşitli ağırlık matrislerine hesaplanan degrade hata vektörlerini (bir öğrenme hızı ile çarpılır) ekleyerek öğrenirler.
Burada dikkat edilmesi gereken şey "bir öğrenme oranı ile çarpılması" dır.
Girdi eğitimi vektörlerimizi ölçeklendirmemiş olsaydık, özellik değerleri dağılımımızın aralıkları her özellik için muhtemelen farklı olurdu ve bu nedenle öğrenme hızı her boyutta birbirinden farklı olacak (orantılı olarak konuşacak) düzeltmelere neden olacaktır. Başka bir ağırlamayı telafi ederken, bir ağırlık boyutunda bir düzeltmeyi fazla telafi ediyor olabiliriz.
Bu ideal değildir, kendimizi salınımlı (maliyet (ağırlık) alanından daha iyi bir maksimuma odaklanamamak) durumunda veya yavaş hareket eden (daha iyi bir maksimuma ulaşmak için çok yavaş seyahat) durumunda bulabiliriz.
Tabii ki, ağırlık başına bir öğrenme oranına sahip olmak mümkündür, ancak daha karmaşık bir ağa dahil etmek için daha da bulmak için optimize etmek zorunda olduğumuz hiperparametreler daha fazladır. Genel olarak öğrenme oranları skalerdir.
Böylece görüntüleri NN (veya herhangi bir degrade tabanlı) algoritmasına girdi olarak kullanmadan önce normalleştirmeye çalışıyoruz.
(image - image.mean()) / (image.std() + 1e-8)