পাঠ ২ · ২৮-এর মধ্যে · মডিউল ১
Home / AI Courses / জেনারেটিভ AI / Discriminative vs Generative

Discriminative বনাম Generative মডেল

Discriminative vs Generative — the fundamental divide
৬ মিনিট পড়া উচ্চ · Advanced Bayes · গাণিতিক

এই পাঠে যা শিখবেন

  • $P(y|x)$ ও $P(x,y)$-এর গাণিতিক ও জ্যামিতিক পার্থক্য
  • Decision boundary বনাম density estimation — দু'টি ভিন্ন approach
  • Logistic regression vs naive Bayes; CNN classifier vs GAN — concrete pair
  • Implicit ও explicit density model — কোথায় কোনটি

১ · মূল প্রশ্নের পার্থক্য

DiscriminativeDiscriminative Modelযে মডেল conditional probability $P(y|x)$ শেখে — input দেওয়া থাকলে label predict করে। Decision boundary-এ focus। উদাহরণ: logistic regression, SVM, neural network classifier। মডেল প্রশ্ন করে: "এই $x$ দেখে আমি label $y$ কী বলব?" — গাণিতিক ভাষায় $P(y|x)$।

GenerativeGenerative Modelযে মডেল data-র full distribution $P(x)$ বা joint $P(x,y)$ শেখে। শুধু classify না — নতুন data তৈরি করতে পারে। উদাহরণ: GAN, VAE, Diffusion, GPT, naive Bayes। মডেল প্রশ্ন করে: "$x$ নিজেই কেমন?" বা "$x$ ও $y$ একসাথে কেমন distribution-এ থাকে?" — $P(x)$ বা $P(x, y)$।

এক বাক্যে পার্থক্য

Discriminative শ্রেণিগুলোর মাঝে সীমানা আঁকে।
Generative প্রতিটি শ্রেণির ভেতরের আকৃতি শেখে।

২ · জ্যামিতিকভাবে — ২-D উদাহরণ

ধরুন আমাদের কাছে দু'ধরনের ফল — আম (আকার বড়, লাল) ও লেবু (আকার ছোট, সবুজ)। প্রতিটি ফলের ২টি feature: ব্যাস ও lightness।

Discriminative approach: ২-D plane-এ একটি রেখা টানো — যা আম ও লেবুকে আলাদা করে। সেই রেখার একদিকে আম, অন্যদিকে লেবু। নতুন ফলের point কোন দিকে — সেটাই উত্তর।

Generative approach: আমের ২-D distribution শেখো (একটি Gaussian ক্লাউড), লেবুর distribution শেখো (আরেক Gaussian ক্লাউড)। নতুন ফলের point দু'টি ক্লাউডের কোনটিতে বেশি probability — সেটাই উত্তর। Bonus: এই ক্লাউড থেকে নতুন "fictional" আম generate করতে পারো।

একজন customs officer (discriminative) বাংলাদেশী ও ভারতীয় passport দেখে দ্রুত বলেন কোনটা কোনটা — কিন্তু তিনি নকল passport তৈরি করতে পারেন না। একজন forger (generative) বাংলাদেশী passport-এর সব subtle pattern শিখে — তাই তিনি একটি বানিয়ে দিতে পারেন। Forger-এর কাজ অনেক কঠিন — কিন্তু ক্ষমতাও অনেক বেশি।

৩ · গাণিতিকভাবে — Bayes-এর সেতু

Bayes-এর সূত্র দু'টি paradigm-কে যুক্ত করে:

$$P(y \mid x) = \frac{P(x \mid y) \cdot P(y)}{P(x)}$$

যদি আমরা $P(x|y)$ (each class-এর data distribution) ও $P(y)$ (class prior) জানি — তবে $P(y|x)$ derive করতে পারি। এটাই naive Bayes-এর কাজ।

কিন্তু উল্টোটা — শুধু $P(y|x)$ থেকে $P(x|y)$ বের করা অসম্ভব। কারণ marginal $P(x)$ থেকে individual class distribution recover করা যায় না।

