Yeh kaam kyun karta hai: ek composition ke derivatives factor ho jaate hain ek local derivatives ke product mein (chain rule). Agar hum forward pass ke dauran har layer ka output cache kar lein, toh har local derivative sasta hai aur hum unhe backward jaate hue multiply karte jaate hain.
Step 1 — forward pass (sab kuch cache karo).z1,a1,z2,y^,L compute karo aur unhe store karo.
Yeh step kyun? Backward local derivatives (jaise σ′(z1)) ko cached activations chahiye; unhe recompute karna kaam waste karega.
Step 2 — output gradient seed karo.∂y^∂L=y^−t.Yeh step kyun?L=21(y^−t)2⇒dL/dy^=(y^−t). Yeh scalar woh "error signal" hai jo hum propagate karte hain.
Step 3 — layer 2 se push karo.δ2≡∂L/∂z2=∂L/∂y^⋅1=(y^−t) define karo.
∂w2∂L=δ2∂w2∂z2=δ2a1,∂b2∂L=δ2.Yeh step kyun?z2=w2a1+b2, isliye ∂z2/∂w2=a1, ∂z2/∂b2=1. Ek weight ka gradient = (uske output par error) × (uska input).
Step 4 — nonlinearity cross karo. Error ko a1 mein, phir z1 mein backprop karo:
∂a1∂L=δ2w2,δ1≡∂z1∂L=∂a1∂Lσ′(z1)=δ2w2σ′(z1).Yeh step kyun? Error weight w2 ke through wapas flow karta hai (transpose direction) aur local slope σ′(z1) se modulate hota hai.
Step 5 — layer 1 gradients.∂w1∂L=δ1x,∂b1∂L=δ1.
Step 3 jaisa hi pattern hai — yahi recursion hai.
Socho ek hallway mein logon ki line hai jo ek galat jawaab wapas neeche pass kar rahi hai. Aakhiri insaan dekhta hai answer kitna galat hai (wahi error hai). Woh apne peeche wale insaan ko whisper karta hai ki unki apni choice ne kitna matter kiya — bade darwaaze (weights) zyada blame pass karte hain, aur ek neenda insaan (ek unit jo "off" hai) lagbhag kuch nahi pass karta. Jab tak whisper aage pahunch jaati hai, sabko pata chal jaata hai kitna change karna hai. Ulta karna matlab hai ki hum sirf ek baar whisper karte hain, har insaan se yeh poochne ke bajaaye "agar tumne alag choose kiya hota toh kya hota?"