পাঠ ০৪ · ৪৫-এর মধ্যে · মডিউল ১
Home / AI Courses / Machine Learning / Bias-Variance

Bias-Variance ট্রেডঅফ

Bias-variance tradeoff
৭ মিনিট পড়া মাঝারি · Intermediate গণিতসহ

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

  • Bias ও Variance — গাণিতিক সংজ্ঞা ও স্বজ্ঞাত অর্থ
  • Underfitting ও Overfitting — কীভাবে চিনবেন
  • মডেল complexity বাড়ালে কী হয় — চিত্রসহ
  • NumPy দিয়ে hands-on demo
  • Tradeoff কমানোর কৌশল

১ · প্রশ্নটি: কেন মডেল ভুল করে?

প্রতিটি মডেলের prediction-এ ভুল থাকে। কিন্তু সব ভুল একই ধরনের নয়। ১৯৯২-এ Geman, Bienenstock & Doursat একটি classic decomposition দিয়েছিলেন — যা এখনো ML-এর শেখার কেন্দ্রে।

মূল decomposition

$$\text{Expected Error} = \underbrace{(\text{Bias})^2}_{\text{ভুল ধারণা}} + \underbrace{\text{Variance}}_{\text{অস্থিরতা}} + \underbrace{\sigma^2}_{\text{noise — irreducible}}$$

এই তিন উপাদান ML-এর সব দ্বন্দ্বের ব্যাখ্যা — কেন বড় মডেল সবসময় ভাল না, কেন আরো ডেটা সমাধান, কেন regularization কাজ করে।

২ · Bias — সরলতার মূল্য

BiasBiasমডেল-এর গড় prediction এবং সঠিক উত্তরের মধ্যে systematic পার্থক্য। উচ্চ bias = মডেল উদ্দেশ্যপ্রণোদিতভাবে "ভুল" — কারণ তার hypothesis class সীমিত। মাপে — আপনি যদি অসংখ্যবার মডেল train করেন (বিভিন্ন training set-এ), তাদের গড় prediction সঠিক উত্তরের কত কাছে।

$$\text{Bias}(\hat{f}) = \mathbb{E}[\hat{f}(x)] - f^*(x)$$

উদাহরণ: আপনি একটি sine wave fit করতে চান, কিন্তু $\mathcal{H}$ = সব linear function। যত ডেটা দিন — linear function sine ধরতে পারে না। গড় prediction sine থেকে দূরে — উচ্চ bias।

উচ্চ bias-এর লক্ষণ:

  • Training error বেশি (মডেল train data-ও ফিট করতে পারছে না)।
  • Validation error প্রায় সমান training error-এর।
  • আরো ডেটা যোগ করলেও সাহায্য হয় না।

৩ · Variance — চঞ্চলতার মূল্য

VarianceVarianceভিন্ন training set-এ মডেল কত আলাদা prediction দেয়। উচ্চ variance = মডেল sensitive — সামান্য ডেটা পরিবর্তনে বিশাল পরিবর্তন। মাপে — ভিন্ন training set দিলে মডেল কতটুকু আলাদা।

$$\text{Variance}(\hat{f}) = \mathbb{E}\left[(\hat{f}(x) - \mathbb{E}[\hat{f}(x)])^2\right]$$

উদাহরণ: ১০-degree polynomial — ১০০ point fit করতে ১০০টি বাঁক বানিয়ে ফেলে। ভিন্ন ১০০ point দিলে — সম্পূর্ণ ভিন্ন বাঁক। উচ্চ variance।

উচ্চ variance-এর লক্ষণ:

  • Training error প্রায় ০।
  • Validation error অনেক বেশি (gap বড়)।
  • ভিন্ন split-এ accuracy অনেক ভিন্ন।

৪ · জ্যামিতিক স্বজ্ঞা — Dart Board