এই কারণেই বলা হয় — generative modeling "harder problem"। Discriminative-এ মাত্র boundary শিখলেই হলো; generative-এ পুরো high-dimensional distribution শিখতে হবে।

৪ · ক্লাসিক pair — Logistic Regression vs Naive Bayes

একই কাজ (binary classification), কিন্তু philosophy আলাদা।

  • Logistic Regression (discriminative): সরাসরি $P(y|x) = \sigma(w^T x + b)$ শেখে। শুধু decision boundary।
  • Naive Bayes (generative): প্রতিটি class-এর জন্য $P(x|y)$ শেখে (feature-wise Gaussian বা Bernoulli), $P(y)$ শেখে, তারপর Bayes-এর সূত্রে $P(y|x)$ compute করে।

Ng & Jordan (২০০২) classic paper-এর observation: ছোট dataset-এ Naive Bayes-ই জিতে; বড় dataset-এ Logistic Regression। কেন? — Naive Bayes-এর strong assumption (feature independence) bias বাড়ায়, কিন্তু variance কমায়; ছোট data-তে এটাই helpful।

৫ · Modern pair — CNN classifier vs GAN

  • CNN classifier (discriminative): ছবি input → "বিড়াল/কুকুর" output। ImageNet-এ ৯৯% accuracy। Hundred million parameters।
  • GAN (generative): Noise vector input → বিড়ালের ছবি output। StyleGAN3 — photorealistic faces তৈরি করে। কিন্তু "বিড়াল" classify করতে পারে না (directly)।

Same domain (image), ভিন্ন paradigm। GAN অনেক harder to train — কারণ ৭৮৬,৪৩২-D space-এ realistic ছবির distribution শেখা — অসম্ভবের কাছাকাছি কাজ।

৬ · Explicit বনাম Implicit Density

Generative model নিজেও দু'ভাগে ভাগ করা যায়:

  • Explicit density: মডেল $P(x)$ সরাসরি compute করতে পারে — যেকোনো $x$-এর likelihood বের করা যায়। উদাহরণ: VAE, Normalizing Flows, autoregressive (PixelCNN, GPT)।
  • Implicit density: মডেল sample তুলতে পারে, কিন্তু likelihood compute করতে পারে না। উদাহরণ: GAN, Diffusion (sampling-only mode-এ)।
Explicit হলে — anomaly detection ভালো (low likelihood = anomaly)। Implicit হলে — sample quality প্রায়ই better, কিন্তু "এই data কতটা likely?" প্রশ্নের উত্তর নেই। GAN photorealistic, কিন্তু density unknown।
দু'টি দৃষ্টিভঙ্গি — একই ডেটায় two classes: red apples vs green lemons Discriminative — P(y|x) decision boundary boundary "কোন দিকে point?" → label Generative — P(x|y) density per class "কোন cloud-এ ঘনত্ব বেশি?" ⭐ নতুন sample!
Discriminative শেখে শ্রেণির মাঝখানের সীমা; Generative শেখে প্রতিটি শ্রেণির ভেতরের আকৃতি — তাই নতুন data-ও তৈরি করতে পারে।

৭ · Python-এ পাশাপাশি — দু'টি model-এর তুলনা

একই dataset-এ logistic regression (discriminative) ও naive Bayes (generative) — দেখুন কে কী শিখে।

Python · scikit-learn
import numpy as np
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB

# একটি ২-class, ২-feature dataset
X, y = make_classification(n_samples=200, n_features=2,
                            n_redundant=0, n_clusters_per_class=1,
                            random_state=42)

# Discriminative
disc = LogisticRegression().fit(X, y)
print("Discriminative — শুধু decision boundary:")
print("  weights:", disc.coef_[0].round(3))

# Generative
gen = GaussianNB().fit(X, y)
print("\nGenerative — প্রতিটি class-এর distribution:")
for i, cls in enumerate(gen.classes_):
    print(f"  Class {cls}: mean={gen.theta_[i].round(2)}, var={gen.var_[i].round(2)}")

