মূল content-এ যাও

Mathematics for AI/Functions ও Graph/Lesson 03

Exponent ও Log

eˣ কেন এত দ্রুত বাড়ে, log কীভাবে গুণকে যোগে বদলে দেয়, আর কেন ML-এর loss function (cross-entropy) আর probability-র হিসাবে log ছাড়া চলে না।

সময়
24 মিনিট
Exercise
1
Challenge
1
Quiz
3 প্রশ্ন

সহজ ভাষায়

Exponent — একটা সংখ্যাকে বারবার গুণ:

25=2×2×2×2×2=322^5 = 2 \times 2 \times 2 \times 2 \times 2 = 32

Log — উল্টো প্রশ্ন: "2-কে কত ঘাত দিলে 32 পাবো?"

log⁡2(32)=5\log_2(32) = 5

Exponent আর log একে অপরের উল্টো, যেমন গুণ আর ভাগ।

main.py

কেন দরকার?

ML-এর ভেতরে দুটো জায়গায় এরা সবখানে:

  • exe^x — sigmoid, softmax: score থেকে probability বানাতে
  • log⁡\log — loss function (cross-entropy), আর অনেকগুলো probability নিরাপদে গুণ করতে

এমনকি LLM-এর output-এ যে "logits" শব্দ দেখবে — সেটাও log থেকে এসেছে।

বিশেষ সংখ্যা ee

e≈2.718e \approx 2.718 — গণিতের সবচেয়ে "স্বাভাবিক" base। exe^x-এর একটা অদ্ভুত গুণ: যেকোনো বিন্দুতে এর বৃদ্ধির হার নিজের মানের সমান। Calculus-এ এটা সবকিছু সহজ করে দেয় — তাই ML-এ base-ee (natural log, ln⁡\ln, NumPy-তে np.log) default।

main.py

দুটো graph-এর আকার মনে রাখো:

  • exe^x — বাম দিকে প্রায় 0, ডানে বিস্ফোরণ। সবসময় positive।
  • log⁡(x)\log(x) — শুধু positive xx-এ সংজ্ঞায়িত, 0-এর কাছে −∞-\infty-এর দিকে, ডানে খুব ধীরে বাড়ে।

Log-এর নিয়ম

log⁡(a×b)=log⁡(a)+log⁡(b)\log(a \times b) = \log(a) + \log(b) log⁡(ak)=klog⁡(a)\log(a^k) = k \log(a) log⁡(ab)=log⁡(a)−log⁡(b)\log\left(\frac{a}{b}\right) = \log(a) - \log(b)

প্রথমটাই সবচেয়ে গুরুত্বপূর্ণ: log গুণকে যোগে বদলে দেয়।

main.py

কেন ML-এ log ছাড়া চলে না

Model প্রতিটা sample-কে একটা probability দেয়। পুরো dataset-এর সম্মিলিত probability = সবগুলোর গুণফল। হাজারটা ছোট সংখ্যা গুণ করলে:

main.py

গুণফল 0 — computer এত ছোট সংখ্যা রাখতে পারে না (underflow)। Log-এর যোগফল একদম স্বাভাবিক একটা সংখ্যা। এজন্যই ML-এ সবসময় "log-likelihood" নিয়ে কাজ — আর exercise-এ নিজেই এটা দেখবে।

Cross-entropy: log দিয়ে বানানো loss

Model সঠিক class-কে probability pp দিলে loss =−log⁡(p)= -\log(p):

main.py
  • ঠিক উত্তরে আত্মবিশ্বাসী (p→1p \to 1) → loss প্রায় 0
  • অনিশ্চিত (p=0.5p = 0.5) → মাঝারি loss
  • আত্মবিশ্বাসী ভুল (p→0p \to 0) → loss আকাশছোঁয়া

এই আকৃতিটাই model-কে শেখায়: "নিশ্চিত না হলে বেশি আত্মবিশ্বাস দেখিও না।" Binary classification-এর জন্য এর পূর্ণ রূপ:

L=−1n∑i=1n[yilog⁡(pi)+(1−yi)log⁡(1−pi)]\mathcal{L} = -\frac{1}{n}\sum_{i=1}^{n} \Big[ y_i \log(p_i) + (1 - y_i)\log(1 - p_i) \Big]

Challenge-এ এটাই লিখবে।

Exercise

Exercise

ছোট সংখ্যার গুণ

+20 XP

একটা model ৫০০টা sample-এর প্রতিটাকে সঠিক label-এর জন্য 0.01 probability দিয়েছে। সব sample-এর সম্মিলিত probability = সবগুলোর গুণফল।

  • naive — np.prod(probs) দিয়ে সরাসরি গুণফল (দেখবে কী হয়!)
  • log_likelihood — log-এর যোগফল: Σ log(p)
  • log10_likelihood — একই জিনিস base-10 log-এ (গুণফলটা 10-এর কত ঘাত)
solution.py

Quiz

  1. Q1log₁₀(1000) কত?
  2. Q2log(a × b) = ?
  3. Q3Model সঠিক class-কে মাত্র 0.01 probability দিলে −log(p) loss কত বড়?
0/3 answered

Challenge

Challenge

Binary cross-entropy

+50 XP

Binary classification-এর standard loss — binary cross-entropy:

loss = −mean( y·log(p) + (1 − y)·log(1 − p) )

y হলো আসল label (0 বা 1), p হলো model-এর দেওয়া probability (class 1-এর)।

bce(y, p) লেখো, একটা float return করবে। সাবধান: p ঠিক 0 বা 1 হলে log(0) = −∞। আগে p-কে [1e-12, 1 − 1e-12] সীমার মধ্যে আটকাও (np.clip)। Loop ছাড়া।

solution.py

বাস্তবে কোথায় ব্যবহার হয়?

Log scale — যখন data অনেকগুলো মাত্রা জুড়ে ছড়ানো। Model-এর size (parameter সংখ্যা) সময়ের সাথে কীভাবে বেড়েছে:

main.py

Linear scale-এ শুধু GPT-3 দেখা যায়, বাকিগুলো অদৃশ্য। Log scale-এ প্রতিটা ধাপ সমান দূরত্বে — দেখা যায় প্রায় প্রতি বছর মাপ কয়েক গুণ বেড়েছে। Loss curve, learning rate search, scaling law — ML-এর অনেক graph log scale-এ আঁকা হয়।

Interview প্রশ্ন

  • Beginner: Log কী? log⁡(ab)\log(ab) কত?
  • Intermediate: Probability গুণ না করে log-probability যোগ করা হয় কেন?
  • Advanced: Cross-entropy loss কোথা থেকে আসে? Maximum likelihood estimation-এর সাথে এর সম্পর্ক কী?

এরপর কী?

এই lesson-এ ∑\sum চিহ্নটা বারবার এসেছে। ML-এর প্রতিটা paper আর documentation এই চিহ্নে ভরা। Module-এর শেষ lesson: Σ notation: সূত্র পড়তে শেখা — আর সূত্র থেকে সরাসরি code।