পাঠ ৩০ · ৩৫-এর মধ্যে · মডিউল ৭
Home / AI Courses / Math for AI & ML / ম্যাক্সিমাম লাইকলিহুড এস্টিমেশন

ম্যাক্সিমাম লাইকলিহুড এস্টিমেশন (MLE)

Maximum Likelihood Estimation
১৫ মিনিট পড়া মধ্যম · Intermediate NumPy কোডসহ সম্পূর্ণ বাংলায়

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

  • লাইকলিহুড ফাংশনের সঠিক সংজ্ঞা এবং কেন এটি সম্ভাবনা থেকে ভিন্নভাবে ব্যাখ্যা করা হয়
  • লগ-লাইকলিহুড কেন ব্যবহার করা হয় — সংখ্যাগত ও গাণিতিক উভয় কারণ
  • কয়েন-ফ্লিপ (Bernoulli) প্যারামিটারের জন্য MLE-র সম্পূর্ণ, ধাপে ধাপে ডেরিভেশন
  • কেন ক্রস-এনট্রপি লস মিনিমাইজ করা আসলে MLE (L34-এর পূর্বাভাস)

১ · লাইকলিহুড ফাংশন

ধরা যাক আমাদের কাছে একটি মডেল আছে যার একটি অজানা প্যারামিটার $\theta$ (এটি একটি সংখ্যা, একটি ভেক্টর, বা নিউরাল নেটওয়ার্কের সব ওজন হতে পারে)। আমরা কিছু ডেটা পর্যবেক্ষণ করেছি এবং জানতে চাই — $\theta$-এর কোন মান এই ডেটার সাথে সবচেয়ে ভালোভাবে মেলে?

লাইকলিহুড ফাংশন সংজ্ঞায়িত করা হয় —

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

যদি ডেটা $n$টি iidiidIndependent and Identically Distributed — প্রতিটি পর্যবেক্ষণ স্বাধীন এবং একই বিতরণ থেকে এসেছে (L24, L29)। পর্যবেক্ষণ $x_1,\dots,x_n$ নিয়ে গঠিত হয়, তাহলে স্বাধীনতার কারণে (L24) যৌথ সম্ভাবনা প্রতিটি পৃথক সম্ভাবনার গুণফল —

$$L(\theta) = P(x_1,\dots,x_n\mid\theta) = \prod_{i=1}^{n} P(x_i\mid\theta)$$
লাইকলিহুড বনাম সম্ভাবনা — একটি সূক্ষ্ম কিন্তু জরুরি পার্থক্য

$P(x\mid\theta)$ একই সূত্র, কিন্তু দুইভাবে পড়া যায়। $\theta$ স্থির রেখে $x$-কে ভ্যারিয়েবল ধরলে এটি একটি সম্ভাবনা বিতরণ (সব $x$-এর উপর যোগফল/ইন্টিগ্রাল = ১)। কিন্তু $x$ (পর্যবেক্ষিত ডেটা) স্থির রেখে $\theta$-কে ভ্যারিয়েবল ধরলে এটি একটি লাইকলিহুড ফাংশন — এবং সাধারণত $\theta$-এর উপর যোগফল/ইন্টিগ্রাল করলে ১ পাওয়া যায় না। এই পার্থক্যটাই MLE-র পুরো ধারণার ভিত্তি।

২ · লগ-লাইকলিহুড — কেন লগ নিই

$n$টি সম্ভাবনার গুণফল বাস্তবে দুটি সমস্যা তৈরি করে। প্রথমত, প্রতিটি সম্ভাবনা ১-এর চেয়ে ছোট হওয়ায় বহু পদের গুণফল অত্যন্ত ছোট একটি সংখ্যায় পরিণত হয় — কম্পিউটারে এটি সহজেই আন্ডারফ্লো হয়ে শূন্যে পরিণত হতে পারে। দ্বিতীয়ত, গুণফলের ডেরিভেটিভ নেওয়া (প্রোডাক্ট রুল দিয়ে) অগোছালো। লগারিদম একই সাথে দুটি সমস্যাই সমাধান করে, কারণ $\log$ একটি একঘেয়ে ক্রমবর্ধমান (monotonically increasing) ফাংশন — তাই যে $\theta$ $L(\theta)$-কে সর্বোচ্চ করে, সেই একই $\theta$ $\log L(\theta)$-কেও সর্বোচ্চ করে।

