ডিপ লার্নিং-এর গণিত
চারটি স্তম্ভ — এক নজরে
Vector, Matrix — নিউরাল নেটওয়ার্কের ভাষা।
Derivative — মডেল কীভাবে শেখে তার চাবি।
অনিশ্চয়তা পরিমাপ — classification-এর ভিত্তি।
Loss কমানোর গণিত — Gradient Descent।
১. Linear Algebra — সংখ্যার ঘর
Scalar, Vector, Matrix, Tensor
একটি সংখ্যা — যেমন 5 — হলো Scalar। কয়েকটি সংখ্যা একসাথে — [3, 1, 4] — হলো Vector। একটি টেবিলের মতো সংখ্যা — হলো Matrix। আর তিন বা তার বেশি মাত্রায় সংখ্যার সাজানো রূপ — হলো Tensor (PyTorch/TensorFlow নাম এখানেই)।
import numpy as np
scalar = 5
vector = np.array([1, 2, 3]) # shape: (3,)
matrix = np.array([[1, 2], [3, 4]]) # shape: (2, 2)
tensor = np.random.rand(3, 4, 5) # shape: (3, 4, 5) — যেমন RGB ছবিVector Dot Product — নিউরনের মূল কাজ
একটি নিউরন আসলে কী করে? প্রতিটি input-কে তার weight দিয়ে গুণ করে, সব যোগ করে, একটি সংখ্যা বের করে। এটাই dot product।
x = np.array([2, 3, 4]) # input
w = np.array([0.5, 0.2, 0.1]) # weights
b = 1.0 # bias
output = np.dot(w, x) + b # 1 + 1.6 + 0.6 + 0.4 = 2.6Matrix Multiplication — পুরো layer-এর কাজ
একসাথে ১০০টি নিউরন কাজ করলে সেটা matrix multiplication। DL-এর প্রতিটা layer-এ এটাই হয়।
X = np.random.rand(32, 784) # 32টি ছবি, প্রতিটায় 784 pixel
W = np.random.rand(784, 128) # 128 নিউরনের weight matrix
b = np.random.rand(128)
output = X @ W + b # shape: (32, 128)২. Calculus — শেখার চাবি
Derivative কী?
Derivative হলো — কোনো একটি পরিবর্তনের সাথে আরেকটি কত দ্রুত পরিবর্তন হয়। যেমন গাড়ির speed হলো দূরত্বের derivative সময়ের সাপেক্ষে।
DL-এ derivative-ই বলে দেয় — "weight একটু বাড়ালে loss বাড়বে না কমবে?" এটার ভিত্তিতেই মডেল নিজেকে ঠিক করে।
Partial Derivative
যখন একটি function-এর একাধিক variable থাকে, প্রতিটির আলাদা derivative বের করতে হয়। DL-এ লক্ষ লক্ষ weight থাকে — প্রতিটির জন্য partial derivative লাগে।
Chain Rule — Backpropagation-এর প্রাণ
Chain rule বলে — যদি y নির্ভর করে u-এর উপর, আর u নির্ভর করে x-এর উপর, তাহলে y-এর derivative বের করতে দুটোকে গুণ করতে হবে।
৩. Probability — অনিশ্চয়তা পরিমাপ
Image classifier যখন বলে — "এটা ৯২% সম্ভাবনায় বিড়াল", সেটা probability। DL-এ output প্রায়ই একটি probability distribution।
Softmax — multi-class output
Softmax কয়েকটি সংখ্যাকে এমন সংখ্যায় বদলে দেয় যেগুলো ০ থেকে ১-এর মধ্যে এবং সব মিলিয়ে যোগফল ১।
def softmax(z):
exp_z = np.exp(z - np.max(z)) # stability
return exp_z / exp_z.sum()
print(softmax(np.array([2.0, 1.0, 0.1])))
# [0.659, 0.242, 0.099]Cross-Entropy Loss
Classification-এ এটাই সবচেয়ে ব্যবহৃত loss function। যত predicted probability সঠিক class থেকে দূরে, তত loss বেশি।
৪. Optimization — Loss কমানোর গণিত
কল্পনা করুন আপনি একটি পাহাড়ের চূড়ায় দাঁড়িয়ে — চোখ বন্ধ। আপনি জানেন না নিচে কোথায় উপত্যকা। প্রতিটি পদক্ষেপে আপনি অনুভব করেন — কোন দিকে নামলে দ্রুত নিচে যাওয়া যাবে। এটাই Gradient Descent।
এখানে α হলো learning rate — প্রতি পদক্ষেপ কতটা বড় হবে।
# একটি ছোট্ট উদাহরণ: f(w) = (w - 3)² কে minimize করা
w = 0.0
lr = 0.1
for step in range(50):
grad = 2 * (w - 3)
w = w - lr * grad
print(w) # প্রায় 3.0 — সঠিক উত্তরসাধারণ ভুল ধারণা
- "DL শিখতে PhD লেভেলের গণিত লাগে" — না, এই অধ্যায়ের intuition-ই যথেষ্ট।
- "Derivative মানেই জটিল" — না, এটা শুধু "পরিবর্তনের হার"।
- "Matrix multiplication মুখস্থ করতে হবে" — না, NumPy আপনার হয়ে করবে।
- "Gradient Descent সবসময় optimal solution খুঁজে দেয়" — না, local minima-তে আটকে যেতে পারে।
অনুশীলন
১. কাগজে হাতে: f(x) = 3x² + 2x + 5 এর derivative বের করুন।
২. NumPy দিয়ে দুটি 4×4 random matrix বানিয়ে তাদের গুণফল বের করুন।
৩. softmax([1, 2, 3, 4]) হাতে calculate করে NumPy answer-এর সাথে মিলান।
৪. উপরের Gradient Descent কোডে lr পরিবর্তন করুন (0.01, 0.5, 1.5) — কী হয় observe করুন।
মিনি প্রজেক্ট
f(w₁, w₂) = (w₁ - 2)² + (w₂ + 1)² minimize করুন। শুরু করুন w₁=0, w₂=0 থেকে, learning rate 0.1, 100 steps চালান। আশা করছি শেষে w₁ ≈ 2, w₂ ≈ -1।ইন্টারভিউ প্রশ্ন
- Vector ও Matrix-এর মধ্যে পার্থক্য কী?
- Chain rule কেন backpropagation-এ গুরুত্বপূর্ণ?
- Softmax কী এবং কোথায় ব্যবহৃত হয়?
- Learning rate বেশি হলে কী সমস্যা হয়?
- Gradient কী এবং এটা কী নির্দেশ করে?
সারসংক্ষেপ
- Scalar, Vector, Matrix, Tensor — DL-এর building block।
- Dot product = নিউরনের কাজ; Matrix multiplication = layer-এর কাজ।
- Derivative = পরিবর্তনের হার; Chain rule = backpropagation-এর ভিত্তি।
- Softmax + Cross-Entropy = classification-এর জুড়ি।
- Gradient Descent = loss কমানোর algorithm।
- পরের অধ্যায়ে শিখব — ডেটা কীভাবে preprocess করতে হয়।