# Generative-এর সুপার-পাওয়ার — নতুন sample!
new_class_0 = np.random.normal(gen.theta_[0], np.sqrt(gen.var_[0]), size=(3, 2))
print("\nClass 0-এর জন্য ৩টি নতুন (fake) sample:")
print(new_class_0.round(2))

    
Naive Bayes-এর কাছে প্রতিটি class-এর mean ও variance আছে — তাই নতুন sample তৈরি করা trivial। Logistic regression-এর কাছে শুধু "boundary" — generation impossible। এটাই দু'টি paradigm-এর core পার্থক্য।

৮ · কখন কোনটি বাছবেন

  • Pure classification (label predict করুন): Discriminative। সরল, accurate, fast।
  • নতুন data তৈরি (image, text, audio): Generative। ChatGPT, DALL-E এই ক্যাটাগরির।
  • Anomaly detection: Generative। "এই transaction কত likely?" — explicit density দরকার।
  • Semi-supervised learning: Generative। Unlabeled data থেকে $P(x)$ শেখা যায়।
  • Missing data imputation: Generative। Joint distribution থেকে marginalize।
  • Confidence-aware decision: Generative। Uncertainty quantification ভালো।
ভুল paradigm বাছলে — wasted effort। ChatGPT-র মতো content generate করতে discriminative dead-end। Spam classify করতে full generative LLM overkill। প্রশ্ন আগে — model পরে।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ GPT একটি generative model — তবু এটি classification-এও SOTA। কীভাবে generative model classification-এ ভালো হতে পারে — যখন discriminative directly classification-এর জন্য optimized?

এটা ২০২০-র পর সবচেয়ে surprising observation — Brown et al. (২০২০, GPT-3 paper) দেখাল যে large autoregressive language model few-shot prompting-এ supervised classifier-কে হারাচ্ছে।

কেন এটা সম্ভব — তিনটি কারণ:

  • (১) Pretraining data-র scale: GPT-3 ৩০০ বিলিয়ন token-এ trained। একটি sentiment classifier হয়তো ১০ মিলিয়ন example দেখেছে। GPT সব topic, domain, language-এর pattern শিখেছে — যা narrow classifier দেখেনি।
  • (২) Bayes-এ via generation: Classification-এর জন্য GPT compute করে $P(y|x) \propto P(x, y) = P(x|y)P(y)$। সব possible label-এর জন্য likelihood মেপে argmax বাছে। এটা strict-ভাবে discriminative নয় — generative classification।
  • (৩) In-context learning: Few-shot example দিলে — GPT pattern infer করে। এটা একটি weight update ছাড়াই "meta-learning"। Traditional classifier এমন পারে না।

তবু কখন discriminative জিতে:

  • প্রচুর labeled data থাকলে — fine-tuned BERT/RoBERTa GPT-4 zero-shot-কে হারায় narrow task-এ।
  • Latency-critical (millisecond) — small classifier ৭০B model-এর চেয়ে ১০০x fast।
  • Cost-sensitive — production-এ million query/day-তে GPT-4 unaffordable।
  • Adversarial robustness — large LLM jailbreak-prone; specialized classifier hardened।

একটি গভীর তত্ত্ব — Yann LeCun-এর "cake" analogy:

  • Self-supervised learning (generative pretraining) = cake।
  • Supervised learning = icing।
  • Reinforcement learning = cherry।
  • মানুষ ৯৯% knowledge অনিয়ন্ত্রিত observation থেকে শিখে — supervised label থেকে না। GPT সেটাই করছে — language-এর সব pattern absorb।

Practical implication for Bangladesh: ছোট ML team — labeled Bangla data কম — large multilingual LLM (Claude, GPT-4) zero/few-shot prompting দিয়ে অনেক discriminative task solve করতে পারে। এটা game-changer। তবে cost ও latency consider করতে হবে।

