Conditional diffusion models (jaise text-to-image systems) aksar aisi samples produce karte hain jo high-quality hoti hain lekin conditioning signal (text, class label, etc.) ko strongly follow nahi karti. Early approaches ek separate classifier gradient use karti thi generation ko steer karne ke liye, lekin iske liye ek extra noise-robust classifier train karna padta tha.
Classifier-free guidance classifier ko bilkul khatam kar deta hai ek single model train karke jo dono conditional aur unconditional generation handle kare, aur phir sampling time par unke predictions ko combine kare.
Hum p(x∣c) se sample karna chahte hain lekin use conditioning c ko zyada strongly reflect karna chahte hain. Classifier guidance mein, humne score ko ∇xtlogp(c∣xt) se modify kiya tha. Yahan hum bina classifier ke equivalent effect derive karenge.
Gradient lete hain:
∇xtlogp(xt∣c)=∇xtlogp(xt)+∇xtlogp(c∣xt)
YE STEP KYUN? Last term logp(c)xt par depend nahi karta, isliye gradient ke neeche vanish ho jaata hai. Ye conditional score ko unconditional score + classifier gradient mein split karta hai.
STEP 3: Conditioning signal ko amplify karo
Sample ko c zyada strongly follow karaane ke liye, hum classifier term ko factor w se scale up karte hain:
∇xtlogp~(xt∣c)=∇xtlogp(xt)+w⋅∇xtlogp(c∣xt)
KYUN? Jab w=1, hume true conditional milta hai. Jab w>1, hum conditioning ki taraf "overshoot" karte hain, jisse outputs c ke liye zyada specific hote hain diversity ki cost par.
STEP 4: Model ki predictions ke terms mein express karo
Bayes gradient ko rearrange karo:
∇xtlogp(c∣xt)=∇xtlogp(xt∣c)−∇xtlogp(xt)
YE FORM KYUN? Ye ek linear interpolation aur extrapolation hai. Jab w=0, purely unconditional. Jab w=1, normal conditional. Jab w>1, hum conditional se aage "c se zyada" ki taraf extrapolate karte hain.
Classifier-free guidance enable karne ke liye, hum ek single model train karte hain jo dono conditional aur unconditional denoising handle kare:
Training ke dauran, conditioning c ko randomly probability puncond (typically 10-20%) se drop karo.
Jab drop ho, c ko ek null token ∅ se replace karo (text ke liye empty string, zero embedding, etc.).
Loss same rehta hai:
L=Et,x0,ϵ,c[∥ϵ−ϵθ(xt,t,c)∥2]
jahan c kabhi kabhi ∅ hota hai.
YE KYUN KAAM KARTA HAI: Model same parameters mein conditioning ke saath aur bina conditioning ke dono denoise karna seekhta hai. Inference par, hum ise do baar call kar sakte hain (ek c ke saath, ek ∅ ke saath) dono predictions paane ke liye.
Score-based diffusion models: CFG score function ko conditional aur unconditional scores combine karke manipulate karta hai.
Classifier guidance: Woh predecessor approach jo ek separate classifier p(c∣xt) use karti thi; CFG bina classifier ke same effect derive karta hai.
DDPM sampling: CFG DDPM reverse process mein use hone wale noise prediction ϵθ ko modify karta hai.
Conditional generation: CFG conditional generative models mein conditioning signals ko strengthen karne ki ek technique hai.
Prompt engineering: Zyada guidance scales prompt wording ko zyada critical banate hain (text par overfitting).
Negative prompting: Aksar CFG ke saath combine hota hai unwanted features se door push karne ke liye.
Recall Ise 12 Saal Ke Bachche Ko Samjhao
Socho tum ek drawing bana rahe ho aur koi tumhe hint deta hai: "dragon banao." Tum choose kar sakte ho ki us hint ko thoda follow karo ya bahut zyada.
Classifier-free guidance aise hai jaise tumhare dimaag mein do artists hain:
Ek artist woh banata hai jo woh normally banata (koi hint nahi).
Doosra artist specifically "dragon" hint follow karke banata hai.
Tum dono drawings dekhte ho, unke beech ka farq dekhte ho (woh hai "dragon-ness"), aur phir apni final drawing ko us dragon direction mein aur BHI zyada push karte ho. Ye aisa hai jaise koi keh raha ho "ise AUR zyada dragon banao!" Toh tum dragon features exaggerate karte ho—bade wings, fierce claws—taaki tumhari picture sach mein "DRAGON!" chillaye.
"Guidance scale" (w) hai ki tum kitna exaggerate karte ho. Thoda (w=2) tumhe ek normal dragon deta hai. Bahut zyada (w=10) tumhe ek SUPER obvious dragon deta hai, lekin shayad woh thoda cartoonish lagta hai kyunki tumne bahut zyada push kiya.
Tum text/class conditioning mein strong adherence chahte ho bina separate classifier train kiye
Tum text-to-image, text-to-video, ya class-conditional models bana rahe ho
Tumhe prompt strength ke liye ek tunable knob chahiye
Tab avoid karo ya tune down karo jab:
Tum maximum sample diversity chahte ho (high w mode collapse cause karta hai)
Compute cost critical hai (har step par 2× model evaluations chahiye)
Tum unconditional samples generate kar rahe ho (sirf w=0 use karo ya CFG skip karo)
#flashcards/ai-ml
Classifier-free guidance ke peeche core idea kya hai?
Ye conditioning ko amplify karta hai model ko do baar run karke—ek conditioning ke saath aur ek bina—phir conditional prediction se aage extrapolate karta hai unke beech ke difference ko scale up karke.
CFG ka guided noise prediction ka formula kya hai?
ϵ~θ=ϵθ(xt,t,∅)+w⋅[ϵθ(xt,t,c)−ϵθ(xt,t,∅)] ya equivalently ϵ~θ=(1−w)ϵuncond+wϵcond
Guidance scale w kya control karta hai?
w control karta hai ki sample conditioning ko kitna strongly follow kare. w=1 normal conditional generation hai, w>1 prompt adherence amplify karta hai, w=0 conditioning ko bilkul ignore karta hai.
Classifier-free guidance enable karne ke liye model ko kaise train karte hain?
Training ke dauran, conditioning input ko randomly probability puncond≈0.1–0.2 se drop karo, use null token se replace karke, taaki model dono conditional aur unconditional distributions seekhe.
CFG mein "conditioning direction" kya hai?
Δϵ=ϵθ(xt,t,c)−ϵθ(xt,t,∅), conditional aur unconditional predictions ka difference, jo conditioning signal ka influence represent karta hai.
CFG ko har sampling step par do model evaluations kyun chahiye?
Kyunki tumhe alag predictions chahiye—ϵθ(xt,t,c) aur ϵθ(xt,t,∅)—unka difference compute karne aur use w se scale karne ke liye.
CFG mein w<1 use karne se kya hota hai?
Tum unconditional distribution ki taraf interpolate karte ho, conditioning ka effect trained level se neeche kar dete ho, jo usually desired nahi hota.
High guidance scales (w≫1) use karne ka tradeoff kya hai?
High w prompt fidelity aur specificity improve karta hai lekin sample diversity kam karta hai, over-saturation ya artifacts cause kar sakta hai, aur probability mass concentrate karta hai (mode collapse tendency).
CFG classifier guidance ke same effect achieve karta hai (∇logp(c∣xt) amplify karna) lekin bina separate noise-robust classifier ke, model ki apni conditional/unconditional predictions leverage karke.
Stable Diffusion text-to-image models mein w ki typical range kya hai?
w∈[7,10] strong prompt adherence aur achhi quality ke liye; lower values jaise w=1.5–3 subtle guidance ke liye.