পাঠ ৩২ · ৩৫-এর মধ্যে · মডিউল ৭
Home / AI Courses / Math for AI & ML / রেগুলারাইজেশন as MAP

রেগুলারাইজেশন as MAP — যেখানে Bayes, MLE ও Regularization মিলিত হয়

Regularization as MAP
১৮ মিনিট পড়া উচ্চতর · Advanced NumPy কোডসহ সম্পূর্ণ বাংলায়

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

  • MAP এস্টিমেশনের সংজ্ঞা এবং এটি কীভাবে Bayes থিওরেম (L28) থেকে সরাসরি আসে
  • গাউসিয়ান প্রায়র থেকে $L2$ পেনাল্টি পর্যন্ত সম্পূর্ণ, ধাপে ধাপে বীজগাণিতিক ডেরিভেশন
  • কেন এটি ঠিক Ridge regression — এবং Laplace প্রায়র কীভাবে Lasso দেয়
  • regularization কীভাবে L31-এর বায়াস-ভেরিয়েন্স ট্রেডঅফে ইচ্ছাকৃতভাবে হস্তক্ষেপ করে
  • NumPy দিয়ে Ridge regression প্রয়োগ করে ওভারফিটিং কমানো দেখা

১ · শুরুর প্রশ্ন — MLE কি যথেষ্ট?

পাঠ ৩০-এ আমরা দেখেছি MLE বলে — শুধু ডেটা দেখে সেই $\theta$ বেছে নাও যা লাইকলিহুড $P(\text{ডেটা}\mid\theta)$ সর্বোচ্চ করে। কিন্তু পাঠ ৩১-এ আমরা দেখেছি এর একটি বিপদ আছে — যদি মডেল যথেষ্ট নমনীয় হয় (যেমন অনেক ওজন থাকা একটি রিগ্রেশন মডেল), MLE ওজনগুলোকে যেকোনো মান নিতে দেয়, এবং প্রায়ই সেগুলো অস্বাভাবিক রকম বড় হয়ে ট্রেনিং ডেটার নয়েজ পর্যন্ত মুখস্থ করে ফেলে — উচ্চ ভেরিয়েন্স, ওভারফিটিং।

স্বাভাবিক সমাধান — ওজন সম্পর্কে একটি প্রায়র বিশ্বাস যোগ করা, যেমন "ওজনগুলো সাধারণত ছোট হওয়া উচিত, অস্বাভাবিক বড় নয়"। এই ধারণাটিকে গাণিতিকভাবে কঠোর করার পদ্ধতিই হলো MAP (Maximum A Posteriori) এস্টিমেশন — এবং পাঠ ২৮-এর Bayes থিওরেমই এর ভিত্তি।

২ · MAP এস্টিমেশন — Bayes থিওরেম থেকে শুরু

পাঠ ২৮-এ আমরা Bayes থিওরেম ডেরাইভ করেছিলাম শর্তাধীন সম্ভাবনার সংজ্ঞা থেকে। এখানে $A$-এর জায়গায় প্যারামিটার $\theta$ এবং $B$-এর জায়গায় পর্যবেক্ষিত ডেটা বসাই —

$$P(\theta \mid \text{ডেটা}) = \frac{P(\text{ডেটা}\mid\theta)\,P(\theta)}{P(\text{ডেটা})}$$

এখানে $P(\theta\mid\text{ডেটা})$ হলো পোস্টেরিয়র — ডেটা দেখার পর $\theta$ সম্পর্কে আমাদের বিশ্বাস। $P(\text{ডেটা}\mid\theta)$ হলো লাইকলিহুড (পাঠ ৩০-এর ঠিক সেই ফাংশন)। $P(\theta)$ হলো প্রায়র — ডেটা দেখার আগে $\theta$ সম্পর্কে আমাদের বিশ্বাস। $P(\text{ডেটা})$ একটি normalizing constant, যা $\theta$-এর উপর নির্ভর করে না।