Bias-Variance বুঝার চিরচেনা analogy — চারটি dart board:

  • Low bias, low variance: সব dart bullseye-তে ও কাছাকাছি — আদর্শ মডেল।
  • Low bias, high variance: dart-গুলোর গড় bullseye, কিন্তু ছড়িয়ে — overfitting।
  • High bias, low variance: dart একসাথে কিন্তু wrong corner-এ — underfitting।
  • High bias, high variance: ছড়িয়ে এবং ভুল জায়গায় — সবচেয়ে খারাপ।
Bias-Variance ট্রেডঅফ মডেল complexity বাড়ালে কী হয় মডেল complexity → Error Bias² Variance Total Error Sweet spot ↑ Underfitting ↑ Overfitting linear (depth=1) deep tree (depth=20)
Complexity বাড়লে bias কমে, variance বাড়ে। Total error U-shape — sweet spot সেখানে।

৫ · গাণিতিক প্রমাণ (sketch)

Squared loss-এ true target $y = f^*(x) + \epsilon$ যেখানে $\epsilon$ noise (mean ০, variance $\sigma^2$)। Expected test error $(y - \hat{f}(x))^2$ এর expectation:

$$\mathbb{E}[(y - \hat{f}(x))^2] = (\mathbb{E}[\hat{f}] - f^*)^2 + \mathbb{E}[(\hat{f} - \mathbb{E}[\hat{f}])^2] + \sigma^2$$

$$= \text{Bias}^2 + \text{Variance} + \text{Irreducible Error}$$

$\sigma^2$ — irreducible: কোনো মডেল noise predict করতে পারে না। আমরা শুধু Bias ও Variance optimize করতে পারি।

৬ · NumPy demo — hands-on

একটি sine wave-এ polynomial degree বাড়ালে কী হয় — দেখুন:

Python · NumPy
import numpy as np

# True function: sin(x) on [0, 2π]
def true_f(x): return np.sin(x)

# Generate noisy training data
np.random.seed(0)
X_train = np.random.uniform(0, 2*np.pi, 30)
y_train = true_f(X_train) + np.random.normal(0, 0.2, 30)

# Test on dense grid
X_test = np.linspace(0, 2*np.pi, 200)
y_test = true_f(X_test)

# তিনটি ভিন্ন degree
for deg in [1, 4, 15]:
    coef = np.polyfit(X_train, y_train, deg)
    pred = np.polyval(coef, X_test)
    train_pred = np.polyval(coef, X_train)
    train_err = np.mean((train_pred - y_train) ** 2)
    test_err = np.mean((pred - y_test) ** 2)
    print(f"degree={deg:2d}  train MSE={train_err:.4f}  test MSE={test_err:.4f}")

    
Degree=১ — train ও test দু'টোয় বেশি error (high bias, underfitting)। Degree=১৫ — train কম, test অনেক বেশি (high variance, overfitting)। Degree=৪ — দু'টোতেই কম (sweet spot)।

৭ · কোনটি bias, কোনটি variance — কীভাবে চিনবেন

Diagnostic chart

Train low + Test low: ✅ ভাল — sweet spot।
Train high + Test high: ⚠️ Underfitting — high bias।
Train low + Test high: ⚠️ Overfitting — high variance।
Train high + Test low: ❓ অস্বাভাবিক — সম্ভবত data leakage বা bug।

৮ · Tradeoff কমানোর কৌশল

Bias কমাতে (underfitting):

  • Larger model — polynomial degree, NN width/depth।
  • Feature engineering — non-linear features (L08)।
  • Boosting — multiple weak learners (L23)।
  • Regularization কমান।

Variance কমাতে (overfitting):

  • আরো ডেটা — সবচেয়ে কার্যকর।
  • Regularization (L15 — Ridge, Lasso)।
  • Smaller model।
  • Bagging (L21 — Random Forest)।
  • Dropout (NN-এ)।
  • Early stopping।

৯ · আধুনিক বিস্ময় — Double Descent

Classical theory বলে — variance বাড়লে error বাড়ে। কিন্তু Belkin et al. (২০১৯) Deep Learning-এ "double descent" দেখাল — মডেল আরও বড় হলে error প্রথমে বাড়ে, তারপর আবার কমে! এটি classical bias-variance theory-র extension — এখনো গবেষণা চলছে।