মূল উপলব্ধি: "Generative vs Discriminative" — এই dichotomy এখন blur হচ্ছে। Modern foundation model both করে — pretraining generative, deployment-এ যেকোনো mode। ভবিষ্যৎ একই model-এর মধ্যে। তবে underlying math-এ পার্থক্য বুঝা — engineering decision-এর জন্য আজও critical।

প্র ০২ Naive Bayes-এর "naive" assumption (feature independence) প্রায়ই violate হয়, তবু এটা কাজ করে। এটা কীভাবে — এবং এই surprise অন্য কোথায় ML-এ দেখা যায়?

Naive Bayes assumption: "given class $y$, সব feature $x_i$ একে অপরের থেকে independent" — অর্থাৎ $P(x|y) = \prod_i P(x_i|y)$। কিন্তু এটা প্রায় সব real dataset-এ violated। তবু spam filter, text classification — সবখানে strong baseline।

কেন কাজ করে — Domingos & Pazzani (১৯৯৭) classic paper:

  • Classification-এর জন্য আমাদের সঠিক probability দরকার নেই — শুধু সঠিক ranking দরকার। $\arg\max_y P(y|x)$।
  • Naive Bayes "calibration" খারাপ (probability inflated বা deflated) — কিন্তু ranking সঠিক।
  • সব class-এ একই assumption ভেঙে গেলে — error self-cancel।

গাণিতিক explanation:

  • Naive Bayes-এর decision boundary আসলে linear (log-space-এ) — অনেকটা logistic regression-এর মতো।
  • Bias high কিন্তু variance low — small data-তে এটাই win।
  • Asymptotic-এ logistic regression-এর কাছে converge — Ng & Jordan (২০০২)।

একই surprise — ML-এর অন্য জায়গায়:

  • Linear regression on non-linear data: কাজ করে কারণ many functions locally linear, এবং noise dominates।
  • Random Forest: Single tree weak, কিন্তু ensemble-এ error decorrelate। Wisdom of crowds।
  • Gradient descent on non-convex loss: Theory বলে stuck হবে local minima-তে; বাস্তবে neural network-এ কাজ করে — কারণ high-D-তে saddle point dominate, true local minima rare (Dauphin et al., ২০১৪)।
  • Dropout: Random neurons drop — যেন noise injecting। তবু regularization-এ পরিণত হয়।
  • Stochastic Gradient Descent: Theoretically noisy, practically smooth optimizer ও generalize ভাল।
  • Word2Vec arithmetic ("king − man + woman ≈ queen"): Semantic structure linear-ভাবে encoded — কোনো explicit reason ছাড়াই।

একটা গভীর প্যাটার্ন — "wrong but useful":

  • George Box: "All models are wrong, but some are useful."
  • ML-এ "correctness"-এর চেয়ে "performance on test set" matter।
  • Strong assumption-এর benefit — interpretability, sample efficiency, computational tractability।

Practical lesson: Naive Bayes ছোট, fast, interpretable। Bangla SMS spam filter বানাতে — Bag-of-words + Naive Bayes ৯৫% accuracy পাবেন। GPT-4 দরকার নেই। Engineering = right tool, right job।

মূল উপলব্ধি: Strong assumption-গুলো প্রায়ই "wrong" — কিন্তু wrong-ness self-cancel হয়, এবং low variance বড় benefit। ML-এ "elegance + simplicity" শুধু নান্দনিক নয় — empirical advantage।

প্র ০৩ Anomaly detection-এ generative কেন discriminative-এর চেয়ে ভালো? bKash-এর fraud detection বা hospital ICU monitoring — কোন paradigm কেন বাছবেন?

Anomaly detection-এ — মূল চ্যালেঞ্জ: anomalous example কম ও diverse। ৯৯.৯৯% transaction normal, ০.০১% fraud। এই imbalance-এ paradigm choice critical।

Discriminative-এর সমস্যা:

  • Class imbalance — model "সবকিছু normal" predict করে ৯৯.৯৯% accuracy পায়।
  • Fraud pattern নতুন ধরনের হলে — train-এ ছিল না, miss।
  • Confidence calibration খারাপ — "probably fraud" কত probable?
  • Adversarial — fraudster pattern শিখে evade করে।