MAP এস্টিমেট হলো সেই $\theta$ যা এই পোস্টেরিয়রকে সর্বোচ্চ করে —

$$\hat\theta_{MAP} = \arg\max_\theta P(\theta\mid\text{ডেটা}) = \arg\max_\theta \frac{P(\text{ডেটা}\mid\theta)P(\theta)}{P(\text{ডেটা})}$$

যেহেতু $P(\text{ডেটা})$ $\theta$-এর উপর নির্ভর করে না (এটি একটি ধ্রুবক, $\arg\max$-কে প্রভাবিত করে না), হর বাদ দেওয়া যায় —

$$\hat\theta_{MAP} = \arg\max_\theta \big[P(\text{ডেটা}\mid\theta)\,P(\theta)\big]$$

পাঠ ৩০-এর মতোই লগ নিই (একঘেয়ে ক্রমবর্ধমান রূপান্তর, $\arg\max$ অপরিবর্তিত থাকে) —

$$\hat\theta_{MAP} = \arg\max_\theta \Big[\underbrace{\log P(\text{ডেটা}\mid\theta)}_{\ell(\theta)\ \text{— লগ-লাইকলিহুড, L30}} + \underbrace{\log P(\theta)}_{\text{লগ-প্রায়র, নতুন পদ}}\Big]$$
MAP বনাম MLE — একটি লাইনেই পার্থক্য

MLE হলো $\arg\max_\theta \ell(\theta)$। MAP হলো $\arg\max_\theta \big[\ell(\theta) + \log P(\theta)\big]$। অর্থাৎ MAP = MLE + একটি অতিরিক্ত পদ যা প্রায়র থেকে আসে। প্রায়র যদি সব $\theta$-এর উপর সমানভাবে "flat" (uniform) হয়, $\log P(\theta)$ একটি ধ্রুবক হয়ে যায় এবং MAP হুবহু MLE-তে পরিণত হয় — অর্থাৎ MLE আসলে MAP-এরই একটি বিশেষ ক্ষেত্র (কোনো প্রায়র তথ্য না থাকলে)।

৩ · গাউসিয়ান প্রায়র — ধাপে ধাপে $L2$ পেনাল্টি ডেরাইভ করা

এখন ধরি আমাদের মডেলের ওজন ভেক্টর $\theta = (\theta_1,\dots,\theta_d)$, এবং আমরা প্রায়র বিশ্বাস করি প্রতিটি ওজন $\theta_i$ স্বাধীনভাবে শূন্য-কেন্দ্রিক একটি গাউসিয়ান থেকে এসেছে (পাঠ ২৬) —

$$\theta_i \sim \mathcal{N}(0, \tau^2) \quad\Longrightarrow\quad P(\theta_i) = \frac{1}{\sqrt{2\pi\tau^2}}\exp\!\left(-\frac{\theta_i^2}{2\tau^2}\right)$$

এখানে $\tau^2$ একটি হাইপারপ্যারামিটার — এটি বলে দেয় আমরা কতটা দৃঢ়ভাবে বিশ্বাস করি ওজনগুলো শূন্যের কাছাকাছি (ছোট $\tau^2$ = দৃঢ় বিশ্বাস, বড় $\tau^2$ = দুর্বল বিশ্বাস)। ওজনগুলো স্বাধীন ধরে নিলে (L24), যৌথ প্রায়র তাদের গুণফল —

$$P(\theta) = \prod_{i=1}^{d} P(\theta_i) = \prod_{i=1}^d \frac{1}{\sqrt{2\pi\tau^2}}\exp\!\left(-\frac{\theta_i^2}{2\tau^2}\right)$$
ধাপে ধাপে — $\log P(\theta)$ সরল করা

ধাপ ১ — লগ নিন, গুণফল যোগফলে পরিণত হয় (পাঠ ৩০-এর একই কৌশল):

