Mathematics for AI/Vectors/Lesson 06
Vector যোগ ও scale
Vector যোগ, বিয়োগ আর একটা সংখ্যা দিয়ে গুণ, তালিকা আর তীর দুই দিক থেকেই। Linear combination, গড় vector (centroid), আর pass করা বনাম fail করা ছাত্রের পার্থক্যের দিক।
- সময়
- 20 মিনিট
- Exercise
- 1
- Challenge
- 1
- Quiz
- 3 প্রশ্ন
সহজ ভাষায়
Vector-এর অঙ্ক তিনটা মূল কাজ দিয়ে তৈরি, আর তিনটাই component ধরে ধরে (element-wise) হয়:
তীর হিসেবে দেখলে:
- যোগ: প্রথম তীরের মাথা থেকে দ্বিতীয়টা শুরু করো (tip-to-tail)
- বিয়োগ: হলো -এর মাথা থেকে -এর মাথা পর্যন্ত তীর, অর্থাৎ "b থেকে a-তে যেতে কোন দিকে কতটা"
- Scale: একই দিকে লম্বা বা ছোট (ঋণাত্মক হলে উল্টো দিকে)
কেন দরকার?
এই তিনটা সহজ কাজ ML-এর সব জায়গায় আছে:
- Gradient descent: । Weight vector থেকে gradient vector-এর একটা scale করা রূপ বিয়োগ।
- গড় (centroid): একদল vector যোগ করে সংখ্যা দিয়ে ভাগ
- পার্থক্য: দুটো জিনিস কোন দিকে আলাদা, তা বের করতে বিয়োগ
- Embedding-এর অঙ্ক: (Generative AI path)
NumPy-তে: loop ছাড়া
NumPy array-এ +, -, * স্বয়ংক্রিয়ভাবে element-wise হয়:
⚠️ সাধারণ Python list-এ + মানে জোড়া লাগানো, যোগ না: [1, 2] + [3, 4] হয় [1, 2, 3, 4]। Vector-এর অঙ্কের জন্য NumPy array লাগবে।
Linear combination
কয়েকটা vector-কে scale করে যোগ করাকে বলে linear combination:
একটা উদাহরণ: final grade হলো তিনটা পরীক্ষার weighted যোগফল।
গড় vector: centroid
একদল vector-এর গড় বের করতে প্রতিটা component আলাদাভাবে গড় করো:
এটা ওই দলের "কেন্দ্র", অর্থাৎ একটা প্রতিনিধি বিন্দু। Challenge-এ pass আর fail করা ছাত্রদের centroid বের করবে, আর দেখবে তাদের মধ্যে পার্থক্যের দিক কোনটা।
Exercise
Exercise
Vector-এর অঙ্ক
দুই সপ্তাহে একজন ছাত্রের পড়ার ঘণ্টা, তিনটা বিষয়ে [math, science, english]:
week1 = [4, 2, 3], week2 = [5, 1, 4]
NumPy দিয়ে, loop ছাড়া:
- total — দুই সপ্তাহ মিলিয়ে প্রতি বিষয়ে মোট ঘণ্টা
- change — দ্বিতীয় সপ্তাহে প্রতি বিষয়ে কতটা বেড়েছে বা কমেছে (week2 − week1)
- plan — পরের সপ্তাহের লক্ষ্য: week2-এর 1.5 গুণ
Quiz
Challenge
Challenge
Pass আর fail-এর centroid
একদল vector-এর গড়কে বলে centroid: প্রতিটা component আলাদাভাবে গড় করা।
students_clean.csv থেকে features = ["study_hours", "attendance"]।
centroid(X)লেখো — 2D NumPy array (row = data point) নিয়ে গড় vector দেবে, loop ছাড়াc_pass— যারা pass করেছে (passed == True) তাদের centroidc_fail— যারা fail করেছে তাদের centroiddirection—c_pass − c_fail: fail থেকে pass-এর দিকে গেলে গড়ে কী বদলায়
বাস্তবে কোথায় ব্যবহার হয়?
Centroid দিয়েই চলে K-means clustering, সবচেয়ে জনপ্রিয় unsupervised algorithm-গুলোর একটা: data-কে টা দলে ভাগ করো, প্রতিটা দলের centroid বের করো, প্রতিটা বিন্দুকে সবচেয়ে কাছের centroid-এর দলে দাও, আবার centroid বের করো, এভাবে চলতে থাকে।
দুটো centroid আলাদা জায়গায়, কিন্তু দুই দলের বিন্দুগুলো অনেকটাই মিশে আছে। শুধু এই দুটো feature দিয়ে pass/fail পুরোপুরি আলাদা করা যাবে না। Module-এর শেষ lesson-এ এই centroid দিয়েই একটা classifier বানাবে।
Interview প্রশ্ন
- Beginner: দুটো vector কীভাবে যোগ করে? Scalar গুণ কী?
- Intermediate: Linear combination কী? Gradient descent-এর update rule-কে vector-এর অঙ্ক হিসেবে লেখো।
- Advanced: K-means-এ centroid কেন গড় দিয়ে বের করা হয়? (গড় হলো সেই বিন্দু যেটা দলের সব বিন্দুর সাথে squared দূরত্বের যোগফল সবচেয়ে কম করে।)
এরপর কী?
যোগ আর scale হলো। কিন্তু দুটো vector "কতটা একই দিকে", অথবা model কীভাবে feature আর weight মিলিয়ে prediction দেয়? দুটো প্রশ্নের উত্তর একটাই অঙ্ক। পরের lesson: Dot product ও similarity।