Toplu normalleştirmenin neden biraz dikkatli yapılması gerektiğine dair bir açıklama nedir?


11

Yığın normalizasyon kağıdını okuyordum [1] ve bir örneklemin geçtiği bir bölüm vardı, normalleşmenin neden dikkatli yapılması gerektiğini göstermeye çalışıyordu. Dürüst olmak gerekirse, örneğin nasıl çalıştığını anlayamıyorum ve kağıtlarını olabildiğince iyi anlamak çok merak ediyorum. Önce burada alıntı yapmama izin verin:

Örneğin, öğrenilen yanlılığı b ekleyen ve eğitim verileri üzerinden hesaplanan etkinleştirme ortalamasını çıkararak sonucu normalleştiren u girişine sahip bir katman düşünün: burada , eğitim seti üzerindeki değer kümesidir ve . Bir gradyan iniş aşaması bağımlılığı göz ardı ederse E [X] ile b , o zaman güncellenir b ← b + \ Delta b> , burada \ frac {\ kısmi il} {\ kısmi \ şapka {x \ - Delta b \ propto }} . Sonra u + (b + \ Delta b) −E [u + (b + \ Delta b)] = u + b − E [u + b] . Böylece, güncelleme bx^=xE[x]x=u+b,X={x1...N}xE[x]=i=1NxiE[x]bbb+Δ>bΔblx^u+(b+Δb)E[u+(b+Δb)]=u+bE[u+b]b ve daha sonra normalleşmedeki değişiklik, katmanın çıktısında herhangi bir değişikliğe veya sonuç olarak kaybına yol açmamıştır.

Sanırım mesajı anlıyorum, eğer kişi normalleştirmeyi düzgün yapmazsa, kötü olabilir. Ben nasıl örnek kullandıkları bunu nasıl bilmiyorum.

Birine onları şaşırtan şey konusunda daha spesifik olmadıklarında yardım etmenin zor olduğunun farkındayım, bu yüzden bir sonraki bölümde, açıklamaları hakkında kafa karıştırıcı olan şeyleri sağlayacağım.


Sanırım kafa karışıklığımın çoğu notasyonel olabilir, bu yüzden açıklığa kavuşacağım.

Birincisi, bence çok kafa karıştırıcı olan şeylerden biri, yazarların ağda bir birime sahip olmasının ne anlama geldiği ve bir aktivasyonun ne olduğudur. Genellikle, bir aktivasyonu şöyle düşünüyorum:

x(l)=a(l)=θ(z(l))=θ(w(l),x(l1)+b(l))

burada , ilk giriş katmanındaki ham özellik vektörleridir.x(0)=a(0)=x

Ayrıca, sanırım beni şaşırtan ilk şeylerden biri (önceki sebepten dolayı) açıklamaya çalıştıkları senaryo gerçekten. Diyor ki:

egzersiz verileri üzerinden hesaplanan aktivasyon ortalamasını çıkararak sonucu normalleştirir: buradax=u+bx^=xE[x]x=u+b

Söylemeye çalıştıkları şey , ileri geçişle hesaplandığı gibi aktivasyonlarını kullanmak yerine , ortalama aktivasyonu çıkararak bir çeşit "normalleştirme" gerçekleştirdiğini düşünüyorum. :x(l)=a(l)

x¯l=a¯l=1Ni=1Na¯l=1Ni=1Nx¯l

ve bunu geri yayılma algoritmasına geçirir. Ya da en azından benim için mantıklı olan şey bu.

Bununla ilgili olarak, dediklerini sanırım belki ? Onlar "giriş" dediği ve denklemi var çünkü tahmin ediyorum bu (sanırım onların sinir ağı için kimlik / doğrusal aktivasyon ünitesi kullanıyorlar?).ux(l)x=u+b

Beni daha da karıştırmak için, kısmi türevle orantılı bir şey olarak tanımlarlar , ancak kısmi türev, bana gerçekten tuhaf görünen ile hesaplanır . Genellikle, gradyan iniş kullanıldığında kısmi türevler ağın parametrelerine göredir. Bir ofset durumunda, düşünürdüm:Δbx^

Δb(l)lb(l)

normalleştirilmiş aktivasyonlara göre türev almaktan daha mantıklıdır. Onların açısından türevini alırdım neden anlamaya çalışıyordum ve onlar yazarken onlar deltaları atıfta sanmıştım beri genellikle bu, delta denklemi olduğu için ön aktivasyonlara göre bir türevi olan back-prop algoritmasının tek kısmıdır:x^lx^

δj(l)=Lzj(l)

Beni şaşırtan başka bir şey:

Sonra .u+(b+Δb)E[u+(b+Δb)]=u+bE[u+b]

