কল্পনা করুন — একজন শেফ রান্না শিখতে এসেছেন কিন্তু তিনি জানেন না "১ চা চামচ" আর "১ কাপ"-এর পার্থক্য কী। তিনি যতই দামি recipe পড়ুন, রান্না কখনো ঠিক হবে না। AI-তেও ঠিক একই কথা — neural network, transformer, diffusion model — এগুলোর প্রতিটি formula দাঁড়িয়ে আছে সংখ্যার উপর।
কোন সংখ্যা কোথায় বসে, কোনটা কতটুকু "ছোট" বা "বড়", computer-এ সেগুলো কীভাবে সংরক্ষিত হয় — এই foundation ছাড়া পরের সব অধ্যায় কাগজের ঘর।
Intuitive Explanation
AI-তে আমরা যে data নিয়ে কাজ করি — image-এর pixel, audio-র amplitude, text-এর token id, model-এর weight — সব শেষ পর্যন্ত সংখ্যা। তাই সংখ্যা পদ্ধতি বোঝা মানে AI-এর "বর্ণমালা" শেখা।
চারটি প্রশ্ন মাথায় রাখুন এই পুরো অধ্যায় জুড়ে:
- সংখ্যা কত রকমের হতে পারে? (ℕ, ℤ, ℚ, ℝ)
- খুব বড় বা খুব ছোট সংখ্যা কীভাবে লিখি? (exponent, scientific notation)
- "কতবার গুণ করলে এই সংখ্যা পাবো" — সেটা মাপি কীভাবে? (logarithm)
- Computer এই সংখ্যা সংরক্ষণ করে কীভাবে? (float32, float16, int8)
সংখ্যার প্রকারভেদ
৪টি মূল set
- ℕ — Natural numbers: 1, 2, 3, … (counting) — token id, batch size, epoch count
- ℤ — Integers: …, −2, −1, 0, 1, 2, … — class label, index offset
- ℚ — Rationals: p/q আকারে লেখা যায় — 1/2, 3/4, 0.25
- ℝ — Real numbers: rational + irrational (π, √2, e) — model-এর প্রতিটি weight
Exponents & Powers
Exponent হলো বারবার গুণ করার short-hand:
৫টি অপরিহার্য নিয়ম
Scientific Notation
GPT-3-এর parameter সংখ্যা = 175,000,000,000। এত শূন্য কে গুণে? তাই আমরা লিখি:
সাধারণ pattern: a × 10n, যেখানে 1 ≤ |a| < 10।
- Learning rate: 3 × 10−4 (Karpathy-র famous "best lr")
- Dataset size: 1.2 × 1012 tokens
- Float32-এর smallest positive: ≈ 1.18 × 10−38
Logarithms — গণিতের সবচেয়ে কাজের অস্ত্র
Logarithm হলো exponent-এর বিপরীত প্রশ্ন:
উদাহরণ: log2(8) = 3, কারণ 23 = 8।
৩টি বিশেষ base
- log2 — information theory, bits, entropy
- log10 — decibel, scale
- ln = loge — calculus, cross-entropy loss, softmax
৪টি অপরিহার্য নিয়ম
Computer-এ সংখ্যা: Float32, Float16, Int8
Computer-এর memory-তে real number হুবহু রাখা যায় না — তাই IEEE 754 standard ব্যবহার করে approximate করে রাখা হয়।
- float32 (FP32) — 32 bit, ~7 decimal digit precision। default training type।
- float16 (FP16) / bfloat16 — 16 bit, কম precision কিন্তু দ্রুত ও কম memory। modern LLM training।
- int8 — 8 bit integer, inference-এ quantization-এর জন্য (4× ছোট, 2-4× দ্রুত)।
Python Implementation
হাতে-কলমে দেখি — exponent, log, এবং precision।
import math
import numpy as np
# 1) Exponent & log are inverses
x = 5.0
print(math.log(math.exp(x))) # -> 5.0
print(math.exp(math.log(x))) # -> 5.0
# 2) Why we use log in ML: avoid underflow
probs = [1e-20, 2e-25, 3e-30, 5e-18]
prod = 1.0
for p in probs:
prod *= p
print("direct product:", prod) # -> 0.0 (underflow!)
log_sum = sum(math.log(p) for p in probs)
print("log of product:", log_sum) # -> a normal negative number
# 3) Float precision matters
a = np.float32(0.1) + np.float32(0.2)
b = np.float64(0.1) + np.float64(0.2)
print(a, b, a == 0.3, b == 0.3) # neither equals 0.3 exactly
# 4) Scientific notation
lr = 3e-4 # 3 x 10^-4 — common learning rate
params = 1.75e11 # GPT-3 parameter count
print(lr, params)মূল শিক্ষা
- exp ও log পরস্পরের বিপরীত — একটা অন্যটাকে cancel করে।
- খুব ছোট probability সরাসরি গুণ করলে underflow হয় → তাই log।
- Float-এ 0.1 + 0.2 ≠ 0.3 — এটা bug নয়, এটা hardware।
AI/ML-এ সরাসরি যেখানে লাগে
- Softmax: exi / Σ exj — exponent ছাড়া অসম্ভব।
- Cross-entropy loss: −Σ y · log(ŷ) — log-এর সরাসরি প্রয়োগ।
- Learning rate schedule: lrt = lr0 · γt — exponential decay।
- Perplexity: 2H — log-এর বিপরীত যাত্রা।
- Quantization: float32 → int8 — number representation-এর সরাসরি প্রয়োগ।
Common Mistakes
- log(0) = −∞ — তাই code-এ সবসময় log(x + ε) লিখি (ε ≈ 1e−9)।
- log(a + b) ≠ log(a) + log(b) — এটা শুধু গুণের জন্য।
- Float32-এ equality check (a == b) — সবসময় |a − b| < ε দিয়ে compare করুন।
- Learning rate 0.0003 না লিখে 3e-4 লিখতে অভ্যস্ত হোন — কম ভুল হবে।
Practice Tasks
- হাতে হিসাব করুন: log2(1024), log10(0.001), ln(e5)।
- Scientific notation-এ লিখুন: 0.0000042, 9,200,000,000।
- Python-এ verify করুন: log(8) / log(2) = 3।
- একটি list-এ ১০০টি 0.01 probability-র গুণফল বের করুন — direct ও log উভয়ে। পার্থক্য দেখুন।
Assignment
একটি ছোট Python script লিখুন যা ব্যবহারকারী থেকে দুটি সংখ্যা a, b নেবে এবং print করবে: a+b, a−b, a·b, a/b, ab, loga(b)। Edge case সামলান (b=0, a≤0 etc.)।
Interview Questions
- ML loss function-এ log কেন ব্যবহার হয়?
- FP16 ও FP32-এর tradeoff কী?
- Softmax-এ exponent কেন? সরাসরি probability নিলে কী সমস্যা?
- Underflow ও overflow কী, কীভাবে এড়ান?
Mini Project
Project: "Numeric Stability Visualizer"।
একটি script বানান যেটি দেখায় — n=10, 50, 100, 500 probability (প্রত্যেকে 0.01) গুণ করলে direct method কখন 0 হয়ে যায়, আর log method কীভাবে stable থাকে। matplotlib দিয়ে graph আঁকুন: x-axis = n, y-axis = log(product)।
Summary · সারসংক্ষেপ
- সংখ্যার চারটি জগৎ — ℕ, ℤ, ℚ, ℝ। AI মূলত ℝ-এ কাজ করে।
- Exponent বারবার গুণের short-hand, log তার বিপরীত প্রশ্ন।
- Log গুণকে যোগে পরিণত করে — তাই ML-এ underflow এড়াতে অপরিহার্য।
- Float32/16/Int8 — speed ও precision-এর tradeoff।
- Softmax, cross-entropy, perplexity, lr schedule — সব এই অধ্যায়ের ভিত্তির উপর দাঁড়িয়ে।