Discriminative বনাম Generative মডেল
এই পাঠে যা শিখবেন
- $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 করতে পারো।
৩ · গাণিতিকভাবে — 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-এ)।
৭ · Python-এ পাশাপাশি — দু'টি model-এর তুলনা
একই dataset-এ logistic regression (discriminative) ও naive Bayes (generative) — দেখুন কে কী শিখে।
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))
৮ · কখন কোনটি বাছবেন
- 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 ভালো।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ 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-এ চলেছে।
অনুশীলন
-
চিনুন: নিচের প্রতিটিতে — 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$।
-
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-এর কাজ।
-
ভাবুন: আপনি 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-এ আপনার পরবর্তী পদক্ষেপ
- পাঠ ৩ · Probability Density Estimation পরবর্তী পাঠ Generative-এর কেন্দ্র — $P(x)$ শেখার বিভিন্ন method।
- পাঠ ১ · জেনারেটিভ AI কী আগের পাঠ পুরো generative AI-র overview ও ইতিহাস।
- পাঠ ৮ · GAN basics এই পাঠের সাথে সম্পর্কিত Implicit generative model — discriminator + generator-এর ক্লাসিক যুদ্ধ।
- সব AI Courses দেখুন ABCL TECH Python, ML, DL, NLP, CV, GenAI, RL, MLOps — সব AI কোর্স একসাথে।