Probability ও Bayes: 'কতটা নিশ্চিত' — AI-এর হৃদয়

conditional probability ও Bayes theorem (Series 04, Episode 06)

🟡 INTERMEDIATE Series 04 — Math, Statistics ও Probability Episode 06 / 07

📑 এই পর্বে যা যা আছে

🩺 ১. গল্প: ডাক্তারের রিপোর্ট আর একটা ভয়

Rahim-এর এক আত্মীয় একটা বিরল রোগের পরীক্ষা করালেন, রিপোর্ট "positive" এল। পরীক্ষাটা নাকি ৯৯% নির্ভুল। সবাই ভয় পেয়ে গেল। Rahim Nila-কে জিজ্ঞেস করল — "৯৯% নির্ভুল মানে তো উনি প্রায় নিশ্চিত অসুস্থ, তাই না?"

Nila বলল: "এখানেই বেশিরভাগ মানুষ — এমনকি অনেক ডাক্তারও — ভুল করে। রোগটা যদি খুব বিরল হয় (ধরো ১০,০০০ জনে ১ জন), তাহলে '৯৯% নির্ভুল test'-এও positive রিপোর্ট আসলে সত্যিকারের অসুস্থ হওয়ার সম্ভাবনা হয়তো মাত্র ১%! এই উল্টো-স্বজ্ঞাত (counter-intuitive) ফলটাই Bayes theorem হিসাব করে দেয়।"

Rahim অবাক: "৯৯% test, কিন্তু মাত্র ১% আসলে অসুস্থ? কীভাবে?"

Nila: "কারণ prior probability (আগে থেকেই কত বিরল) সবকিছু বদলে দেয়। এই একটা ধারণা — 'নতুন তথ্য দিয়ে belief update করা' — আধুনিক AI-এর হৃদয়। চলো দেখি।"

এই পর্বে Series 04-এর শেষ স্তম্ভ Probability — যেটা classifier, spam filter, এমনকি LLM-এর next-token prediction-এর গভীরে বসে আছে।

🎯 ২. আসল সমস্যা: AI নিশ্চিত নয়, সম্ভাবনা বলে

একটা গুরুত্বপূর্ণ সত্য: বেশিরভাগ ML model "হ্যাঁ/না" বলে না — বলে "৮৭% সম্ভাবনা হ্যাঁ"। একটা spam filter বলে "এই email ৯৩% সম্ভাবনায় spam"। একটা LLM বলে "পরের শব্দ 'ভাত' হওয়ার সম্ভাবনা সবচেয়ে বেশি"। এই "কতটা সম্ভাবনা / কতটা নিশ্চিত" — পুরোটাই Probability। তাই একজন junior-কে এটা বুঝতেই হবে।

🎲 ৩. Probability basics — ০ থেকে ১

Probability হলো কোনো ঘটনার সম্ভাবনা, ০ (কখনো হবে না) থেকে ১ (নিশ্চিত হবে)-এর মধ্যে। একটা মুদ্রায় head আসার probability ০.৫; একটা ছক্কায় ৬ আসার probability ১/৬ ≈ ০.১৭। ML-এ probability প্রায়ই ০-১০০% হিসেবে দেখানো হয় (০.৯৩ = ৯৩%)।

মূল নিয়ম: সব সম্ভাব্য ফলাফলের probability যোগ করলে ১ হয়। যেমন একটা binary classifier যদি বলে "spam = ০.৯৩", তাহলে "not spam = ০.০৭" — যোগফল ১।

🔑 ৪. Level 1 — conditional probability ("যদি জানি...")

Conditional probability = "একটা তথ্য জানা থাকলে, আরেকটার সম্ভাবনা কত"। লেখা হয় P(A | B) — "B ঘটেছে জানা থাকলে A-এর সম্ভাবনা"।

উদাহরণ: রাস্তায় এলোমেলো একজনের লম্বা হওয়ার সম্ভাবনা একরকম। কিন্তু "যদি জানি সে একজন basketball খেলোয়াড়" — তাহলে লম্বা হওয়ার সম্ভাবনা অনেক বেড়ে যায়। নতুন তথ্য (basketball খেলোয়াড়) সম্ভাবনা বদলে দিল। এটাই conditional probability।

ML-এ প্রায় সব prediction আসলে conditional: "এই feature-গুলো দেখা গেলে, target=হ্যাঁ হওয়ার সম্ভাবনা কত" — অর্থাৎ P(target | features)

