Home »
Blog »
AI/ML Engineer সিরিজ » Series 04 » Episode 02
Scalar, Vector, Matrix: data আসলে সংখ্যার টেবিল
matrix multiplication-এর intuition (Series 04, Episode 02)
🟢 BEGINNER
Series 04 — Math, Statistics ও Probability
Episode 02 / 07
📑 এই পর্বে যা যা আছে
- ১. গল্প: Excel sheet থেকে ML data
- ২. আসল সমস্যা: computer সংখ্যা ছাড়া কিছু বোঝে না
- ৩. কেন data সংখ্যার টেবিল হতে হয়
- ৪. Level 1 — scalar, vector, matrix (দোকানের হিসাব)
- ৫. Level 2 — technical সংজ্ঞা ও shape
- ৬. Level 3 — ML-এ কোথায় কী বসে (tensor)
- ৭. Visual: data-র মাত্রা (dimension)
- ৮. Matrix Multiplication-এর intuition
- ৯. Code: NumPy দিয়ে vector ও matrix
- ১০. Dot product ও cosine similarity — কেন গুরুত্বপূর্ণ
- ১১. বাংলাদেশের context
- ১২. Boss Question
- ১৩. Job Requirement Decoder
- ১৪. সাধারণ ভুল ধারণা
- ১৫. Interview Prep
- ১৬. হাতে-কলমে (Mini Exercise)
- ১৭. Project Connection
- ১৮. সারসংক্ষেপ ও পরবর্তী পর্ব
📊 ১. গল্প: Excel sheet থেকে ML data
Rahim একটা customer-এর Excel sheet খুলে বসল। প্রতিটা row একজন customer, প্রতিটা column একটা তথ্য —
বয়স, মাসিক খরচ, কত মাস ধরে গ্রাহক। সে Nila-কে জিজ্ঞেস করল — "এই sheet-টা ML model-এ ঢোকাব
কীভাবে? Model তো Excel বোঝে না।"
Nila বলল: "তুমি না জেনেই ঠিক জায়গায় পৌঁছে গেছ! এই Excel sheet-টা আসলে একটা matrix।
প্রতিটা row একটা vector (একজন customer-এর সব সংখ্যা)। প্রতিটা ঘরের একটা মান একটা
scalar। ML যা কিছু করে, সব এই তিনটা জিনিস নিয়ে। ভয়ের কিছু নেই — তুমি Excel
চালাতে পারলে Linear Algebra-র intuition তোমার আছেই।"
Series 04-এর প্রথম স্তম্ভ — Linear Algebra। কিন্তু আমরা theorem-এ যাব না; আমরা বুঝব ML-এ data
কীভাবে সংখ্যায় সাজানো থাকে, আর সেটাই যথেষ্ট।
🎯 ২. আসল সমস্যা: computer সংখ্যা ছাড়া কিছু বোঝে না
একটা কঠিন সত্য: model "বয়স ২৫" বা "নাম রহিম" — এসব শব্দ/ধারণা বোঝে না। এটা শুধু সংখ্যা নিয়ে
গুণ-যোগ করতে পারে। তাই আমাদের যেকোনো data — সে ছবি হোক, text হোক, customer record হোক — সবকিছু
সংখ্যায় রূপান্তর করতে হয়। আর সেই সংখ্যাগুলো সাজানো হয় নির্দিষ্ট কাঠামোয়: scalar → vector → matrix।
মূল কথা: ML = সংখ্যার টেবিল নিয়ে দ্রুত গণিত। আপনার data যতই complex হোক,
model-এ ঢোকার আগে সেটা সংখ্যার এক বা একাধিক মাত্রার টেবিল হয়ে যায়।
💡 ৩. কেন data সংখ্যার টেবিল হতে হয়
দুটো কারণ। প্রথমত, গণিত (গুণ, যোগ) শুধু সংখ্যায় সম্ভব। দ্বিতীয়ত — এবং এটাই বড় কারণ —
সংখ্যাকে টেবিল (matrix) আকারে সাজালে computer একসাথে লক্ষ লক্ষ হিসাব সমান্তরালে
করতে পারে। এটাকে বলে vectorization, যেটা Series 03-এর NumPy পর্বে আমরা দেখেছি। GPU-ও ঠিক এই
কারণেই ML-এ এত দ্রুত — এটা matrix-এর হিসাব একসাথে করতে বিশেষভাবে তৈরি।
🛒 ৪. Level 1 — scalar, vector, matrix (দোকানের হিসাব)
একটা মুদি দোকানের কথা ভাবুন:
Scalar = একটা মাত্র সংখ্যা। যেমন একটা ডিমের দাম = ১২ টাকা। শুধু একটা মান।
Vector = সংখ্যার একটা সারি। যেমন আপনার আজকের কেনাকাটা: [ডিম ১২, চাল ৭০, তেল ১৮০]।
একজন "জিনিসের list", সব সংখ্যায়।
Matrix = সংখ্যার একটা টেবিল (সারি × কলাম)। যেমন পুরো সপ্তাহের কেনাকাটা — প্রতিটা
row একদিন, প্রতিটা column একটা পণ্য। একাধিক vector একসাথে সাজানো।
ব্যাস — এটাই মূল ধারণা। ML-এ একজন customer হলো একটা vector, আর হাজার customer একসাথে হলো একটা matrix।
⚙️ ৫. Level 2 — technical সংজ্ঞা ও shape
প্রতিটার একটা technical পরিচয় ও "shape" (আকার) আছে, যেটা ML-এ প্রতিদিন কাজে লাগে:
| নাম | মাত্রা (dimension) | Shape উদাহরণ | মানে |
| Scalar | 0-D | () | একটা সংখ্যা: 12 |
| Vector | 1-D | (3,) | ৩টি সংখ্যার সারি: [12, 70, 180] |
| Matrix | 2-D | (7, 3) | ৭ row × ৩ column-এর টেবিল |
| Tensor | 3-D+ | (100, 64, 64) | একাধিক matrix একসাথে (যেমন ১০০টা ছবি) |
Shape কেন এত গুরুত্বপূর্ণ: ML-এ সবচেয়ে বেশি error আসে shape না মেলায় — যেমন
(100, 5) matrix-কে (3,) vector দিয়ে গুণ করতে চাইলে। তাই shape পড়তে
পারা junior-দের একটা অপরিহার্য skill।
👷 ৬. Level 3 — ML-এ কোথায় কী বসে (tensor)
একজন AI Engineer বাস্তবে এই কাঠামোগুলো এভাবে দেখে:
- একজন customer / একটা row = vector (তার সব feature সংখ্যায়)।
- পুরো dataset = matrix, shape
(n_samples, n_features)।
- একটা grayscale ছবি = matrix (pixel-এর brightness); rows × columns।
- একটা color ছবি = 3-D tensor (height × width × 3 রঙের channel)।
- একটা শব্দের embedding = vector (Series 07/08-এ দেখব)।
PyTorch, TensorFlow — সব framework-এই মূল data structure-এর নাম "tensor", কারণ এটা scalar, vector,
matrix সবকিছুর সাধারণ রূপ (n-মাত্রার সংখ্যার টেবিল)। এই একটা শব্দ বুঝলে Series 06-এর PyTorch অনেক সহজ হবে।
📐 ৭. Visual: data-র মাত্রা (dimension)
Scalar (0-D) Vector (1-D) Matrix (2-D)
[ 25 5000 6 ]
12 [ 25 5000 6 ] [ 30 8000 12 ]
[ 22 3000 2 ]
একটা সংখ্যা একজন customer তিনজন customer
(age, spend, months) (rows = customer)
Tensor (3-D) — যেমন একগুচ্ছ ছবি
ছবি-১: [matrix] ছবি-২: [matrix] ছবি-৩: [matrix]
shape = (3, 64, 64) → ৩টা ছবি, প্রতিটা 64x64 pixel
✖️ ৮. Matrix Multiplication-এর intuition
Matrix multiplication ML-এর হৃদয়। কিন্তু হাতে গুণ করা শেখার দরকার নেই — শুধু intuition বুঝুন:
এটা আসলে একগুচ্ছ dot product একসাথে।
একটা neural network layer যা করে: প্রতিটা input vector-কে weight matrix দিয়ে গুণ করে একটা নতুন
vector বানায়। মানে — "প্রতিটা feature-কে কতটা গুরুত্ব দেব" সেই weighted যোগফল। একটা customer-এর
[age, spend, months] থেকে একটা "score" বানাতে হলে প্রতিটাকে একটা weight দিয়ে গুণ করে যোগ করি —
এটাই dot product। হাজার customer-এর জন্য একসাথে করলে সেটা matrix multiplication।
মূল নিয়ম (শুধু intuition): (m × n) matrix গুণ করা যায় শুধু
(n × p) matrix দিয়ে — ভেতরের সংখ্যা (n) মিলতে হবে, ফল হয় (m × p)।
junior-দের এটুকু জানলেই shape error debug করা যায়।
💻 ৯. Code: NumPy দিয়ে vector ও matrix
আমরা NumPy ব্যবহার করছি কারণ এটাই Python-এ সংখ্যার টেবিল নিয়ে কাজের standard library, আর
Pandas/scikit-learn/PyTorch সবকিছু এর উপর দাঁড়িয়ে।
import numpy as np
scalar = np.array(12) # 0-D
vector = np.array([25, 5000, 6]) # 1-D: এক customer
matrix = np.array([[25, 5000, 6], # 2-D: তিন customer
[30, 8000, 12],
[22, 3000, 2]])
print("scalar shape:", scalar.shape) # ()
print("vector shape:", vector.shape) # (3,)
print("matrix shape:", matrix.shape) # (3, 3)
# matrix multiplication: প্রতি customer-এর weighted score
weights = np.array([0.5, 0.001, 2.0]) # প্রতি feature-এর গুরুত্ব
scores = matrix @ weights # @ = matrix multiply
print("scores:", scores) # প্রতি customer-এর এক সংখ্যা
কী observe করবেন: matrix @ weights শুধু এক লাইনে তিন customer-এর
হিসাব একসাথে করল — কোনো for loop লাগেনি। এটাই vectorization-এর শক্তি, আর ভেতরে
চলছে Linear Algebra।
🧭 ১০. Dot product ও cosine similarity — কেন গুরুত্বপূর্ণ
দুটো vector কতটা "একই দিকে" তাকিয়ে আছে সেটা মাপে dot product ও তার থেকে derived cosine similarity।
এটা junior-দের জন্য অত্যন্ত গুরুত্বপূর্ণ, কারণ Series 08-এর embeddings ও vector search-এর পুরোটা
এর উপর দাঁড়িয়ে — দুটো text/document কতটা কাছাকাছি অর্থবহ, সেটা তাদের vector-এর cosine similarity দিয়ে মাপা হয়।
import numpy as np
a = np.array([1, 2, 3])
b = np.array([2, 4, 6]) # a-এর দ্বিগুণ, একই দিক
cos = np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
print("cosine similarity:", round(float(cos), 4)) # 1.0 = একই দিক
cosine similarity 1-এর কাছে = খুব similar; 0 = সম্পর্কহীন; -1 = বিপরীত। "দুটো জিনিস কতটা কাছাকাছি"
— এই একটা ধারণাই recommendation, semantic search আর RAG-এর ভিত্তি।
🇧🇩 ১১. বাংলাদেশের context
Daraz-এ "আপনার জন্য পণ্য" সাজানো, বা কোনো startup-এ "similar CV খুঁজে বের করা" — এসবের ভেতরে
প্রতিটা item/CV একটা vector হয়ে যায়, আর "similar" মানে cosine similarity বেশি। fintech-এ একজন
customer-এর সব feature একটা vector, আর হাজার customer একটা matrix — যার উপর একসাথে fraud-score
হিসাব হয়। Linear Algebra ছাড়া এসব কল্পনাই করা যায় না।
💼 ১২. Boss Question
💼 Boss Question
Boss: "vector-matrix তো theory। আমার product-এ 'similar item recommend' করতে হবে — এটার সাথে
সম্পর্ক কী?"
উত্তর: সরাসরি সম্পর্ক। "similar item" মানে computer-এর কাছে — যে দুটো item-এর
vector cosine similarity বেশি। প্রতিটা product একটা সংখ্যার vector, আর "কাছাকাছি" মানে গাণিতিকভাবে
কাছাকাছি। এই একই কৌশলে আমরা "similar customer", "similar job description", "similar document" —
সব বের করতে পারি। মানে একটা concept থেকেই একাধিক business feature। এটাই কেন Linear Algebra-র
intuition দামি।
🔎 ১৩. Job Requirement Decoder
"Familiarity with linear algebra concepts (vectors, matrices) for machine learning."
| প্রশ্ন | উত্তর |
| এর মানে কী? | data কীভাবে vector/matrix হিসেবে সাজানো থাকে ও shape কীভাবে কাজ করে, সেটা বোঝেন। |
| কোম্পানি কেন চায়? | shape error debug, embedding/similarity ব্যবহার, model input ঠিক করা — এসবে লাগে। |
| কোন সমস্যা সমাধান করে? | "dimension mismatch" error, ভুল data shaping, similarity ভুল বোঝা। |
| junior-এর কী জানা লাগে? | scalar/vector/matrix/tensor, shape, dot product ও cosine similarity-র intuition। |
| এখনই কী master লাগে না? | eigenvalue/eigenvector proof, matrix decomposition, হাতে বড় matrix গুণ। |
| GitHub-এ কীভাবে দেখাবেন? | একটা notebook-এ NumPy দিয়ে vectorized হিসাব ও cosine-similarity based similar-item খোঁজা। |
| Interview-তে কী জিজ্ঞেস করতে পারে? | "ছবি কীভাবে সংখ্যা হয়?", "cosine similarity কী?", "(3,4) ও (4,2) matrix গুণ করলে shape কী?" |
⚠️ ১৪. সাধারণ ভুল ধারণা
ভুল ১: "Linear Algebra মানে হাতে matrix গুণ করা শেখা।" →
ঠিক: junior-দের intuition ও NumPy চালানো লাগে, হাতে গুণ না।
ভুল ২: "vector আর list একই।" →
ঠিক: ধারণায় কাছাকাছি, কিন্তু vector-এ গাণিতিক operation (dot, norm) সংজ্ঞায়িত; NumPy array এ কাজ দ্রুত।
ভুল ৩: "shape না মিললেও NumPy ঠিক করে দেবে।" →
ঠিক: broadcasting নির্দিষ্ট নিয়মে কাজ করে; নিয়ম না মানলে error দেয়।
ভুল ৪: "cosine similarity আর Euclidean distance একই।" →
ঠিক: cosine দিক মাপে (magnitude উপেক্ষা করে), distance দূরত্ব মাপে — ভিন্ন কাজে ভিন্নটা।
🎤 ১৫. Interview Prep
প্রশ্ন ১: ML-এ matrix কেন লাগে?
উত্তর: data-কে সংখ্যার টেবিল হিসেবে সাজিয়ে একসাথে (vectorized) হিসাব করা যায়, GPU-তে দ্রুত চলে।
প্রশ্ন ২: tensor আর matrix-এর পার্থক্য?
উত্তর: matrix 2-D; tensor হলো n-D সাধারণ রূপ (scalar/vector/matrix সবই tensor)।
প্রশ্ন ৩: cosine similarity কী মাপে?
উত্তর: দুটো vector একই দিকে কতটা তাকিয়ে; 1 = একই দিক, 0 = সম্পর্কহীন — semantic similarity-তে ব্যবহৃত।
প্রশ্ন ৪: shape (100, 5) মানে কী?
উত্তর: ১০০টি sample, প্রতিটির ৫টি feature — অর্থাৎ ১০০ row, ৫ column-এর matrix।
✍️ ১৬. হাতে-কলমে (Mini Exercise)
১. উপরের code চালিয়ে matrix-এ একটা চতুর্থ customer যোগ করুন; scores-এর
shape কী হলো ভাবুন।
২. তিনটা পণ্যকে vector বানান (দাম, ওজন, rating) এবং নিজে দুটো জোড়ার cosine similarity বের করে
বলুন কোন দুটো বেশি similar।
৩. এক লাইনে লিখুন: একটা color ছবি কেন 3-D tensor?
🚀 ১৭. Project Connection
আমাদের flagship "Bangladesh Tech Career Assistant"-এ ভবিষ্যতে (Series 08) আমরা
job description ও reader-এর skill-কে vector-এ রূপান্তর করব, তারপর cosine similarity দিয়ে "কোন
job আপনার সাথে সবচেয়ে মেলে" বের করব। আজকের vector/matrix/dot-product/cosine-এর intuition ঠিক
সেই feature-এর ভিত্তি — মানে আজকে যা শিখলেন, সেটাই পরে "job matching" হয়ে ফিরে আসবে।
📌 ১৮. সারসংক্ষেপ ও পরবর্তী পর্ব
এই পর্বে আমরা শিখলাম:
✓ scalar (একটা সংখ্যা), vector (সারি), matrix (টেবিল), tensor (n-D) — data-র মৌলিক কাঠামো
✓ ML-এ একজন sample = vector, পুরো dataset = matrix, shape (n_samples, n_features)
✓ matrix multiplication = একগুচ্ছ dot product একসাথে; intuition যথেষ্ট, হাতে গুণ নয়
✓ dot product ও cosine similarity দিয়ে "কতটা similar" মাপা — embeddings/RAG-এর ভিত্তি
✓ NumPy দিয়ে vectorized হিসাব — loop ছাড়াই দ্রুত
পরবর্তী Episode (S04E03): "Function, Derivative, Gradient: 'ঢাল' কী আর কেন model
শেখে এটা দিয়ে"। Linear Algebra-র পর দ্বিতীয় স্তম্ভ — Calculus — কিন্তু ভয় ছাড়া। দেখব "ঢাল" মানে কী
আর কীভাবে model সেই ঢাল ধরে ভুল কমায়, যা gradient descent বোঝার প্রস্তুতি।