Scalar, Vector, Matrix: data আসলে সংখ্যার টেবিল

matrix multiplication-এর intuition (Series 04, Episode 02)

🟢 BEGINNER Series 04 — Math, Statistics ও Probability Episode 02 / 07

📑 এই পর্বে যা যা আছে

📊 ১. গল্প: 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 উদাহরণমানে
Scalar0-D()একটা সংখ্যা: 12
Vector1-D(3,)৩টি সংখ্যার সারি: [12, 70, 180]
Matrix2-D(7, 3)৭ row × ৩ column-এর টেবিল
Tensor3-D+(100, 64, 64)একাধিক matrix একসাথে (যেমন ১০০টা ছবি)
Shape কেন এত গুরুত্বপূর্ণ: ML-এ সবচেয়ে বেশি error আসে shape না মেলায় — যেমন (100, 5) matrix-কে (3,) vector দিয়ে গুণ করতে চাইলে। তাই shape পড়তে পারা junior-দের একটা অপরিহার্য skill।

👷 ৬. Level 3 — ML-এ কোথায় কী বসে (tensor)

একজন AI Engineer বাস্তবে এই কাঠামোগুলো এভাবে দেখে:

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 বোঝার প্রস্তুতি।
© 2025 Sheikh Thanbir Alam. All Rights Reserved. thanbirtamim.github.io
এই লেখা মূল লেখকের সম্পত্তি — লিখিত অনুমতি ছাড়া কপি করে অন্য কোনো ওয়েবসাইট, ব্লগ, বই বা প্ল্যাটফর্মে প্রকাশ/বিতরণ করা কঠোরভাবে নিষিদ্ধ। Content may not be copied or republished without permission.