পাঠ ২১ · ৩০-এর মধ্যে · মডিউল ৩
Home / AI Courses / AI Foundations / তথ্য তত্ত্ব

তথ্য তত্ত্ব — Entropy, Cross-Entropy, KL

Information theory — entropy, cross-entropy & KL divergence
১০ মিনিট পড়া মাঝারি · Intermediate Python কোডসহ

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

  • "তথ্য" পরিমাপ — bits-এ কীভাবে হয়, কেন $\log$ ব্যবহার করা হয়
  • Entropy ($H$) — অনিশ্চয়তার গাণিতিক পরিমাপ
  • Cross-entropy — AI-এর সবচেয়ে বেশি ব্যবহৃত classification loss
  • KL divergence — দু'টি বিতরণ কতটা ভিন্ন তা মাপার উপায়
  • Python-এ এই তিনটি — হাতে-কলমে কোড

১ · "তথ্য" বলতে কী বোঝায়?

১৯৪৮ সালে Claude Shannon এক যুগান্তকারী প্রবন্ধ ("A Mathematical Theory of Communication") প্রকাশ করেন — যেখানে দেখান তথ্য গাণিতিকভাবে মাপা যায়। তার মূল উপলব্ধি — একটি বার্তায় ততটাই তথ্য যতটা সেটা বিস্ময়কর। প্রত্যাশিত খবর তথ্যহীন; অপ্রত্যাশিত খবর তথ্যপূর্ণ।

  • "আগামীকাল সূর্য পূর্ব দিকে উঠবে।" — ০ bits প্রায় (সম্পূর্ণ প্রত্যাশিত)।
  • "আজ ঢাকায় তুষারপাত হচ্ছে।" — অসাধারণ তথ্য! বিস্ময়কর বলেই।
  • "একটি লটারি জিতেছেন (১ কোটিতে ১)।" — বিশাল তথ্য।
তথ্যের সংজ্ঞা

একটি ঘটনার সম্ভাবনা $p$ হলে — সেই ঘটনায় থাকা তথ্য (surprisalSurprisalএকটি single ঘটনার "তথ্য মূল্য"। কম সম্ভাবনা = বেশি surprisal. Shannon-এর তত্ত্বে এর একক bits ($\log_2$) বা nats ($\log_e$)।): $$I(x) = -\log_2 p(x) \text{ bits}$$

ছোট সম্ভাবনা = বেশি তথ্য। মুদ্রা ছোঁড়ায় Heads ($p = 0.5$) → $-\log_2(0.5) = 1$ bit. ছক্কায় ৬ পড়া ($p = 1/6$) → $\log_2 6 \approx 2.58$ bits. কেন $\log$? কারণ স্বাধীন ঘটনার যৌথ সম্ভাবনা গুণ হয় — কিন্তু আমরা চাই তাদের তথ্য যোগ হোক। $\log$ গুণকে যোগে রূপান্তরিত করে।

২ · Entropy — গড় তথ্য, মানে অনিশ্চয়তা

একটি random variable-এর entropy মানে — তার গড় তথ্য, অর্থাৎ গড়ে কতটুকু অনিশ্চিত। Shannon-এর সূত্র:

$$H(X) = -\sum_i p(x_i) \log_2 p(x_i)$$

উদাহরণ

ভারসাম্যপূর্ণ মুদ্রা (Heads/Tails — প্রতিটি $0.5$):

$H = -(0.5 \log_2 0.5 + 0.5 \log_2 0.5) = -(2 \times 0.5 \times -1) = 1$ bit

অসমতা মুদ্রা ($p_H = 0.9$, $p_T = 0.1$):

$H = -(0.9 \log_2 0.9 + 0.1 \log_2 0.1) \approx 0.469$ bits

সম্পূর্ণ পক্ষপাতী মুদ্রা ($p_H = 1.0$):

$H = 0$ bits — কোনো অনিশ্চয়তা নেই, ফলাফল আগে থেকেই জানা।

Entropy যত বেশি — তত বেশি অনিশ্চয়তা, তত বেশি "চমক"। ভারসাম্যপূর্ণ মুদ্রায় (১ bit) সর্বোচ্চ অনিশ্চয়তা। যেখানে আগেই ফলাফল জানা — সেখানে entropy ০। ভাবুন একটি প্রশ্নোত্তর খেলায় — উত্তর আগে থেকেই জানলে কোনো মজা নেই (entropy = ০); দু'টি সমান-সম্ভাব্য উত্তরে সর্বোচ্চ উত্তেজনা (entropy = ১)।

