Mathematics for AI/Functions ও Graph/Lesson 04
Σ notation: সূত্র পড়তে শেখা
Σ আর Π চিহ্ন, index আর subscript, ML paper-এর সূত্র পড়া — আর যেকোনো সূত্রকে loop ছাড়া এক লাইনের NumPy code-এ অনুবাদ করা।
- সময়
- 22 মিনিট
- Exercise
- 1
- Challenge
- 1
- Quiz
- 3 প্রশ্ন
সহজ ভাষায়
Σ (গ্রিক অক্ষর sigma) মানে "সব যোগ করো":
পড়ো: " = 1 থেকে পর্যন্ত, প্রতিটা যোগ করো।"
- নিচে — কোথা থেকে শুরু
- উপরে — কোথায় শেষ
- ডানে — প্রতিটা ধাপে কী যোগ হবে
এটা আসলে একটা loop:
কেন দরকার?
ML-এর documentation, paper, এমনকি scikit-learn-এর help page — সূত্রে ভরা। Σ পড়তে না পারলে মনে হয় একটা অচেনা ভাষা। আসলে প্রতিটা সূত্র একটা ছোট program — আর এই lesson-এর পর তুমি সেগুলো সরাসরি NumPy code-এ লিখতে পারবে।
পরিচিত সূত্র, নতুন চোখে
তুমি এগুলো আগেই code-এ লিখেছো — এবার সূত্রে দেখো:
গড় (mean):
MSE:
Dot product (দুটো vector):
প্যাটার্নটা দেখো: Σ-এর ভেতরের অংশ পুরো array-এর ওপর হিসাব করো, তারপর .sum()। আর সামনে থাকলে .mean()।
সূত্র → code: অনুবাদের নিয়ম
| সূত্রে | মানে | NumPy |
|---|---|---|
| x-এর i-তম মান | x[i] (কিন্তু সাধারণত পুরো x একবারে) | |
| সব i-এর জন্য যোগ | .sum() | |
| গড় | .mean() | |
| সব i-এর জন্য গুণ | .prod() (কিন্তু log নিয়ে যোগ নিরাপদ!) | |
| সবচেয়ে বড় | .max() | |
| সবচেয়ে বড়টা কোন i-তে | .argmax() | |
| i-তম row, j-তম column | X[i, j] | |
| প্রতিটা row-এর যোগ | X.sum(axis=1) |
দুটো index: double sum
Data matrix -এ টা sample (row), টা feature (column):
ভেতরের Σ ( ধরে) মানে প্রতিটা row-এর ভেতরে যোগ — axis=1। NumPy module-এর axis এখানে এসে অর্থবহ হলো।
একটা real সূত্র পড়া: softmax
Classification network-এর শেষ ধাপ:
ধাপে ধাপে পড়ো:
- — score-এর vector, টা class
- উপরে: -তম class-এর score-এর -ঘাত
- নিচে: সব class-এর -ঘাতের যোগফল
- তাই সব output যোগ করলে 1 — একটা probability distribution
চার লাইন সূত্র, দুই লাইন code।
Exercise
Exercise
সূত্র থেকে variance
Variance-এর সূত্র (পুরো population-এর):
σ² = (1/n) · Σ (xᵢ − μ)², যেখানে μ = (1/n) · Σ xᵢ
variance(x) function লেখো এই সূত্র হুবহু অনুসরণ করে — NumPy দিয়ে, loop ছাড়া, আর np.var ব্যবহার না করে। একটা float return করবে।
Quiz
Challenge
Challenge
R² score
Regression model কতটা ভালো — R² (coefficient of determination):
R² = 1 − Σ (yᵢ − ŷᵢ)² ÷ Σ (yᵢ − ȳ)²
- উপরের অংশ: model-এর ভুল
- নিচের অংশ: শুধু গড় বললে কত ভুল হতো
- R² = 1 মানে নিখুঁত; 0 মানে model গড়ের চেয়ে ভালো না; negative মানে গড়ের চেয়েও খারাপ!
r2_score(y, y_pred) লেখো — loop ছাড়া, float return করবে।
বাস্তবে কোথায় ব্যবহার হয়?
একটা সূত্রের তিনটা রূপ — loop, vectorized, library — একই উত্তর, কিন্তু গতি আলাদা:
Paper-এ সূত্রটা যেভাবে লেখা, NumPy-তে প্রায় সেভাবেই লেখা যায় — আর সেটাই সবচেয়ে দ্রুত। Research paper পড়ে নিজে implement করা AI engineer-এর একটা মূল্যবান skill।
Interview প্রশ্ন
- Beginner: কী বোঝায়? NumPy-তে কীভাবে লিখবে?
- Intermediate: R² কী মাপে? R² negative হওয়া কীভাবে সম্ভব?
- Advanced: Variance-এর সূত্রে কখনো , কখনো — পার্থক্য কী আর কখন কোনটা? (Population বনাম sample — Bessel's correction। NumPy-তে
ddof।)
এরপর কী?
🎉 Functions ও Graph module শেষ — function, line, exponent, log আর Σ। এখন তুমি ML-এর সূত্রের বর্ণমালা পড়তে পারো।
পরের module: Vectors — সংখ্যার একটা তালিকা আসলে দিক আর দূরত্ব। "দুটো শব্দ বা দুটো document কতটা একই রকম?" — embedding আর RAG-এর একদম ভিত্তি।