⚙️ ৫. Level 2 — Bayes theorem (belief update)

Bayes theorem একটা সূত্র যা conditional probability উল্টে দেয়। intuition-টা এমন: আগের বিশ্বাস (prior) + নতুন প্রমাণ (evidence) = হালনাগাদ বিশ্বাস (posterior)।

P(A | B) = P(B | A) × P(A) ───────────────── P(B) A = অনুমান (যেমন: রোগ আছে) B = প্রমাণ (যেমন: test positive) P(A) = prior → আগে থেকে কতটা সম্ভাব্য (রোগ কত বিরল) P(B | A) = likelihood → রোগ থাকলে test positive হওয়ার হার P(A | B) = posterior → test positive দেখে রোগ থাকার হালনাগাদ সম্ভাবনা
junior-দের সূত্র মুখস্থ করার দরকার নেই — বোঝা দরকার এই intuition: বিরল জিনিসের ক্ষেত্রে একটা "positive" প্রমাণও তাকে হঠাৎ খুব সম্ভাব্য বানায় না, কারণ prior ছোট।

🧮 ৬. রোগ-পরীক্ষার ধাঁধা (Bayes হাতে-কলমে)

ধরা যাক ১০,০০০ জনের একটা দল, যেখানে:

১০,০০০ জন │ ├─ ১ জন আসলে অসুস্থ → test positive ≈ 1 জন (99%) │ └─ ৯,৯৯৯ জন সুস্থ → ভুল positive ≈ 100 জন (1% of 9999) মোট positive ≈ 1 + 100 = 101 জন এদের মধ্যে সত্যিই অসুস্থ = 1 জন P(অসুস্থ | positive) ≈ 1 / 101 ≈ 1% (!)
দেখুন — "৯৯% নির্ভুল test"-এ positive এলেও, রোগটা এত বিরল যে সত্যিই অসুস্থ হওয়ার সম্ভাবনা মাত্র ~১%। এজন্যই বিরল রোগে দ্বিতীয়বার test করা হয়। এই intuition জানা থাকলে আপনি data ও model-এর ফলাফল অনেক বেশি সঠিকভাবে ব্যাখ্যা করবেন।

👷 ৭. Level 3 — Naive Bayes ও spam filter

Bayes theorem-এর সরাসরি প্রয়োগ হলো Naive Bayes classifier — যা বহু বছর ধরে spam filter-এ ব্যবহৃত। ধারণা: একটা email-এ কিছু শব্দ (যেমন "লটারি", "free", "জিতেছেন") দেখা গেলে, সেটা spam হওয়ার posterior probability হিসাব করা।

"Naive" বলা হয় কারণ এটা ধরে নেয় শব্দগুলো একে অপরের থেকে স্বাধীন (যা পুরোপুরি সত্য নয়), তবু বাস্তবে চমৎকার কাজ করে ও দ্রুত। এটাই concept বোঝার সুন্দর উদাহরণ — সরল ধারণা, বাস্তব প্রয়োগ।

🎯 ৮. Random variable ও expected value

Random variable হলো এমন একটা পরিমাণ যার মান সম্ভাবনার উপর নির্ভর করে — যেমন একটা ছক্কার ফল, বা কাল বৃষ্টি হবে কিনা। Expected value হলো এর "গড় প্রত্যাশিত ফল" — প্রতিটা সম্ভাব্য মানকে তার probability দিয়ে গুণ করে যোগ।

ব্যবহারিক উদাহরণ: একটা lottery-তে ১% সম্ভাবনায় ১০০০ টাকা জেতা, ৯৯% সম্ভাবনায় ০। expected value = 0.01×1000 + 0.99×0 = ১০ টাকা। টিকিটের দাম ৫০ টাকা হলে গড়ে লোকসান — এই হিসাবই expected value। ML-এ risk/reward, এবং reinforcement learning-এ এটা কেন্দ্রীয়।

📦 ৯. Visual: Bayes-এর box

test POSITIVE test NEGATIVE ┌────────────────┬──────────────────┐ অসুস্থ (1) │ ✅ 1 (true +) │ ❌ ~0 (মিস) │ ├────────────────┼──────────────────┤ সুস্থ(9999)│ ⚠️ ~100 (false+)│ ✅ ~9899 (true -) │ └────────────────┴──────────────────┘ positive box-এ মোট 101, তার মধ্যে সত্যি অসুস্থ মাত্র 1 → P(অসুস্থ | positive) ছোট, কারণ prior ছোট