$$\log P(\theta) = \sum_{i=1}^d \log\left[\frac{1}{\sqrt{2\pi\tau^2}}\exp\!\left(-\frac{\theta_i^2}{2\tau^2}\right)\right]$$

ধাপ ২ — $\log(ab)=\log a+\log b$ প্রয়োগ করুন প্রতিটি পদে:

$$\log P(\theta) = \sum_{i=1}^d \left[-\log\sqrt{2\pi\tau^2} - \frac{\theta_i^2}{2\tau^2}\right]$$

ধাপ ৩ — যোগফলটি ভাগ করুন — যে অংশ $\theta$-এর উপর নির্ভর করে না, তা আলাদা করুন:

$$\log P(\theta) = -\frac{1}{2\tau^2}\sum_{i=1}^d \theta_i^2 \ -\ d\log\sqrt{2\pi\tau^2}$$

দ্বিতীয় পদ ($-d\log\sqrt{2\pi\tau^2}$) সম্পূর্ণভাবে $\theta$-নির্ভরহীন একটি ধ্রুবক — $\arg\max_\theta$-এর জন্য এটি উপেক্ষা করা যায়।

ধাপ ৪ — নর্মের সংজ্ঞা প্রয়োগ করুন (পাঠ ০৫):

পাঠ ০৫-এ আমরা $L2$ নর্ম সংজ্ঞায়িত করেছিলাম $\|\mathbf{x}\|_2 = \sqrt{\sum_i x_i^2}$, অর্থাৎ $\|\mathbf{x}\|_2^2 = \sum_i x_i^2$। তাই $\sum_i\theta_i^2 = \|\theta\|_2^2$ — এবং —

$$\log P(\theta) = -\frac{1}{2\tau^2}\|\theta\|_2^2 + \text{const}$$

ধাপ ৫ — $\lambda := \dfrac{1}{2\tau^2}$ সংজ্ঞায়িত করুন:

$$\log P(\theta) = -\lambda\|\theta\|_2^2 + \text{const}$$

এখন এটি ধাপ ২-এর MAP সূত্রে বসাই —

$$\hat\theta_{MAP} = \arg\max_\theta \Big[\ell(\theta) - \lambda\|\theta\|_2^2\Big]$$

এবং যেহেতু কোনো ফাংশনকে ম্যাক্সিমাইজ করা তার ঋণাত্মকের মিনিমাইজেশনের সমতুল্য —

$$\hat\theta_{MAP} = \arg\min_\theta \Big[\underbrace{-\ell(\theta)}_{\text{নেগেটিভ লগ-লাইকলিহুড}} + \ \lambda\|\theta\|_2^2\Big]$$
এটাই ঠিক Ridge regression

যদি $-\ell(\theta)$ (নেগেটিভ লগ-লাইকলিহুড) একটি রিগ্রেশন মডেলের জন্য মিন স্কোয়ারড এরর হয় (L35-এ আমরা দেখব গাউসিয়ান নয়েজের অধীনে এটি সত্যিই তাই), তাহলে উপরের সূত্র হুবহু —

$$\mathcal{L}_{\text{ridge}}(\mathbf{w}) = \frac{1}{n}\sum_{i=1}^n(\hat y_i - y_i)^2 + \lambda\|\mathbf{w}\|_2^2$$

— যা Ridge regression / $L2$ regularization-এর সেই পরিচিত সূত্র, যা আপনি হয়তো আগে থেকেই একটি "ইঞ্জিনিয়ারিং কৌশল" হিসেবে জানতেন। এখন আমরা দেখলাম এটি আসলে একটি সুনির্দিষ্ট বেসিয়ান অনুমান — ওজনগুলো শূন্য-কেন্দ্রিক গাউসিয়ান থেকে এসেছে — এবং $\lambda$ (regularization শক্তি) সরাসরি প্রায়রের ভেরিয়েন্স $\tau^2$-এর সাথে সম্পর্কিত ($\lambda=1/2\tau^2$): প্রায়র যত দৃঢ় (ছোট $\tau^2$), $\lambda$ তত বড়।