Generative-এর সুবিধা:

  • Only normal data দিয়ে train (one-class learning)।
  • Threshold: $P(x) < \tau$ → anomaly। নতুন pattern-ও ধরা পড়ে।
  • Likelihood = continuous score — risk-rank সহজ।
  • Distribution shift detect — overall $P(x)$ change হলে alert।

bKash-এর fraud detection — practical approach:

  • Per-user generative model (GMM, Isolation Forest, autoencoder) শেখে user-এর "normal" behavior — time, amount, location, frequency।
  • Outlier transaction → flag → human review।
  • "আমি সাধারণত ১,০০০ টাকার transaction করি, কিন্তু আজ ৫০,০০০ — ঢাকা থেকে চট্টগ্রাম একই মিনিটে" — generative model anomaly detect।
  • Hybrid: Generative scoring + discriminative known-fraud-pattern classifier।

ICU monitoring — life-critical context:

  • Sepsis, cardiac arrest — rare events, কিন্তু lethal।
  • Generative model patient-এর "normal" vital sign distribution শেখে।
  • Deviation early-warning দেয়।
  • Bonus: data missing হলে — generative model impute করতে পারে।

Production-এ best practice:

  • Tier 1: Generative anomaly score (broad screening)।
  • Tier 2: Discriminative classifier with known fraud patterns।
  • Tier 3: Human review for high-risk cases।
  • Continuous retraining — distribution drift হ্যান্ডল।

Limitations of generative anomaly detection:

  • High-D-তে likelihood unreliable — Nalisnick et al. (২০১৯) দেখাল out-of-distribution data-তে inflated likelihood।
  • Computational cost বেশি — real-time এ challenge।
  • Threshold tuning সংবেদনশীল — false positive vs negative trade-off।

মূল উপলব্ধি: Anomaly detection-এ generative philosophical fit — "জানা ভালোকে চিনি, অজানা খারাপকে detect"। কিন্তু production-এ pure generative rare; hybrid system best। bKash, ICU, network security — সবখানেই এই pattern।

প্র ০৪ "Generative model harder than discriminative" — এই statement-এর গাণিতিক ভিত্তি কী? VC dimension, sample complexity, computational complexity — কী বলে?

এই statement Vapnik (১৯৯৮)-এর famous quote: "When solving a given problem, try to avoid solving a more general problem as an intermediate step." — Generative model discriminative-এর "intermediate step" হিসেবে $P(x)$ শিখছে — যা harder।

(১) Sample complexity দৃষ্টিকোণ:

  • Discriminative: decision boundary শেখার জন্য $O(d/\epsilon^2)$ sample (PAC learning, $d$ = VC dimension)।
  • Generative: full distribution শেখার জন্য $O(d^k/\epsilon^2)$ যেখানে $k$ = density-র smoothness অর্ডার। High-D-এ exponential।
  • উদাহরণ: ১০০-D Gaussian mixture শেখা vs একটি linear boundary শেখা — দ্বিতীয়টা বহুগুণ সহজ।

(২) Computational complexity:

  • Logistic regression: convex optimization, polynomial time, global minimum guaranteed।
  • GAN: minimax non-convex, mode collapse, no convergence guarantee।
  • VAE: ELBO optimization tractable but bound-loose।
  • Diffusion: stable but slow training।

(৩) Curse of dimensionality:

  • Density estimation high-D-এ exponentially harder — empty space dominates।
  • "Manifold hypothesis" ছাড়া (real data low-D manifold-এ থাকে) — generative impossible practical।
  • Discriminative শুধু margin-এ focus — high-D-তেও tractable।

(৪) Information-theoretic argument:

  • $H(X|Y)$ + $H(Y)$ = $H(X, Y)$ ≥ $H(Y|X)$ + $H(Y)$।
  • Generative learns $H(X|Y)$ + $H(Y)$ — strictly more information।
  • "Free lunch নেই" — extra capability-র জন্য extra cost।