💻 ১০. Code: spam probability

scikit-learn-এর Naive Bayes দিয়ে খুব অল্প কোডে একটা spam-ধাঁচের classifier। আমরা এটা ব্যবহার করছি কারণ probability-based classifier-এর সবচেয়ে পরিষ্কার বাস্তব উদাহরণ এটাই।

from sklearn.feature_extraction.text import CountVectorizer from sklearn.naive_bayes import MultinomialNB texts = ["free lottery jiten টাকা", "meeting kal office e", "free free offer এখনি", "project deadline kal"] labels = [1, 0, 1, 0] # 1 = spam, 0 = normal vec = CountVectorizer() X = vec.fit_transform(texts) model = MultinomialNB() model.fit(X, labels) test = vec.transform(["free টাকা offer"]) print("spam probability:", model.predict_proba(test)[0][1].round(3))

কী observe করবেন: predict_proba "হ্যাঁ/না" নয়, একটা probability (যেমন ০.৯) দেয় — ঠিক যেভাবে বাস্তব spam filter কাজ করে। ভেতরে পুরোটাই Bayes theorem।

🇧🇩 ১১. বাংলাদেশের context

bKash/Nagad-এর fraud detection ঠিক এই "কতটা সম্ভাবনা fraud" হিসাব করে — একটা transaction ১০০% fraud বলে না, বলে "এই আচরণে fraud-এর probability উঁচু"। আবার রোগ-পরীক্ষার Bayes-intuition স্বাস্থ্য-tech startup-এ সরাসরি লাগে — একটা AI screening tool positive দিলেও prior বিবেচনা না করলে অকারণ আতঙ্ক তৈরি হয়। junior হিসেবে এই probability-thinking আপনাকে দায়িত্বশীল সিদ্ধান্ত নিতে সাহায্য করবে।

💼 ১২. Boss Question

💼 Boss Question

Boss: "আমাদের fraud model বলছে এই transaction 'fraud'। ব্লক করে দিই?"

উত্তর: একটু দাঁড়ান — model আসলে "fraud" বলে না, বলে "fraud-এর probability = ৮২%"। এখন সিদ্ধান্তটা business-এর: fraud আটকানোর লাভ বনাম একজন সৎ customer-কে ভুল করে ব্লক করার ক্ষতি। যেহেতু সত্যিকারের fraud বিরল (prior ছোট), আমরা হয়তো ৮২%-এ সরাসরি ব্লক না করে extra যাচাই (OTP/manual review) চাইব। এই probability + prior + খরচ/লাভ মিলিয়ে সিদ্ধান্ত নেওয়াই সঠিক engineering — এটাই Bayes-thinking-এর business value।

🔎 ১৩. Job Requirement Decoder

"Understanding of probability, conditional probability, and Bayesian thinking."
প্রশ্নউত্তর
এর মানে কী?model-এর probability output ও "কতটা নিশ্চিত" ব্যাখ্যা করতে ও ব্যবহার করতে পারেন।
কোম্পানি কেন চায়?classifier threshold, fraud/spam সিদ্ধান্ত, uncertainty handling — সবই probability।
কোন সমস্যা সমাধান করে?positive test/prediction-কে ভুলভাবে "নিশ্চিত" ধরার ভুল এড়ানো।
junior-এর কী জানা লাগে?probability 0-1, conditional probability, Bayes-এর intuition (prior-এর প্রভাব), expected value।
এখনই কী master লাগে না?Bayesian inference-এর গভীর গণিত, MCMC, প্রতিটা distribution-এর সূত্র।
GitHub-এ কীভাবে দেখাবেন?একটা Naive Bayes spam/sentiment classifier, predict_proba ব্যাখ্যা করে।
Interview-তে কী জিজ্ঞেস করতে পারে?"Bayes theorem বোঝান", "conditional probability কী?", "৯৯% test positive মানেই কি রোগ আছে?"

⚠️ ১৪. সাধারণ ভুল ধারণা

ভুল ১: "test ৯৯% নির্ভুল হলে positive = প্রায় নিশ্চিত অসুস্থ।" → ঠিক: বিরল রোগে prior ছোট, তাই posterior অনেক কম হতে পারে (base rate fallacy)।