৪ · Laplace প্রায়র → $L1$ পেনাল্টি (Lasso)

একই যুক্তি অন্য একটি প্রায়র দিয়ে করা যায়। যদি প্রতিটি ওজন $\theta_i$-এর প্রায়র একটি Laplace বিতরণLaplace(0, b)PDF: $\frac{1}{2b}\exp(-|x|/b)$ — গাউসিয়ানের চেয়ে শূন্যে বেশি চূড়াবিশিষ্ট (peaked) ও লেজে ভারী একটি বিতরণ। হয় —

$$P(\theta_i) = \frac{1}{2b}\exp\!\left(-\frac{|\theta_i|}{b}\right)$$

তাহলে একই ধাপ (লগ নেওয়া, গুণফলকে যোগফলে পরিণত করা, ধ্রুবক পদ বাদ দেওয়া) অনুসরণ করলে —

$$\log P(\theta) = -\frac{1}{b}\sum_{i=1}^d|\theta_i| + \text{const} = -\frac{1}{b}\|\theta\|_1 + \text{const}$$

(এখানে পাঠ ০৫-এর $L1$ নর্ম $\|\mathbf{x}\|_1=\sum_i|x_i|$ ব্যবহার করা হলো।) $\lambda:=1/b$ ধরে, একই MAP যুক্তি দেয় —

$$\hat\theta_{MAP} = \arg\min_\theta\Big[-\ell(\theta) + \lambda\|\theta\|_1\Big]$$

এটাই Lasso ($L1$ regularization)। বিস্তারিত ডেরিভেশন (সাবগ্র্যাডিয়েন্ট বিশ্লেষণ, কারণ $|\theta_i|$ শূন্যে ডিফারেনশিয়েবল নয়) এই পাঠের সুযোগের বাইরে, কিন্তু প্যাটার্নটি ঠিক একই — শুধু প্রায়রের আকৃতি বদলে গেছে, এবং সেই আকৃতিই নির্ধারণ করে কোন নর্ম পেনাল্টি হিসেবে বেরিয়ে আসবে।

৫ · regularization ও বায়াস-ভেরিয়েন্স ট্রেডঅফ (পাঠ ৩১-এর সাথে সংযোগ)

পাঠ ৩১-এ আমরা দেখেছি টেস্ট এরর = $\text{Bias}^2 + \text{Variance} + \text{Irreducible noise}$, এবং জটিল মডেলে উচ্চ ভেরিয়েন্স সমস্যা তৈরি করে। $\lambda\|\theta\|^2$ পেনাল্টি ওজনগুলোকে শূন্যের দিকে "টেনে" রাখে (shrinkage) — এটি মডেলের কার্যকর নমনীয়তা কমিয়ে দেয়। ফলাফল —

  • ভেরিয়েন্স কমে — ওজনগুলো এখন ট্রেনিং ডেটার নয়েজে অতটা স্বাধীনভাবে সাড়া দিতে পারে না, তাই ভিন্ন ভিন্ন ট্রেনিং সেটে মডেল কম ওঠানামা করে।
  • বায়াস সামান্য বাড়ে — ওজনগুলো শূন্যের দিকে টানা হওয়ায় মডেল আর প্রতিটি ট্রেনিং ডেটাপয়েন্ট নিখুঁতভাবে ফিট করতে পারে না।

যদি $\lambda$ সঠিকভাবে বেছে নেওয়া হয় (সাধারণত cross-validation দিয়ে), ভেরিয়েন্সে হ্রাস বায়াসে বৃদ্ধির চেয়ে অনেক বড় হয় — নেট ফল: কম টেস্ট এরর, পাঠ ৩১-এর U-কার্ভে "সুইট স্পট"-এর দিকে সরে যাওয়া। এটাই একটি সামান্য বায়াস "কিনে" অনেক বেশি ভেরিয়েন্স "বিক্রি" করার লেনদেন।