Bias-Variance ML-এর "F=ma"। প্রতিটি technique — regularization, ensemble, dropout, data augmentation — এই tradeoff পরিচালনার বিভিন্ন কৌশল। মাথায় রাখুন।

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

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

প্র ০১ "আমার মডেল train accuracy ৯৯%, test accuracy ৬০%" — overfitting। কিন্তু "train ৬০%, test ৬০%" — underfitting। দু'টো ক্ষেত্রে আপনি প্রথম কী চেষ্টা করবেন এবং কেন?

এই দু'টি — Andrew Ng-এর "ML Yearning" বইয়ের core diagnostic। সঠিক identification → সঠিক intervention।

Case 1: Overfitting (train ৯৯, test ৬০) — High Variance

প্রথম তিন স্টেপ:

  • (১) আরো ডেটা সংগ্রহ: সবসময় #1 প্রতিকার। ১০K → ১০০K হলে variance dramatically কমে। কিন্তু expensive।
  • (২) Regularization বাড়ান: Free, immediate। L2 lambda বাড়ান, dropout rate বাড়ান। দ্রুত feedback।
  • (৩) Model size কমান: Neural network — fewer layers/neurons। Tree — depth কমান। Polynomial — degree কমান।

আরো — data augmentation, ensemble (bagging), early stopping, simpler model class।

Case 2: Underfitting (train ৬০, test ৬০) — High Bias

প্রথম তিন স্টেপ:

  • (১) Larger model: বেশি parameter → বেশি capacity। NN-এ layers/width বাড়ান। Tree depth বাড়ান। Linear → polynomial।
  • (২) Feature engineering: Domain expertise লাগান। interaction terms, polynomial features, log/sqrt transformations। প্রায়ই magic।
  • (৩) Train longer: Optimization এখনও convergence-এ পৌঁছায়নি। আরো epochs, lower learning rate stops।

আরো — Regularization কমান, boosting algorithm, different model architecture।

Counter-intuitive insight:

  • "আরো ডেটা" overfitting-এ সাহায্য করে — কিন্তু underfitting-এ অর্থহীন। মডেল-ই capacity-less।
  • "Regularization" overfitting-এ ভাল — কিন্তু underfitting-এ খারাপ। বাড়ানো লাগবে capacity, কমানো না।

Practical workflow:

  • Always start simple — baseline model।
  • Underfitting? — capacity বাড়ান।
  • Overfitting? — regularize/ensemble।
  • Both fixed? — done, deploy।

মূল উপলব্ধি: "Bigger model" সবসময় উত্তর নয়। সঠিক diagnostic → সঠিক treatment।

প্র ০২ "আরো ডেটা" সবসময় overfitting-এর সমাধান বলা হয়। কিন্তু কখন এটি কাজ করে না? এর গাণিতিক ব্যাখ্যা?

"More data is the answer" — popular wisdom। কিন্তু সবসময় না — এর সীমাবদ্ধতা বুঝা ML expertise-এর গভীর স্তর।

কখন আরো ডেটা কাজ করে:

  • মডেল-এর capacity যথেষ্ট কিন্তু variance high।
  • Statistical learning theory অনুসারে — variance $O(1/n)$ rate-এ কমে।
  • ১০০ → ১K — সাধারণত nice improvement।
  • ১K → ১০K — moderate।
  • ১০K → ১০০K — diminishing।

কখন আরো ডেটা কাজ করে না:

(১) Bias dominated:

  • Linear model কে non-linear ডেটায় train করছেন।
  • আরো ডেটা — bias একই রকম থাকবে। Variance আরো কমবে — কিন্তু total error reduce নাটকীয়ভাবে নয়।
  • সমাধান — model class বদলান, ডেটা না।

(২) Distribution mismatch:

  • Train ঢাকার data, test চট্টগ্রামের। আরো ঢাকার data — চট্টগ্রামে সাহায্য সীমিত।
  • সমাধান — domain adaptation, transfer learning, target domain data।