ভুল ২: "P(A|B) আর P(B|A) একই।" → ঠিক: এরা ভিন্ন; Bayes theorem একটাকে আরেকটায় রূপান্তর করে।

ভুল ৩: "model 'fraud' বলছে মানে এটা নিশ্চিত fraud।" → ঠিক: model probability দেয়; threshold ও খরচ/লাভ দেখে সিদ্ধান্ত নিতে হয়।

ভুল ৪: "Bayes theorem master করতে হবে।" → ঠিক: junior-দের intuition (prior-এর প্রভাব) যথেষ্ট; হাতে proof লাগে না।

🎤 ১৫. Interview Prep

প্রশ্ন ১: conditional probability কী?
উত্তর: একটা তথ্য জানা থাকলে অন্য ঘটনার সম্ভাবনা — P(A|B)

প্রশ্ন ২: Bayes theorem কী কাজে লাগে?
উত্তর: prior belief-কে নতুন প্রমাণ দিয়ে update করে posterior বের করতে; spam/fraud/diagnosis-এ।

প্রশ্ন ৩: ৯৯% নির্ভুল test-এ positive এলে কি রোগ নিশ্চিত?
উত্তর: না; রোগ বিরল হলে (prior ছোট) posterior কম হতে পারে — base rate গুরুত্বপূর্ণ।

প্রশ্ন ৪: Naive Bayes-এ "naive" কেন?
উত্তর: ধরে নেয় feature-রা পরস্পর স্বাধীন — সরল অনুমান, তবু বাস্তবে কার্যকর।

✍️ ১৬. হাতে-কলমে (Mini Exercise)

১. রোগ-পরীক্ষার হিসাবে prior বদলে ১০০ জনে ১ জন করুন — এবার P(অসুস্থ | positive) মোটামুটি কত হবে?
২. উপরের Naive Bayes কোডে আরও কয়েকটা spam/normal উদাহরণ যোগ করে predict_proba কেমন বদলায় দেখুন।
৩. এক লাইনে লিখুন: কেন একটা model-এর output "৭০% হ্যাঁ" "নিশ্চিত হ্যাঁ"-এর চেয়ে বেশি সৎ?

🚀 ১৭. Project Connection

আমাদের flagship "Bangladesh Tech Career Assistant"-এ যখন (Series 05-এ) আমরা একটা classifier বানাব — যেমন "এই JD junior নাকি senior role" — model একটা probability দেবে। আজকের probability-thinking আমাদের শেখাবে কীভাবে সেই confidence ব্যাখ্যা করতে হয় ও threshold ঠিক করতে হয়। আর Series 07/08-এ LLM যখন "পরের শব্দের probability" হিসাব করবে, তখনও এই ভিত্তিই কাজে লাগবে।

📌 ১৮. সারসংক্ষেপ ও পরবর্তী পর্ব

এই পর্বে আমরা শিখলাম:

✓ probability ০-১; সব ফলাফলের যোগফল ১
✓ conditional probability P(A|B) — তথ্য জানা থাকলে সম্ভাবনা বদলায়
✓ Bayes theorem = prior + evidence → posterior; বিরল ঘটনায় prior সব বদলে দেয়
✓ base rate fallacy — "৯৯% test positive" মানেই নিশ্চিত নয়
✓ Naive Bayes দিয়ে spam/text classification; model probability দেয়, হ্যাঁ/না নয়
✓ random variable ও expected value — গড় প্রত্যাশিত ফল, risk/reward সিদ্ধান্তে
পরবর্তী Episode (S04E07): "Machine Learning কীভাবে ভুল থেকে শেখে? Gradient Descent-এর সহজ গল্প"। Series 04-এর সমাপ্তি — চারটা স্তম্ভ (vector, gradient, statistics, probability) একসাথে জুড়ে দেখব loss function, gradient descent ও bias-variance trade-off, যা Series 05-এর Classical ML-এর সরাসরি প্রবেশদ্বার।
© 2025 Sheikh Thanbir Alam. All Rights Reserved. thanbirtamim.github.io
এই লেখা মূল লেখকের সম্পত্তি — লিখিত অনুমতি ছাড়া কপি করে অন্য কোনো ওয়েবসাইট, ব্লগ, বই বা প্ল্যাটফর্মে প্রকাশ/বিতরণ করা কঠোরভাবে নিষিদ্ধ। Content may not be copied or republished without permission.