RL কী, অন্য ML থেকে কেন আলাদা
এই পাঠে যা শিখবেন
- RL কী — supervised ও unsupervised থেকে কেন মৌলিকভাবে আলাদা
- Trial-and-error, reward signal, sparse/delayed reward — RL-এর তিন স্বাক্ষর
- RL কোথায় কাজ করে, কোথায় কাজ করে না — সঠিক প্রয়োগের ক্ষেত্র
- একটি সরল Python সিমুলেশন — agent কীভাবে শেখে তার প্রথম স্বাদ
১ · RL কেন এত আলাদা
AI/ML-এর তিনটি বড় শাখা — Supervised, Unsupervised, ও Reinforcement Learning। প্রথম দু'টিতে স্থির ডেটাসেট দিয়ে কাজ। কিন্তু RL — সম্পূর্ণ ভিন্ন paradigm।
Reinforcement LearningReinforcement Learningএকটি agent পরিবেশের সাথে interact করে, action নেয়, reward পায়, এবং long-term cumulative reward সর্বাধিক করার নীতি (policy) শেখে। trial-and-error-এর গাণিতিক রূপ। হলো — একটি agent পরিবেশে কাজ করে, ভুল করে, পুরস্কার বা শাস্তি পায়, এবং সেই অভিজ্ঞতা থেকে নিজে নিজে শেখে। কেউ "সঠিক উত্তর" দেখায় না।
১) Supervised: $(x, y)$ জোড়া দেখে শেখে। "এটা বিড়াল, এটা কুকুর।"
২) Unsupervised: শুধু $x$ দেখে structure খুঁজে। "এই ডেটা কোন cluster-এ?"
৩) Reinforcement: পরিবেশে action নেয়, reward $r$ পায়। "ভালো খেললাম, না খারাপ?"
২ · একটি বাচ্চা সাইকেল কীভাবে শিখে?
AlphaGo যেভাবে নিজে নিজে নিজের সাথে কোটি কোটি গেম খেলে শিখলো — সেটা একই principle-এ। ChatGPT-এর RLHF stage — মানুষ feedback দেয়, model সেই feedback-কে reward হিসেবে ব্যবহার করে নিজেকে adjust করে।
৩ · RL-এর তিন স্বাক্ষর
(ক) Trial-and-error: "সঠিক action" আগে থেকে দেওয়া নেই। agent চেষ্টা করে, ফলাফল দেখে।
(খ) Delayed reward: দাবা খেলায় ১০ম চালটি ভুল হলে — হার ৪০তম চালে। কোন চাল আসলে দায়ী? এটাই credit assignment problemCredit Assignment Problemএকটি sequence-এর কোন action আসলে চূড়ান্ত reward-এর জন্য দায়ী — সেটা নির্ণয় করার সমস্যা। RL-এর কেন্দ্রীয় চ্যালেঞ্জ। Bellman সমীকরণ ও TD learning এই সমস্যা সমাধানের চেষ্টা। — RL-এর কেন্দ্রীয় চ্যালেঞ্জ।
(গ) Sequential decisions: এক action পরের পরিস্থিতি বদলায়। আজ যা শিখছি — কাল কাজে আসবে। এক step optimal হলে whole trajectory optimal হয় না।
৪ · Supervised বনাম RL — কোথায় ভিন্ন
Supervised ML-এ একটি ছবি classify করতে — সঠিক label আছে। RL-এ "সঠিক move" নেই — শুধু "এই move-এর পরিণাম কী হলো" আছে।
গাণিতিকভাবে, supervised-এ আমরা minimize করি $\mathcal{L}(\theta) = \mathbb{E}_{(x,y)} [\ell(f_\theta(x), y)]$ — ground truth $y$ আছে। RL-এ আমরা maximize করি $J(\theta) = \mathbb{E}_\pi [\sum_t \gamma^t r_t]$ — কোনো ground truth নেই, শুধু expected return।
৫ · RL-এর মূল কাঠামো
প্রতিটি RL সমস্যায় চারটি জিনিস থাকে:
- Agent — যে শিখছে (একটি গেম-প্লেয়ার, একটি রোবট, ChatGPT)
- Environment — যেখানে agent কাজ করে (গো বোর্ড, রাস্তা, conversation)
- Action $a_t$ — agent কী করল
- Reward $r_t$ — পরিবেশ কী feedback দিল
প্রতিটি timestep $t$-এ — agent state $s_t$ দেখে, action $a_t$ বাছে, পরিবেশ পরিবর্তিত হয়ে $s_{t+1}$ হয়, এবং reward $r_{t+1}$ আসে। লক্ষ্য — দীর্ঘমেয়াদে cumulative reward সর্বোচ্চ:
$$G_t = r_{t+1} + \gamma r_{t+2} + \gamma^2 r_{t+3} + \ldots = \sum_{k=0}^{\infty} \gamma^k r_{t+k+1}$$
এখানে $\gamma \in [0, 1)$ হলো discount factorDiscount Factor (γ)ভবিষ্যৎ reward-কে কতটা গুরুত্ব দেওয়া হবে তার ratio। γ=0 মানে শুধু এই মুহূর্ত, γ=1 মানে সব ভবিষ্যৎ সমান গুরুত্বপূর্ণ। সাধারণত 0.9-0.99। — কত দূরের reward-কে কতটা মূল্য দেব।
৬ · একটি ছোট্ট Python সিমুলেশন
নিচের কোডে — একটি random agent একটি ৪×৪ গ্রিড-এ হাঁটে। লক্ষ্য — উপরের-ডান কোণায় পৌঁছানো (reward = +১০)। প্রতিটি step-এ reward = -১ (যেন তাড়াতাড়ি পৌঁছায়)।
import numpy as np
# 4x4 গ্রিড — goal উপরের-ডান কোণায়
GRID = 4
GOAL = (0, 3)
ACTIONS = ['up', 'down', 'left', 'right']
def step(state, action):
r, c = state
if action == 'up': r = max(0, r-1)
if action == 'down': r = min(GRID-1, r+1)
if action == 'left': c = max(0, c-1)
if action == 'right': c = min(GRID-1, c+1)
new_state = (r, c)
reward = 10 if new_state == GOAL else -1
done = new_state == GOAL
return new_state, reward, done
# Random agent চালাই
np.random.seed(0)
state = (3, 0) # নিচের-বাম কোণা থেকে শুরু
total_reward = 0
for t in range(50):
a = np.random.choice(ACTIONS)
state, r, done = step(state, a)
total_reward += r
if done:
print(f"🎯 Goal পৌঁছেছে step {t+1}-এ! Total reward = {total_reward}")
break
else:
print(f"⏱️ Goal পৌঁছায়নি ৫০ step-এ। Total reward = {total_reward}")
৭ · কোথায় RL কাজ করে, কোথায় না
ভালো কাজ করে যেখানে:
- Game playing: Chess, Go, StarCraft, Dota — clear reward (জয়/হার), perfect simulator।
- Robotics: walking, grasping — physics simulation-এ train করে real robot-এ deploy।
- Recommendation: click-through rate maximize — ad serving, news feed।
- LLM alignment (RLHF): human preference-এ model align — ChatGPT, Claude।
- Resource optimization: data center cooling (Google ৪০% খরচ কমায়), traffic light control।
খারাপ কাজ করে যেখানে:
- Sample-inefficient task: RL-এর কোটি কোটি sample লাগে। মেডিকেল diagnosis-এ এত data নেই।
- Sparse-reward sans simulator: 'বছরে একবার success' — real world-এ train করা impossible।
- Reward design কঠিন: "মানুষকে সাহায্য করো" — কীভাবে scalar reward হবে? RLHF এর উত্তর।
- Safety-critical exploration: autonomous car real world-এ random action নিতে পারে না।
৮ · একটি অনুভব — কেন agent শিখতে চায়
একটা সরল ধারণা থেকে শুরু — agent-এর "ইচ্ছা" হলো যত বেশি reward সম্ভব জোগাড় করা। এই ইচ্ছাই সব strategy-র উৎস। দাবা খেলায় queen sacrifice — short-term loss, long-term win — agent শিখে এই trade-off। এটা মানুষের intelligence-এর কাছাকাছি আসে — কারণ মানুষও এভাবেই শেখে।
import numpy as np
# একটি ক্ষুদ্র Q-table দিয়ে দেখাই agent কীভাবে শেখে
# (সম্পূর্ণ Q-learning পরের পাঠে — এটা শুধু intuition)
q_table = np.zeros((4, 4, 4)) # 4x4 state, 4 action
# একটি episode-এর শেষে — যদি goal পৌঁছায় — সব action-এ +5 যোগ
def update_after_episode(trajectory, success):
if success:
for (state, action_idx) in trajectory:
r, c = state
q_table[r, c, action_idx] += 0.5 # মৃদু update
# এই simple update-ও — হাজার episode-এ — agent-কে ভাল করে।
# পরের পাঠগুলোয় Bellman, Q-learning দিয়ে গাণিতিক ভাবে দেখব।
print("Q-table আকার:", q_table.shape)
print("শূন্য থেকে শুরু — অভিজ্ঞতা থেকে ভরবে।")
৯ · এই কোর্সে আমরা কোথায় যাব
- মডিউল ১: RL-এর গণিত — MDP, value, Bellman, exploration।
- মডিউল ২: Value-based — Q-learning, DQN ও তার extension।
- মডিউল ৩: Policy-based — REINFORCE, A2C, PPO, SAC।
- মডিউল ৪: আধুনিক RL — MCTS, multi-agent, RLHF, project।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ RL-কে কেন "machine learning-এর তৃতীয় শাখা" বলা হয়? supervised + পরিবেশ = RL — এটা কি সঠিক formulation?
RL-কে আলাদা শাখা বলা হয় কারণ সমস্যার structure মৌলিকভাবে ভিন্ন — শুধু আলাদা loss function নয়।
Supervised + পরিবেশ ≠ RL — কারণ:
- Distribution shift: agent-এর policy বদলালে — দেখা data-ও বদলায়। Supervised-এ training distribution স্থির, RL-এ এটা agent-নির্ভর। এটাকে বলে non-stationarity।
- Counterfactual অজানা: "অন্য action নিলে কী হতো?" — সেই data নেই। Supervised-এ পুরো input-output joint distribution আছে।
- Exploration: data কোথা থেকে আসবে — সেটাও agent-এরই সিদ্ধান্ত। Supervised-এ data দেওয়া থাকে।
- Credit assignment: reward delayed হলে — কোন action দায়ী সেটা বের করতে হয়।
কেন তবু কিছু মিল আছে:
- Optimal policy দেওয়া থাকলে — RL → behavioral cloning (supervised)।
- Reward model দেওয়া থাকলে — RL → planning + supervised value regression।
- Value function fit করা = সংখ্যাত্মকভাবে regression।
মূল উপলব্ধি: RL = supervised learning + closed-loop interaction + exploration + credit assignment। প্রতিটি upgrade নতুন challenge আনে। সুতন-Barto-র classic বই এ চারটিকে আলাদা শাখা হিসেবে formal করেছে।
ঐতিহাসিক সংযোগ: RL-এর শিকড় psychology-তে (Thorndike, Pavlov, Skinner) — animal learning থেকে। ML-এর অন্য শাখা statistics ও optimization থেকে। তাই RL-এ "agent", "reward", "behavior" — শব্দগুলো জীববিজ্ঞান-ছোঁয়া।
প্র ০২ RLHF কেন supervised fine-tuning-এর চেয়ে ভালো কাজ করে ChatGPT-এর জন্য? কেন human preference-এর জন্য আলাদা reward model লাগে?
RLHF (Reinforcement Learning from Human Feedback) আজ LLM alignment-এর মেরুদণ্ড। এর কেন এত effectiveness — এটা বুঝতে হলে supervised fine-tuning-এর সীমা বুঝতে হয়।
Supervised fine-tuning (SFT)-এর সমস্যা:
- মানুষ "ভালো উত্তর" লেখে — model সেটা imitate করে। কিন্তু "ভালো" বহুমুখী — একই প্রশ্নের অনেক ভালো উত্তর সম্ভব।
- SFT mode-collapse করে — সবচেয়ে probable token sequence টানে, যা প্রায়ই vague বা generic।
- "কোনটা সবচেয়ে ভালো" — এই সূক্ষ্ম signal SFT-এ নেই।
- Negative examples নেই — কী না করা উচিত — model জানে না।
RLHF-এর কাঠামো:
- Stage ১ (SFT): মানুষ-লেখা ভালো উত্তরে fine-tune। base capability।
- Stage ২ (Reward Model): প্রতি প্রম্পটে — model কয়েকটি উত্তর তৈরি, মানুষ ranking দেয়। reward model train হয় এই preference থেকে।
- Stage ৩ (PPO): RM-কে reward হিসেবে ব্যবহার করে — model নিজে নিজে generate করে, RM score বাড়ায়, KL penalty দিয়ে base থেকে দূরে না সরে।
কেন reward model লাগে — সরাসরি human feedback না করে:
- মানুষ ১M response rank করতে পারে না — খুব ব্যয়বহুল।
- RM = "human preference simulator" — একবার train, লক্ষ লক্ষ samples-এ স্কোর দিতে পারে।
- Pairwise preference (A vs B) absolute rating-এর চেয়ে stable — মানুষ inconsistent absolute scoring।
- Bradley-Terry model — preference থেকে latent score বের করার গাণিতিক উপায়।
কেন RL — supervised এ reward model দিয়ে regression না কেন:
- Reward model একটি function — প্রতিটি output-এ score। কিন্তু LLM-এর output discrete token sequence — supervised করা যায় না সরাসরি।
- Sequence generate করার সময় — কোন token কতটুকু contribute করছে — RL সেটা TD-style propagate করে।
- Mode-seeking behavior — RL distribution-এর high-RM-region-এ যায়, যেখানে SFT mean-এ যায়।
মূল উপলব্ধি: RLHF = "preference signal কে scalar reward-এ রূপান্তর + RL-এ সেটা optimize"। DPO (পরের পাঠে) এই pipeline সরল করে — RL ছাড়াই preference-এ optimize। কিন্তু RL-এর paradigm সমস্যাটি কীভাবে frame করতে হয় — সেটা প্রথমে শিখিয়েছে।
প্র ০৩ Sparse reward মানে কী? "জিতলে +১, হারলে -১" — এই simple reward নিয়ে AlphaGo কেন কোটি কোটি গেম খেলতে পারল কিন্তু একই সরলতা কেন একটি রোবট-এর জন্য কাজ করে না?
Sparse reward — RL-এর সবচেয়ে গুরুতর সমস্যাগুলোর একটি। যখন বহু action-এর পরে এক বিরল reward — agent কীভাবে শিখবে?
AlphaGo কেন sparse reward সামাল দিতে পারল:
- Perfect simulator: Go-এর rules deterministic ও cheap। সেকেন্ডে হাজার হাজার গেম simulate।
- Self-play parallelism: ৫০০০ TPU-তে সমান্তরাল গেম। কোটি কোটি sample সহজেই।
- MCTS (পরে আলোচনা): tree search policy-কে guidance দেয় — pure RL-এর চেয়ে অনেক বেশি sample-efficient।
- Symmetric structure: board state-এর symmetry data 8x বাড়ায়।
- Curriculum: দুর্বল মডেলের সাথে খেলে নিজেকে train, ধীরে ধীরে শক্ত। implicit curriculum learning।
রোবট-এ কেন একই recipe কাজ করে না:
- Slow simulator: physics simulator real-time-এর কাছাকাছি — 100x speedup, 10000x না। Hardware-এর data আরও দামী।
- Sim-to-real gap: simulator-এ যা শেখে — real robot-এ ভেঙে পড়ে। friction, gravity, sensor noise — সব ভিন্ন।
- Continuous high-D action: 7-DOF arm — exploration combinatorially harder।
- Safety: robot-এর exploration শারীরিক ক্ষতি করতে পারে।
সমাধানের পথ:
- Reward shaping: intermediate reward design — distance to goal, energy efficiency। কিন্তু ভুল shape করলে — agent shortcut খুঁজে।
- Imitation learning: human demonstration থেকে শুরু (পাঠ ২৭)।
- Curiosity-driven exploration: intrinsic reward — প্রতি novel state-এ bonus।
- Hierarchical RL: "options" — উচ্চ-level subgoals, low-level skills।
- Domain randomization: simulator-এ noise যোগ করে real-এ transfer।
মূল উপলব্ধি: RL-এর success প্রধানত এই দু'টির উপর নির্ভর — (১) sample collection-এর গতি, (২) reward signal-এর density। Game-এ দু'টিই ভালো, real-world-এ দু'টিই কঠিন। এই কারণেই Atari, Go, Dota — RL-এর showcase, কিন্তু production রোবট এখনো হাইব্রিড (RL + control theory + classical planning)।
প্র ০৪ আপনি Daraz-এর জন্য একটি product recommendation system RL দিয়ে design করছেন। কী state, action, reward হবে? কী চ্যালেঞ্জ আসবে — যা একটি গেম-এ আসবে না?
Real-world recommendation — RL-এর একটি প্রধান প্রয়োগ ক্ষেত্র। YouTube, TikTok, Netflix — সবাই RL ব্যবহার করে।
Daraz recommendation MDP design:
- State $s_t$:
- User profile vector (age, location, gender, past purchases)
- Recent session: last 10 viewed/clicked products
- Time of day, day of week, season (festival proximity)
- Current cart contents
- ~৫০-১০০ dimensional
- Action $a_t$: কোন product (বা product set) recommend করব। Action space — হাজার হাজার product।
- Reward $r_t$: Multi-objective —
- Click: +১
- Add to cart: +৩
- Purchase: +১০ (× margin %)
- Skip / no engagement: ০ বা -০.১
- Complaint / refund: -১০
চ্যালেঞ্জ যা গেম-এ আসে না:
(১) Off-policy এক্সক্লুসিভিটি:
- আপনি যে policy দিয়ে data সংগ্রহ করেন — সেটা production policy। Random exploration ব্যবহারকারী-অভিজ্ঞতা নষ্ট করে।
- সমাধান — counterfactual evaluation, importance sampling, off-policy correction।
(২) Long-term vs short-term tension:
- Click-bait দেখালে immediate click বাড়বে কিন্তু user trust নষ্ট, long-term engagement কমে।
- Multi-step reward design — কিন্তু "long-term value" measure করা কঠিন (user churn measurement noisy)।
(৩) Non-stationarity:
- Trend বদলায় (Eid season-এ ভিন্ন pattern), নতুন product যোগ হয়, user preference শিফট করে।
- Game-এ rules স্থির — Daraz-এ environment নিজেই বদলায়।
(৪) Partial observability:
- User-এর "মন" দেখা যায় না। শুধু behavior signals — যা incomplete।
- POMDP framework দরকার — RNN/Transformer state encoder।
(৫) Confounders ও bias:
- "যে product top-এ সেটা click বেশি" — popularity bias। RL এই pattern reinforce করে।
- Gender/location-based filter bubble। Ethical issue।
(৬) Multi-stakeholder reward:
- User satisfaction, seller revenue, platform commission — সব align নয়।
- Single scalar reward = compromise।
(৭) Cold start:
- নতুন user — কোনো history নেই। RL agent কী করবে?
- Bandit-style exploration (পাঠ ০৭) দরকার।
মূল উপলব্ধি: Real-world RL = "core RL algorithm" + "অনেক engineering hack"। প্রতিটি hack একটি assumption ভাঙার ফলাফল — যা game-এ valid কিন্তু real-world-এ না। এই কারণেই production RL system এ ১০ জনের team-এ ৮ জন infrastructure ও offline evaluation-এ কাজ করেন, ২ জন algorithm-এ।
অনুশীলন
-
Paradigm চেনুন: নিচের প্রতিটি সমস্যাকে supervised, unsupervised, বা RL — কোনটি সবচেয়ে ভাল ফিট, বলুন এবং কেন।
- (ক) ছবিতে কুকুর/বিড়াল চিহ্নিত করা
- (খ) Email customers কয়টি cluster-এ বিভক্ত
- (গ) Self-driving car কখন brake করবে
- (ঘ) ChatGPT-এর politeness improve
- (ক) Supervised — labeled (image, label) ডেটা পাওয়া যায়।
- (খ) Unsupervised — শুধু email features, label নেই — clustering।
- (গ) RL (বা hybrid) — sequential decision, delayed reward (safety, fuel efficiency)। বাস্তবে imitation learning + RL fine-tune।
- (ঘ) RL/RLHF — "politeness" subjective, human preference signal থেকে reward, RL দিয়ে optimize।
-
Discount factor হিসাব: $\gamma = 0.9$, $r_1 = 1, r_2 = 2, r_3 = 3, r_4 = 10$ (terminal)। $G_0$ কত?
$G_0 = r_1 + 0.9 \cdot r_2 + 0.81 \cdot r_3 + 0.729 \cdot r_4$
$= 1 + 1.8 + 2.43 + 7.29 = 12.52$লক্ষ্য করুন — terminal reward ১০ হলেও discount-এর পর effective ৭.২৯।
-
Reward design: একটি food delivery agent design করুন। delivery time কমানো ও food temperature বজায় রাখা — দু'টোই গুরুত্বপূর্ণ। কী reward function বানাবেন? কী কী pitfall এড়াবেন?
সম্ভাব্য reward:
$r = \alpha \cdot (\text{TargetTime} - \text{ActualTime}) + \beta \cdot \text{FoodTempScore} - \gamma \cdot \text{FuelCost}$
(এখানে $\gamma$ হলো coefficient, RL-এর discount নয়)
Pitfall:
- শুধু time minimize করলে — agent বিপজ্জনক fast driving শিখবে। safety penalty দরকার।
- Food temp শুধু end-এ measure — sparse। intermediate sensor-based reward।
- Reward hacking — agent খাবার microwave-এ গরম করে ৫ সেকেন্ড আগে! exploit-প্রবণতা।
- α, β, γ tuning — Pareto optimal খোঁজা কঠিন।
মূল কথা: reward design = product design। কী চাই সেটা সঠিকভাবে express করতে না পারলে — RL সেটাই খুঁজে যা সবচেয়ে সহজে exploit করা যায়।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পাঠ ০২ · Agent, Environment, Reward — মূল অনুঘটক পরবর্তী পাঠ RL-এর চারটি মৌলিক component-কে formal-ভাবে introduce করব।
- কোর্স outline এই কোর্স ৩২টি পাঠের সম্পূর্ণ তালিকা — কোথায় যাচ্ছি দেখুন।
- পাঠ ০৩ · Markov Decision Process এই পাঠের সাথে সম্পর্কিত RL-এর গাণিতিক formulation — MDP।
- সব AI Courses দেখুন ABCL TECH Python, ML, DL, NLP, CV, GenAI, RL, MLOps — সব AI কোর্স একসাথে।