৬ · কোড দিয়ে দেখুন — Ridge regression বাস্তবে

নিচে আমরা একটি ছোট, নয়েজি, ওভারফিটিং-প্রবণ পলিনমিয়াল রিগ্রেশন সমস্যায় (পাঠ ৩১-এর মতোই) সাধারণ least-squares (কোনো regularization ছাড়া) এবং Ridge regression ($L2$ regularization সহ) তুলনা করব। Ridge-এর closed-form সমাধান হলো $\mathbf{w} = (\mathbf{X}^T\mathbf{X} + \lambda\mathbf{I})^{-1}\mathbf{X}^T\mathbf{y}$ (উপরের মিনিমাইজেশন সমস্যার গ্র্যাডিয়েন্ট শূন্যের সমান বসিয়ে ডেরাইভ করা যায় — L35-এ সম্পূর্ণ প্রক্রিয়া দেখানো হবে)।

Python · NumPy
import numpy as np

rng = np.random.default_rng(1)

def true_function(x):
    return np.sin(2 * np.pi * x)

# ছোট, নয়েজি ট্রেনিং সেট (L31-এর মতোই সেটআপ)
n_train = 12
x_train = rng.uniform(0, 1, n_train)
y_train = true_function(x_train) + rng.normal(0, 0.3, n_train)

x_test = rng.uniform(0, 1, 300)
y_test = true_function(x_test) + rng.normal(0, 0.3, 300)

degree = 9  # ইচ্ছাকৃতভাবে জটিল মডেল, ওভারফিটিং-প্রবণ

def design_matrix(x, degree):
    # কলাম: [x^0, x^1, ..., x^degree]  (bias টার্ম সহ)
    return np.vstack([x ** p for p in range(degree + 1)]).T

X_train = design_matrix(x_train, degree)
X_test = design_matrix(x_test, degree)

def fit_ols(X, y):
    # সাধারণ least squares: w = (X^T X)^-1 X^T y
    return np.linalg.inv(X.T @ X) @ X.T @ y

def fit_ridge(X, y, lam):
    # Ridge: w = (X^T X + lambda I)^-1 X^T y
    d = X.shape[1]
    return np.linalg.inv(X.T @ X + lam * np.eye(d)) @ X.T @ y

w_ols = fit_ols(X_train, y_train)
w_ridge = fit_ridge(X_train, y_train, lam=0.01)

mse_ols = np.mean((X_test @ w_ols - y_test) ** 2)
mse_ridge = np.mean((X_test @ w_ridge - y_test) ** 2)

print(f"OLS   (regularization ছাড়া) টেস্ট MSE: {mse_ols:.4f}")
print(f"Ridge (lambda=0.01)         টেস্ট MSE: {mse_ridge:.4f}")
print(f"OLS   ওজনের L2 নর্ম:   {np.linalg.norm(w_ols):.2f}")
print(f"Ridge ওজনের L2 নর্ম:   {np.linalg.norm(w_ridge):.2f}")

    
degree=9 এবং মাত্র ১২টি ট্রেনিং পয়েন্ট দিয়ে, OLS প্রায়ই বিশাল ওজন শিখবে (ওজনের নর্ম অনেক বড়) কারণ এটি প্রতিটি ট্রেনিং পয়েন্ট নিখুঁতভাবে ছুঁতে চেষ্টা করে — এটাই ওভারফিটিং। Ridge, একই ডেটা ও একই মডেল জটিলতা দিয়েও, ওজনগুলোকে ছোট রাখতে বাধ্য করে (কম L2 নর্ম) এবং সাধারণত উল্লেখযোগ্যভাবে কম টেস্ট MSE দেয়।
মূল কথা · Key takeaway — চারটি পাঠের সংযোগ

