Traditional generative models (GANs, VAEs) ek hi baar mein data distribution seekhne ki koshish karte hain. Diffusion models ek bilkul alag approach lete hain: ye ek fixed forward process define karte hain jo gradually data ko destroy karta hai, phir ek reverse process seekhte hain jo us destruction ko undo kare.
Key insight yeh hai: Agar hum har noise level par data ko denoise karna seekh sakte hain, toh hum pure noise se shuru karke gradually denoise karte hue realistic samples tak pahunch sakte hain.
Key observation: Independent Gaussians ka sum bhi Gaussian hota hai jisme variances add hote hain:
(1−βt)βt−1ϵt−2+βtϵt−1=(1−βt)βt−1+βtϵˉ
x0 tak pahunchne ke liye expand karte raho. Define karo:
αt=1−βt,αˉt=∏s=1tαs
Yeh crucial kyun hai: Ab hum training ke liye random timesteps t sample karke x0 ko directly xt tak noise kar sakte hain, bina poori forward chain simulate kiye.
Score-based generative models: Diffusion models score function ∇xtlogq(xt) seekhne ke equivalent hain. Noise prediction, score se is tarah relate karta hai: ϵθ=−1−αˉt∇xtlogq(xt).
Variational autoencoders: Diffusion models ko ek hierarchical VAE ki tarah dekha ja sakta hai jisme T latent layers hain aur ek fixed encoder (forward process) hai.
Markov chains: Forward aur reverse dono processes Markov chains hain (memoryless: xt sirf xt−1 par depend karta hai, poori history par nahi).
Langevin dynamics: Reverse process data distribution se Langevin MCMC sampling approximate karta hai.
DDIM sampling: Deterministic variant jo implicit generative model structure exploit karke sampling steps 1000 se 50 tak kam kar deta hai.
Classifier-free guidance: Ek technique jo noise prediction ko scale karke diversity aur sample quality ke beech trade karta hai.
Recall Feynman Explanation (12 saal ke bacche ko samjhao)
Socho tumhare paas ek sundar drawing hai. Ab tum us par roz thodi thodi ret daalte ho — har roz thodi thodi, 1000 din tak — jab tak drawing poori dab na jaaye aur dikhna band ho jaaye. Yahi forward process hai: hum picture ko step by step destroy kar rahe hain.
Ab yahan trick hai: hum ek smart robot train karte hain jo seekhe ki ret kaise hataayi jaaye, ek din ek baar, ulte jaate hue. Robot ret wali picture dekhta hai aur andaaza lagaata hai "aaj ki ret kahan daali gayi thi?" aur use hataa deta hai. Phir kal ki ret wali picture dekhta hai aur phir karta hai. Aur phir. 1000 baar ulte jaate hue.
Ek baar robot train ho jaaye, toh hum use sand ka ek bilkul random dher de sakte hain (jiske neeche kabhi picture thi hi nahi) aur keh sakte hain ki ret hatao jaise koi picture neeche ho. Aur amazing baat yeh hai ki wo ek nayi sundar drawing banata hai jo lagti hai jaise hamaari original pictures ke kisi artist ne banaai ho!
Jaadu yeh hai ki robot ne seedha draw karna nahi seekha. Usne pictures ko un-messup karna seekha, jo actually seekhna aasaan nikla. Aur kyunki mess up karna reversible hai (agar tum smart ho), toh un-mess-up karna banaane ke barabar hai!
#flashcards/ai-ml
What is the forward process in diffusion models? :: Ek fixed Markov chain jo T timesteps par data mein gradually Gaussian noise add karta hai according to q(xt∣xt−1)=N(xt;1−βtxt−1,βtI), systematically original data ko destroy karta hai jab tak wo pure noise na ban jaaye.
What is the reverse process in diffusion models?
Ek learned Markov chain jo step-by-step noise remove karta hai, ek neural network se parameterized jo pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t)) predict karta hai, effectively har noise level par denoise karna seekhta hai.
What is the reparameterization trick for diffusion forward process?
Sabhi intermediate steps se xt sample karne ki jagah, hum directly sample kar sakte hain: xt=αˉtx0+1−αˉtϵ jahaan αˉt=∏(1−βs) aur ϵ∼N(0,I). Yeh random timesteps sample karke efficient training allow karta hai.
Why do diffusion models predict noise instead of x_0 directly?
Noise prediction empirically better hai kyunki: (1) noise ke statistics sabhi timesteps par consistent hain, (2) yeh score matching se relate karta hai, (3) networks ko alag-alag t par drastically alag output ranges (clean images vs noisy images) handle nahi karni padti.
What is the training objective for diffusion models?
Lsimple=E[∥ϵ−ϵθ(xt,t)∥2] jahaan hum random t, real data x0, noise ϵ sample karte hain, xt=αˉtx0+1−αˉtϵ compute karte hain, phir network ko train karte hain jo add ki gayi noise predict kare.
Why are β_t values kept small in diffusion models?
Chhota βt ensure karta hai ki reverse conditional distribution q(xt−1∣xt) approximately Gaussian rahe, jise neural network model karna seekh sake. Bada βt reverse distribution ko non-Gaussian bana deta aur accurately seekhna impossible ho jaata.
How do you generate samples from a trained diffusion model?
xT∼N(0,I) (pure noise) se shuru karo, phir t=T se 1 tak: noise ϵθ(xt,t) predict karo, denoised mean μθ compute karo, aur xt−1=μθ+σtz sample karo jahaan z∼N(0,I). Yeh iteratively denoise karke x0 produce karta hai.
What is ᾱ_t (alpha-bar) and why is it important?
αˉt=∏s=1t(1−βs) cumulative noise schedule hai. Yeh timestep t par signal-to-noise ratio control karta hai: xt ka signal coefficient αˉt aur noise coefficient 1−αˉt hai. t=T par, αˉT≈0 ensure karta hai ki xT pure noise ho.
What is the relationship between forward and reverse variance?
Reverse variance β~t=1−αˉt1−αˉt−1⋅βt hai, Bayes' rule se derive kiya gaya. Yeh forward variance βt se chhota hai kyunki xt aur x0 dono par conditioning, sirf xt par conditioning se zyada uncertainty reduce karta hai.
Why use T=1000 steps instead of fewer larger steps?
Bohot saare chote steps ensure karte hain ki har reverse step ek chhota perturbation ho jise neural networks accurately reverse karna seekh sakein. Kam bade steps Gaussian approximation violate karte aur reverse process seekhna bohot mushkil ho jaata.