Chapter 09

লস ফাংশন

Loss Functions
🎬 মডেল কীভাবে জানে যে সে ভুল করেছে?
একটি পরীক্ষায় ছাত্রকে নম্বর দেওয়া হয় — সে কত সঠিক উত্তর দিয়েছে। মডেলের ক্ষেত্রেও তাই — Loss Function-ই বলে দেয় মডেল কতটা ভুল করেছে। যত কম loss, তত ভালো মডেল।

Regression Loss

Mean Squared Error (MSE)

MSE = (1/n) Σ (y_true - y_pred)²

বড় ভুলকে বেশি penalize করে (square করার কারণে)। House price prediction-এর মতো regression-এ ব্যবহৃত।

import numpy as np
def mse(y_true, y_pred):
    return np.mean((y_true - y_pred) ** 2)

Mean Absolute Error (MAE)

MAE = (1/n) Σ |y_true - y_pred|

Outlier-এর প্রতি কম sensitive। যখন ডেটায় outlier থাকে, MAE বেশি ভালো।

Classification Loss

Binary Cross-Entropy

BCE = -(1/n) Σ [y log(p) + (1-y) log(1-p)]

Binary classification (Cat/Dog, Spam/Not Spam)। Sigmoid output-এর সাথে জোড়া।

def bce(y_true, y_pred, eps=1e-12):
    y_pred = np.clip(y_pred, eps, 1 - eps)
    return -np.mean(y_true * np.log(y_pred) + (1-y_true) * np.log(1-y_pred))

Categorical Cross-Entropy

CCE = -Σ y_true · log(y_pred)

Multi-class classification (10 digits, 1000 ImageNet classes)। Softmax output-এর সাথে জোড়া।

def cce(y_true, y_pred, eps=1e-12):
    y_pred = np.clip(y_pred, eps, 1.0)
    return -np.sum(y_true * np.log(y_pred), axis=1).mean()

কোন Loss কখন?

টাস্ক
Loss
Output Activation
Regression
MSE / MAE
None (linear)
Binary Classification
Binary Cross-Entropy
Sigmoid
Multi-class Classification
Categorical Cross-Entropy
Softmax
Multi-label
Binary Cross-Entropy
Sigmoid (per class)
Segmentation
Dice Loss / Cross-Entropy
Softmax / Sigmoid

একটা ছোট্ট example

# True label: class 2 (one-hot)
y_true = np.array([[0, 0, 1, 0]])

# Model output (after softmax)
y_pred = np.array([[0.1, 0.2, 0.6, 0.1]])

print("Cross-Entropy:", -np.sum(y_true * np.log(y_pred)))
# 0.5108

Loss-এর Intuition

🔑 কী হচ্ছে আসলে?
Cross-Entropy পরিমাপ করে — predicted probability সত্যি class-এ কতটা confident। যত বেশি confident সত্যিতে, তত কম loss। যদি সঠিক class-এ probability 1 হয়, loss = 0।

সাধারণ ভুল ধারণা

⚠️ যা এড়িয়ে চলবেন
  • Classification-এ MSE — কাজ করে না ভালো।
  • log(0) — তাই সবসময় ছোট epsilon দিয়ে clip করুন।
  • Loss ও Metric একই না — Accuracy ভিন্ন জিনিস।

অনুশীলন

১. y_true = [3.0, 5.0, 2.5], y_pred = [2.8, 5.2, 3.0] — MSE ও MAE বের করুন।

২. Binary Cross-Entropy হাতে calculate করুন y=1, p=0.9 এবং y=1, p=0.1-এর জন্য।

মিনি প্রজেক্ট

🚀 আজকের চ্যালেঞ্জ
একটি random 5-class classifier-এর output (softmax) generate করুন, true label one-hot করুন, এবং Categorical Cross-Entropy বের করুন। 1000 sample-এ গড় বের করুন।

ইন্টারভিউ প্রশ্ন

  1. MSE ও MAE-এর পার্থক্য।
  2. Cross-Entropy কী এবং কেন classification-এ ব্যবহৃত।
  3. Loss ও Metric-এর পার্থক্য।
  4. Binary ও Categorical Cross-Entropy কখন ব্যবহার করেন?

সারসংক্ষেপ

✨ এই অধ্যায়ে যা শিখলাম
  • Loss = মডেলের ভুলের পরিমাপ।
  • Regression → MSE/MAE; Classification → Cross-Entropy।
  • পরের অধ্যায়ে শিখব — এই loss থেকে শুরু করে কীভাবে নেটওয়ার্ক নিজেকে ঠিক করে (Backpropagation)।