onlar güncellenen normalize aktivasyonunu hesaplamak için çalıştıklarını gerçekten yukarıdaki denklemde hesaplamak için çalışıyoruz ne olduğunu söylemek yok ama anlaması olur (ilk katman için?) sonra ile güncellenir ? Doğru denklemin olması gerektiğini düşündüğüm için puanlarını satın alıp almadığımdan emin değilim:b + Δ bbb+Δb

x^=θ(u+(b+Δb))E[θ(u+(b+Δb))]

Hangi iptal etmez parametre değişikliği . Ancak, ne yaptıklarını gerçekten bilmiyorum, bu yüzden sadece tahmin ediyorum. Yazdıkları bu denklem tam olarak nedir?Δbb

Bunun doğru anlayış olup olmadığından emin değilim ama örneklerine biraz düşündüm. Örneklerinde doğrusal olmayan bir aktivasyon ünitesi yok (kimliği kullanıyor) ve sadece ilk giriş katmanından bahsediyorlar mı? Birçok ayrıntıyı bıraktıklarından ve gösterim çok açık olmadığından, tam olarak ne hakkında konuştuklarını çıkaramam. Birisi bu örneği her katmanda neler olup bittiğini ifade eden gösterimle nasıl ifade edeceğini biliyor mu? Birisi bu örnekle neler olup bittiğini anlıyor ve bilgeliğini benimle paylaşmak istiyor mu?


[1]: Ioffe S. ve Szegedy C. (2015),
"Parti Normalizasyonu: İç Değişken Değişimi Azaltarak Derin Ağ Eğitimini Hızlandırma",
32. Uluslararası Makine Öğrenimi Konferansı Bildirileri , Lille, Fransa, 2015.
Makine Öğrenimi Dergisi Araştırma: W&CP cilt 37


Sanırım bu paragrafın notasyonel doğası şimdi açık ama iletmeye çalıştığı mesaj ve amacı daha az açık.
Charlie Parker

Yanıtlar:


3

Bence bu paragrafın bütün noktası, eğer bir eğim iniş adımı 'nin bağımlılığını göz ardı ederse , önyargı teriminin güncellenmesi,E[x]b önceki cümlede iddia edildiği gibi çıktıda hiçbir değişikliğe yol açmayacaktır ,

Ancak, bu değişiklikler optimizasyon adımlarıyla serpiştirilirse, degrade iniş adımı, degrade adımının etkisini azaltan normalleştirmenin güncellenmesini gerektiren bir şekilde parametreleri güncellemeye çalışabilir.

Bu nedenle, gradyan iniş adımını yöntemlerindeki normalleşmenin farkına vardı.


Size sorularla ilgili

Bununla ilgili olarak, dediklerini sanırım belki ?ux(l)

İlk cümlelerinde iddia edildiği gibi , katmanın girdisidir. Aslında ne olduğu önemli değil, çünkü sadece örnekte etkisini gösteriyorlar .uub

nin normalleştirilmiş aktivasyonlara göre türev almaktan daha mantıklı olduğunu düşünürdüm .Δblb

Bildiğimiz biz bağımlılığını göz ardı edildiği gibidir, ile , var yüzden .x^=xE[x]=u+bE[x]E[x]b

lb=lx^x^b=lx^,
Δblx^

b b + Δ bu+(b+Δb)E[u+(b+Δb)]=u+bE[u+b] yukarıdaki denklemde neyi hesaplamaya çalıştıklarını söylemiyorlar ama onların güncellenmiş normalize aktivasyonunu hesaplamak için çalışıyoruz olduğu sonucuna olurdu (ilk katman için?) sonra ile güncellenir ?bb+Δb

, olarak güncellendikten sonra hesaplar, eğer bir degrade iniş adımı ' nin bağımlılığını göz ardı ederse , yanlılık terimini güncellemenin b çıktı. bb+ΔbE[X]bx^bb+ΔbE[x]b


Örneğin, Lazanya ve Keras'ta , toplu normalizasyonun bazı açık kaynak uygulamalarına bakmak faydalı olabilir .

İlişkili görünebilecek başka bir soru daha var, Sinir Ağında Toplu Normalleştirme kullanılırken neden anların gradyanını (ortalama ve varyans) alalım?


Bu yüzden onların amacı GD güncellemesini normalleşmenin farkında hale getirmeleri gerektiğini, böylece bir önyargı güncellenirken kayıpların değiştiğini tahmin ediyorum. Veya bu paragrafın ana hedefi nedir?
Charlie Parker

@CharlieParker evet Sanırım GD güncellemesinin normalleştirmeden (IMO) haberdar olmasının bir nedeni olduğunu göstermek için.
dontloo

E [Δb] = Δb mi? Öyleyse neden?
MichaelSB
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.