Python for AI/NumPy/Lesson 40
Linear Algebra Basics
Dot product, matrix গুণ (@), shape-এর নিয়ম, transpose — আর এগুলো দিয়ে একটা neural network layer আর linear regression নিজে হাতে বানানো।
- সময়
- 26 মিনিট
- Exercise
- 1
- Challenge
- 1
- Quiz
- 3 প্রশ্ন
সহজ ভাষায়
Linear algebra ভয়ের কিছু না — এর মূলে মাত্র একটা ধারণা: dot product — দুটো vector-এর জোড়া জোড়া গুণ করে যোগ।
৩ ধরনের কাজ, ঘণ্টা আর ঘণ্টাপ্রতি টাকা — মোট আয় = dot product।
কেন দরকার?
একটা linear model-এর prediction আসলে একটা dot product:
দাম = 40 × আয়তন + 5 × রুম − 0.5 × বয়স + 10
= [আয়তন, রুম, বয়স] · [40, 5, −0.5] + 10
= x · w + b
আর ১০০০টা বাড়ির জন্য একসাথে? Matrix গুণ: X @ w + b। Neural network-এর প্রতিটা layer ঠিক এটাই — শুধু w একটা vector-এর বদলে একটা matrix। GPU যে কারণে AI-এর জন্য এত গুরুত্বপূর্ণ: GPU বিশাল matrix গুণ অসম্ভব দ্রুত করে।
Matrix × vector
প্রতিটা row-এর সাথে w-এর dot product — প্রতিটা বাড়ির জন্য একটা prediction।
Matrix × matrix আর shape-এর নিয়ম
(m, n) @ (n, p) -> (m, p)
^------^
ভেতরের দুটো সমান হতে হবে
ফলাফলের প্রতিটা ঘর = A-এর একটা row আর B-এর একটা column-এর dot product।
Shape না মিললে:
Error message: matmul: Input operand 1 has a mismatch in its core dimension 0। প্রায়ই সমাধান transpose (.T):
*element-wise,@matrix গুণ — গুলিয়ে ফেলা খুব common bug, আর shape মিলে গেলে কোনো error-ও দেয় না।
Math intuition: একটা neural network layer
batch @ W + b, তারপর ReLU
(4, 3) @ (3, 5) + (5,) -> (4, 5)
৪টা sample, ৩টা input feature -> ৪টা sample, ৫টা hidden feature
এটাই PyTorch-এর nn.Linear(3, 5) + nn.ReLU()। "Deep" learning মানে এরকম অনেকগুলো layer পরপর।
Identity, inverse, solve
দুই অজানার দুটো সমীকরণ (2x + y = 5, x + 3y = 10) — এক লাইনে সমাধান। np.linalg.inv(A) @ b-ও কাজ করে, কিন্তু solve দ্রুত আর numerically বেশি নির্ভরযোগ্য।
Exercise
Exercise
Linear model-এর prediction
একটা trained linear model-এর weight w আর bias b দেওয়া আছে। X-এ ৪টা বাড়ির ৩টা করে feature (আয়তন হাজার sqft-এ, রুম সংখ্যা, বয়স)।
প্রতিটা বাড়ির predicted দাম: ŷ = X · w + b
y_pred হিসাব করো — matrix গুণ (@) দিয়ে, loop ছাড়া।
Quiz
Challenge
Challenge
Linear regression নিজে বানাও
fit_linear(X, y) function লেখো যেটা data থেকে সবচেয়ে ভালো w আর b খুঁজে বের করে (least squares) — (w, b) return করবে।
কৌশল: X-এর ডানে একটা 1-এর column যোগ করো — তাহলে bias-টাও একটা সাধারণ weight হয়ে যায়। তারপর np.linalg.lstsq দিয়ে সমাধান।
w একটা 1D array (প্রতিটা feature-এর জন্য একটা), b একটা float।
বাস্তবে কোথায় ব্যবহার হয়?
Cosine similarity — দুটো text কতটা একই রকম, embedding-এর যুগে সবচেয়ে গুরুত্বপূর্ণ হিসাবগুলোর একটা। RAG system আর semantic search ঠিক এভাবেই প্রশ্নের সাথে সবচেয়ে মিল থাকা document খোঁজে:
এক matrix গুণে সব document-এর সাথে তুলনা। Real system-এ embedding আসে model থেকে (৭৬৮ বা ১৫৩৬ dimension), document থাকে লাখ লাখ — কিন্তু হিসাবটা হুবহু এই।
Interview প্রশ্ন
- Beginner: Dot product কী?
*আর@-এর পার্থক্য কী? - Intermediate:
(64, 100) @ (100, 10)-এর shape কী? এটা neural network-এর কোন অংশ? - Advanced: Linear regression-এর normal equation
w = (XᵀX)⁻¹Xᵀy— বড় dataset-এ কেন সরাসরি inverse না করে gradient descent বাlstsqব্যবহার করা হয়?
এরপর কী?
অভিনন্দন! 🎉 NumPy module শেষ। তুমি এখন array বানাতে, কাটতে, vectorized হিসাব করতে, broadcasting বুঝতে, আর matrix গুণ দিয়ে neural network layer ও linear regression বানাতে পারো — ML-এর গাণিতিক ভিত্তি তৈরি।
পরের module: Pandas — NumPy-র ওপর তৈরি, real-world tabular data (CSV, Excel) load, clean আর analyze করার সবচেয়ে জনপ্রিয় library।