একটি বাক্স থেকে ১০টি ball-এর ৭টি red, ৩টি blue। বাক্সে red ball-এর proportion p কত হলে এই data সবচেয়ে likely? উত্তর: p = 0.7। এটাই Maximum Likelihood Estimation — "data যা দেখছ, তাকে সবচেয়ে probable করে এমন parameter বের কর।" Linear regression থেকে GPT — সব এই principle-এর variant।
Intuitive Explanation
Data D = {x₁, x₂, ..., xₙ} এবং parameter θ-এর জন্য likelihood:
MLE: এমন θ বের করা যা L(θ) maximize করে।
Log-likelihood
Product → sum (numerically stable, derivative easier):
Example: Biased Coin
n বার toss, k বার head। Bernoulli(p) likelihood:
Derivative = 0:
MLE for Gaussian
Data x₁, ..., xₙ ~ N(μ, σ²)। Log-likelihood maximize করলে:
MLE always optimal নয়: variance estimator-এ biased। Unbiased চাইলে n−1 divisor (Bessel correction)।
MLE = Loss Minimization
Log-likelihood maximize = negative log-likelihood (NLL) minimize। এজন্য আধুনিক ML-এর প্রায় সব loss function আসলে NLL:
- MSE loss = Gaussian noise-এর NLL: −log N(y; ŷ, σ²) ∝ (y − ŷ)²।
- Cross-entropy loss = Categorical distribution-এর NLL: −Σ yᵢ log ŷᵢ।
- Logistic loss = Bernoulli NLL: −[y log p + (1−y) log(1−p)]।
MLE vs MAP
MAP = MLE + prior। Prior log-form-এ regularization হয়ে যায়:
- Gaussian prior on θ → L2 regularization (weight decay)।
- Laplace prior on θ → L1 regularization (sparsity)।
Python Implementation
import numpy as np
from scipy.optimize import minimize
np.random.seed(0)
# 1) MLE for biased coin
n, k = 100, 67
p_mle = k / n
print(f"Coin MLE: p = {p_mle:.4f}")
# 2) MLE for Gaussian (mean, std)
data = np.random.normal(loc=5.0, scale=2.0, size=500)
mu_mle = data.mean()
sigma_mle = np.sqrt(((data - mu_mle)**2).mean()) # /n, not /(n-1)
print(f"\nGaussian MLE: mu={mu_mle:.4f}, sigma={sigma_mle:.4f}")
# 3) Numerical MLE via optimizer (general technique)
def neg_log_likelihood(params, x):
mu, log_sigma = params
sigma = np.exp(log_sigma)
return 0.5 * np.sum(((x - mu) / sigma)**2) + len(x) * np.log(sigma)
res = minimize(neg_log_likelihood, x0=[0.0, 0.0], args=(data,))
mu_opt, log_sigma_opt = res.x
print(f"Optimizer: mu={mu_opt:.4f}, sigma={np.exp(log_sigma_opt):.4f}")
# 4) Logistic regression via MLE (manual)
X = np.random.randn(200, 2)
y = (X[:, 0] + X[:, 1] > 0).astype(float)
def sigmoid(z): return 1 / (1 + np.exp(-z))
def nll_logistic(w, X, y):
p = sigmoid(X @ w)
eps = 1e-12
return -np.mean(y * np.log(p + eps) + (1 - y) * np.log(1 - p + eps))
res = minimize(nll_logistic, x0=np.zeros(2), args=(X, y))
print(f"\nLogistic regression MLE weights: {res.x}")AI/ML সংযোগ
- Linear regression = MLE under Gaussian noise।
- Logistic regression = MLE under Bernoulli output।
- Softmax classifier = MLE under Categorical।
- Neural network training = NLL minimize (MSE বা cross-entropy)।
- Language models = next-token MLE: maximize Σ log P(wₜ | w<ₜ; θ)।
- VAE = ELBO = MLE-এর tractable lower bound।
Common Mistakes
- Likelihood এবং probability-কে একই ভাবা — likelihood θ-এর function, integrate করলে 1 হয় না।
- Log-likelihood ছাড়া raw product use করে numerical underflow।
- MLE overfits small data-তে — তখন prior (MAP) বা Bayesian inference দরকার।
- i.i.d. assumption violated হলে (time series, correlated data) MLE biased।
Practice Tasks
- Exponential distribution-এর MLE derive করুন: f(x; λ) = λe−λx।
- Poisson(λ)-এর MLE derive করুন।
- Linear regression-এ MSE loss minimize করলে কেন Gaussian likelihood MLE আসে — দেখান।
Assignment
একটি logistic regression scratch থেকে implement করুন — gradient descent দিয়ে NLL minimize করে। Sklearn-এর LogisticRegression-এর সাথে weight ও accuracy compare করুন। তারপর L2 regularization যোগ করুন (Gaussian prior = MAP) এবং দেখান কীভাবে regularization weight magnitude কমায়।
Interview Questions
- MLE vs MAP — পার্থক্য এবং কখন কোনটি ব্যবহার করবেন?
- Linear regression-এ MSE-এর behind কোন distribution-এর assumption?
- Cross-entropy loss-এর সাথে MLE-এর সম্পর্ক?
- MLE consistent এবং asymptotically efficient — মানে কী?
Mini Project
"MLE Playground" — user একটি distribution choose করে (Bernoulli, Gaussian, Poisson, Exponential), data generate করে, এবং tool numerical optimizer দিয়ে MLE বের করে। সাথে log-likelihood surface 2D plot করে দেখায়।
Summary · সারসংক্ষেপ
- MLE = "data দেখে এমন parameter খুঁজি যেটা data-কে সবচেয়ে likely করে।"
- Log-likelihood = numerically stable, derivative-friendly।
- MLE = NLL minimize = ML-এর সব loss function-এর origin।
- MAP = MLE + prior = regularization-এর Bayesian interpretation।
- Modern AI (linear regression থেকে LLM) সব MLE-এর variant।