৩ · Python-এ NumPyNumPy · Numerical PythonPython-এর সবচেয়ে জনপ্রিয় গণিত library — দ্রুত array, vector, matrix calculation. ML/AI কোডের ভিত্তি। Entropy

Python · NumPy
import numpy as np

def entropy(p):
    """বিতরণ p-এর entropy (bits)।"""
    p = np.array(p)
    p = p[p > 0]   # log(0) এড়াতে
    return -np.sum(p * np.log2(p))

# পরীক্ষা
print(f"ভারসাম্যপূর্ণ মুদ্রা:   {entropy([0.5, 0.5]):.4f} bits")
print(f"অসমতা মুদ্রা (0.9):     {entropy([0.9, 0.1]):.4f} bits")
print(f"নিশ্চিত (1.0):          {entropy([1.0]):.4f} bits")
print(f"৬-পাশি ছক্কা:           {entropy([1/6]*6):.4f} bits")
print(f"৪-পাশি ভারসাম্য:        {entropy([0.25]*4):.4f} bits")

    
৪-পাশি ভারসাম্যপূর্ণ ছক্কা = ২ bits. ৬-পাশি = ২.৫৮ bits. বেশি সম্ভাব্য ফলাফল = বেশি entropy (সমান-সম্ভাব্য হলে)।

৪ · Cross-Entropy — দু'টি বিতরণ মিশিয়ে

AI-তে আমরা সাধারণত একটি "প্রকৃত" বিতরণ ($p$) ও একটি "অনুমিত" বিতরণ ($q$) — দু'টির তুলনা করি। Cross-entropyCross-entropy$H(p, q) = -\sum p \log q$। ভাষাগতভাবে — "$p$ থেকে আসা ডেটা $q$ ব্যবহার করে encode করতে গড়ে কত bits লাগে।" $q = p$ হলে ন্যূনতম, ভিন্ন হলে বেশি। AI-তে classification loss. বলে — প্রকৃত বিতরণ $p$ থেকে আসা ডেটা $q$ ব্যবহার করে এনকোড করতে গড়ে কত bits লাগে।

$$H(p, q) = -\sum_i p(x_i) \log_2 q(x_i)$$

কেন এটি AI-এ গুরুত্বপূর্ণ?

একটি classificationClassification · শ্রেণিবিন্যাসML-এর একটি কাজ যেখানে input-কে আগে থেকে নির্ধারিত শ্রেণিতে ভাগ করা হয় — যেমন email "spam"/"ham", ছবি "কুকুর"/"বিড়াল"। মডেল প্রতিটি ক্লাসের জন্য সম্ভাবনা বের করে — যেমন [0.7, 0.2, 0.1] (কুকুর, বিড়াল, পাখি)। সত্যি লেবেল হলো "কুকুর" — অর্থাৎ true distribution [1, 0, 0]। দু'টি বিতরণের মধ্যে cross-entropy = মডেলের loss।

গুরুত্বপূর্ণ

AI-এর প্রায় সব classification মডেলে — ChatGPT, BERT, ResNet — cross-entropy loss ব্যবহৃত হয়। Language model প্রতিটি শব্দ সঠিকভাবে অনুমান করার সম্ভাবনা যত বাড়ায়, cross-entropy তত কমে।

৫ · KL Divergence — দু'টি বিতরণ কতটা ভিন্ন

Cross-entropy থেকে $p$-এর entropy বিয়োগ করলে পাই Kullback-Leibler (KL) divergence — দু'টি বিতরণের মধ্যে "দূরত্ব"।