$$\ell(\theta) = \log L(\theta) = \log\prod_{i=1}^n P(x_i\mid\theta) = \sum_{i=1}^{n}\log P(x_i\mid\theta)$$

গুণফল যোগফলে পরিণত হলো — এখন প্রতিটি পদ আলাদাভাবে ডিফারেনশিয়েট করা যায় (যোগফলের ডেরিভেটিভ = ডেরিভেটিভের যোগফল)। MLE-র সংজ্ঞা তাই —

$$\hat\theta_{MLE} = \arg\max_\theta \ell(\theta)$$

৩ · সম্পূর্ণ ডেরিভেশন — কয়েন-ফ্লিপ (Bernoulli) উদাহরণ

ধরা যাক একটি কয়েন আছে যার মাথা (head) পড়ার সম্ভাবনা $p$ (অজানা — এটিই আমাদের এস্টিমেট করতে হবে)। আমরা এটি $n$ বার ছুড়ি এবং $k$ বার মাথা পাই ($n-k$ বার লেজ)। প্রতিটি ছোড়া একটি BernoulliBernoulli(p)একটি একক ট্রায়াল, যার ফলাফল ১ (সফলতা, সম্ভাবনা $p$) বা ০ (ব্যর্থতা, সম্ভাবনা $1-p$) — L25-এ কভার করা হয়েছে।$(p)$ ট্রায়াল। একটি একক ছোড়ার সম্ভাবনা লেখা যায় —

$$P(x_i \mid p) = p^{x_i}(1-p)^{1-x_i}, \qquad x_i \in \{0,1\}$$

($x_i=1$ হলে এই সূত্র $p$ দেয়, $x_i=0$ হলে $1-p$ দেয় — একই সূত্রে দুটি ক্ষেত্রই ধরা পড়ে।) সব $n$টি স্বাধীন ছোড়ার লাইকলিহুড —

$$L(p) = \prod_{i=1}^n p^{x_i}(1-p)^{1-x_i} = p^{\sum_i x_i}(1-p)^{n-\sum_i x_i} = p^{k}(1-p)^{n-k}$$

এখানে $k=\sum_i x_i$ হলো মোট মাথার সংখ্যা। এখন লগ-লাইকলিহুড নিই —

$$\ell(p) = \log L(p) = k\log p + (n-k)\log(1-p)$$
ধাপে ধাপে — ডেরিভেটিভ নিয়ে $\hat p$ বের করা

ধাপ ১ — $p$-এর সাপেক্ষে ডেরিভেটিভ নিন:

$$\frac{d\ell}{dp} = \frac{k}{p} - \frac{n-k}{1-p}$$

(এখানে $\frac{d}{dp}\log p = 1/p$ এবং চেইন রুল দিয়ে $\frac{d}{dp}\log(1-p) = \frac{-1}{1-p}$ ব্যবহার করা হয়েছে — L13।)

ধাপ ২ — শূন্যের সমান বসান (ক্রিটিক্যাল পয়েন্ট খুঁজতে):

$$\frac{k}{p} - \frac{n-k}{1-p} = 0$$

ধাপ ৩ — উভয় পাশে $p(1-p)$ দিয়ে গুণ করুন:

$$k(1-p) - (n-k)p = 0$$

ধাপ ৪ — বন্ধনী খুলুন এবং $p$-এর পদগুলো একত্র করুন:

$$k - kp - np + kp = 0 \quad\Longrightarrow\quad k - np = 0$$

(লক্ষ করুন $-kp$ ও $+kp$ একে অপরকে বাতিল করে দেয়।)

ধাপ ৫ — $p$-এর জন্য সমাধান করুন:

$$\hat p = \frac{k}{n}$$

