Max-Pooling Katmanları Üzerinden Backprop?


62

Bu, bir süredir beni şaşırtan küçük bir kavramsal sorudur: Bir sinir ağındaki max-havuz katmanından nasıl geri yayılabiliriz?

Torch 7'nin nn kütüphanesi için bu eğitici yazıda Max Pooling katmanları ile karşılaştım . Kütüphane, gradyan hesaplamasını soyutlar ve derin bir ağın her katmanı için ileri geçişler. Gradyan hesaplamasının bir max-pooling katmanı için nasıl yapıldığını anlamıyorum.

Biliyorum bir giriş olup olmadığını nöron girmeden i tabakasının l , daha sonra δ i l (olarak tanımlanır δ i l = ezililδil ) tarafından verilir: δil=θδil=Ezil

δil=θ(zil)jδjl+1wi,jl,l+1

Bu yüzden, maksimum havuzuna tabaka alacak , her zamanki gibi bir sonraki tabakanın sitesindeki; Max-havuzu nöronlar için aktivasyon fonksiyonu girdi olarak (bu maxes, üzerinde) değerlerinin bir vektörde alır ancak bu yana, δ i l artık tek bir sayı, ancak bir vektör (değildir θδjl+1δilile ikame edilmesi gerekirİçeride ISTV melerin RWMAIWi'nin( { z j l } )). Bundan başka,θ, maksimum fonksiyonu olmak, girişlerine göre türevlenebilir değildir.θ(zjl)θ({zjl})θ

Peki .... tam olarak nasıl çalışması gerekir?

Yanıtlar:


58

Maksimum olmayan değerlere göre bir gradyan yoktur, çünkü bunları hafifçe değiştirmek çıkışı etkilemez. Ayrıca, maks, gerçekten maks. Böylece, bir sonraki katmandan gelen gradyan, sadece maks. Diğer tüm nöronlar sıfır gradyan alır.

δili{δjl+1}i=argmaxi(zil)


7
Ah doğru, maksimum olmayan nöronlar arasında geri yayılan bir nokta yoktur - bu çok önemli bir içgörüydü. Eğer şimdi bunu doğru anlarsam, max-pooling katmanında geriye doğru yayılma sadece maks. önceki katmandan nöron (maksimum havuzlamanın yapıldığı yer) ve bununla geriye doğru ilerlemeye devam eder.
shinvu

Fakat aktivasyon fonksiyonunun türeviyle çarpmanıza gerek yok mu?
Jason

1
@Jason: Maksimum işlevi maksimuma sahip olan aktivasyon için lokal olarak doğrusaldır, bu nedenle türevi sabittir. ) = max (0, x) aktivasyon işlevi.
Chrigi

Adım, maksimum havuzlama için çekirdek genişliğinden az mı?
Vatsal

1
Mükemmel cevap! Birden fazla girişin aynı maksimum değere sahip olduğu (örneğin 2 değerin bir ReLU'dan 0, diğer ikisi negatif olan) kenar durumundan ne haber?
DankMasterDan

6

Max Havuzlama

Öyleyse, bir PR katmanının üstüne gelen bir P katmanınız olduğunu varsayalım. Sonra ileri geçiş böyle bir şey olacaktır:

Pi=f(jWijPRj)

Pi

grad(PRj)=igrad(Pi)fWij

f=idf=0f=1f=0

grad(PRmax neuron)=igrad(Pi)Wi max neuron

grad(PRothers)=0.


2

@ Shinvu'nun cevabı iyi yazılmış, Max () işleminin derecesini açıklayan bir videoya ve bunu kavramak için hızlı olan bir hesaplama grafiğine işaret etmek istiyorum.!

maxpool işlemini uygularken (hesaplamalı grafikte hesaplamalı bir düğüm-NN mimariniz), bir fonksiyona ihtiyacımız var, matrisin maksimumunun nerede olduğunu izleyen bir "maske" matrisi yaratırız. Doğru (1), X cinsinden maksimumun konumunu belirtir, diğer girdiler Yanlış (0) olur. Maksimum konumun izini sürüyoruz çünkü sonuçta çıktıyı ve dolayısıyla maliyeti etkileyen girdi değeridir. Backprop, maliyete göre degradeleri hesaplar; bu nedenle, en yüksek maliyeti etkileyen her şey sıfır olmayan bir degradeye sahip olmalıdır. Bu nedenle backprop, gradyanı, maliyeti etkileyen bu belirli giriş değerine geri "iletir".

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.