(৫) Empirical confirmation — neural-scale:

  • ImageNet classifier (২০১২) — ৬০M parameter, ৬ days train।
  • StyleGAN (২০১৯) for ImageNet quality — ১৪০M parameter, কয়েক সপ্তাহ train, mode collapse issue।
  • Stable Diffusion — ৮০০M+ parameter, billions of images, $৬০০K+ training cost।
  • একই dataset-এ generative প্রায় ১০-১০০x more compute দরকার।

কিন্তু — paradox:

  • আজ generative model (GPT-4, Claude) discriminative-কে অনেক task-এ হারাচ্ছে।
  • কারণ: massive scale + self-supervised — labeled data-র সীমা ভেঙে গেছে।
  • Generative pretraining = "proxy task" — এতে data-র সব structure শেখা হয়, যা discriminative fine-tune-এ লাগে।
  • Vapnik-এর quote was right for limited data; modern era-তে data unlimited, তাই উল্টো true হতে পারে।

একটি subtle point — "harder" ভিন্ন meaning:

  • Statistical: more samples needed — generative harder।
  • Computational: more compute — generative harder।
  • Practical: end-to-end accuracy — context-dependent, often generative wins (LLM era)।

মূল উপলব্ধি: Generative theoretically harder — sample, compute, optimization সব দিকে। কিন্তু practically — large-scale self-supervised pretraining এই ব্যয়কে justify করেছে। Vapnik-এর rule আজও true narrow domain-এ; broken foundation model era-তে। ML-এর বিবর্তন এই tension-এ চলেছে।

অনুশীলন

  1. চিনুন: নিচের প্রতিটিতে — discriminative নাকি generative?
    • (ক) Linear regression
    • (খ) Hidden Markov Model
    • (গ) SVM
    • (ঘ) GPT-4
    • (ঙ) Variational Autoencoder
    • (ক) Discriminative — $P(y|x)$।
    • (খ) Generative — $P(x_1, x_2, \ldots, x_T)$।
    • (গ) Discriminative — margin maximization।
    • (ঘ) Generative — $P(x_{t+1}|x_{1:t})$।
    • (ঙ) Generative — $P(x)$ via latent $z$।
  2. Bayes practice: ধরা যাক spam ও ham email-এর জন্য: $P(\text{spam}) = 0.3$, $P(\text{ham}) = 0.7$, $P(\text{"free"}|\text{spam}) = 0.6$, $P(\text{"free"}|\text{ham}) = 0.05$। একটি email-এ "free" শব্দ আছে। $P(\text{spam}|\text{"free"})$ কত?

    $P(\text{"free"}) = 0.6 \times 0.3 + 0.05 \times 0.7 = 0.18 + 0.035 = 0.215$

    $P(\text{spam}|\text{"free"}) = \frac{0.6 \times 0.3}{0.215} = \frac{0.18}{0.215} \approx 0.837$

    মানে — "free" দেখলে ৮৩.৭% সম্ভাবনা spam। এটাই Naive Bayes-এর কাজ।

  3. ভাবুন: আপনি Daraz-এর জন্য কাজ করছেন। (ক) "এই ব্যবহারকারী কি premium subscription কিনবে?" — discriminative না generative? (খ) "এই ব্যবহারকারীর জন্য একটি personalized welcome email লিখো" — কোনটি?

    (ক) Discriminative। Binary classification — $P(\text{buy}|\text{user features})$।

    (খ) Generative। নতুন text তৈরি করতে হবে — $P(\text{email text}|\text{user profile})$।

    Bonus: দু'টি system একসাথে — discriminative model বের করে কাকে email পাঠাবে, generative model email-টি লিখে। এটাই modern AI pipeline।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

কোড রানার কাজ না করলে? ব্রাউজারে কাজ না করলে Google Colab ব্যবহার করুন — Google-এর ফ্রি অনলাইন Python পরিবেশ, শুধু Gmail অ্যাকাউন্ট লাগে।
পূর্ববর্তী পাঠ
পাঠ ১ · জেনারেটিভ AI কী