(৩) Noise dominated:

  • Irreducible error $\sigma^2$ — কোনো ডেটায় reduce হয় না।
  • Stock price-এ ৫০% noise — আরো ডেটা = সমান প্রায় পরিবেশের ৫০% noise।
  • সমাধান — accept lower bound, या additional features।

(৪) Label noise:

  • লেবেল-এ ১০% ভুল — আরো ডেটা মানে আরো ভুল।
  • সমাধান — data cleaning, robust loss functions।

(৫) Concept drift:

  • ২০২২-এর pattern আজ আর প্রাসঙ্গিক না।
  • পুরোনো ডেটা যোগ করলে — হয়তো আরো confuse।
  • সমাধান — recent data prefer, time-decay weighting।

গাণিতিক ব্যাখ্যা:

  • Test error = Bias² + Variance + Noise
  • Variance = $O(d/n)$ যেখানে $d$ = effective complexity।
  • $n \to \infty$ → variance $\to$ 0।
  • কিন্তু Bias ও Noise unchanged।
  • Total error → Bias² + Noise — irreducible floor।

Practical learning curve diagnostic:

  • X-axis: dataset size; Y-axis: train ও test error।
  • Plateau-এ পৌঁছেছে? — আরো ডেটা useless।
  • এখনো decreasing? — আরো ডেটা সাহায্য করবে।
  • scikit-learn-এ learning_curve।

মূল উপলব্ধি: "More data" simple rule, কিন্তু complete নয়। Diagnose first, then act।

প্র ০৩ Random Forest প্রায়ই single Decision Tree থেকে ভাল কাজ করে। Bias-Variance perspective-এ এর কারণ ব্যাখ্যা করুন। Boosting (XGBoost) কীভাবে আলাদা?

Ensemble methods — practical ML-এর কেন্দ্র। তাদের শক্তি bias-variance lens-এ ব্যাখ্যাযোগ্য।

Single Decision Tree:

  • Deep tree — high variance। সামান্য ডেটা পরিবর্তনে completely different tree।
  • Low bias — যথেষ্ট flexible সব pattern capture-এ।
  • Test accuracy অস্থির।

Random Forest = Bagging:

  • ১০০টি tree, প্রতিটি bootstrap sample-এ। প্রতি split-এ random feature subset।
  • Average prediction।
  • গাণিতিক — variance কমানো:
    • $N$ uncorrelated estimators-এর গড়ের variance = $\sigma^2/N$।
    • Trees correlated হয় (একই data) — exact $1/N$ পাওয়া যায় না।
    • Random feature selection correlation কমায় — variance কমে আরো।
  • Bias? তেমন বদলায় না — average ও individual tree-এর গড় bias একই।
  • Net effect: same bias, lower variance → ভাল।

Boosting (XGBoost):

  • Sequential weak learners — প্রতিটি previous-এর errors fix করে।
  • Shallow trees — high bias individually।
  • একসাথে — bias ক্রমশ কমে।
  • Variance-এর কী হয়?
    • Individual weak learner low variance।
    • Sequential combination হলে variance বাড়ে — careful regularization (depth limit, learning rate, num_trees)।
    • সঠিক tuning-এ — low bias + low variance।

সারসংক্ষেপ:

Method Base learner Strategy কী reduce
Bagging (RF) Deep tree Parallel + averaging Variance
Boosting (XGB) Shallow tree Sequential + correction Bias

প্র্যাকটিক্যাল implication:

  • Noisy data — RF (variance reduction)।
  • Clean data + complex pattern — XGBoost (bias reduction)।
  • Kaggle-এ XGBoost dominant — কারণ data সাধারণত clean ও large।

মূল উপলব্ধি: Ensemble "magic" নয় — bias-variance principle-এর ingenious প্রয়োগ। L21-২৬-এ বিস্তারিত।

প্র ০৪ "Double Descent" phenomenon (Belkin et al., 2019) — Deep Learning কেন classical bias-variance theory-কে challenge করে? এর implication কী?

Double Descent — modern ML-এর সবচেয়ে চমকপ্রদ আবিষ্কার। Classical theory পুরোপুরি explain করতে পারে না।