L28 (Bayes) আমাদের পোস্টেরিয়র $\propto$ লাইকলিহুড $\times$ প্রায়র সূত্র দিয়েছে। L30 (MLE) আমাদের লগ-লাইকলিহুড পদ ও তার ডেরিভেশন-কৌশল দিয়েছে। L05 (নর্ম) আমাদের $\|\theta\|_2^2=\sum\theta_i^2$ ও $\|\theta\|_1=\sum|\theta_i|$-এর সংজ্ঞা দিয়েছে, যা গাউসিয়ান/Laplace প্রায়রের লগ থেকে প্রাকৃতিকভাবে বেরিয়ে আসে। আর L31 (বায়াস-ভেরিয়েন্স) ব্যাখ্যা করেছে কেন এই পেনাল্টি টার্মটি আদৌ দরকার — ভেরিয়েন্স কমানোর জন্য। এই চারটি একসাথে মিলে regularization-কে একটি নেহাত হ্যাক নয়, বরং একটি সম্পূর্ণ, ন্যায্য গাণিতিক উপসংহারে পরিণত করে।

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

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

প্র ০১ $\lambda \to 0$ হলে MAP এস্টিমেট কী হয়ে যায়? আর $\lambda \to \infty$ হলে?

$\lambda\to0$ মানে $\tau^2\to\infty$ — প্রায়র প্রায় "flat" হয়ে যায় (ওজন সম্পর্কে কোনো শক্তিশালী বিশ্বাস নেই), এবং MAP হুবহু MLE-তে পরিণত হয় ($\hat\theta_{MAP}\to\hat\theta_{MLE}$)। $\lambda\to\infty$ মানে $\tau^2\to0$ — প্রায়র অত্যন্ত দৃঢ়ভাবে বিশ্বাস করে ওজন শূন্য, তাই পেনাল্টি এত ভারী হয়ে যায় যে MAP এস্টিমেট $\theta\to\mathbf{0}$-এর দিকে ধাবিত হয় (ডেটা সম্পূর্ণ উপেক্ষিত হয়ে যায়) — সর্বোচ্চ বায়াস, সর্বনিম্ন ভেরিয়েন্স, একটি অকেজো চরম প্রান্ত।

প্র ০২ Ridge ($L2$) সব ওজনকে ছোট করে, কিন্তু সাধারণত শূন্যে পাঠায় না, অথচ Lasso ($L1$) অনেক ওজনকে ঠিক শূন্য করে দেয় (ফিচার সিলেকশন)। কেন এই পার্থক্য?

এটি দুই প্রায়রের আকৃতির পার্থক্য থেকে আসে। গাউসিয়ান প্রায়র শূন্যের কাছে "মসৃণ" (smooth) — এটি ছোট ওজনকে আরও ছোট করতে চায় কিন্তু ঠিক শূন্যে জোর করে না, কারণ $\theta_i^2$-এর গ্র্যাডিয়েন্ট শূন্যের কাছে নিজেও শূন্যের দিকে যায় (দুর্বল টান)। Laplace প্রায়র শূন্যে একটি "কোণ" (কর্নার, non-differentiable) তৈরি করে — $|\theta_i|$-এর গ্র্যাডিয়েন্ট শূন্যের কাছেও একই ধ্রুবক মাত্রার (দৃঢ় টান) থাকে, যা অপ্টিমাইজেশনকে অনেক ওজন ঠিক শূন্যে ঠেলে দেয়। জ্যামিতিকভাবে এটি $L1$ বলের "চোখা কোণ" বনাম $L2$ বলের "মসৃণ গোলক" আকৃতির (পাঠ ০৫) সাথেও সম্পর্কিত।

প্র ০৩ যদি regularization "শুধু একটি প্রায়র", তাহলে "সঠিক" প্রায়র বেছে নেওয়ার কোনো বস্তুনিষ্ঠ (objective) উপায় আছে কি?

