Diffusion-এর intuition — ধীরে noise যোগ ও বিয়োগ
এই পাঠে যা শিখবেন
- Diffusion model-এর forward ও reverse process — intuitive ব্যাখ্যা
- কেন ছোট-ছোট Gaussian step শেখা সহজ, বড় লাফ কঠিন
- রান্নার পাত্র ও কুয়াশার analogy — গাণিতিক ধারণার পেছনের চিন্তা
- VAE/GAN-এর তুলনায় diffusion-এর শক্তি ও দুর্বলতা
১ · একটি প্রশ্ন থেকে শুরু
ধরুন আপনি একটি model শেখাতে চান — যা নতুন বিড়ালের ছবি তৈরি করবে। GAN-এ generator সরাসরি noise → ছবি transform করে। কিন্তু এটা mode collapseMode CollapseGAN-এর সাধারণ সমস্যা — generator কয়েকটি pattern-এ আটকে যায়, diversity হারায়। Diffusion model এই সমস্যা থেকে অনেকটাই মুক্ত কারণ training stable ও likelihood-based., training instability-তে ভোগে। Diffusion ভিন্ন পথ নেয় — সমস্যাটিকে অনেকগুলো ছোট সমস্যায় ভেঙে দেয়।
ছবি → noise — সহজ (random Gaussian যোগ করুন)।
Noise → ছবি — কঠিন। কিন্তু একটু একটু করে noise সরানো — সহজ! Network প্রতি ধাপে শুধু "এই ধাপের noise কী ছিল" predict করে।
২ · Forward process — destroy
একটি বিড়ালের ছবি $\mathbf{x}_0$ নিন। প্রতিটি timestep $t = 1, 2, \ldots, T$ (সাধারণত $T=1000$)-এ একটু Gaussian noise যোগ করুন:
$$q(\mathbf{x}_t \mid \mathbf{x}_{t-1}) = \mathcal{N}(\mathbf{x}_t; \sqrt{1-\beta_t}\,\mathbf{x}_{t-1}, \; \beta_t \mathbf{I})$$
এখানে $\beta_t$ ছোট ধনাত্মক সংখ্যা (যেমন $10^{-4}$ থেকে $0.02$)। $T=1000$ ধাপ পরে $\mathbf{x}_T$ প্রায় pure Gaussian noise। মূল ছবির কোনো trace নেই।
৩ · Reverse process — create
এখন উল্টো দিকে যান। $\mathbf{x}_T$ (pure noise) থেকে শুরু করে ধাপে ধাপে noise সরিয়ে $\mathbf{x}_0$ (একটি বাস্তব ছবি)-এ ফিরুন। প্রতি ধাপে কতটা noise সরাবেন — এটাই neural network ($\epsilon_\theta$) শেখে।
$$p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t) = \mathcal{N}(\mathbf{x}_{t-1}; \mu_\theta(\mathbf{x}_t, t), \Sigma_\theta(\mathbf{x}_t, t))$$
৪ · কেন ছোট ছোট ধাপ?
একটি গভীর প্রশ্ন: ১০০০ ধাপ কেন? এক ধাপে noise → ছবি কেন নয়?
- ছোট ধাপ → Gaussian: $\beta_t$ ছোট হলে প্রতিটি $q(\mathbf{x}_t \mid \mathbf{x}_{t-1})$ Gaussian — এবং $p_\theta(\mathbf{x}_{t-1} \mid \mathbf{x}_t)$-ও Gaussian দিয়ে approximate করা যায়।
- বড় লাফ → multi-modal: এক ধাপে বিড়াল ↔ noise mapping multimodal — এক noise থেকে অনেক বিড়াল আসা সম্ভব। Gaussian দিয়ে ধরা যায় না।
- Stability: ১০০০টি ছোট সমস্যা — ১টি বড় সমস্যার চেয়ে সহজ। প্রতিটি step shared network ($U$-Net) দিয়ে শেখা যায়।
৫ · Closed-form forward — sampling shortcut
প্রতিটি $t$-তে আলাদা করে noise যোগ না করে — একবারে $\mathbf{x}_t$ বের করা যায়:
$$q(\mathbf{x}_t \mid \mathbf{x}_0) = \mathcal{N}\Big(\mathbf{x}_t; \sqrt{\bar{\alpha}_t}\,\mathbf{x}_0, \; (1 - \bar{\alpha}_t)\mathbf{I}\Big), \quad \bar{\alpha}_t = \prod_{s=1}^{t}(1 - \beta_s)$$
মানে: $\mathbf{x}_t = \sqrt{\bar{\alpha}_t}\,\mathbf{x}_0 + \sqrt{1 - \bar{\alpha}_t}\,\boldsymbol{\epsilon}, \; \boldsymbol{\epsilon} \sim \mathcal{N}(0, \mathbf{I})$. Training-এ এটি কাজে লাগে — ১০০০ step simulate না করেই।
৬ · Diffusion বনাম GAN বনাম VAE
- GAN: দ্রুত, কিন্তু training unstable, mode collapse, কোনো explicit likelihood নেই।
- VAE: stable, likelihood আছে, কিন্তু blurry sample।
- Diffusion: stable training, ভাল likelihood, sharp sample, mode coverage ভাল। দুর্বলতা — sampling ধীর (১০০০ step)। DDIM-এ সমাধান।
৭ · প্রথম PyTorch sketch
import torch
import torch.nn.functional as F
T = 1000
betas = torch.linspace(1e-4, 0.02, T) # linear schedule
alphas = 1.0 - betas
alpha_bar = torch.cumprod(alphas, dim=0) # ᾱₜ
def q_sample(x0, t, noise=None):
"""একবারে x_t তৈরি — closed form।"""
if noise is None:
noise = torch.randn_like(x0)
sqrt_ab = alpha_bar[t].sqrt().view(-1, 1, 1, 1)
sqrt_one_minus = (1 - alpha_bar[t]).sqrt().view(-1, 1, 1, 1)
return sqrt_ab * x0 + sqrt_one_minus * noise
def training_loss(model, x0):
B = x0.shape[0]
t = torch.randint(0, T, (B,), device=x0.device)
noise = torch.randn_like(x0)
xt = q_sample(x0, t, noise)
pred = model(xt, t) # ε predict
return F.mse_loss(pred, noise)
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ Diffusion ২০১৫-তে Sohl-Dickstein আবিষ্কার করেছিলেন, কিন্তু ২০২০-র DDPM (Ho et al.)-এর আগে কেন এটি জনপ্রিয় হয়নি? কী bottleneck ছিল এবং কীভাবে কাটানো হলো?
চমৎকার ইতিহাস। Sohl-Dickstein et al. ২০১৫-এর "Deep Unsupervised Learning using Nonequilibrium Thermodynamics" পেপার diffusion-এর গাণিতিক ভিত্তি স্থাপন করেছিল — non-equilibrium statistical physics থেকে inspired। কিন্তু তখন practical sample quality GAN-এর কাছাকাছিও ছিল না। ৫ বছর ধরে এটি একটি "exotic curiosity" হিসেবে রইল।
কেন ২০১৫-২০২০ ব্যবধান:
- GAN dominance: Goodfellow ২০১৪ থেকে BigGAN ২০১৮ — GAN-ই ছিল image generation-এর state-of-the-art। গবেষণা সেদিকেই কেন্দ্রীভূত।
- Compute সীমাবদ্ধতা: Diffusion training compute-heavy — হাজার হাজার timestep simulate করতে হয়। ২০১৫-তে GPU memory ও speed অপ্রতুল।
- Theoretical gap: মূল পেপারে objective ছিল ELBO-ভিত্তিক, কিন্তু sample quality ভাল ছিল না।
- U-Net + variance schedule absent: উপযুক্ত architecture ও noise schedule design ছিল না।
২০২০ DDPM-এ যা বদলালো (Ho, Jain, Abbeel):
- Simplified training objective: Full ELBO-র বদলে শুধু $\|\epsilon - \epsilon_\theta\|^2$ — অনেক stable।
- U-Net backbone: Residual + attention সহ U-Net — image-friendly inductive bias।
- Noise schedule tuning: Linear $\beta$ schedule, $T=1000$ — empirically ভাল কাজ করল।
- $\epsilon$-prediction: $x_0$ predict-এর চেয়ে stable ও sample quality উন্নত।
এরপর দ্রুত বিস্ফোরণ:
- ২০২১ — Improved DDPM (Nichol & Dhariwal): cosine schedule, learned variance।
- ২০২১ — Diffusion Beats GANs (Dhariwal & Nichol): ImageNet FID-এ GAN-কে হারাল।
- ২০২২ — DALL·E 2, Imagen, Stable Diffusion — text-to-image revolution।
- ২০২৩-২৪ — Sora, Veo: video diffusion।
মূল উপলব্ধি: অনেক "old" idea কেবল compute, dataset, ও engineering-trick-এর জন্য অপেক্ষা করে। Backprop ১৯৮৬, কিন্তু DL-এর উত্থান ২০১২। Diffusion ২০১৫, উত্থান ২০২০। আজকের কোন idea ২০৩০-এ revolutionize হবে — কে জানে।
প্র ০২ Forward process Markov chain — মানে $\mathbf{x}_t$ শুধু $\mathbf{x}_{t-1}$-এর উপর নির্ভর করে। কিন্তু আমরা বললাম closed-form $q(\mathbf{x}_t \mid \mathbf{x}_0)$ আছে। এই দু'টি ব্যাপার কীভাবে সঙ্গতিপূর্ণ? এবং কেন এটি training-এ critical?
এটি diffusion math-এর সবচেয়ে সুন্দর observation-গুলোর একটি — Ho et al. (2020) এই trick দিয়ে training scalable করলেন।
আপাত contradiction:
- Markov: $\mathbf{x}_t$ শুধু $\mathbf{x}_{t-1}$-এর উপর নির্ভর — পথ ভোলে।
- Closed-form: $\mathbf{x}_t = \sqrt{\bar{\alpha}_t} \mathbf{x}_0 + \sqrt{1-\bar{\alpha}_t}\,\epsilon$ — সরাসরি $\mathbf{x}_0$ থেকে।
আসলে কোনো contradiction নেই। Gaussian-এর একটি বিশেষ property — Gaussian-এর Gaussian-এ পরিবর্তন (linear transform + Gaussian noise) আবারো Gaussian। ১০০০ Gaussian step একসাথে fold করলে — এক বিশাল Gaussian পাওয়া যায়, যার mean ও variance closed-form-এ লেখা যায়।
Mathematical derivation (sketch):
- $\mathbf{x}_1 = \sqrt{1-\beta_1}\mathbf{x}_0 + \sqrt{\beta_1}\epsilon_1$।
- $\mathbf{x}_2 = \sqrt{1-\beta_2}\mathbf{x}_1 + \sqrt{\beta_2}\epsilon_2$।
- Substitute: $\mathbf{x}_2 = \sqrt{(1-\beta_1)(1-\beta_2)}\mathbf{x}_0 + \sqrt{1-(1-\beta_1)(1-\beta_2)}\,\tilde{\epsilon}$ — দু'টি independent Gaussian একত্রে আবার Gaussian।
- $\bar{\alpha}_t = \prod_s (1-\beta_s)$ define করলে — induction-এ proof।
Training-এ কেন critical:
- O(1) sampling per training step: $t$ random pick → $\mathbf{x}_t$ একবারে generate। ১০০০ step simulate লাগে না!
- Stochastic gradient unbiased: random $t$-তে loss compute → expectation-এ full ELBO-র estimator।
- Memory efficient: intermediate $\mathbf{x}_{1}, \ldots, \mathbf{x}_{t-1}$ store করা লাগে না।
- Massive speedup: ১০০০× faster epoch — diffusion practical করার মূল trick।
Caveat: এই trick শুধু Gaussian-এর জন্য। অন্য noise distribution (Bernoulli, categorical) দিয়ে discrete diffusion (D3PM, Austin et al. 2021)-এ closed-form এত সহজ নয় — কিন্তু analogous structure বের করা যায়।
Sampling-এ এই trick কাজ করে না: Sampling-এ আমাদের সত্যিই $\mathbf{x}_T \to \mathbf{x}_{T-1} \to \ldots \to \mathbf{x}_0$ ধাপে ধাপে যেতে হয় — কারণ reverse process Gaussian হলেও mean network-নির্ভর, closed-form নেই। DDIM (পরের পাঠ) এই sampling-এর সমস্যা আংশিক সমাধান করে।
মূল উপলব্ধি: Asymmetry — training fast (closed-form), sampling slow (sequential)। GAN-এ ঠিক উল্টো (training slow, sampling fast)। এই trade-off-ই diffusion-এর identity।
প্র ০৩ Diffusion model-কে "physics" থেকে inspired বলা হয়। non-equilibrium thermodynamics, Brownian motion, Langevin dynamics — এই connection কী এবং বাস্তব physics-এর সাথে কতটুকু analog সঠিক?
Sohl-Dickstein et al. ২০১৫-এর পেপারের পুরো নাম: "Deep Unsupervised Learning using Nonequilibrium Thermodynamics"। Physics analogy intentional ও deep।
Diffusion process — physics-এ:
- Brownian motion: Robert Brown ১৮২৭ — পরাগরেণু পানিতে এলোমেলো ঘোরে। কারণ অণুর ধাক্কা।
- Heat equation: তাপ যেভাবে বস্তুতে ছড়ায় — random walk-এর continuous সীমা।
- Entropy বৃদ্ধি: দ্বিতীয় সূত্র — system সবসময় বেশি disorder-এ যায়। কালির ফোঁটা পানিতে ছড়িয়ে যাবে, কিন্তু ছড়ানো কালি স্বতঃস্ফূর্তভাবে এক জায়গায় জড়ো হবে না।
Diffusion model-এ এই ধারণা:
- Forward process = entropy-বৃদ্ধি — ছবির structured information ধীরে ধীরে noise-এ disperse।
- Reverse process = entropy কমানো — non-spontaneous, একটি "engine" (neural network) দরকার।
- Network আসলে শেখে — কোন direction-এ entropy কমালে natural ছবি পাওয়া যায়।
Langevin dynamics — score-based view:
- $d\mathbf{x} = -\nabla U(\mathbf{x}) \, dt + \sqrt{2}\, d\mathbf{w}$ — particle potential well-এ + thermal noise।
- Long time-এ steady state distribution $p(\mathbf{x}) \propto e^{-U(\mathbf{x})}$।
- Score $\nabla \log p(\mathbf{x}) = -\nabla U(\mathbf{x})$ জানলে — sample করা যায়।
- Score Matching (পরের পাঠ) এই ধারণার ML version।
SDE formulation (Song et al. 2020):
- Forward: $d\mathbf{x} = f(\mathbf{x}, t)dt + g(t) d\mathbf{w}$ — Itô SDE।
- Reverse: $d\mathbf{x} = [f - g^2 \nabla \log p_t]dt + g\, d\bar{\mathbf{w}}$ — Anderson 1982।
- DDPM = এই SDE-র discretization।
Analogy কোথায় ভাঙে:
- Physics-এ Brownian motion equilibrium-এ যায় — Boltzmann distribution। Diffusion model-এ "equilibrium" pure isotropic Gaussian — physically সঠিক metaphor কিন্তু pictorial।
- Reverse process physics-এ অসম্ভব (entropy কমানো)। ML-এ neural network "Maxwell's demon" — তথ্য (training data) ব্যবহার করে স্বতঃস্ফূর্ত নয় এমন কিছু করে।
- Quantum analogy (path integral) আছে কিন্তু operationally relevant না।
Practical insight:
- Physics intuition নতুন research direction দেয় — flow matching, Schrödinger bridge, optimal transport।
- Score-based generative modeling, EBMs (energy-based models)-এর সাথে unification।
- Continuous-time ODE solvers (DPM-Solver, DEIS) — physics numerical integration থেকে।
মূল কথা: Physics analogy সুন্দর pedagogical tool এবং রিয়েল mathematical structure দেয়। কিন্তু আজকের diffusion model-কে "thermodynamic" বলা slightly metaphorical — আসল গভীরতা probability theory ও SDE-তে।
প্র ০৪ Stable Diffusion-এর কারণে যে কেউ ৫ সেকেন্ডে অসংখ্য "নকল" ছবি তৈরি করতে পারে। এটি বাংলাদেশ ও সারা বিশ্বে কী সমস্যা তৈরি করছে এবং mitigation কী কী?
২০২২-২৪ — diffusion-এর social impact ভয়াবহ ও আশ্চর্যজনক দু'টোই। আমরা একটি "post-truth visual" যুগে প্রবেশ করেছি।
সমস্যা গুলো:
- Deepfake ও blackmail: বাংলাদেশে ২০২৩-২৪-এ অভিনেত্রী, ছাত্রী, এমনকি সাধারণ মেয়েদের non-consensual deepfake — সামাজিক অভিশাপ। DSA-তে কিছু provision আছে কিন্তু enforcement দুর্বল।
- Election misinformation: ২০২৪ ভারতে নেতাদের fake বক্তৃতা; বাংলাদেশে সাম্প্রতিক election-এ AI-generated content ছড়িয়েছে।
- Child safety: CSAM (Child Sexual Abuse Material) — diffusion দিয়ে তৈরি — Stanford Internet Observatory ২০২৩-এ LAION dataset-এ কিছু পাওয়া গিয়েছিল।
- Artist livelihood: Greg Rutkowski-এর style mimic — তাঁর অনুমতি ছাড়াই। Karla Ortiz, Sarah Andersen ও অন্যরা Stability AI-এর বিরুদ্ধে class-action mamla (2023)।
- News fakery: Pope-এর puffer jacket ছবি (March 2023) — ভাইরাল হয়েছিল আসল মনে করে। বাংলাদেশে রাজনীতিবিদদের "মিটিং" এ AI ছবি।
- Identity theft: কারো face image-এ training → প্রতারণামূলক content।
Technical mitigation (limited effectiveness):
- Watermarking: SynthID (Google), Stable Signature — invisible watermark ছবিতে। সমস্যা — crop/resize-এ অনেকগুলো ভেঙে পড়ে।
- Detection model: Real-vs-AI classifier। সমস্যা — adversarially fragile, model improve হলেই পুরোনো detector অকেজো।
- C2PA standard: Adobe-Microsoft-Sony — content provenance metadata। Camera থেকে edit-history। Adoption ধীর।
- Glaze, Nightshade (Ben Zhao, UChicago): Artist-এর ছবিতে imperceptible perturbation — diffusion training-এ poison।
- Safety filter: NSFW classifier, prompt block-list। SD-1.5 leaked — সেই censor সরিয়ে fine-tuned model অজস্র।
Policy ও social mitigation:
- Legal: EU AI Act 2024 — high-risk AI regulation। UK Online Safety Act। US-এ executive order, deepfake-specific bills।
- Bangladesh: ICT Act, DSA-তে deepfake বিরুদ্ধে কিছু provision। কিন্তু victim-friendly fast-track tribunal দরকার। 999 ও Cyber Helpline (#1090) যথেষ্ট নয়।
- Platform responsibility: Facebook, YouTube — AI content label বাধ্যতামূলক। Reality check।
- Education: "Always verify" digital literacy। স্কুল-কলেজে media literacy curriculum।
- Open-source debate: SD-এর open release — democratization বনাম misuse। ক্ষতিকর ব্যবহার কমানোর জন্য responsible AI license (RAIL)।
বাংলাদেশের প্রসঙ্গে বিশেষ প্রয়োজন:
- মাতৃভাষায় (Bangla) deepfake detection awareness campaign।
- মহিলা ও শিশু-কেন্দ্রিক fast-track legal action।
- Election Commission-এ AI content verification cell।
- Prothom Alo, Daily Star — fact-check + AI detection in newsroom।
মূল কথা: Diffusion দারুণ creative tool — কিন্তু "neutral technology"-র myth ছেড়ে দিতে হবে। যিনি model বানান, deploy করেন, বা ব্যবহার করেন — সবার responsibility। বাংলাদেশের technologist-দের সামনে শুধু model বানানো নয়, নিরাপদ ecosystem গড়ার দায়িত্বও।
অনুশীলন
-
Closed-form forward verify: $\beta_1 = 0.1, \beta_2 = 0.2$ ধরুন। হাতে $\bar{\alpha}_2$ হিসাব করুন এবং $\mathbf{x}_2$-এর mean ও variance লিখুন (যখন $\mathbf{x}_0 = 1$)।
$\alpha_1 = 0.9, \alpha_2 = 0.8$, তাই $\bar{\alpha}_2 = 0.9 \times 0.8 = 0.72$।
$\mathbf{x}_2 \sim \mathcal{N}(\sqrt{0.72} \cdot 1, \; (1-0.72)\mathbf{I}) = \mathcal{N}(0.8485, 0.28\mathbf{I})$।
-
কোডে চালান: উপরের
q_sampleদিয়ে একটি $32\times 32$ MNIST ছবি $t = 0, 250, 500, 750, 999$-এ noise করে দেখান।import matplotlib.pyplot as plt x0 = mnist_image # shape (1, 1, 32, 32) fig, ax = plt.subplots(1, 5, figsize=(15, 3)) for i, t_val in enumerate([0, 250, 500, 750, 999]): t = torch.tensor([t_val]) xt = q_sample(x0, t) ax[i].imshow(xt[0,0], cmap='gray') ax[i].set_title(f't={t_val}') plt.show() -
ভাবুন: কেন আমরা $\mathbf{x}_0$-এর বদলে $\epsilon$ predict করি? অন্তত ২টি কারণ লিখুন।
- Numerical stability: $\epsilon \sim \mathcal{N}(0, \mathbf{I})$ — bounded distribution, network আউটপুট সীমিত। $\mathbf{x}_0$ pixel range arbitrary।
- Training signal balance: ছোট $t$-তে $\mathbf{x}_0$ predict trivial (input ≈ output)। $\epsilon$ predict সব $t$-তে nontrivial।
- Empirical: Ho et al. ablation-এ $\epsilon$-prediction sample quality ভাল।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পাঠ ১৩ · DDPM — গণিত ও কোড পরবর্তী পাঠ Forward/reverse-এর পূর্ণ derivation, U-Net architecture, training loop।
- পাঠ ১১ · CycleGAN ও pix2pix আগের পাঠ GAN-ভিত্তিক image-to-image translation — diffusion-এর আগের যুগ।
- পাঠ ১৬ · Latent Diffusion ও Stable Diffusion এই পাঠের সাথে সম্পর্কিত Pixel-space-এর বদলে latent-space-এ diffusion — ১০× faster।
- সব AI Courses দেখুন ABCL TECH Python, ML, DL, NLP, CV, GenAI, RL, MLOps — সব AI কোর্স একসাথে।