Chapter 2 of 18
Not all learning happens the same way
আগের চ্যাপ্টারে লোন-অনুমোদনের যে উদাহরণটা দেখেছিলেন — হাজার হাজার আগের আবেদন, প্রতিটাতে আসল ফলাফল (শোধ হয়েছে নাকি খেলাপি) লেবেল করা, আর সিস্টেম সেখান থেকে প্যাটার্ন শিখে নেয় — সেটাই আসলে Machine Learning-এর সবচেয়ে কমন ধরন। এর নাম Supervised Learning।
"Supervised" শব্দটাই এখানে আসল ব্যাপার। ভাবুন, একজন স্টুডেন্ট এমন একটা বই থেকে অংক প্র্যাকটিস করছে যার পেছনে উত্তরমালা দেওয়া আছে। প্রতিটা প্রশ্নের সাথে সঠিক উত্তরটাও দেওয়া আছে। মডেল যদি ভুল উত্তর দেয়, তাহলে সেটা নিজের উত্তরকে সঠিক উত্তরের সাথে মিলিয়ে দেখতে পারে, আর পরেরবার ভালো করার জন্য নিজেকে অ্যাডজাস্ট করতে পারে। "গেস করো, সঠিক উত্তরের সাথে মেলাও, অ্যাডজাস্ট করো" — এই চক্রটাই "supervision" বলতে বোঝায়। প্রতিটা উদাহরণের জন্য "এটাই সঠিক উত্তর" — এই কাজটা কেউ (একজন মানুষ বা একটা লেবেলিং প্রসেস) আগেই করে রেখেছে।
গাণিতিকভাবে বললে, একটা supervised learning সমস্যায় মডেলকে দেওয়া হয় কিছু input-output জোড়া: — যেখানে প্রতিটা হলো একটা ইনপুট (একটা ছবি, একটা লোন আবেদন, একটা ইমেইল) আর প্রতিটা হলো সেই ইনপুটের জানা সঠিক লেবেল। মডেলের কাজ হলো এমন একটা ফাংশন শেখা যেটা নতুন, অচেনা থেকে সঠিক প্রেডিক্ট করতে পারে।
Supervised learning নিজেই দুইটা রোজকার টাস্কে ভাগ হয় — কী ধরনের উত্তর প্রেডিক্ট করছেন তার উপর নির্ভর করে:
| Classification | Regression | |
|---|---|---|
| কী প্রেডিক্ট করে | একটা ক্যাটাগরি / আলাদা লেবেল | একটা কন্টিনিউয়াস সংখ্যা |
| উদাহরণ প্রশ্ন | "এই ইমেইলটা স্প্যাম নাকি স্প্যাম না?" | "এই বাড়িটা কত টাকায় বিক্রি হবে?" |
| সাধারণ আউটপুট | একটা ক্লাসের নাম (স্প্যাম / নট-স্প্যাম), বা প্রতি ক্লাসের একটা প্রোবাবিলিটি | একটা সংখ্যা (যেমন, ৪২,৫০,০০০ টাকা) |
| আরও উদাহরণ | এক্স-রে থেকে রোগ নির্ণয়, হাতে লেখা সংখ্যা চেনা, জালিয়াতি ধরা | আগামীকালের তাপমাত্রা প্রেডিক্ট করা, ডেলিভারি টাইম অনুমান করা, বিক্রি ফোরকাস্ট করা |
প্যাটার্নটা খেয়াল করুন: উত্তরটা যদি "একটা ফিক্সড সেট থেকে একটা বাক্স বেছে নাও" হয়, সেটা classification। উত্তরটা যদি "এমন একটা সংখ্যা দাও যেটা প্রায় যেকোনো কিছু হতে পারে" হয়, সেটা regression। মূল আইডিয়াটা — লেবেল করা উদাহরণ থেকে শেখা — দুই ক্ষেত্রেই একই; শুধু উত্তরের আকারটা বদলায়।
আজকের ইন্ডাস্ট্রিতে সবচেয়ে বেশি ব্যবহৃত ML হলো supervised learning, ঠিক এই কারণেই এটা ট্রেইন আর ইভ্যালুয়েট করা সবচেয়ে সহজ — কারণ মডেল কতটা ভুল করছে সেটা সবসময় এক্সাক্টলি জানা যায়, কারণ তুলনা করার জন্য সঠিক উত্তরটা সবসময় হাতেই থাকে।
Supervised learning-এর সবচেয়ে বড় সীমাবদ্ধতা অ্যালগরিদম না — এটা ডেটা। হাজার হাজার বা লক্ষ লক্ষ সঠিকভাবে লেবেল করা উদাহরণ পাওয়া মানে সাধারণত মানুষকে টাকা দিয়ে প্রতিটা দেখে ট্যাগ করানো (এই ট্রানজেকশনটা কি জালিয়াতি ছিল? এই এক্স-রেতে কি টিউমার আছে?)। অনেক বাস্তব সমস্যার জন্য, লেবেল-হীন ডেটা সস্তা এবং প্রচুর পাওয়া যায়, কিন্তু লেবেল করা ডেটা তৈরি করতে সময় আর খরচ দুটোই লাগে। ঠিক এই ফাঁকটাই পরের ধরনের learning-কে জন্ম দিয়েছে।
এবার ধরুন আপনার হাতে কোনো উত্তরমালাই নেই। আপনাকে দশ হাজার কাস্টমারের কেনাকাটার হিস্ট্রি দেওয়া হলো, কিন্তু কেউ এখনো "হাই-ভ্যালু কাস্টমার" বা "বাজেট শপার" বলে কোনো লেবেল লাগায়নি — এই ক্যাটাগরিগুলো এখনো এক্সিস্টই করে না। তাহলে কি একটা মেশিন এই ডেটা থেকে তবুও কিছু কাজে লাগার মতো জিনিস বের করতে পারবে?
হ্যাঁ পারবে — আর এটাই Unsupervised Learning: মডেলকে শুধু ইনপুট দেওয়া হয়, কোনো লেবেল না, আর তার কাজ হলো নিজে থেকেই ডেটার মধ্যে গঠন, প্যাটার্ন, বা গ্রুপিং খুঁজে বের করা — কী খুঁজতে হবে সেটা না বলেই।
ভাবুন কাউকে একটা বাক্স ভরা এলোমেলো বোতাম দিয়ে বলা হলো, "এগুলো গুছিয়ে ফেলো," কিন্তু কোনো নির্দেশনা ছাড়াই। কেউ আগে থেকে ক্যাটাগরি বলে দেয়নি ("বড় বোতাম," "মেটাল বোতাম," "চার-ছিদ্রের বোতাম") — কিন্তু একজন বুদ্ধিমান মানুষ স্বাভাবিকভাবেই একই রকম দেখতে বোতামগুলো একসাথে গ্রুপ করা শুরু করবে। এটাই unsupervised learning: গ্রুপিংটা নিজেই আবিষ্কার করা, কোনো জানা উত্তরের সাথে মিলিয়ে শেখা না।
সবচেয়ে কমন দুইটা unsupervised টাস্ক:
Clustering
গ্রুপের নাম আগে থেকে না জেনেই একই রকম ডেটা পয়েন্টগুলোকে একসাথে গ্রুপ করা। উদাহরণ: কেনাকাটার আচরণের উপর ভিত্তি করে কাস্টমারদের সেগমেন্টে ভাগ করা — অ্যালগরিদম হয়তো তিনটা স্বাভাবিক গ্রুপ খুঁজে পাবে, কিন্তু পরে একজন মানুষকেই সেগুলোর নাম দিতে হবে "দরদাম করা কাস্টমার," "নিয়মিত গ্রাহক," আর "মাঝেমধ্যে বড় খরচ করা কাস্টমার।"
Dimensionality Reduction
অনেক ফিচার-সমৃদ্ধ ডেটাকে ছোট একটা সেটে কমপ্রেস করা, যেটা তারপরও গুরুত্বপূর্ণ প্যাটার্নগুলো ধরে রাখে — visualization বা অন্য মডেলের আগে প্রি-প্রসেসিং হিসেবে কাজে লাগে। উদাহরণ: প্রতি কাস্টমারের ২০০টা মেপে রাখা ফিচার থেকে দেখা যে মাত্র ২-৩টা কম্বাইন্ড "ডাইমেনশন" বেশিরভাগ ভ্যারিয়েশন ব্যাখ্যা করে ফেলছে।
কল্পনা করুন প্রতিটা কাস্টমারকে একটা গ্রাফে একটা ডট হিসেবে বসানো হলো — কত খরচ করে আর কত ঘন ঘন কেনাকাটা করে তার উপর ভিত্তি করে। Supervised learning-এ, ট্রেইনিংয়ের আগেই কাউকে প্রতিটা ডট "Type A" বা "Type B" বলে লেবেল করে দিতে হতো। Unsupervised learning-এ (clustering), অ্যালগরিদম শুধু দেখে ডটগুলো স্বাভাবিকভাবে কোথায় জড়ো হচ্ছে, আর নিজেই সীমানা টেনে দেয় — সেই ক্লাস্টারগুলো আসলে কী মানে সেটা আপনি পরে বের করেন।
Unsupervised learning-ই সেই জিনিস যেটা "সিস্টেম এমন কিছু খুঁজে পেয়েছে যেটা আমি চাইওনি" — এই মুহূর্তগুলোর পেছনে থাকে: ব্যাংক ট্রানজেকশনে anomaly detection (এমন ট্রানজেকশন চিহ্নিত করা যেগুলো বাকি ডেটার মতো দেখতে না, জালিয়াতি আসলে কেমন দেখতে সেটা না জানিয়েই), অনেকগুলো নিউজ আর্টিকেলের মধ্যে টপিক আবিষ্কার, অথবা রেকমেন্ডেশন ইঞ্জিন যেটা লক্ষ্য করে "যারা X কেনে তারা Y-ও কেনার প্রবণতা রাখে" — এটা কেউ হাতে করে নিয়ম লিখে দেয়নি।
কোনো উত্তরমালা নেই বলে "accuracy" মাপাটাও supervised learning-এর মতো সহজ না। একটা clustering রেজাল্ট "ভালো" কিনা সেটা যাচাই করা প্রায়ই সাবজেক্টিভ আর সমস্যাভেদে আলাদা — supervised learning-এর পরিষ্কার ঠিক-বা-ভুল ফিডব্যাকের তুলনায় এটা একটা সত্যিকারের বাস্তব ট্রেড-অফ।
খুবই কমন একটা বাস্তব পরিস্থিতি: আপনার হাতে অল্প কিছু সঠিকভাবে লেবেল করা ডেটা আছে, আর তার চেয়ে অনেক অনেক বেশি লেবেল-হীন ডেটা আছে — কারণ লেবেল করা ব্যয়বহুল, কিন্তু raw ডেটা জোগাড় করা সস্তা। ধরুন একটা হাসপাতালে ৫০০টা এক্স-রে আছে যেগুলো একজন রেডিওলজিস্ট যত্ন করে ডায়াগনোজ করেছেন, কিন্তু আর্কাইভে আরও ৫০,০০০টা এক্স-রে পড়ে আছে যেগুলোতে কোনো ডায়াগনোসিস লাগানো হয়নি।
৫০,০০০টা লেবেল-হীন এক্স-রে ফেলে দেওয়াটা অপচয় মনে হয়, আবার শুধু ৫০০টা লেবেল করা এক্স-রে দিয়ে supervised learning করলে মডেল শেখার জন্য খুবই কম কিছু পায়। Semi-Supervised Learning হলো মাঝামাঝি একটা পথ: মূলত ছোট লেবেল করা সেট দিয়ে ট্রেইন করুন, কিন্তু বড় লেবেল-হীন সেটটাকেও ব্যবহার করুন যাতে মডেল ডেটার বড় আকৃতি আর গঠনটা বুঝতে পারে।
এটা বাস্তবে যেভাবে কাজ করে তার একটা কমন পদ্ধতি, যাকে বলে "self-training" বা "pseudo-labeling":
একটা প্রাথমিক মডেল ট্রেইন করুন
শুধু ছোট লেবেল করা ডেটাসেট দিয়ে (যেমন, ৫০০টা ডায়াগনোজ করা এক্স-রে) একটা প্রথম-ধাপের মডেল ট্রেইন করুন।
লেবেল-হীন ডেটার উপর প্রেডিক্ট করুন
সেই মডেলটাকে বড় লেবেল-হীন সেটের উপর (যেমন, ৫০,০০০টা ডায়াগনোসিস-হীন এক্স-রে) চালিয়ে অনুমান তৈরি করুন।
আত্মবিশ্বাসী অনুমানগুলো রাখুন
মডেলের হাই-কনফিডেন্স প্রেডিকশনগুলোকে সত্যিকারের লেবেলের মতো ট্রিট করুন — এগুলোকে বলা হয় "pseudo-labels।"
সবকিছু মিলিয়ে আবার ট্রেইন করুন
আসল লেবেল করা ডেটা আর নতুন pseudo-লেবেল করা ডেটা একসাথে মিলিয়ে একটা নতুন, আরও ভালো মডেল ট্রেইন করুন।
মূল আইডিয়াটা হলো, লেবেল-হীন ডেটাও কাজের তথ্য বহন করে — এটা মডেলকে দেখায় বাস্তব ইনপুট আসলে কেমন দেখতে, ডেটার স্বাভাবিক ক্লাস্টার আর সীমানাগুলো কোথায়, প্রতিটা পয়েন্টের "সঠিক উত্তর" না জেনেও। ছোট একটা বিশ্বাসযোগ্য সিগন্যালের সাথে প্রচুর গঠনগত তথ্য মিলিয়ে ব্যবহার করলে সাধারণত শুধু সেই ছোট সিগন্যাল একা ব্যবহারের চেয়ে ভালো ফল পাওয়া যায়।
Semi-supervised learning সাধারণত সেখানে দেখা যায় যেখানে লেবেল করতে একজন বিশেষজ্ঞের সময় লাগে — মেডিকেল ইমেজিং (রেডিওলজিস্ট), লিগ্যাল ডকুমেন্ট ক্লাসিফিকেশন (আইনজীবী), বা বিশেষায়িত সায়েন্টিফিক ডেটা — কিন্তু কাঁচা, লেবেল-হীন উদাহরণ প্রচুর পরিমাণে জোগাড় করা সহজ।
Self-supervised learning শুনতে semi-supervised learning-এর মতো লাগে, কিন্তু এটা আসলে ভিন্ন একটা সমস্যা সমাধান করে, আর দুটোর পার্থক্যটা স্পষ্টভাবে বোঝা দরকার যাতে মাথার মধ্যে গুলিয়ে না যায়।
Semi-supervised learning-এর জন্য শুরুতে তবুও কিছু সত্যিকারের, মানুষের দেওয়া লেবেল লাগে। Self-supervised learning-এর কোনো লেবেলই লাগে না। এর বদলে, এটা raw লেবেল-হীন ডেটা থেকে নিজেই নিজের লেবেল তৈরি করে নেয় — ইনপুটের একটা অংশ লুকিয়ে রেখে আর বাকি অংশ থেকে সেই লুকানো অংশটা প্রেডিক্ট করতে বলে।
টেক্সটের একটা সহজ উদাহরণ ভাবুন: "বিড়ালটা ___ এর উপর বসে আছে" — এই বাক্যের শেষ শব্দটা লুকিয়ে ফেলুন। এখানে কাউকে কিছু লেবেল করতে হয়নি — "লেবেলটা" (হারিয়ে যাওয়া শব্দ, "খাটের") আসলে মূল, অপরিবর্তিত টেক্সটেই আগে থেকে বসে ছিল। মডেলের কাজ হয়ে দাঁড়ায়: চারপাশের কনটেক্সট থেকে হারিয়ে যাওয়া শব্দটা প্রেডিক্ট করা। ইন্টারনেট থেকে সংগৃহীত লক্ষ লক্ষ কোটি বাক্যের উপর এটা করলে, মডেলটা বাধ্য হয়ে ব্যাকরণ, পৃথিবী সম্পর্কে তথ্য, আর শব্দগুলোর মধ্যেকার সম্পর্ক শিখে ফেলে — কোনো মানুষ একটাও উদাহরণ হাতে করে ট্যাগ না করেই।
মূল কৌশলটা, এক কথায়
Self-supervised learning শূন্য থেকে supervision তৈরি করে — ডেটার একটা অংশ লুকিয়ে রেখে আর বাকি অংশ থেকে সেই লুকানো অংশটা রিকনস্ট্রাক্ট বা প্রেডিক্ট করতে মডেলকে ট্রেইন করে — লেবেল-হীন ডেটাকে অটোমেটিকভাবে একটা লেবেল করা ট্রেইনিং সমস্যায় রূপান্তর করে।
এই একই কৌশল শুধু টেক্সটে না, অন্য ধরনের ডেটাতেও কাজ করে:
| ডেটার ধরন | কী লুকানো হয় | মডেল কী প্রেডিক্ট করতে শেখে |
|---|---|---|
| টেক্সট | একটা শব্দ, বা সিকোয়েন্সের পরের শব্দ | কনটেক্সট থেকে হারিয়ে যাওয়া/পরের শব্দ (GPT-এর মতো লার্জ ল্যাঙ্গুয়েজ মডেল এভাবেই প্রি-ট্রেইন হয়) |
| ছবি | ছবির একটা প্যাচ বা অংশ | চারপাশের পিক্সেল থেকে হারিয়ে যাওয়া প্যাচটা |
| ভিডিও | ভবিষ্যতের ফ্রেমগুলো | এখন পর্যন্ত দেখা ফ্রেম থেকে পরে কী হবে |
মনে হতে পারে self-supervised learning আসলে unsupervised learning-এরই একটা ফ্যান্সি নাম — কিন্তু তা না। Unsupervised learning গঠন (যেমন clusters) খোঁজে, কোনো "সঠিক উত্তর"-এর ধারণা ছাড়াই। Self-supervised learning-এ সঠিক উত্তর আছে — শুধু সেগুলো মানুষকে টাকা দিয়ে লিখিয়ে না নিয়ে ডেটা থেকেই অটোমেটিকভাবে তৈরি করা হয়। নেপথ্যে, একবার এই ভুয়া লেবেলগুলো তৈরি হয়ে গেলে, ট্রেইনিংটা দেখতে ঠিক supervised learning-এর মতোই।
আজকাল যেসব বড় ল্যাঙ্গুয়েজ মডেল আর বড় ভিশন মডেলের কথা শোনেন (GPT, BERT, এবং একই রকম সিস্টেম) — এদের সবগুলোই self-supervised pretraining স্টেজ দিয়ে শুরু হয়। এটাই সম্ভব করে তোলে ইন্টারনেটের বিশাল লেবেল-হীন টেক্সট আর ছবির সমুদ্র থেকে এমন স্কেলে শেখা, যা কোনো মানুষের লেবেলিং টিম কখনো ম্যাচ করতে পারবে না।
এখন পর্যন্ত যত ধরনের learning দেখেছেন, সবগুলোর একটা কমন জিনিস আছে: মডেলটা একটা ফিক্সড ডেটাসেট থেকে শেখে যেটা ট্রেইনিং শুরুর আগেই তৈরি হয়ে আছে। Reinforcement Learning (RL) এই ধারণাটাকে পুরোপুরি ভেঙে দেয় — এখানে সঠিক উত্তরের কোনো ডেটাসেটই নেই। এর বদলে, একটা agent (এজেন্ট) একটা environment (পরিবেশ)-এর মধ্যে কাজ করে শেখে, প্রতিটা কাজের পর একটা reward (পুরস্কার) বা penalty (শাস্তি) পায়, আর ধীরে ধীরে বের করে ফেলে কোন কাজগুলো সময়ের সাথে ভালো ফলাফল বয়ে আনে।
ভাবুন একজন মানুষ কীভাবে এমন একটা নতুন ভিডিও গেম খেলতে শেখে যেটা সে আগে কখনো দেখেনি। কেউ তাকে প্রতিটা সম্ভাব্য গেম-পরিস্থিতির জন্য "সঠিক চাল"-এর একটা বই ধরিয়ে দেয় না। বরং সে জিনিস চেষ্টা করে — এখানে লাফ দাও, ওখানে অপেক্ষা করো, এখন অ্যাটাক করো — দেখে কী হয় (পয়েন্ট বাড়লো? লাইফ কমে গেলো?), আর যেসব কাজ ভালো ফলাফল এনেছে সেগুলো বেশি করে আর যেগুলো খারাপ ফলাফল এনেছে সেগুলো কম করে ধীরে ধীরে ভালো হয়ে ওঠে। এই ট্রায়াল-অ্যান্ড-রিওয়ার্ড চক্রটাই reinforcement learning-এর পুরো আইডিয়া।
RL-এ সবজায়গায় ব্যবহৃত হওয়া কিছু শব্দ:
Agent
শিক্ষার্থী/সিদ্ধান্ত-গ্রহণকারী — গেমের ক্যারেক্টার, রোবট, ট্রেডিং অ্যালগরিদম।
Environment
agent যা কিছুর সাথে ইন্টারঅ্যাক্ট করে সেই পুরোটা — গেমের জগৎ, রোবট যে ঘরে চলাফেরা করে, স্টক মার্কেট।
Action
কোনো একটা মুহূর্তে agent যে সিদ্ধান্তটা নেয় — বামে যাও, একটা ট্রেড করো, স্টিয়ারিং ঘোরাও।
Reward
একটা কাজের পর environment যে সংখ্যাটা ফিরিয়ে দেয়, সেটা কতটা ভালো বা খারাপ ছিল তার সিগন্যাল হিসেবে (পয়েন্ট পাওয়া, দুর্ঘটনা এড়ানো, লাভ হওয়া)।
Policy
agent যে স্ট্র্যাটেজিটা শিখেছে — মূলত, "এই পরিস্থিতিতে আমার কোন কাজটা করা উচিত?" এটাই যেটা ট্রেইন করা হচ্ছে।
Agent বর্তমান অবস্থা দেখে
Environment তার বর্তমান পরিস্থিতি দেখায় (যেমন, বর্তমান গেম স্ক্রিন, রোবটের সেন্সর রিডিং)।
Agent একটা action বেছে নেয়
নিজের বর্তমান policy অনুযায়ী, agent একটা কাজ ট্রাই করার জন্য বেছে নেয়।
Environment রেসপন্স করে
Environment-এর অবস্থা বদলে যায় আর সেই কাজের জন্য একটা reward (পজিটিভ, নেগেটিভ, বা শূন্য) ফিরিয়ে দেয়।
Agent তার policy আপডেট করে
Agent তার স্ট্র্যাটেজি অ্যাডজাস্ট করে, যাতে পরের বার ভবিষ্যৎ পরিস্থিতিতে ভালো ফলাফল দেওয়া কাজগুলো বেশি আর শাস্তি পাওয়া কাজগুলো কম বেছে নেয়।
এই চক্রটা বারবার চলতে থাকে — অনেক সময় সিমুলেশনে লক্ষ লক্ষ বার — যতক্ষণ না agent-এর policy নির্ভরযোগ্যভাবে ভালো কাজ বেছে নিতে পারে। AlphaGo-র মতো সিস্টেম ঠিক এভাবেই বিশ্বচ্যাম্পিয়নদের হারাতে শিখেছিল Go গেমে — কোনো গ্র্যান্ডমাস্টারের লেবেল করা "সঠিক" চালের ডেটাসেট দেখিয়ে না, বরং লক্ষ লক্ষ গেম খেলে (অনেকগুলো নিজের সাথেই), আর শুধুমাত্র জয়-পরাজয় থেকে শিখে কোন চালগুলো জেতার দিকে নিয়ে যায়।
RL-এর সবচেয়ে কঠিন অংশ হলো, একটা reward প্রায়ই সেই কাজটার অনেক পরে আসে যেটা আসলে সেটার কারণ ছিল — দাবা খেলায়, একটা ভুল চাল হয়তো ১২তম মুভে হয়, কিন্তু "reward" (গেম হেরে যাওয়া) আসে ৪০তম মুভে। Agent-কে শিখতে হয় আসলে কোন কাজগুলো গুরুত্বপূর্ণ ছিল সেগুলোকে ক্রেডিট দিতে, শুধু সর্বশেষ কাজটাকে না। এটা সত্যিই একটা কঠিন সমস্যা যেটা supervised learning-এ একদমই দেখা যায় না, কারণ সেখানে প্রতিটা ইনপুট সাথে সাথে সরাসরি ফিডব্যাক পায়।
Reinforcement learning ঠিক সেসব সমস্যার জন্য উপযুক্ত যেগুলো মূলত সিকোয়েন্সিয়াল সিদ্ধান্ত-গ্রহণ-এর ব্যাপার, এক-বার-প্রেডিকশনের না: গেম-খেলা AI, রোবোটিক্স, সেলফ-ড্রাইভিং কার কন্ট্রোল, আর রিসোর্স অ্যালোকেশন সিস্টেম (যেমন কোন বিজ্ঞাপন দেখাবে, বা ডেলিভারি ট্রাক কীভাবে রুট করবে ঠিক করা) — যেখানে একটার পর একটা সিদ্ধান্ত নিতে হয়, আর প্রতিটা সিদ্ধান্ত পরে কী হবে সেটাকে প্রভাবিত করে।
এখন আপনার হাতে পাঁচ ধরনের learning আছে, আর এগুলোকে পাশাপাশি রেখে দেখাটা কাজে দেবে — কোনটা বেছে নেবেন সেটা ঠিক করার সবচেয়ে গুরুত্বপূর্ণ জিনিসটা দিয়ে: আসলে কী ধরনের supervision সিগন্যাল আপনার হাতে আছে।
| ধরন | ট্রেইনিংয়ের জন্য কী পাওয়া যায় | সাধারণ ব্যবহারক্ষেত্র |
|---|---|---|
| Supervised | পুরোপুরি লেবেল করা input-output জোড়া | স্প্যাম শনাক্তকরণ, লেবেল করা স্ক্যান থেকে মেডিকেল ডায়াগনোসিস, বাড়ির দাম প্রেডিকশন |
| Unsupervised | শুধু ইনপুট, কোনো লেবেলই নেই | কাস্টমার সেগমেন্টেশন, anomaly detection, টপিক আবিষ্কার |
| Semi-Supervised | অল্প লেবেল করা সেট + অনেক বড় লেবেল-হীন সেট | কম এক্সপার্ট-লেবেল করা স্ক্যান কিন্তু অনেক raw স্ক্যান নিয়ে মেডিকেল ইমেজিং |
| Self-Supervised | শুধু raw লেবেল-হীন ডেটা (লেবেল ডেটা থেকেই অটোমেটিক তৈরি হয়) | বড় ল্যাঙ্গুয়েজ মডেল আর ভিশন মডেল প্রি-ট্রেইনিং |
| Reinforcement | কোনো ডেটাসেট নেই — একটা environment যেটা কাজের বিপরীতে reward দেয় | গেম-খেলা AI, রোবোটিক্স, সেলফ-ড্রাইভিং কন্ট্রোল |
আপনার সামনের সমস্যাটার জন্য কোন ধরনটা উপযুক্ত সেটা ঠিক করার একটা বাস্তব উপায়: নিজেকে জিজ্ঞেস করুন, আসলে আপনার হাতে কী আছে।
আপনার কাছে কি পুরোপুরি সঠিকভাবে লেবেল করা উদাহরণের একটা সম্পূর্ণ সেট আছে? → Supervised। আপনার কাছে ডেটা আছে কিন্তু লেবেল নেই, আর আপনি এর মধ্যে গঠন আবিষ্কার করতে চান? → Unsupervised। আপনার কাছে একটু লেবেল করা ডেটা আছে আর একই ধরনের আরও অনেক বেশি লেবেল-হীন ডেটা আছে? → Semi-Supervised। আপনার কাছে প্রচুর raw ডেটা আছে আর লেবেলের জন্য টাকা খরচ না করেই একটা জেনারেল-পারপাস মডেল প্রি-ট্রেইন করতে চান? → Self-Supervised। কোনো ফিক্সড ডেটাসেটই নেই — বরং এমন একটা agent আছে যেটা কাজ করতে পারে আর environment থেকে ফিডব্যাক পেতে পারে? → Reinforcement।
এটাও জানা ভালো, বাস্তব সিস্টেমে এগুলো সবসময় একে অপরের বিপরীত না। একটা আধুনিক ভয়েস অ্যাসিস্ট্যান্ট হয়তো প্রচুর raw অডিও আর টেক্সটের উপর self-supervised pretraining ব্যবহার করে, তারপর নির্দিষ্ট টাস্কের জন্য একটা ছোট লেবেল করা ডেটাসেটে supervised fine-tuning করে, আর ইউজারের ফিডব্যাকের উপর ভিত্তি করে কীভাবে রেসপন্স করবে সেটা ফাইন-টিউন করতে reinforcement learning ব্যবহার করে — একই পাইপলাইনে তিন ধরনের learning-ই একসাথে কাজ করছে।