Ben ilk önce kolayca bir çok boyutlu o zaman aktarılabilir bir boyutlu dizi (giriş) için basitlik için aşağıdaki evrişimsel bir katman için hata türetiyorum:
Burada, uzunluğundaki in, dönş. tabaka ağırlıklarının çekirdek boyutu ile her bir ağırlık gösteren ve çıkış .
Bu nedenle şunu yazabiliriz (toplamı sıfırdan not edin):
burada ve aktivasyon fonksiyonu (örn. sigmoidal). Elinizdeyken artık tarafından verilen bazı hata fonksiyonu ve evrişimsel katmandaki (önceki katmanınızdan biri) hata fonksiyonunu düşünebiliriz.yl - 1N-l - 1mwwbenxl
xlben=Σa = 0m - 1wbiryl - 1a + i
ylben= f(xlben)fE∂E/ ∂ylben. Şimdi hatanın bağımlılığını önceki katman (lar) daki ağırlıklardan birinde bulmak istiyoruz:
; burada meydana geldiği tüm ifadelerin toplamı . Son terimin , birinci denklemden görebileceğiniz gerçeğinden kaynaklandığını da biliyoruz .
Gradyanı hesaplamak için, şu şekilde hesaplanabilecek ilk terimi bilmemiz gerekir:
∂E∂wbir=Σa = 0N-- m∂E∂xlben∂xlben∂wbir=Σa = 0N-- m∂E∂wbiryl - 1ben + a
wbirN-- m∂xlben∂wbir=yl - 1ben + a∂E∂xlben=∂E∂ylben∂ylben∂xlben=∂E∂ylben∂∂xlbenf(xlben)
tekrar birinci dönem önceki katman ve hata lineer olmayan aktivasyon fonksiyonu.
f
Gerekli tüm varlıklara sahip olduktan sonra artık hatayı hesaplayabilir ve verimli bir şekilde değerli katmana geri gönderebiliriz:
Son adımın -s wrt -s yazarken kolay anlaşılır . transpoze ağırlık maxtrix (belirtmektedir ).
δl - 1bir=∂E∂yl - 1ben=Σa = 0m - 1∂E∂xlben - a∂xlben - a∂yl - 1ben=Σa = 0m - 1∂E∂xlben - awfl i p p e dbir
xlbenyl - 1benfl i p p e dT
Bu nedenle, bir sonraki katmandaki hatayı şu şekilde hesaplayabilirsiniz (şimdi vektör gösteriminde):
δl= (wl)Tδl + 1f'(xl)
kıvrımlı ve alt örnekleme katmanı olur:
burada örnek işlemi hatayı maksimum havuzlama katmanından geçirir.
δl= u p s a m p l e ( (wl)Tδl + 1)f'(xl)
u p s a m p l e
Lütfen beni eklemek veya düzeltmek için çekinmeyin!
Referanslar için bakınız:
http://ufldl.stanford.edu/tutorial/supervised/ConvolutionalNeuralNetwork/
http://andrew.gibiansky.com/blog/machine-learning/convolutional-neural-networks/
ve bir C ++ uygulaması için (kurulum gerektirmeden):
https://github.com/nyanp/tiny-cnn#supported-networks