Back-propagation kodlanması


#1

Backward-propagation kodlarken andrew’in paylaşmış olduğu slayt ta şöyle bir implementasyon mevcut.

Ben kendim farklı kodlamıştım.Kodladıktan sonra diğer çözümlere bakarken bunu gördüm ama buradaki dZ1 in kodlanma şeklini pek oturtamadım açıkcası.

Bayağı bir zamandır başka bir örnek bulabilir miyim diye araştırıyorum ama buna benzer bir kod bulamadım maalesef, anlamak açısından back-propagationın baştan kodlanmasının çok önemli olduğunu düşünüyorum.Ek olarak anlaşılır bir şekilde kodlanma örneği bilen varsa ve paylaşırsa çok sevinirim.Teşekkürler.


#12

Merhaba arkadaşlar, ben backpropagation yaparken zincir kuralı kullanip ardından belli bir öğrenme katsayisi ile Gradient Descent yapıp ağırlık guncelliyorum , yukarıdaki resimde ki yöntem nasıl çalışıyor ben bunu pek anlamadım.
(Kusura bakmayın bu konularda yeniyimde)
Resim:

https://sorucevap.deeplearningturkiye.com/uploads/default/original/1X/9c7840769ba195dada8f385494814f6155cb1320.jpg


#2

Tam olarak anlamadığınız nedir?
Matris olarak türev alıyor, her basamakta önceki girdilerin türevi alınıyor, zincir kuralına uyularak devam ediliyor.
Açıkçası en basit kaynak Coursera’nın tarifi ama https://iamtrask.github.io/2015/07/12/basic-python-network/ inceleyebilirziniz.


#3

Anlamadığım kısım 1-A1 in karesi alınmış bu tabloda g[1] (Z[1]) e karşılık geliyor bu ikisi nasıl eşit oluyor.


#4

kullandığı activation function ın türevi ona eşit yani 1-(a1)^2 onun için öyle yazmış galiba tanh kullanmış dikkat edersen andrew NG ninde g’ işareti var aynı yerde o türevi demek


#5

A =g(Z) yani girdi fonksiyonunun sonucu, bu her ne ise, örnekte ise ağırlık çarpı bias şeklinde lineer fonksiyon var, A’nın buna göre türevi ilgili basamaklara göre değişmektedir.
Kutucukta sol taraftaki gösterim, genel gösterim oalrak yazılmış, sağ taraf ise bir L basamağından geriye doğru A’nın g(Z) elemanlarına türev alımları anlatılmış.
Geri yayılımda sondan başlanır, Y(hat) ağı eğitirken bilmediğimiz çıktıdır, bu baz alınarak geriye doğru gidilerek ağırlıklar güncellenir.
@mustafasavran Kolaylık olsun diye lineer fonksiyon türevi alınarak gösterilmiş. Burada en azından bu slide için aktivasyon fonksiyonlarına ve bunların da türevlerine girilmemiş.
Üstteki gösterim üslü sayı değil, 1. katman, 2. katman, 3. katman L.katman anlamındadır.


#7

Evet orada tanh in türevi olan 1 - tan kare x var tanh kullandığı için öyle olmus.


#6

hocam benim dediğim şu kısım
dz1=np.multiply(np.dot(…),(1-np.power(A1,2)))
su a1 denilen z1’in aktivasyon fonksiyonu kullanılmış hali değil mi?
dz1 a erişmek içinde türeviyle çarpılmış gibi anladım ben burada.


#8

Peki burada dw2 yı kodlarken chain rule yaptığımızda dz2sigmoidprimeA1 geliyor ama slaytta sadece dz2*A1 yazilmis.


#9

@mustafasavran A1 g(Z1), yani W1.x + b logistic regression gibi düşününce aktivasyon fonksiyonu var
A’nın türevi de g’(Z) yani içinde nonlinearity var, backpropagation intuition videosu opsiyonel olsa da bu türev işlemlerini detaylıca anlatmakta


#10

@Snn doğru, çünkü kapanış sunumu hatırlatıcı kısa bilgi şeklinde yazılmış.


#11

Teşekkürler ilgilendiğiniz için.