Machine Learning/ML-এর ভিত্তি/Lesson 01
Machine Learning কী?
হাতে নিয়ম লেখা বনাম data থেকে নিয়ম শেখা — ML-এর মূল ধারণা, supervised আর unsupervised, কখন ML দরকার আর কখন না — আর নিজের হাতে প্রথম "learning algorithm" লেখা।
- সময়
- 24 মিনিট
- Exercise
- 1
- Challenge
- 1
- Quiz
- 3 প্রশ্ন
সহজ ভাষায়
এতদিন program লেখা মানে ছিল নিয়ম লেখা:
Traditional programming: নিয়ম + data ──► উত্তর
(if marks >= 40: "pass")
কিন্তু কিছু সমস্যার নিয়ম লেখা প্রায় অসম্ভব। একটা ছবিতে বিড়াল আছে কিনা — কোন pixel কী রঙের হলে বিড়াল? একটা email spam কিনা — কোন শব্দ কতবার এলে spam? এখানে Machine Learning উল্টো পথে চলে:
Machine Learning: data + উত্তর ──► নিয়ম (model)
(হাজারটা email, প্রতিটা spam কিনা চিহ্নিত)
তুমি উদাহরণ দাও, computer নিয়ম খুঁজে বের করে। সেই খুঁজে পাওয়া নিয়মকে বলে model। তারপর নতুন data-য় model প্রয়োগ করো — একে বলে prediction।
কেন দরকার?
বাংলাদেশেই চারপাশে ML:
- bKash/Nagad — কোন লেনদেন সন্দেহজনক (fraud detection)
- Daraz, Chaldal — "তোমার পছন্দ হতে পারে" (recommendation)
- কৃষি app — পাতার ছবি দেখে ধানের রোগ চেনা (image classification)
- Pathao, Uber — কত সময় লাগবে, ভাড়া কত (regression)
- Google Translate, ChatGPT, Claude — ভাষা বোঝা আর লেখা
ML-এর তিন ধরন
| ধরন | Data | উদাহরণ |
|---|---|---|
| Supervised | input + সঠিক উত্তর (label) | spam চেনা, দাম predict |
| Unsupervised | শুধু input, কোনো উত্তর নেই | customer-দের দলে ভাগ করা |
| Reinforcement | চেষ্টা আর পুরস্কার | game খেলা, robot চালানো |
এই path-এর বেশিরভাগ supervised learning, যার দুটো রূপ:
- Regression — উত্তর একটা সংখ্যা: দাম, তাপমাত্রা, নম্বর
- Classification — উত্তর একটা category: spam/না, pass/fail, বিড়াল/কুকুর
Learning আসলে কী? নিজের হাতে দেখো
Python path-এর project-এর student data মনে আছে? চলো একটা প্রশ্ন করি: পড়ার সময় দেখে pass/fail বলা যায়?
হাতে একটা নিয়ম অনুমান করি — "৮ ঘণ্টা বা বেশি হলে pass":
কয়েকটা threshold চেষ্টা করলাম, প্রতিটার accuracy দেখলাম। এখন কল্পনা করো — computer নিজেই সব সম্ভাব্য threshold চেষ্টা করে সেরাটা বেছে নিচ্ছে। সেটাই learning:
1. একটা model-এর আকার ঠিক করো (hours >= t)
2. একটা মাপকাঠি ঠিক করো (accuracy)
3. data দেখে সেরা parameter খোঁজো (সেরা t)
Challenge-এ ঠিক এই algorithm-টাই লিখবে। এর একটা নামও আছে — decision stump, decision tree-র সবচেয়ে ছোট রূপ।
Linear regression, neural network, এমনকি GPT — সবগুলো এই তিন ধাপই করে। পার্থক্য শুধু model-এর আকারে (একটা threshold বনাম কোটি কোটি weight) আর সেরা parameter খোঁজার কৌশলে (সব চেষ্টা করা বনাম gradient descent)।
কখন ML দরকার নেই
ML শক্তিশালী, কিন্তু সবসময় সঠিক উত্তর না:
- নিয়ম জানা ও সহজ → সরাসরি code লেখো (VAT, বয়স যাচাই)
- Data নেই বা খুব কম → model শেখার কিছু পাবে না
- ভুলের মূল্য অনেক বেশি আর ব্যাখ্যা লাগবে → সাবধানে, অনেক যাচাই করে
- একটা সাধারণ নিয়মই যথেষ্ট ভালো → জটিল model-এর দরকার নেই
ভালো ML engineer-এর প্রথম প্রশ্ন: "এখানে কি আসলেই ML লাগবে?"
Exercise
Exercise
হাতে লেখা নিয়ম
Python path-এর project-এর পরিষ্কার dataset students_clean.csv load করো। একটা হাতে লেখা নিয়ম দিয়ে pass/fail predict করো:
"সপ্তাহে ৮ ঘণ্টা বা বেশি পড়লে pass"
predictions— প্রতিটা student-এর জন্য True/False (Series বা array)accuracy— কত ভাগ prediction আসলpassed-এর সাথে মিলেছে, 3 ঘর দশমিকে round
Quiz
Challenge
Challenge
তোমার প্রথম learning algorithm
"৮ ঘণ্টা" আমি অনুমানে বলেছি। এবার computer-কে data থেকে নিজে শিখতে দাও।
learn_threshold(hours, passed) function লেখো:
hours-এ যত আলাদা মান আছে, প্রতিটাকে threshold হিসেবে চেষ্টা করো ("hours >= t হলে pass")- প্রতিটার accuracy মাপো
- সবচেয়ে বেশি accuracy-র threshold আর accuracy return করো:
(best_t, best_acc), দুটোইfloat - সমান accuracy হলে ছোট threshold-টা নাও
বাস্তবে কোথায় ব্যবহার হয়?
তুমি যে threshold শিখলে, scikit-learn-এর DecisionTreeClassifier(max_depth=1) ঠিক এটাই করে — শুধু সব feature জুড়ে খোঁজে:
Model নিজেই বেছে নিয়েছে কোন feature আর কোন threshold সবচেয়ে কার্যকর। এই path-এর বাকিটা জুড়ে দেখবো — আরও শক্তিশালী model, আর (খুব গুরুত্বপূর্ণ) কীভাবে নিশ্চিত হবে যে model নতুন student-দের ক্ষেত্রেও ঠিক কাজ করবে, শুধু চেনা data-য় না।
Interview প্রশ্ন
- Beginner: Machine Learning কী? Supervised আর unsupervised-এর পার্থক্য কী?
- Intermediate: Regression আর classification-এর পার্থক্য উদাহরণ দিয়ে বলো। কোন সমস্যায় ML ব্যবহার করবে না?
- Advanced: Challenge-এ সব data দিয়ে threshold শিখে সেই data-তেই accuracy মাপলে — এই accuracy নতুন student-দের ক্ষেত্রে কেন বেশি আশাবাদী হতে পারে?
এরপর কী?
একটা model বানানো ML project-এর ছোট একটা অংশ। Problem ঠিক করা থেকে deploy পর্যন্ত পুরো পথটা কেমন? পরের lesson: ML workflow: Problem থেকে Deployment।