অর্থাৎ, মাথা পড়ার আনুপাতিক হারই (observed frequency) হলো $p$-এর ম্যাক্সিমাম লাইকলিহুড এস্টিমেট। এটি স্বজ্ঞার সাথে পুরোপুরি সংগতিপূর্ণ — কিন্তু এখন আমরা জানি এটি সম্ভাবনার নীতি থেকে সরাসরি ডেরাইভ করা যায়, কেবল অনুমান নয়। এটি সত্যিই ম্যাক্সিমাম কিনা তা নিশ্চিত করতে দ্বিতীয় ডেরিভেটিভ $\ell''(p) = -k/p^2 - (n-k)/(1-p)^2$ যাচাই করা যায় — এটি সবসময় ঋণাত্মক (যেহেতু $k, n-k \geq 0$ এবং $p\in(0,1)$), তাই $\hat p=k/n$ একটি ম্যাক্সিমাম, মিনিমাম নয় (L16)।

৪ · কোড দিয়ে যাচাই

নিচে আমরা লগ-লাইকলিহুড ফাংশন সরাসরি বিভিন্ন $p$-এর জন্য গণনা করে দেখাব যে $p=k/n$-এই এটি সর্বোচ্চ হয় — ক্যালকুলাস দিয়ে যা ডেরাইভ করলাম, তা numerically-ও নিশ্চিত করা।

Python · NumPy
import numpy as np

# পর্যবেক্ষিত ডেটা: ২০ বার কয়েন ছুড়ে ১৪ বার মাথা পাওয়া গেছে
n = 20
k = 14

def log_likelihood(p, n, k):
    return k * np.log(p) + (n - k) * np.log(1 - p)

# p-এর একটি রেঞ্জ পরীক্ষা করি (0 ও 1 বাদ দিয়ে, log(0) এড়াতে)
p_values = np.linspace(0.01, 0.99, 500)
ll_values = log_likelihood(p_values, n, k)

# numerically সবচেয়ে ভালো p খুঁজে বের করি
best_idx = np.argmax(ll_values)
p_numerical = p_values[best_idx]

# তাত্ত্বিক (closed-form) MLE
p_theoretical = k / n

print("numerically পাওয়া সেরা p হাতিয়ার:", round(p_numerical, 3))
print("তাত্ত্বিক p_hat = k/n:          ", p_theoretical)

    
দুটি মান প্রায় সমান হবে (গ্রিড রেজোলিউশনের কারণে সামান্য পার্থক্য থাকতে পারে) — যা নিশ্চিত করে আমাদের হাতে-করা ক্যালকুলাস ডেরিভেশন এবং numerical সার্চ একই উত্তরে পৌঁছায়।

৫ · MLE-র সাধারণ তাৎপর্য

এই একই প্যাটার্ন — লাইকলিহুড লিখুন, লগ নিন, ডেরিভেটিভ নিয়ে শূন্যের সমান বসান, সমাধান করুন — যেকোনো প্যারামেট্রিক মডেলে প্রয়োগ করা যায়: গাউসিয়ান বিতরণের $\mu$ ও $\sigma^2$ এস্টিমেট করা (এস্টিমেট হয় স্যাম্পল গড় ও স্যাম্পল ভেরিয়েন্স), অথবা একটি সম্পূর্ণ নিউরাল নেটওয়ার্কের লক্ষ লক্ষ ওজন এস্টিমেট করা। বাস্তবে বেশিরভাগ ML লস ফাংশন (cross-entropy, mean squared error) আসলে কোনো না কোনো সম্ভাব্যতামূলক মডেলের নেগেটিভ লগ-লাইকলিহুড — অর্থাৎ লস মিনিমাইজ করা মানেই MLE করা। এই সংযোগটি L34-এ (ক্রস-এনট্রপি) এবং L35-এ (লিনিয়ার রিগ্রেশন) সম্পূর্ণভাবে দেখানো হবে।

মূল কথা · Key takeaway

MLE একটি একক, পুনরায়-ব্যবহারযোগ্য রেসিপি — এবং এটিই পরবর্তী পাঠ L32-এর ভিত্তি, যেখানে আমরা দেখব MLE-তে একটি প্রায়র (prior) যোগ করলে (L28-এর Bayes থিওরেম দিয়ে) কীভাবে regularization বেরিয়ে আসে।

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

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

প্র ০১ যদি একটি কয়েন মাত্র ২ বার ছোড়া হয় এবং দুইবারই মাথা পড়ে, MLE বলবে $\hat p = 2/2 = 1$। এই এস্টিমেট নিয়ে সমস্যা কী?