Classical prediction (U-curve):

  • Complexity বাড়ালে — error প্রথমে কমে, তারপর বাড়ে।
  • Sweet spot — middle-এ।
  • "Don't overfit" — small model preferred।

Belkin et al. (2019)-এর observation:

  • Modern NN, kernel methods — অনেক বড় হলে error আবার কমে!
  • "Interpolation threshold" — যেখানে exactly training data fit হয়।
  • সেই threshold-এর পর — keep growing → error decrease।
  • Plot — দু'টি descent: classical valley + interpolation regime descent।

কেন এমন হয়:

  • Implicit regularization: SGD-এর gradient noise = soft regularization।
  • Lottery ticket hypothesis: বড় network-এ "winning subnetworks"।
  • Margin-based generalization: Many-parameter solutions large margin tend করে।
  • NTK (Neural Tangent Kernel): Infinite-width limit-এ kernel method — generalize করে।

Implication:

  • Bigger isn't worse: GPT-৪ (১.৭৬T parameters) "should overfit" — কিন্তু না।
  • Overparameterization helpful: বেশি parameter optimization landscape-কে smooth করে।
  • Classical wisdom পাল্টাচ্ছে: "AIC, BIC" criteria less relevant।

সতর্কতা — কখন এটি apply করে না:

  • Tabular data, small dataset — classical U-curve still rules। XGBoost ছোট/মাঝারি best।
  • Noisy labels — overfitting still real।
  • Limited compute — practically interpolation threshold reach impossible।

2024 update:

  • Scaling laws (Hoffmann et al., Chinchilla) — model size + data size জুটি optimize।
  • Compute-optimal — neither too large model, nor too small।
  • Deep learning maturing — new design principles emerging।

Philosophical implication:

  • Theory প্রায়ই empirical observation-কে trail করে।
  • "Overparameterized" models work — কেন তা পুরোপুরি understood নয়।
  • ML researcher হলে — classical foundation শেখুন, কিন্তু modern phenomenon-এর প্রতি curious থাকুন।

Bottom line:

  • Tabular/small ML — Bias-Variance classical-ই কাজ করে।
  • Deep learning — extension এখনো গবেষণায়।
  • Bias-Variance কনসেপ্ট প্রাসঙ্গিক — কিন্তু simple U-curve অসম্পূর্ণ।

মূল উপলব্ধি: ML "settled science" নয় — actively-evolving discipline। Classical foundation মাস্টারিং সাথে modern observation প্রতি humility।

অনুশীলন

  1. চিনুন: নিচের প্রতিটি case — high bias, high variance, না both?
    • (ক) Train MSE ০.০২, Test MSE ০.৫০
    • (খ) Train MSE ০.৪০, Test MSE ০.৪৫
    • (গ) Train MSE ০.৪০, Test MSE ১.২০
    • (ঘ) Train MSE ০.০২, Test MSE ০.০৩
    • (ক) High variance — overfitting
    • (খ) High bias — underfitting
    • (গ) Both high — খুব খারাপ মডেল
    • (ঘ) Sweet spot — ভাল
  2. NumPy চালান: উপরের polynomial demo চালান। degree=২, ৩, ৭, ১০ চেষ্টা করুন। কোথায় sweet spot?

    সাধারণত degree ৩-৫-এ minimum test error। ১০-এ overfitting।

  3. চিন্তা: একজন colleague-এর model train ৯৮%, test ৭০%। Overfitting। তিনি ৩টি জিনিস চেষ্টা করেছেন: (১) আরো features যোগ, (২) Tree depth ১০ → ২০, (৩) Training epochs ১০০ → ৫০০। কেন কোনটাই কাজ করল না?

    সব ৩টি — variance বাড়ানোর কাজ করেছে! Overfitting-এ কাজ করে capacity কমানো বা regularize: regularization, dropout, fewer features, shallower trees, early stopping, more data।

আরও পড়ুন

কোড রানার কাজ না করলে? Google Colab ব্যবহার করুন।
পূর্ববর্তী পাঠ
পাঠ ০৩ · Train/Val/Test