ML কী — Supervised, Unsupervised, RL
এই পাঠে যা শিখবেন
- মেশিন লার্নিং বনাম ঐতিহ্যবাহী প্রোগ্রামিং — মৌলিক পার্থক্য
- Supervised, Unsupervised, Reinforcement — তিন ধরনের ভেতরের কাজ
- প্রতিটি ধরনের বাস্তব উদাহরণ — বাংলাদেশের প্রসঙ্গে
- scikit-learn দিয়ে প্রথম supervised মডেল চালানো
১ · ঐতিহ্যবাহী প্রোগ্রামিং বনাম ML
ঐতিহ্যবাহী প্রোগ্রামিং-এ আপনি নিয়ম লিখে দেন — কম্পিউটার সেই নিয়ম মেনে আউটপুট দেয়। যেমন — "যদি ইমেইলে 'lottery' শব্দ থাকে, তাহলে spam।" কিন্তু বাস্তব জগতে নিয়ম এত সরল নয়। স্প্যামাররা প্রতিদিন নতুন কৌশল ব্যবহার করে — আপনি কতগুলো শর্ত হাতে লিখবেন?
মেশিন লার্নিংMachine Learningএকটি কম্পিউটিং পদ্ধতি যেখানে অ্যালগরিদম ডেটা থেকে নিজেই নিয়ম শেখে — মানুষ নিয়ম লিখে দেয় না। Tom Mitchell-এর সংজ্ঞা (১৯৯৭): "একটি প্রোগ্রাম T কাজে অভিজ্ঞতা E থেকে শেখে যদি P পরিমাপ অনুসারে এর কার্যক্ষমতা বাড়ে।"-এ আপনি উদাহরণ দেন — মডেল নিজেই নিয়ম খুঁজে বের করে। ১০,০০০ স্প্যাম ও ১০,০০০ স্বাভাবিক ইমেইল দেখিয়ে দিন — মডেল প্যাটার্ন ধরে ফেলবে যা মানুষ হয়তো বলে দিতে পারত না।
ঐতিহ্যবাহী: Input + Rules → Output
ML: Input + Output → Rules
মানে — ML "নিয়ম শেখার" একটি প্রক্রিয়া, ডেটা হলো শিক্ষক।
২ · Supervised Learning — শিক্ষকসহ শেখা
Supervised learningSupervised Learningপ্রতিটি training উদাহরণে input $x$ ও সঠিক output $y$ (label) দু'টোই থাকে। মডেল $f(x) \approx y$ ফাংশন শেখে। ৮০% production ML এই ধরনের।-এ প্রতিটি training উদাহরণে দু'টি জিনিস — input ($x$) ও সঠিক উত্তর ($y$, যাকে label বলে)। মডেল এমন একটি ফাংশন $f$ শেখে যেন $f(x) \approx y$।
দু'টি উপ-ধরন:
- Classification: output একটি শ্রেণি — "spam/not spam", "বিড়াল/কুকুর/পাখি"। L12 (Logistic Regression), L19 (Decision Tree), L27 (SVM)-এ বিস্তারিত।
- Regression: output একটি সংখ্যা — "আগামীকালের তাপমাত্রা", "এই বাড়ির দাম"। L09 (Linear Regression)-এ বিস্তারিত।
৩ · Unsupervised Learning — শিক্ষক ছাড়া
Unsupervised learningUnsupervised Learningশুধু input $x$ থাকে, কোনো label $y$ নেই। মডেল ডেটায় লুকানো গঠন খুঁজে বের করে — clusters, patterns, low-dimensional structure।-এ শুধু input আছে — কোনো label নেই। মডেল ডেটায় "লুকানো গঠন" খুঁজে বের করে।
প্রধান কাজ:
- Clustering: "একই ধরনের" বস্তুগুলো একসাথে। K-Means (L31), DBSCAN (L33), Hierarchical (L32)।
- Dimensionality reduction: ১০০-D ডেটা → ২-D plot. PCA (L34), t-SNE (L35)।
- Anomaly detection: "অস্বাভাবিক" উদাহরণ চিহ্নিতকরণ — fraud, system failure।
উদাহরণ: Daraz-এ ১০ লক্ষ গ্রাহক — তাদের কেনাকাটার প্যাটার্ন থেকে ৫টি স্বতন্ত্র সেগমেন্ট বের করা — কেউ ফ্যাশন-প্রেমিক, কেউ গ্যাজেট-প্রেমিক — কেউ আগে থেকে এই গ্রুপ define করেনি, মডেল ডেটায় খুঁজে পেল।
৪ · Reinforcement Learning — অভিজ্ঞতা থেকে
Reinforcement LearningReinforcement Learningএকটি agent পরিবেশের সাথে interact করে — action নেয়, reward পায়। লক্ষ্য — দীর্ঘমেয়াদী পুরস্কার সর্বোচ্চ করা। AlphaGo, ChatGPT (RLHF), robot control — এই পদ্ধতি। (RL) — সবচেয়ে আলাদা। কোনো নির্দিষ্ট ডেটাসেট নেই। একটি agent পরিবেশের সাথে interact করে — action নেয়, reward পায়। লক্ষ্য — দীর্ঘমেয়াদী পুরস্কার সর্বোচ্চ করা।
উদাহরণ:
- AlphaGo — কোটি কোটি গেম নিজে নিজে খেলে শিখেছে।
- Pathao-এর route optimization — কোন রুট ছোট, কোনটা যানজটমুক্ত — driver-এর অভিজ্ঞতা থেকে শেখা।
- ChatGPT-এর "RLHF" — মানুষের feedback থেকে উত্তর উন্নত করা।
৫ · কোন ধরন বাছাই করব?
সমস্যা থেকে ধরন বাছাই — একটি সহজ পথনির্দেশ:
১) আপনার কাছে label আছে? → হ্যাঁ → Supervised
২) label নেই, গঠন খুঁজছেন? → Unsupervised
৩) একটি system-এর সাথে interact করে শিখতে চান? → RL
৪) label নেই কিন্তু পরে label দেওয়া যায়? → Active learning / Semi-supervised
৬ · প্রথম supervised মডেল — হাতে-কলমে
scikit-learn দিয়ে একটি classification মডেল চালানো — মাত্র ৬ লাইনে:
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
X, y = load_iris(return_X_y=True) # input X, label y
X_tr, X_te, y_tr, y_te = train_test_split(X, y, test_size=0.3, random_state=42)
model = LogisticRegression(max_iter=200)
model.fit(X_tr, y_tr) # supervised — শিখছে
print("Test accuracy:", model.score(X_te, y_te))
৭ · প্রথম unsupervised — clustering
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
X, _ = load_iris(return_X_y=True) # label উপেক্ষা — unsupervised
km = KMeans(n_clusters=3, n_init=10, random_state=42)
km.fit(X) # গঠন খুঁজছে
print("Cluster labels (first 10):", km.labels_[:10])
print("Cluster centers shape:", km.cluster_centers_.shape)
৮ · ML-এর গাণিতিক রূপ
Supervised learning-এর অনুষ্ঠানিক সংজ্ঞা — একটি ফাংশন $f: \mathcal{X} \to \mathcal{Y}$ শেখা যেন training set $\{(x_i, y_i)\}_{i=1}^n$-এর উপর lossLoss Functionpredicted output ও সঠিক output-এর মধ্যে "ভুলের" পরিমাপ। যেমন — squared error, cross-entropy. মডেল train মানে loss কমানো। ন্যূনতম হয়:
$$\hat{f} = \arg\min_{f \in \mathcal{H}} \frac{1}{n}\sum_{i=1}^{n} L(f(x_i), y_i)$$
এখানে $\mathcal{H}$ হলো hypothesis class (যেসব সম্ভাব্য function বিবেচনায়), $L$ হলো loss function। এই formulation-এর গভীর ব্যাখ্যা পরের পাঠে (L02 — ERM)।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ একটি সমস্যা আপনার কাছে এসেছে: "Daraz-এর প্রতিটি পণ্যে স্বয়ংক্রিয়ভাবে ক্যাটেগরি ট্যাগ বসানো — fashion, electronics, beauty ইত্যাদি।" এটি Supervised, Unsupervised, না Reinforcement? কেন?
এটি একটি Supervised classification সমস্যা — কিন্তু সরাসরি নয়, প্রসঙ্গের উপর নির্ভরশীল।
কেন supervised:
- পূর্ববর্তী পণ্যগুলোর ক্যাটেগরি ইতিমধ্যেই মানুষের হাতে ট্যাগ করা — সেটাই training data ($x$ = পণ্যের নাম/বিবরণ/ছবি, $y$ = ক্যাটেগরি)।
- লক্ষ্য — নতুন পণ্যের জন্য একই ধরনের ট্যাগ predict করা।
- এটি classic multi-class classification — text classification ও image classification-এর সমন্বয়।
তবে কোম্পানি যদি একটি নতুন categorization scheme চায়:
- প্রথম ধাপে — clustering (unsupervised) করে দেখা — পণ্যগুলো প্রাকৃতিকভাবে কয়টি গ্রুপে বিভক্ত।
- সেই cluster-গুলো দেখে মানুষ ক্যাটেগরি নাম দেয়।
- তারপর সেই label দিয়ে একটি supervised model train।
RL কেন নয়:
- RL দরকার যেখানে action-এর result তাৎক্ষণিক, এবং action sequence গুরুত্বপূর্ণ।
- একটি পণ্যের ক্যাটেগরি একবার ঠিক হলেই কাজ শেষ — ধারাবাহিক sequence নেই।
- RL এই ধরনের কাজে অত্যধিক জটিল ও inefficient।
বাস্তব Daraz/Amazon কীভাবে করে: Multi-modal supervised — পণ্যের নাম (text), বিবরণ (text), ছবি (image), seller history সব মিলিয়ে একটি hybrid মডেল। লেবেল ক্রমাগত মানুষের ছোটো batch থেকে আসে। নতুন ক্যাটেগরি পেতে — periodic clustering analysis।
মূল উপলব্ধি: "কোন ধরনের ML" — সমস্যা নিজে বলে দেয় না, ডেটার উপস্থিতি ও ব্যবসায়িক লক্ষ্য বলে দেয়।
প্র ০২ "মডেল ৯৯% accuracy দিচ্ছে training-এ, কিন্তু production-এ ৬০%" — এই পরিচিত সমস্যা কেন হয়? এটি ML-এর কোন মৌলিক চ্যালেঞ্জের সাথে সম্পর্কিত?
এটি ML-এর সবচেয়ে গভীর সমস্যা — generalization gap। মডেল training data "মুখস্থ" করেছে, কিন্তু underlying pattern শেখেনি।
সম্ভাব্য কারণ:
- Overfitting: মডেল এত complex যে training-এর প্রতিটি noise-ও শিখে ফেলেছে। নতুন ডেটায় সেই noise নেই — তাই ব্যর্থ। Bias-Variance tradeoff (L04)-এ বিস্তারিত।
- Distribution shift: Training data ২০২৩-এর — production ২০২৬-এ। ব্যবহারকারীর আচরণ বদলেছে, ডেটাও বদলেছে।
- Data leakage: Training-এ accidentally future information ঢুকেছে — যা production-এ পাওয়া যায় না।
- Sampling bias: Training set উদাহরণ হয়তো শুধু ঢাকার গ্রাহকের, production-এ সারা দেশের — completely different।
- Label leakage: Training-এ এমন feature যা label থেকে derived — মডেল "চিট" করছে।
সমাধান:
- Train/Validation/Test বিভাজন (L03) — production-এর simulation।
- Cross-validation (L05) — robust evaluation।
- Regularization (L15 — Ridge, Lasso) — মডেল-কে simple রাখা।
- Production data drift monitoring — বিভাজন পরিবর্তন track করা।
মূল উপলব্ধি: Training accuracy ML-এর শেষ মাপকাঠি নয় — generalization (নতুন ডেটায় কর্মক্ষমতা) আসল লক্ষ্য। এই কোর্সের ৩০% পাঠ এই একটি সমস্যা সমাধানে নিবেদিত।
প্র ০৩ "AI ChatGPT-র মতো এত বুদ্ধিমান কেন? এটা কি RL?" — এই প্রশ্নের উত্তরে আপনি কোন তিন ধরনের ML-এর সমন্বয় ব্যাখ্যা করবেন?
ChatGPT (এবং সব আধুনিক LLM) — তিন ধরনের ML-এর সমন্বয়। কোনোটি একা নয়।
(১) Self-supervised pretraining (Unsupervised-এর বিশেষ রূপ):
- ইন্টারনেটের ট্রিলিয়ন token text — কোনো মানুষের দেওয়া label নেই।
- "পরবর্তী শব্দ predict কর" — text-ই নিজেই label সরবরাহ করে।
- এই ধাপে মডেল ভাষার গভীর গঠন শেখে — ব্যাকরণ, বিশ্বের জ্ঞান, যুক্তি।
- এটি GPT-৪-এর ৯৯% শেখা — কিন্তু এতে "helpful assistant" আচরণ আসে না।
(২) Supervised fine-tuning (SFT):
- মানুষের দেওয়া হাজার হাজার "ভাল উত্তর"-এর উদাহরণ।
- প্রশ্ন: "বাংলা কবিতা লিখো" — উত্তর: একটি সুন্দর কবিতা।
- মডেল conversation-এর format ও tone শেখে।
- Classic supervised — input + label।
(৩) RLHF — Reinforcement Learning from Human Feedback:
- মডেল দু'টি উত্তর তৈরি করে — মানুষ বলে কোনটি ভালো।
- সেই preference থেকে একটি "reward model" তৈরি হয়।
- মূল মডেল RL-এ এই reward সর্বোচ্চ করে।
- এই ধাপে আসে — toxicity কমানো, helpful থাকা, refuse-এ ভদ্রতা।
চমকপ্রদ গাণিতিক fact:
- Pretraining = ১০² থেকে ১০³ GPU-years compute।
- SFT = ১% compute (~১০ GPU-years)।
- RLHF = আরও ১%।
- কিন্তু শেষ ২% ছাড়া — মডেল production-ready নয়।
সাম্প্রতিক বিকল্প: Constitutional AI (Anthropic), DPO (Direct Preference Optimization) — RL-এর সরাসরি বিকল্প। DPO 2024-এ অনেক জনপ্রিয়।
মূল উপলব্ধি: আধুনিক AI single technique-এর ফল নয় — multiple ML paradigm-এর coordinated combination। এই বোঝাপড়া আপনাকে যেকোনো AI system analyze করতে সক্ষম করবে।
প্র ০৪ একটি সাধারণ প্রশ্ন: "আমার কাছে শুধু ১০০টি লেবেলযুক্ত উদাহরণ আছে — ML কি কাজ করবে?" আপনি কী পরামর্শ দেবেন?
১০০ উদাহরণ — ছোট, কিন্তু "অসম্ভব" নয়। সঠিক কৌশলে কাজ করতে পারে। আজকের ML-এর একটি গুরুত্বপূর্ণ branch — low-resource learning।
বিবেচনা ১ — ডেটার ধরন:
- Text/image: Pre-trained model ব্যবহার করে fine-tune. ১০০ উদাহরণে BERT বা ResNet ভিত্তিক transfer learning ভাল কাজ করে।
- Tabular: Simple model (Logistic Regression, Decision Tree) — ১০০ row-এ overfitting হবে না।
- Time series: ১০০ point-এ statistical method (ARIMA) সাধারণত ML-এর চেয়ে ভালো।
বিবেচনা ২ — সমস্যার জটিলতা:
- Binary classification, balanced: ১০০ উদাহরণ যথেষ্ট হতে পারে।
- 10-class classification: প্রতি class-এ ১০ উদাহরণ — প্রায় অসম্ভব।
- Image segmentation, NER: ১০,০০০ লাগে।
কৌশলগুলো:
- Transfer learning: বড় pre-trained model-এর শেষ স্তর retrain — ১০০ উদাহরণ যথেষ্ট।
- Data augmentation: rotation, noise, paraphrase — ১০০ থেকে ১০০০ effective।
- Few-shot/zero-shot prompting: GPT-4-কে ১০ উদাহরণ দিয়ে in-context learning।
- Active learning: মডেলকে জিজ্ঞাসা — "কোন example label করলে সবচেয়ে শিখব?" — তারপর সেগুলো label।
- Semi-supervised: ১০০ labeled + ১০,০০০ unlabeled — দু'টোই ব্যবহার।
আমার বাস্তব পরামর্শ:
- প্রথম — সরল baseline (Logistic Regression, Naive Bayes — L18) চালান। প্রায়ই surprising results।
- দ্বিতীয় — pre-trained model (Hugging Face)-এ fine-tune।
- তৃতীয় — যদি ক্রিটিক্যাল project, আরো ৫০০ লেবেল সংগ্রহে বিনিয়োগ করুন।
সতর্কতা:
- ১০০ উদাহরণে cross-validation essential — single train/test split unreliable।
- Confidence intervals সবসময় জানান — accuracy "৮৫%" না বলে "৭৫-৯২%"।
- Production-এ কম-ডেটা মডেল প্রায়ই brittle — careful monitoring।
মূল উপলব্ধি: "কত ডেটা" থেকে গুরুত্বপূর্ণ "কী ধরনের সমস্যা ও কোন কৌশল"। ১০০ ভাল উদাহরণ ১০,০০০ মলিন উদাহরণের চেয়ে ভালো।
অনুশীলন
-
শ্রেণিবদ্ধ করুন: নিচের প্রতিটি সমস্যা — Supervised (classification/regression), Unsupervised, না RL?
- (ক) ইমেইল spam কি না
- (খ) ঢাকার আগামীকালের তাপমাত্রা পূর্বাভাস
- (গ) ১০ লক্ষ গান থেকে "একই ধরনের গান" গ্রুপ তৈরি
- (ঘ) দাবা খেলায় শেখা
- (ঙ) X-ray ছবি থেকে নিউমোনিয়া ডায়াগনোসিস
- (ক) Supervised — Binary classification
- (খ) Supervised — Regression
- (গ) Unsupervised — Clustering
- (ঘ) Reinforcement Learning
- (ঙ) Supervised — Binary classification (image)
-
scikit-learn চালান: উপরের Iris উদাহরণ চালান — accuracy কত পেলেন? max_iter বাড়িয়ে কী হলো?
সাধারণত ~৯৭% accuracy। max_iter কম থাকলে convergence warning, accuracy একটু কম। ২০০-এ stable।
-
ভাবুন: বাংলাদেশের একটি বাস্তব ML সমস্যা চিন্তা করুন — যেমন "Bkash-এ fraud transaction detection।" এটি কোন ধরনের? কী input, কী output? সম্ভাব্য চ্যালেঞ্জ?
ধরন: Supervised binary classification (fraud / not fraud) — তবে label দুর্লভ, তাই hybrid approach।
Input: transaction amount, time, location, device, user history, recipient.
Output: fraud probability।
চ্যালেঞ্জ: imbalanced (fraud ০.১%, L43 — SMOTE), real-time inference লাগে, নতুন fraud pattern (concept drift), false positive-এর cost (legitimate transaction block)।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পাঠ ০২ · ERM ও Hypothesis class পরবর্তী পাঠ ML-এর গাণিতিক ভিত্তি — Empirical Risk Minimization।
- AI Foundations · L27 · ডেটাসেট কী প্রাসঙ্গিক ভালো ডেটার বৈশিষ্ট্য ও Train/Val/Test ভিত্তি।
- পাঠ ০৩ · Train/Validation/Test এই মডিউলে কীভাবে ডেটা ভাগ করবেন — generalization-এর চাবি।
- সব AI Courses দেখুন ABCL TECH Python, ML, DL, NLP, CV, GenAI, RL, MLOps — সব AI কোর্স একসাথে।