মূল content-এ যাও

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-এর জোড়া জোড়া গুণ করে যোগ।

main.py

৩ ধরনের কাজ, ঘণ্টা আর ঘণ্টাপ্রতি টাকা — মোট আয় = 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

main.py

প্রতিটা row-এর সাথে w-এর dot product — প্রতিটা বাড়ির জন্য একটা prediction।

Matrix × matrix আর shape-এর নিয়ম

   (m, n)  @  (n, p)  ->  (m, p)
       ^------^
   ভেতরের দুটো সমান হতে হবে
main.py

ফলাফলের প্রতিটা ঘর = A-এর একটা row আর B-এর একটা column-এর dot product।

Shape না মিললে:

main.py

Error message: matmul: Input operand 1 has a mismatch in its core dimension 0। প্রায়ই সমাধান transpose (.T):

main.py

* element-wise, @ matrix গুণ — গুলিয়ে ফেলা খুব common bug, আর shape মিলে গেলে কোনো error-ও দেয় না।

Math intuition: একটা neural network layer

main.py
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

main.py

দুই অজানার দুটো সমীকরণ (2x + y = 5, x + 3y = 10) — এক লাইনে সমাধান। np.linalg.inv(A) @ b-ও কাজ করে, কিন্তু solve দ্রুত আর numerically বেশি নির্ভরযোগ্য।

Exercise

Exercise

Linear model-এর prediction

+20 XP

একটা trained linear model-এর weight w আর bias b দেওয়া আছে। X-এ ৪টা বাড়ির ৩টা করে feature (আয়তন হাজার sqft-এ, রুম সংখ্যা, বয়স)।

প্রতিটা বাড়ির predicted দাম: ŷ = X · w + b

y_pred হিসাব করো — matrix গুণ (@) দিয়ে, loop ছাড়া।

solution.py

Quiz

  1. Q1(32, 784) আর (784, 128) shape-এর দুটো matrix-এর @-এর ফলাফলের shape কী?
  2. Q2np.array([1, 2, 3]) @ np.array([4, 5, 6]) কত?
  3. Q3A shape (3, 5) — A.T-এর shape কী?
0/3 answered

Challenge

Challenge

Linear regression নিজে বানাও

+50 XP

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।

solution.py

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

Cosine similarity — দুটো text কতটা একই রকম, embedding-এর যুগে সবচেয়ে গুরুত্বপূর্ণ হিসাবগুলোর একটা। RAG system আর semantic search ঠিক এভাবেই প্রশ্নের সাথে সবচেয়ে মিল থাকা document খোঁজে:

main.py

এক 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।