Home »
Blog »
AI/ML Engineer সিরিজ » Series 04 » Episode 07
Machine Learning কীভাবে ভুল থেকে শেখে? Gradient Descent-এর সহজ গল্প
loss, gradient descent আর bias-variance (Series 04, Episode 07)
🟡 INTERMEDIATE
Series 04 — Math, Statistics ও Probability
Episode 07 / 07
📑 এই পর্বে যা যা আছে
- ১. গল্প: তীর ছোড়া শেখা
- ২. আসল সমস্যা: "ভুল" মাপব কীভাবে
- ৩. Loss function — ভুলের একটা সংখ্যা
- ৪. Level 1 — গরম-ঠান্ডা খেলা (feedback)
- ৫. Level 2 — gradient descent পুরো ছবিতে
- ৬. চার স্তম্ভ একসাথে আসছে
- ৭. Code: scratch থেকে Linear Regression শেখা
- ৮. Bias-Variance: under বনাম overfitting
- ৯. Visual: bias-variance target
- ১০. Level 3 — engineer কীভাবে এই trade-off সামলায়
- ১১. বাংলাদেশের context
- ১২. Boss Question
- ১৩. Job Requirement Decoder
- ১৪. সাধারণ ভুল ধারণা
- ১৫. Interview Prep
- ১৬. হাতে-কলমে (Mini Exercise)
- ১৭. Project Connection
- ১৮. সারসংক্ষেপ ও Series 04 সমাপ্তি
🏹 ১. গল্প: তীর ছোড়া শেখা
Rahim প্রথমবার তীর-ধনুক হাতে নিল। প্রথম তীর target-এর অনেক ডানে গেল। সে একটু বাঁয়ে তাক করে আবার
ছুড়ল — এবার একটু কম ডানে। আবার সমন্বয় করল, আবার ছুড়ল। কয়েকবার পর তীর প্রায় কেন্দ্রে।
Maya (senior AI Engineer) পাশে দাঁড়িয়ে বলল: "তুমি এইমাত্র একটা model-কে train করলে — নিজেকেই!
প্রতিবার তুমি দেখলে কতটা ভুল হলো (সেটাই loss), কোন দিকে ভুল (সেটাই
gradient), আর একটু সমন্বয় করলে (parameter update)। এটাই gradient
descent। আর খেয়াল করো — খুব বেশি সমন্বয় করলে (overcorrect) উল্টো দিকে চলে যেতে; এটাই
overfitting-এর ইঙ্গিত।"
এটাই Series 04-এর চূড়ান্ত পর্ব। আজকে আমরা আগের চারটা স্তম্ভ — vector, gradient, statistics,
probability — একসাথে জুড়ে ML-এর সবচেয়ে গুরুত্বপূর্ণ ধারণাটা বুঝব: model কীভাবে ভুল থেকে শেখে,
আর কোথায় থামতে হয়।
🎯 ২. আসল সমস্যা: "ভুল" মাপব কীভাবে
S04E03-এ আমরা "ঢাল ধরে নামা" শিখেছি, কিন্তু একটা প্রশ্ন বাকি ছিল — model কীসের ঢাল ধরে নামে?
উত্তর: ভুলের (loss-এর) ঢাল। কিন্তু "ভুল" তো একটা অস্পষ্ট শব্দ। computer-কে ভুল
কমাতে বললে আগে তাকে একটা সংখ্যায় "ভুল" মাপতে দিতে হবে। সেই সংখ্যাই loss।
📏 ৩. Loss function — ভুলের একটা সংখ্যা
Loss function হলো এমন একটা function যা model-এর prediction আর আসল উত্তরের মধ্যে পার্থক্যকে একটা
সংখ্যায় প্রকাশ করে। কম loss = কম ভুল = ভালো model।
| সমস্যার ধরন | প্রচলিত loss | intuition |
| Regression (সংখ্যা predict) | MSE (Mean Squared Error) | ভুলের বর্গের গড় — বড় ভুলকে বেশি শাস্তি |
| Classification (শ্রেণি predict) | Cross-Entropy | ভুল probability-কে শাস্তি — কতটা "আত্মবিশ্বাসী ভুল" |
খেয়াল করুন: loss হলো সেই "পাহাড়" (S04E03) যার নিচে model নামতে চায়। MSE-তে
Statistics (গড়, বর্গ) আছে; Cross-Entropy-তে Probability (log-probability) আছে — মানে আগের
পর্বগুলো এখানে জড়ো হচ্ছে।
🌡️ ৪. Level 1 — গরম-ঠান্ডা খেলা (feedback)
ছোটবেলার "গরম-ঠান্ডা" খেলা মনে আছে? লুকানো জিনিস খুঁজতে বন্ধু বলে "গরম হচ্ছে" (কাছে) বা "ঠান্ডা
হচ্ছে" (দূরে)। আপনি সেই feedback ধরে এগোন।
model-এর training ঠিক তাই:
• loss = "তুমি কতটা ঠান্ডা/দূরে" (ভুলের পরিমাণ)।
• gradient = "কোন দিকে গেলে গরম হবে" (ভুল কমার দিক)।
• parameter update = সেই দিকে এক পা এগোনো।
• epoch = পুরো data দেখে বারবার এই feedback নেওয়া।
⚙️ ৫. Level 2 — gradient descent পুরো ছবিতে
এবার S04E03-এর loop-টা loss সহ সম্পূর্ণ করি:
১. parameter (weight) random ভাবে শুরু
│
▼
২. prediction করো → loss মাপো (কত ভুল, এক সংখ্যায়)
│
▼
৩. gradient বের করো: প্রতিটা weight সাপেক্ষে loss-এর ঢাল
│
▼
৪. weight = weight − learning_rate × gradient
│
▼
৫. loss কমেছে? না হলে ২-এ ফিরে যাও (আরেক epoch)
│
▼
loss ন্যূনতমের কাছে → model শিখে গেছে
এই একটা loop — নাম gradient descent — Linear Regression থেকে বিশাল neural network পর্যন্ত সবখানে।
Series 06-এ PyTorch-এ আপনি ঠিক এই loop হাতে লিখবেন; আজকে intuition-টা পাকা করছি।
🧩 ৬. চার স্তম্ভ একসাথে আসছে
এই মুহূর্তে Series 04-এর সবকিছু একসাথে জোড়া লাগে — এটাই এই পর্বের সৌন্দর্য:
- Vector/Matrix (E02): data ও weight vector/matrix; prediction = matrix multiply।
- Derivative/Gradient (E03): loss কমানোর দিক বের করা।
- Statistics (E04): MSE-তে গড়/বর্গ; scaling ছাড়া gradient descent ধুঁকে।
- Probability (E06): classification-এ output probability, loss = cross-entropy।
মানে — আপনি বিচ্ছিন্ন চারটা math topic শেখেননি; আপনি আসলে একটা machine-এর চারটা যন্ত্রাংশ শিখেছেন,
যা এখন একসাথে ঘুরছে।
💻 ৭. Code: scratch থেকে Linear Regression শেখা
কোনো ML library ছাড়া, শুধু NumPy দিয়ে আমরা একটা Linear Regression গড়ে তুলব gradient descent দিয়ে —
যাতে "শেখা" জিনিসটা চোখে দেখা যায়। NumPy কারণ এটাই সংখ্যার হিসাবের ভিত্তি।
import numpy as np
# data: y ≈ 3x + 2 (model-কে এটা নিজে বের করতে হবে)
X = np.array([1, 2, 3, 4, 5], dtype=float)
y = np.array([5, 8, 11, 14, 17], dtype=float)
w, b = 0.0, 0.0 # parameter (random শুরু)
lr = 0.01 # learning rate
n = len(X)
for epoch in range(1000):
y_pred = w * X + b # prediction (vector)
error = y_pred - y # ভুল
loss = np.mean(error ** 2) # MSE (Statistics!)
grad_w = (2 / n) * np.sum(error * X) # w সাপেক্ষে ঢাল
grad_b = (2 / n) * np.sum(error) # b সাপেক্ষে ঢাল
w -= lr * grad_w # gradient descent step
b -= lr * grad_b
if epoch % 200 == 0:
print(f"epoch {epoch:4d} loss={loss:.4f} w={w:.3f} b={b:.3f}")
print(f"শেখা: y = {w:.2f}x + {b:.2f} (আসল: y = 3x + 2)")
কী observe করবেন: শুরুতে w,b = 0, loss বড়। প্রতি epoch-এ loss কমে,
w ৩-এর দিকে আর b ২-এর দিকে যায়। কেউ w,b বলে দেয়নি — model gradient descent
দিয়ে নিজে শিখল। এটাই ML-এর মূল জাদু, আর এখানে কোনো জাদু নেই — শুধু ঢাল ধরে নামা।
⚖️ ৮. Bias-Variance: under বনাম overfitting
model শিখল, ভালো কথা। কিন্তু "কতটা শিখবে" — এখানেই সবচেয়ে সূক্ষ্ম সিদ্ধান্ত। দুটো বিপদ:
High Bias → Underfitting
model খুব সরল, data-র pattern-ই ধরতে পারেনি। training-এও ভুল বেশি। যেমন বাঁকা data-তে
সরলরেখা ফিট করা। "কম পড়া ছাত্র"।
High Variance → Overfitting
model এত বেশি শিখেছে যে training data মুখস্থ করে ফেলেছে, noise-ও ধরেছে। training-এ দারুণ,
নতুন data-তে খারাপ। "মুখস্থ করা ছাত্র, নতুন প্রশ্নে ফেল"।
Bias-Variance trade-off: খুব সরল করলে bias বাড়ে (underfit), খুব জটিল করলে
variance বাড়ে (overfit)। লক্ষ্য — মাঝের সেই বিন্দু যেখানে নতুন (unseen) data-তে total
error সবচেয়ে কম। এটাই ভালো model-এর সংজ্ঞা।
🎯 ৯. Visual: bias-variance target
Low Bias, Low Variance High Bias (underfit) High Variance (overfit)
(আদর্শ)
┌───────┐ ┌───────┐ ┌───────┐
│ ◎●● │ │◎ │ │ ● ◎ ●│
│ ●●● │ │ ● ● │ │● ● │
│ │ │ ● ● │ │ ● ● │
└───────┘ └───────┘ └───────┘
তীর কেন্দ্রে ও জমাট সব একদিকে (ভুল জায়গায়) ছড়ানো, এলোমেলো
◎ = target কেন্দ্র, ● = model-এর prediction
আদর্শ model-এর তীর কেন্দ্রে (low bias) এবং জমাট (low variance)। underfit — সব ভুল একদিকে;
overfit — এলোমেলো ছড়ানো।
👷 ১০. Level 3 — engineer কীভাবে এই trade-off সামলায়
একজন AI Engineer overfitting/underfitting ধরতে ও সামলাতে যা করে (Series 05-এ বিস্তারিত):
- ধরা: training loss কম কিন্তু validation loss বেশি → overfitting। দুটোই বেশি → underfitting।
- Underfit সমাধান: আরও powerful model, আরও ভালো feature, বেশি training।
- Overfit সমাধান: বেশি data, regularization, model সরল করা, early stopping, cross-validation।
গুরুত্বপূর্ণ distinction (accuracy vs generalization): training data-তে ৯৯%
accuracy মানে ভালো model নয় — সেটা মুখস্থও হতে পারে। আসল প্রশ্ন সবসময়: নতুন, না-দেখা
data-তে কেমন করে। তাই আমরা data-কে train/validation/test-এ ভাগ করি — যা Series 05-এর মূল থিম।
🇧🇩 ১১. বাংলাদেশের context
একটা local team যদি churn model বানায় আর দেখায় "training accuracy ৯৮%!" — অভিজ্ঞ engineer সাথে
সাথে সন্দেহ করবে overfitting। বাস্তবে নতুন customer-এ হয়তো ৭০%। তাই bKash/Daraz-এর মতো জায়গায়
model deploy করার আগে সবসময় held-out/validation data-তে যাচাই করা হয়। এই bias-variance intuition
junior-দের প্রথম দিন থেকেই দরকার — নইলে "কাগজে ভালো, বাস্তবে খারাপ" model production-এ চলে যায়।
💼 ১২. Boss Question
💼 Boss Question
Boss: "তোমার model তো training-এ ৯৭% accurate দেখাচ্ছে! তাহলে সোজা production-এ দিয়ে দাও, দেরি কেন?"
উত্তর: এই ৯৭% training data-র উপর — model হয়তো এই নির্দিষ্ট data মুখস্থ করে ফেলেছে
(overfitting)। বাস্তবে নতুন customer আসবে যাদের model আগে দেখেনি। তাই আমি আলাদা রাখা validation/test
data-তে যাচাই করব — সেখানে যদি ৯৭%-এর কাছাকাছি থাকে, তবেই বিশ্বাসযোগ্য। নইলে production-এ গিয়ে model
ভুল prediction দেবে, আর আমরা টাকা/বিশ্বাস দুটোই হারাব। এক দিন বেশি যাচাই করা মানে মাসের পর
মাসের ভুল সিদ্ধান্ত থেকে বাঁচা — এটাই business value.
🔎 ১৩. Job Requirement Decoder
"Strong grasp of loss functions, gradient descent, and the bias-variance trade-off."
| প্রশ্ন | উত্তর |
| এর মানে কী? | model কীভাবে ভুল মাপে (loss), কীভাবে শেখে (gradient descent), আর কোথায় থামতে হয় (bias-variance)। |
| কোম্পানি কেন চায়? | এটাই ML-এর কেন্দ্র; না বুঝলে model debug/improve করা যায় না। |
| কোন সমস্যা সমাধান করে? | overfitting/underfitting ধরা, training না-শেখা diagnose করা। |
| junior-এর কী জানা লাগে? | loss = ভুলের সংখ্যা, gradient descent-এর loop, overfit vs underfit, train/val/test-এর দরকার। |
| এখনই কী master লাগে না? | প্রতিটা optimizer-এর গণিত, custom loss derive, regularization-এর গভীর তত্ত্ব। |
| GitHub-এ কীভাবে দেখাবেন? | from-scratch gradient descent notebook + একটা project যেখানে train/val loss curve দিয়ে overfitting দেখান। |
| Interview-তে কী জিজ্ঞেস করতে পারে? | "gradient descent + loss কীভাবে জড়িত?", "overfitting কী ও কীভাবে ঠেকাবেন?", "bias-variance trade-off বোঝান"। |
⚠️ ১৪. সাধারণ ভুল ধারণা
ভুল ১: "high training accuracy = ভালো model।" →
ঠিক: validation/test-এ ভালো হলে তবেই; নইলে হয়তো overfitting।
ভুল ২: "loss আর accuracy একই জিনিস।" →
ঠিক: loss হলো training-এ কমানোর objective; accuracy হলো একটা evaluation metric।
ভুল ৩: "বেশি জটিল model সবসময় ভালো।" →
ঠিক: বেশি জটিল = high variance = overfit-এর ঝুঁকি।
ভুল ৪: "loss ০ হওয়াই লক্ষ্য।" →
ঠিক: training loss ০ প্রায়ই overfitting-এর লক্ষণ; লক্ষ্য unseen data-তে কম error।
🎤 ১৫. Interview Prep
প্রশ্ন ১: loss function কী?
উত্তর: model-এর ভুলকে একটা সংখ্যায় প্রকাশ; training-এ এটাই gradient descent দিয়ে কমানো হয়।
প্রশ্ন ২: bias-variance trade-off বোঝান।
উত্তর: সরল model = high bias (underfit); জটিল model = high variance (overfit); লক্ষ্য মাঝের balance যেখানে unseen error কম।
প্রশ্ন ৩: overfitting কীভাবে ধরবেন ও ঠেকাবেন?
উত্তর: training ভালো কিন্তু validation খারাপ = overfit; সমাধান: বেশি data, regularization, সরল model, early stopping, CV।
প্রশ্ন ৪: gradient descent-এ learning rate-এর ভূমিকা?
উত্তর: প্রতি step-এ কতটা সরব; বড় হলে diverge, ছোট হলে ধীর — balance দরকার।
✍️ ১৬. হাতে-কলমে (Mini Exercise)
১. উপরের scratch Linear Regression-এ lr বদলে 0.001 ও 0.3
দিন — loss কীভাবে বদলায়, diverge করে কিনা লক্ষ্য করুন।
২. y-তে একটা outlier যোগ করুন (যেমন শেষ মান ১৭ → ৫০) — শেখা w,b কতটা টলল?
MSE কেন outlier-এ sensitive ভাবুন।
৩. এক লাইনে করে লিখুন underfitting ও overfitting-এর সংজ্ঞা, নিজের ভাষায়।
🚀 ১৭. Project Connection
আমাদের flagship "Bangladesh Tech Career Assistant" Series 05-এ V3 (ML model) হবে।
তখন আমরা scikit-learn দিয়ে model train করব — কিন্তু ভেতরে ঠিক আজকের loss + gradient descent চলবে।
আর deploy করার আগে train/validation দিয়ে overfitting যাচাই করব, ঠিক আজকের bias-variance পাঠ ধরে।
মানে Series 04 এখানে শেষ হলেও, এর প্রতিটা ধারণা V3 থেকে V10 পর্যন্ত ফিরে ফিরে আসবে।
📌 ১৮. সারসংক্ষেপ ও Series 04 সমাপ্তি
এই পর্বে আমরা শিখলাম:
✓ loss function = model-এর ভুলের একটা সংখ্যা (MSE regression-এ, cross-entropy classification-এ)
✓ gradient descent-এর সম্পূর্ণ loop: predict → loss → gradient → update → repeat
✓ scratch থেকে NumPy দিয়ে model "নিজে শিখল" — কোনো জাদু নয়, ঢাল ধরে নামা
✓ bias-variance: underfit (high bias) বনাম overfit (high variance); লক্ষ্য unseen data-তে কম error
✓ high training accuracy ≠ ভালো model; train/val/test আলাদা করা জরুরি
✓ Series 04-এর চার স্তম্ভ (vector, gradient, statistics, probability) এখানে একসাথে কাজ করে
🎓 Series 04 শেষ! আপনি এখন ML-এর জন্য প্রয়োজনীয় গণিতের intuition অর্জন করেছেন —
heavy proof ছাড়াই। মনে রাখবেন: এই গণিত "চশমা", "কলম" নয় — model বোঝার জন্য, না derive করার জন্য।
এটাই junior AI Engineer-এর জন্য যথেষ্ট।
পরবর্তী Series (Series 05): "Classical Machine Learning"। এবার তত্ত্ব থেকে বাস্তবে —
scikit-learn দিয়ে সত্যিকারের model বানানো, evaluate করা, আর একটা project raw data থেকে API পর্যন্ত
নিয়ে যাওয়া। আজকের loss ও bias-variance সেখানে প্রতিটা পদক্ষেপে কাজে লাগবে।