$$D_{KL}(p \| q) = \sum_i p(x_i) \log_2 \dfrac{p(x_i)}{q(x_i)} = H(p, q) - H(p)$$

  • $D_{KL}(p \| q) \geq 0$ সবসময় (Gibbs' inequality)।
  • $D_{KL}(p \| q) = 0$ iff $p = q$।
  • Symmetric নয়: $D_{KL}(p \| q) \neq D_{KL}(q \| p)$ সাধারণত — তাই "metric" নয়।

উদাহরণ Python-এ

Python · Cross-entropy & KL
import numpy as np

def cross_entropy(p, q, eps=1e-12):
    p = np.array(p, dtype=float)
    q = np.clip(np.array(q, dtype=float), eps, 1.0)
    return -np.sum(p * np.log2(q))

def kl(p, q, eps=1e-12):
    p = np.clip(np.array(p, dtype=float), eps, 1.0)
    q = np.clip(np.array(q, dtype=float), eps, 1.0)
    return np.sum(p * np.log2(p / q))

# Classification উদাহরণ
true = [1, 0, 0]                      # সত্য: কুকুর
good = [0.85, 0.10, 0.05]             # ভালো অনুমান
bad  = [0.05, 0.85, 0.10]             # খারাপ অনুমান (বিড়াল বলেছে)

print(f"ভালো মডেলের loss:  {cross_entropy(true, good):.4f}")
print(f"খারাপ মডেলের loss: {cross_entropy(true, bad):.4f}")

p  = [0.5, 0.5]
q1 = [0.5, 0.5]
q2 = [0.9, 0.1]
print(f"\nKL(p || p):  {kl(p, q1):.4f}")
print(f"KL(p || q2): {kl(p, q2):.4f}")
print(f"KL(q2 || p): {kl(q2, p):.4f}  (≠ উপরের — asymmetric!)")

    
ভালো মডেলের cross-entropy ০.২৩, খারাপ মডেলের ৪.৩২ — প্রায় ১৯ গুণ! এই পার্থক্যই gradient descent-কে মডেল ঠিক করতে চালিত করে। KL-এর asymmetry — $D_{KL}(p\|q) \neq D_{KL}(q\|p)$ — তাই কোন direction ব্যবহার (mode-seeking vs mean-seeking) AI-তে গুরুত্বপূর্ণ ডিজাইন প্রশ্ন।
তথ্য তত্ত্ব — তিন ধারণার সম্পর্ক Surprisal → Entropy → Cross-Entropy → KL ১ · Surprisal (একটি ঘটনা) I(x) = −log₂ p(x) কম সম্ভাবনা = বেশি তথ্য ২ · Entropy (গড় surprisal) H(p) = −Σ p log₂ p একটি বিতরণের অনিশ্চয়তা ৩ · Cross-Entropy H(p,q) = −Σ p log₂ q AI classification loss গড় দু'বিতরণ ৪ · KL Divergence (পার্থক্য) D_KL(p‖q) = H(p,q) − H(p) ≥ 0, asymmetric, "দূরত্ব" 🤖 AI-তে প্রয়োগ Classification loss VAE / Variational RLHF KL penalty Perplexity
একটি ঘটনার surprisal → একটি বিতরণের entropy → দু'বিতরণের cross-entropy → তাদের পার্থক্য KL. আজকের AI-এর প্রায় সব loss এখান থেকে।

৬ · কেন $\log$ ভিত্তি $2$? এবং $e$?

$\log_2$ — তথ্যের একক "bits"। কম্পিউটার বিজ্ঞানে স্বাভাবিক।
$\log_e$ (ln) — একক "nats"। গণিতে স্বাভাবিক, derivative সরল।
AI কোডে — সাধারণত np.log() = প্রাকৃতিক log. সংখ্যা বদলায় ($\ln 2 \approx 0.693$ গুণ), কিন্তু আনুপাতিক সম্পর্ক একই — তাই gradient descent-এ পার্থক্য নেই।

৭ · AI-এ প্রয়োগ — কোথায় কোথায়

  • Classification loss: Cross-entropy — প্রায় সব deep learning classifier-এ।
  • Language Model: PerplexityPerplexity$2^{H(p,q)}$ — language model কতটা "বিভ্রান্ত" পরবর্তী token-এ। কম perplexity = ভালো model. GPT-4-এর perplexity ছোট datasets-এ ~৩-৫। = $2^{H(p, q)}$ — মডেল কতটা "বিভ্রান্ত" পরবর্তী শব্দে।
  • VAEVAE · Variational Autoencoderএকটি generative model যা ডেটাকে compact "latent space"-এ encode করে আবার reconstruct করে। নতুন ছবি/ডেটা তৈরিতে ব্যবহৃত। (Variational Autoencoder): KL divergence — latent distribution-কে standard GaussianGaussian · Normal Distribution"ঘণ্টা আকৃতির" সবচেয়ে পরিচিত probability বিতরণ — গড় ($\mu$) ও মান বিচ্যুতি ($\sigma$) দিয়ে সংজ্ঞায়িত।-এর কাছে রাখা।
  • GAN: Generator ও Discriminator-এর "যুদ্ধ" — JS divergence (KL-এর symmetric সংস্করণ)।
  • RLHFRLHF · Reinforcement Learning from Human Feedbackমানুষের পছন্দ থেকে শিখে LLM-কে ভাল করার পদ্ধতি। ChatGPT, Claude এই কৌশলে fine-tune হয়েছে।: KL penalty — fine-tuned model-কে base model থেকে বেশি দূরে যেতে দেয় না।
  • Diffusion model: noise বিতরণে cross-entropy-ভিত্তিক loss.
  • Knowledge Distillation: Student-model শেখে teacher-এর soft prediction থেকে — KL minimize করে।
Information theory ছাড়া আধুনিক AI বোঝা প্রায় অসম্ভব। এই পাঠের গণিত হাল্কা — কিন্তু ধারণা গভীর। প্রতিবার "loss" শব্দ শুনলে — মনে রাখুন cross-entropy-র কথা।

৮ · সরল উপলব্ধি — এক বাক্যে

$H(X) = -\sum p \log p$ — অনিশ্চয়তা। Cross-entropy = সত্য বিতরণ ও মডেলের দূরত্ব। AI-এর সব loss এই দু'টির ভাষা।

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

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

প্র ০১ একটি classifier MSE (mean squared error) দিয়ে train করলে কাজ করে — কিন্তু cross-entropy দিয়ে অনেক ভালো। কেন? দু'টোর মধ্যে গাণিতিক ও বাস্তব পার্থক্য কী?

এটি deep learning-এর একটি ক্লাসিক প্রশ্ন — আজও interview-এ আসে। সংক্ষিপ্ত উত্তর: cross-entropy probabilistic, MSE geometric — এবং classification-এ আমাদের probability দরকার।

(১) Output-এর প্রকৃতি:

  • Classification-এ output হলো প্রতিটি ক্লাসের সম্ভাবনা ($\sum = 1$)। MSE এই constraint জানে না — squared error দূরত্ব হিসাবে দেখে।
  • Cross-entropy probabilistic loss — softmax-এর সাথে natural pair.

(২) Gradient signal:

  • Sigmoid + MSE: যখন prediction ভুল হয়ে saturate করে (যেমন true=1, pred=0.001) — gradient খুব ছোট, vanishing gradient.
  • Sigmoid + Cross-entropy: একই ভুলে gradient বড়, model দ্রুত শেখে। গাণিতিকভাবে — derivative সরাসরি $(p - y)$।
  • এই কারণেই ১৯৮৬-৯০-এর দশকে neural network "শেখে না" সমস্যা cross-entropy-এ আংশিক সমাধান হয়।

(৩) তথ্যতাত্ত্বিক ব্যাখ্যা:

  • Cross-entropy = MLE (Maximum Likelihood Estimation) — সবচেয়ে probable model বের করা।
  • MSE = MLE যদি error Gaussian — image regression-এ ভালো, classification-এ অর্থহীন।

(৪) Confidence-এর শাস্তি:

  • Cross-entropy "আত্মবিশ্বাসী ভুল"-কে কঠিন শাস্তি দেয় — true=1, pred=0.001 হলে loss = $-\log(0.001) \approx 6.9$, বিশাল।
  • MSE-এ একই ভুলে loss = $1^2 = 1$ — তুলনায় ছোট। তাই model overconfident ভুল করতে ভয় পায় না।

কখন MSE classification-এ চলে? ছোট network-এ, balanced data-এ — কাজ করে কিন্তু ধীরে। আধুনিক production-এ প্রায় কখনোই না।

মূল উপলব্ধি: Loss function শুধু "error মাপা" নয় — গণিতে এটি মডেলের worldview। Cross-entropy বলে: "তুমি probability output করছ — আমি সেই probability-র quality মাপব।" এই philosophical clarity-ই deep learning-এর mathematical backbone.

প্র ০২ $D_{KL}(p \| q) \neq D_{KL}(q \| p)$ — এই asymmetry-র AI-তে বাস্তব impact কী? "Forward KL" বনাম "Reverse KL" — কখন কোনটি বেছে নিতে হয়?

KL-এর asymmetry শুধু গাণিতিক curiosity নয় — এটি AI ডিজাইনে বিশাল practical পার্থক্য আনে। "Forward" বনাম "Reverse" KL সম্পূর্ণ ভিন্ন আচরণ দেয়।

সংজ্ঞা স্পষ্ট করি:

  • Forward KL: $D_{KL}(p \| q)$ — যেখানে $p$ প্রকৃত, $q$ আমাদের মডেল।
  • Reverse KL: $D_{KL}(q \| p)$ — উল্টো।

(১) Forward KL — "Mean-seeking" / "Mass-covering":

  • $p$ যেখানে nonzero, $q$ অবশ্যই nonzero হতে হবে — না হলে $\log(p/0) = \infty$।
  • ফলে $q$ সব mode "ঢাকতে" চেষ্টা করে — gaps পূরণ করে।
  • Multi-modal $p$-তে $q$ Gaussian হলে — সব mode-এর গড় বের করে (blurry)।
  • কখন: Maximum likelihood, supervised classification — প্রকৃত data থেকে $q$ শেখা।

(২) Reverse KL — "Mode-seeking":

  • $q$ যেখানে nonzero, $p$ হতে হবে — তাই $q$ শুধু একটি mode-এ "চিপে" বসে।
  • Mode-collapse — variational inference-এ পরিচিত সমস্যা।
  • কখন: Variational Inference (VAE, ELBO), policy distillation — যেখানে concentrated, sharp output চাই।

(৩) AI-তে বাস্তব উদাহরণ:

  • VAE: $D_{KL}(q_\phi(z|x) \| p(z))$ — reverse KL — encoder $q$ যেন prior $p$-এর কাছাকাছি থাকে। তাই VAE-এর latent sometimes underuse mode.
  • RLHF (PPO): $D_{KL}(\pi_{\text{new}} \| \pi_{\text{ref}})$ — reverse KL penalty — fine-tuned model base থেকে বেশি দূর না যায়। GPT-4-এর alignment এই trick-এ।
  • Diffusion vs GAN: Diffusion forward KL-এ trained — তাই diversity বেশি। GAN reverse KL-জাতীয় objective — তাই কখনো mode-collapse.

(৪) Symmetric বিকল্প:

  • JS divergence: $\frac{1}{2}D_{KL}(p \| m) + \frac{1}{2}D_{KL}(q \| m)$, যেখানে $m = \frac{p+q}{2}$। Bounded, symmetric. GAN-এ ব্যবহৃত।
  • Wasserstein distance: ভিন্ন তত্ত্ব — distributions-এর support-এর "distance"। WGAN-এ ব্যবহৃত — gradient ভালো।

মূল উপলব্ধি: "KL = দূরত্ব" — এটি অর্ধ-সত্য। প্রকৃতপক্ষে KL একটি directional পরিমাপ — কে কাকে approximate করছে — সেটি গুরুত্বপূর্ণ। AI ডিজাইনে এই sophistication বুঝলে — আপনি GAN, VAE, RLHF-এর ভেতরের যুক্তি দেখতে পাবেন।

প্র ০৩ "GPT-4-এর perplexity ৩.৫" — এই সংখ্যা মানে কী? Cross-entropy-র সাথে সম্পর্ক? কেন language model-এর evaluation-এ এটিকেই standard ধরা হয়?

Perplexity ($PP$) — language modeling-এর প্রায় ১০০ বছরের পুরোনো (Shannon ১৯৫১) metric. এটি cross-entropy-র exponential — একটি intuitive interpretation দেয়।

সংজ্ঞা:

  • Cross-entropy: $H(p,q) = -\frac{1}{N}\sum \log_2 q(x_i)$ — গড়ে কত bits প্রতি token.
  • Perplexity: $PP = 2^{H(p,q)}$ (বা base-$e$ হলে $e^H$)।
  • "Effective branching factor" — মডেল প্রতিটি step-এ কত options-এর মধ্যে সমান-সম্ভাব্য confused.

(১) "$PP = 3.5$" মানে কী?

  • মডেল প্রতিটি token-এ গড়ে ৩.৫টি equally-likely option-এর মধ্যে confused.
  • কম perplexity = বেশি confident, ভালো model.
  • $PP = 1$ — perfect model (যা হয় না)।
  • $PP = V$ (vocab size) — random guessing-এর সমান, worst.

(২) ঐতিহাসিক চিত্র:

  • n-gram models (১৯৯০): Wikipedia perplexity ~১০০-২০০।
  • LSTM (২০১৫): ~৬০-৮০।
  • GPT-2 (২০১৯): ~১৭।
  • GPT-3 (২০২০): ~৯।
  • GPT-4 / Claude / Llama-3 (২০২৩-২৪): ~৩-৫ (small benchmarks-এ)।
  • Human upper bound (Shannon ১৯৫০): English-এ ~১.৩ bits/character.

(৩) কেন standard?

  • Direct optimization: Training loss = cross-entropy → perplexity তার exponential — তাই training-এ কী ঘটছে, evaluation-এ সরাসরি দেখায়।
  • Interpretable: "৩.৫ options-এ confused" — সংখ্যা সরাসরি বোঝা যায়।
  • Scale-invariant: Vocab size ভিন্ন হলেও পরিমাপের তুলনা করা যায়।
  • No gold standard needed: কোনো human label দরকার নেই — শুধু text-এর likelihood.

(৪) Perplexity-এর সীমা:

  • "Better perplexity ≠ better instruction-following." GPT-4 base-এর চেয়ে fine-tuned ChatGPT-এর perplexity বেশি — কিন্তু practical-এ ভালো।
  • Tokenizer-নির্ভর — BPE vs SentencePiece-এ ভিন্ন numbers.
  • Distribution shift-এ ভঙ্গুর — Wikipedia-তে train করা model code-এ বেশি perplexity.
  • আধুনিক LLM evaluation-এ — MMLU, HellaSwag, ARC-এর মতো task-specific metrics বেশি ব্যবহৃত।

(৫) Bits Per Character (BPC): Character-level perplexity-র alternative — model size-এ tokenization-এর effect বাদ। OpenAI GPT-3 paper-এ এটি ব্যবহার।

মূল উপলব্ধি: Perplexity ১৯৫০-এর পরিমাপ আজও language model-এর "instinct level" দেখায়। কিন্তু ChatGPT-যুগে এটিই যথেষ্ট নয় — আজকের evaluation গভীর: reasoning, harmlessness, factuality. তবু training-এ আজও cross-entropy-ই objective.

প্র ০৪ আপনি একটি বাংলা spam-classifier তৈরি করছেন। ৯৫% email "ham" (ভালো), ৫% "spam"। Cross-entropy loss imbalanced — কী সমস্যা হবে, কীভাবে সমাধান?

Class imbalance — production ML-এর সর্বব্যাপী সমস্যা। বাংলায় spam detection, fraud detection, medical diagnosis — সবেই থাকে। সরল cross-entropy এতে ভঙ্গুর।

(১) সরল cross-entropy-র সমস্যা:

  • Model সব email-কে "ham" predict করলেই ৯৫% accuracy — cross-entropy কম।
  • Training-এ ham-এর gradient signal majority — spam underrepresented.
  • Model "lazy" — minority class উপেক্ষা করে।
  • Real-world cost asymmetric — spam miss করা বেশি ক্ষতিকর হতে পারে।

(২) সমাধান — ৬টি কৌশল:

  1. Class weights (weighted cross-entropy):
    • Loss-এ inverse frequency: $w_{\text{spam}} = 0.95/0.05 = 19$, $w_{\text{ham}} = 1$।
    • PyTorch: nn.CrossEntropyLoss(weight=torch.tensor([1, 19]))।
    • সরলতম, সাধারণত effective.
  2. Focal loss (Lin et al. ২০১৭):
    • $FL = -(1-p_t)^\gamma \log p_t$ — সহজ examples-এর contribution কমায়।
    • Hard, misclassified examples-এ focus.
    • Object detection (RetinaNet)-এ revolutionary.
  3. Oversampling minority:
    • SMOTE: synthetic minority examples.
    • সাবধান — overfitting-এর risk.
  4. Undersampling majority:
    • সরল কিন্তু ডেটা harm — informational data হারানো।
  5. Threshold tuning:
    • Default ০.৫ না, validation-এ optimal threshold বের করুন।
    • Precision-recall curve থেকে business cost balance.
  6. Ensemble / Boosting:
    • XGBoost, LightGBM-এ scale_pos_weight built-in.
    • Hard examples-এ bias দিয়ে শেখায়।

(৩) Metric নির্বাচন:

  • Accuracy মিথ্যা ছবি দেয় — ৯৫% ham bias-এই ৯৫% accuracy.
  • সঠিক: Precision, Recall, F1, ROC-AUC, PR-AUC।
  • Spam-এ recall-এ জোর: "৯০% spam ধরছি" বনাম accuracy "৯৭%"।
  • Confusion matrix বিশদ analysis.

(৪) Bangla-specific বিবেচনা:

  • Bangla spam-এ code-mixing ("offer ৫০% off"!) — tokenizer carefully.
  • BERT-Bangla, Bangla-BERT-Base — pretrained backbone.
  • Training data — DataLab Bangladesh, IndicNLP-এর dataset.
  • Edge case: "Eid-এ বিশাল offer" — religious term spam ও না-spam দু'টোতেই।

(৫) Production checklist:

  • Class distribution log-করুন (training, validation, production)।
  • Drift detection — distribution বদলালে retrain.
  • Cost-sensitive evaluation: false positive vs false negative-এর business cost.
  • Active learning — uncertain predictions human-এ পাঠান।

মূল উপলব্ধি: "Cross-entropy বুঝলেই ML জানা" — অর্ধসত্য। Real production-এ class imbalance, cost-sensitive learning, calibration — এসবই AI engineer-এর দক্ষতার আসল পরীক্ষা। গণিত বুঝলেন, এবার বাস্তবতার পরীক্ষা।

অনুশীলন

  1. হিসাব করুন: একটি ৪-পাশি বিতরণ $p = [0.4, 0.3, 0.2, 0.1]$-এর entropy কত? Python-এ যাচাই করুন।

    $H = -(0.4\log_2 0.4 + 0.3\log_2 0.3 + 0.2\log_2 0.2 + 0.1\log_2 0.1) \approx 1.846$ bits.

    import numpy as np
    p = np.array([0.4, 0.3, 0.2, 0.1])
    print(-np.sum(p * np.log2(p)))  # 1.8464...

    ৪-পাশি ভারসাম্যপূর্ণ ($0.25$ each) হলে entropy ছিল ২ bits — বর্তমান অসমতায় কম।

  2. তুলনা করুন: True $p = [1, 0, 0]$, ৩টি মডেলের অনুমান:
    • Model A: $[0.9, 0.05, 0.05]$
    • Model B: $[0.6, 0.3, 0.1]$
    • Model C: $[0.34, 0.33, 0.33]$ (random)
    প্রতিটির cross-entropy বের করুন। কোনটি সবচেয়ে ভালো?
    • Model A: $-\log_2(0.9) \approx 0.152$ bits — সেরা।
    • Model B: $-\log_2(0.6) \approx 0.737$ bits.
    • Model C: $-\log_2(0.34) \approx 1.556$ bits — random-এর কাছাকাছি।

    True one-hot হলে cross-entropy = $-\log q[\text{correct class}]$। তাই correct class-এ যত high probability — তত কম loss.

  3. চিন্তা করুন: ChatGPT-এর "perplexity" শব্দটি প্রায়ই উচ্চারিত হয়। এটি cross-entropy-র সাথে কীভাবে সম্পর্কিত?

    প্র ০৩-এর উত্তরে বিস্তারিত আছে। সংক্ষেপে:

    $PP = 2^{H(p,q)}$ (বা $e^H$ natural log হলে)। অর্থ: model প্রতি token-এ গড়ে কত equally-likely options-এর মধ্যে confused. কম PP = ভালো model. GPT-4-এর small benchmark-এ ~৩-৫।

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

কোড রানার কাজ না করলে? ব্রাউজারে কাজ না করলে Google Colab ব্যবহার করুন — Google-এর ফ্রি অনলাইন Python পরিবেশ, শুধু Gmail অ্যাকাউন্ট লাগে।
পূর্ববর্তী পাঠ
পাঠ ২০ · মডিউল ২ পর্যালোচনা