Ek neural network jo kuch bhi jaanta hai woh sab ek shared set of weights θ mein store hota hai. Har task ke liye koi alag "memory slot" nahi hota — knowledge distributed aur overlapping hoti hai.
Jab tum ek naye dataset Dnew par fine-tune karte ho, tum ek aisi loss minimize karte ho jo sirf naye data ka zikr karti hai:
Lnew(θ)=∣Dnew∣1∑(x,y)∈Dnewℓ(fθ(x),y)
Gradient descent yeh steps leta hai:
θ←θ−η∇θLnew(θ)
Is update mein purane task ki loss Lold ka koi reference nahi hota. Toh optimizer khushi se θ ko us region se bahar le jaata hai jo purane task ke liye achha tha, jab tak naya task improve hota rahe. Purani skill collateral damage ban jaati hai.
Goal: naye task par train karo bina purane task ke achhe region se bahar nikalte hue. Hum chahte hain ek aisa θ jo naye par achha ho aur purane optimum θ∗ ke paas rahe, lekin sirf un directions mein "stiff" ho jo purane task ke liye matter karte the.
Yeh step kyun? Purane data ka influence poori tarah posteriorlogp(θ∣Dold) mein capture ho jaata hai — purana data paas rakhne ki zaroorat nahi, bas yaad rakho ki usne θ ke baare mein kya bataya.
Step 2 — Purane posterior ko Gaussian se approximate karo (Laplace approximation) θ∗ par centered, jisme precision Fisher information F se milti hai:
logp(θ∣Dold)≈−21∑iFi(θi−θi∗)2+const
Yeh step kyun? Kisi bhi minimum ke paas smooth loss quadratic dikhti hai; curvature (2nd derivative) hume batati hai ki har weight kitna important tha. Fi bada ⇒ weight i bahut mattered ⇒ use mat hilao.
Step 3 — Ek trainable loss mein combine karo (Elastic Weight Consolidation):
Socho tumhara brain mitti ka ek lump hai aur jo bhi skill tum seekhte ho woh uspe ek shape dabata hai. Agar tum cycle chalana seekhte ho, phir usi jagah swimming seekhne ke liye bahut zor se dabate ho, toh bike-wali shape flat ho sakti hai aur tum use bhool sakte ho! Catastrophic forgetting exactly yahi hai — computer ek hi "clay weights" ka lump sab cheez ke liye use karta hai, toh naye kaam par zor se dabane se purana kaam erase ho sakta hai. Ise fix karne ke liye ya toh hum (a) purani cheez thodi practice karte rehte hain (rehearsal), ya (b) mitti ke un hisson par chote "mujhe rakho!" springs lagate hain jo important purani shapes hold karte hain (EWC), ya (c) naya skill ek nayi mitti ke tedon mein seekhte hain jo side mein lagayi ho (adapters/LoRA).
Pehle seekhi hui knowledge ka abrupt loss jab network ko naye task par train kiya jaata hai, kyunki gradient updates shared weights ko overwrite kar dete hain jo purane task ko encode karte the.
Naye data par fine-tuning se forgetting kyun hoti hai?
Nayi loss Lnew mein purane task ka koi term nahi hota, toh gradient descent freely θ ko purane task ke achhe region se bahar le jaata hai.
EWC loss likho.
LEWC=Lnew(θ)+2λ∑iFi(θi−θi∗)2
EWC mein Fisher information Fi kya represent karta hai?
Purane task ke liye weight i ki importance/curvature; bada Fi ⇒ woh weight matter karta tha ⇒ use hilane par penalty do.
EWC saari learning kyun block nahi karta?
Purane task ke liye unimportant weights ka Fi≈0 hota hai, toh woh change karne ke liye free hain — learning spare capacity mein hoti hai.