পুরোপুরি নয় — প্রায়র বেছে নেওয়া একটি অনুমান, এবং ভিন্ন প্রায়র ভিন্ন ধরনের সমস্যায় ভালো কাজ করে (যেমন যদি সত্যিই মাত্র কয়েকটি ফিচার গুরুত্বপূর্ণ হয়, Lasso-র sparse প্রায়র বেশি উপযুক্ত)। বাস্তবে $\lambda$ (এবং পরোক্ষভাবে $\tau^2$ বা $b$) সাধারণত cross-validation দিয়ে বেছে নেওয়া হয় — টেস্ট-সদৃশ একটি হোল্ড-আউট সেটে কোন $\lambda$ সবচেয়ে কম এরর দেয় তা পরীক্ষা করে (পাঠ ২৯-এর স্যাম্পলিং যুক্তি এখানে প্রাসঙ্গিক)। এটি অনেকটা বেসিয়ান বিশ্বাস ও ফ্রিকোয়েন্টিস্ট যাচাইয়ের একটি ব্যবহারিক মিশ্রণ।

অনুশীলন

  1. নিজে ডেরাইভ করুন: যদি প্রায়র $\theta_i\sim\mathcal{N}(0,\tau^2)$-এর বদলে $\theta_i\sim\mathcal{N}(\mu_0,\tau^2)$ (অ-শূন্য গড়) হতো, $\log P(\theta)$ কী রূপ নিত? পেনাল্টি টার্মটি কীভাবে বদলাবে?

    একই ধাপ অনুসরণ করলে $\log P(\theta_i) = -\frac{(\theta_i-\mu_0)^2}{2\tau^2}+\text{const}$, তাই পূর্ণ পেনাল্টি হবে $-\frac{1}{2\tau^2}\sum_i(\theta_i-\mu_0)^2 = -\lambda\|\theta-\mu_0\mathbf{1}\|_2^2$। অর্থাৎ মডেলকে শূন্যের দিকে না টেনে $\mu_0$-এর দিকে টানা হবে — এটি দেখায় "শূন্যের দিকে shrinkage" একটি বিশেষ ক্ষেত্র (যখন প্রায়র বিশ্বাস করে ওজন গড়ে শূন্য), সাধারণ নিয়ম নয়।

  2. হিসাব করুন: যদি $\tau^2=0.5$ হয়, তাহলে সংশ্লিষ্ট $\lambda$ কত হবে ($\lambda=1/2\tau^2$ সূত্র থেকে)?

    $\lambda = \dfrac{1}{2\times0.5} = \dfrac{1}{1} = 1$। লক্ষ করুন $\tau^2$ ছোট হলে (দৃঢ় প্রায়র বিশ্বাস) $\lambda$ বড় হয় (ভারী পেনাল্টি) — এই বিপরীত সম্পর্কটি সূত্রেই স্পষ্ট।

  3. পরীক্ষা করুন: উপরের কোডে lam-এর মান ০.০০১, ০.১ এবং ১০ করে চালান। টেস্ট MSE ও ওজনের L2 নর্ম কীভাবে বদলায়, এবং কোন মান সবচেয়ে ভালো ফলাফল দেয়?

    lam=0.001-এ ফলাফল প্রায় OLS-এর কাছাকাছি (এখনও কিছুটা ওভারফিটিং)। lam=10-এ ওজনের নর্ম অনেক ছোট হয়ে যাবে কিন্তু মডেল অতিরিক্ত সরল হয়ে যেতে পারে (আন্ডারফিটিং — উচ্চ বায়াস)। সাধারণত একটি মাঝামাঝি মান (যেমন এই সমস্যার জন্য lam প্রায় ০.০১-০.১ রেঞ্জে) সর্বনিম্ন টেস্ট MSE দেয় — এটাই পাঠ ৩১-এর U-কার্ভের সুইট স্পট খুঁজে বের করার বাস্তব প্রক্রিয়া।

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

পূর্ববর্তী পাঠ
পাঠ ৩১ · বায়াস-ভেরিয়েন্স ট্রেডঅফ