Deep networks kai layers stack karte hain. Layer ℓ apne weights sikhti hai yeh assume karke ki inputs ki ek certain distribution hogi. Lekin woh inputs layer ℓ−1 ke outputs hain, jinke weights bhi change ho rahe hain. Isliye layer ℓ ka input distribution training ke dauran shift hota rehta hai — informally ise internal covariate shift kehte hain. Bade ya lopsided activations se exploding/vanishing gradients bhi hote hain aur learning slow ho jaati hai.
BatchNorm ne yeh batch dimension across normalize karke fix kiya. Lekin isse har example ki statistics uske batch-mates se tie ho jaati hain. Yeh tab break hota hai jab:
batch tiny ho (noisy statistics),
aap ek time pe ek token process kar rahe ho (RNNs / autoregressive Transformers),
Humare paas ek example ka pre-normalization vector x∈RH hai.
Step 1 — features pe mean.Kyun? Zero pe recenter karne ke liye taaki layer high ya low biased na ho.
μ=H1∑i=1Hxi
Step 2 — features pe variance.Kyun? Spread measure karne ke liye taaki hum ek controlled size pe rescale kar sakein.
σ2=H1∑i=1H(xi−μ)2
Step 3 — standardize karo.Kyun?μ subtract karna ise center karta hai; σ2+ϵ se divide karna variance ko ≈1 karta hai. ϵ (jaise 10−5) division by zero se bachata hai jab ek vector near-constant ho.
x^i=σ2+ϵxi−μ
Step 4 — affine restore.Kyun? Mean 0 / var 1 force karna bahut rigid ho sakta hai (jaise ek sigmoid ko wider range mein inputs chahiye). Isliye hum har feature ko ek learnable scale γi aur shift βi dete hain. Agar best cheez yeh ho ki normalize na karen, toh network γi=σ2+ϵ, βi=μ seekh sakta hai aur original recover kar sakta hai.
yi=γix^i+βi
Ek single example ke features across (ek "row"), batch across nahi.
BatchNorm kis dimension pe normalize karta hai?
Har fixed feature ke liye batch across (ek "column").
LayerNorm mein normalized value x^i ka formula
x^i=σ2+ϵxi−μ jahan μ,σ2 us example ke features pe hain.
Learnable γ aur β kyun add karte hain?
Expressiveness restore karne ke liye — network rescale/shift kar sakta hai ya normalization fully undo kar sakta hai agar next layer ke liye better ho.
LayerNorm mein ϵ ka purpose?
Numerical stability; ~0 se division avoid karta hai jab feature vector almost constant ho.
Transformers/RNNs mein LayerNorm ko BatchNorm ke upar kyun prefer kiya jaata hai?
Yeh batch-independent hai, isliye batch size 1 aur per-token processing ke liye kaam karta hai, aur train aur test time pe identically behave karta hai.
Standardization ke baad (ε=0), features pe mean aur variance kya hain?
Mean 0 aur variance exactly 1.
Kya LayerNorm pure input vector ko scale karne ke liye invariant hai?
Haan — sab features ko ek constant se scale karna x^ ko unchanged chhod deta hai (γ,β se pehle).
Kya LayerNorm ko inference pe running statistics chahiye?
Nahi; har example apne khud ke stats use karta hai, training jaisi hi.
Recall Feynman: 12-saal ke bacche ko explain karo
Socho har student (ek example) quiz ke questions ki ek row answer karta hai (features). Ek student ke scores sab huge ho sakte hain, doosre ke tiny — yeh teacher ka kaam messy bana deta hai. LayerNorm har student ko apne khud ke scores ki row rescale karne deta hai taaki average 0 ho aur spread 1 ho. Ab har row "normal" lagti hai aur next teacher fairly grade kar sakta hai. Yeh students ko kabhi mix nahi karta — har koi sirf apni row fix karta hai. Phir do knobs (γ,β) class ko final scale adjust karne dete hain agar plain version bahut strict tha.