$\hat p=1$ মানে মডেল ধরে নিচ্ছে কয়েনটি কখনোই লেজ দেখাবে না — যা মাত্র ২টি পর্যবেক্ষণ থেকে একটি অত্যধিক আত্মবিশ্বাসী সিদ্ধান্ত। এটি MLE-র একটি পরিচিত দুর্বলতা: ছোট স্যাম্পলে এটি ওভারফিট করতে পারে (L31-এর বায়াস-ভেরিয়েন্স ট্রেডঅফের সাথে সরাসরি সম্পর্কিত)। এই সমস্যার সমাধান হলো একটি প্রায়র বিশ্বাস যোগ করা (যেমন "বেশিরভাগ কয়েন মোটামুটি ফেয়ার") — যা ঠিক L32-এর MAP এস্টিমেশনের বিষয়।

প্র ০২ আমরা লাইকলিহুড মিনিমাইজ না করে ম্যাক্সিমাইজ করি কেন? "লাইকলিহুড কম" মানে কি ভালো?

না — লাইকলিহুড $L(\theta)$ পরিমাপ করে $\theta$-এর অধীনে পর্যবেক্ষিত ডেটা দেখার সম্ভাবনা কতটা বেশি। আমরা সেই $\theta$ চাই যেটির অধীনে আমাদের প্রকৃত ডেটা দেখাটা সবচেয়ে "স্বাভাবিক" বা সম্ভাব্য — তাই ম্যাক্সিমাইজ করি। বিভ্রান্তি হয় কারণ ব্যবহারিকভাবে আমরা প্রায়ই এর নেগেটিভ লগ-লাইকলিহুড নিয়ে কাজ করি (যেহেতু গ্র্যাডিয়েন্ট ডিসেন্ট, L17, ফাংশন মিনিমাইজ করার জন্য তৈরি) — সেক্ষেত্রে আমরা নেগেটিভ লগ-লাইকলিহুড মিনিমাইজ করি, যা লাইকলিহুড ম্যাক্সিমাইজ করার সমতুল্য।

প্র ০৩ লগ নেওয়ার ফলে $\arg\max$-এর উত্তর বদলে যায় না কেন?

কারণ $\log$ একটি স্ট্রিক্টলি একঘেয়ে ক্রমবর্ধমান ফাংশন — যদি $a>b$ হয়, তাহলে $\log a > \log b$ সবসময় সত্য (যতক্ষণ $a,b>0$)। তাই $L(\theta)$-এর ক্রম (কোন $\theta$ কোনটার চেয়ে বড় ফলাফল দেয়) এবং $\log L(\theta)$-এর ক্রম হুবহু একই থাকে — কেবল সংখ্যার স্কেল বদলায়, কোনটা সর্বোচ্চ তা বদলায় না।

অনুশীলন

  1. নিজে ডেরাইভ করুন: যদি $n=50$ বার কয়েন ছুড়ে $k=35$ বার মাথা পাওয়া যায়, $\hat p_{MLE}$ কত হবে? উপরের কোডে n ও k বদলে যাচাই করুন।

    $\hat p = k/n = 35/50 = 0.7$। কোডে n=50, k=35 বসিয়ে চালালে numerical সার্চও একই মান (আনুমানিক ০.৭) দেখাবে।

  2. যাচাই করুন: ধাপ ৩-এ "$k(1-p)-(n-k)p=0$" সমীকরণে $k=14, n=20$ বসিয়ে সরাসরি $p$-এর জন্য সমাধান করুন এবং দেখুন এটি $14/20=0.7$ দেয় কিনা।

    $14(1-p) - 6p = 0 \Rightarrow 14 - 14p - 6p = 0 \Rightarrow 14 = 20p \Rightarrow p = 14/20 = 0.7$। এটি ঠিক সাধারণ সূত্র $\hat p=k/n$-এর সাথে মিলে যায়।

  3. ভাবুন: দ্বিতীয় ডেরিভেটিভ $\ell''(p) = -k/p^2 - (n-k)/(1-p)^2$ সবসময় ঋণাত্মক কেন (ধরে নিন $0

    $p\in(0,1)$ হলে $p^2>0$ এবং $(1-p)^2>0$। আর $k>0$ ও $n-k>0$ (যেহেতু $0

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

পূর্ববর্তী পাঠ
পাঠ ২৯ · স্যাম্পলিং ও কেন্দ্রীয় সীমা উপপাদ্য