Multi-agent RL — সহযোগিতা ও প্রতিদ্বন্দ্বিতা
এই পাঠে যা শিখবেন
- Multi-agent setting-এ non-stationarity ও credit assignment problem
- Cooperative, competitive, mixed game-এর গাণিতিক formalism
- MADDPG architecture — কেন centralized training + decentralized execution
- OpenAI Five ও AlphaStar — production-scale multi-agent achievements
১ · Multi-agent — single-agent থেকে কেন কঠিন?
এতদিন আমরা ধরে এসেছি — একটি agent, একটি environment, fixed dynamics. কিন্তু বাস্তবে: রাস্তার গাড়ি একে অপরের প্রতিক্রিয়ায় চলে; বাজারে দু'জন trader একসাথে শিখছে; football-এর ১১ জন প্লেয়ার coordinate করে। এই সব multi-agent problem.
মূল challenge — একজন agent-এর দৃষ্টিতে environment non-stationary. কারণ অন্য agent-ও শিখছে, তাদের policy বদলাচ্ছে। যা গতকাল optimal ছিল, আজ নয়। এটা সরাসরি Q-learning-এর convergence guarantees ভাঙে।
Single-agent: $P(s'|s,a)$ ও $R(s,a)$ স্থির। Q-learning convergence proof valid.
Multi-agent: $P$ ও $R$ অন্য agents-এর policy-এর উপর নির্ভর। তাদের policy বদলালে environment-ও বদলে। Standard RL guarantees ভেঙে পড়ে।
২ · গাণিতিক formalism — Markov Game
MDP-র extension: Markov Game বা Stochastic Game. $N$ agents:
- State $s \in \mathcal{S}$ — সবাই দেখে (full obs) বা নিজস্ব $o_i$ (partial).
- Action: joint $\mathbf{a} = (a_1, \ldots, a_N)$।
- Transition: $P(s' | s, \mathbf{a})$।
- Reward: প্রতিটি agent-এর জন্য $r_i(s, \mathbf{a})$।
তিন category:
- Fully cooperative: $r_1 = r_2 = \ldots = r_N$ — একই reward. গোল: team return maximize.
- Fully competitive (zero-sum, ২ agent): $r_1 + r_2 = 0$। AlphaZero, পোকার।
- Mixed (general-sum): partial cooperation. Traffic, market, social dilemma.
৩ · Solution concept — Nash equilibrium
Multi-agent-এ "optimal" definition tricky. সবচেয়ে ব্যবহৃত: Nash Equilibrium — কোনো agent-ই unilaterally policy পরিবর্তন করে gain করতে পারে না: $$V_i(\pi_i^*, \boldsymbol{\pi}_{-i}^*) \geq V_i(\pi_i, \boldsymbol{\pi}_{-i}^*) \quad \forall \pi_i, \forall i$$
Two-player zero-sum-এ Nash সবসময় আছে (Minimax theorem). General-sum-এ multiple Nash থাকতে পারে — কোনটি বাছবেন? এটি অন্যতম unsolved problem.
৪ · Naive approach — Independent Learners
সবচেয়ে সহজ idea: প্রতিটি agent নিজে standalone Q-learning/PPO চালায়, অন্যদের environment-এর অংশ ভাবে। কাজ করে?
- সরল cooperative game: অনেক সময় কাজ করে — ছোট state space, predictable opponent.
- Competitive বা complex coop: ভেঙে পড়ে — non-stationarity আগের point থেকে।
- Credit assignment: team-wide reward এলে — কে contribute করল কেউ জানে না।
সমাধানগুলো এই দুর্বলতাগুলো address করে।
৫ · CTDE — Centralized Training, Decentralized Execution
Multi-agent RL-এর ১০ বছরের সবচেয়ে useful idea. Train-এর সময় — সবাই একে অপরের state, action দেখে; এটা stationary environment তৈরি করে। Execution-এ — শুধু নিজস্ব observation. দু'টি নাম: MADDPG (Lowe et al., ২০১৭) ও QMIX (Rashid et al., ২০১৮)।
MADDPG-এর critic প্রতিটি agent-এর জন্য:
$$Q_i^\mu(s, a_1, a_2, \ldots, a_N) — \text{সবার action জানে}$$
Actor (deployment): $\mu_i(o_i)$ — শুধু নিজস্ব observation.
প্রতিটি critic-এর target — অন্য agents-এর target policy দিয়ে compute. Replay buffer-এ joint $(s, a_1, \ldots, a_N, r_1, \ldots, r_N, s')$ store.
৬ · MADDPG PyTorch sketch
import torch, torch.nn as nn
import torch.nn.functional as F
N = 3 # number of agents
obs_dim, act_dim = 18, 5
class Actor(nn.Module):
def __init__(self):
super().__init__()
self.net = nn.Sequential(
nn.Linear(obs_dim, 128), nn.ReLU(),
nn.Linear(128, 128), nn.ReLU(),
nn.Linear(128, act_dim), nn.Tanh(),
)
def forward(self, o):
return self.net(o)
class CentralCritic(nn.Module):
"""Sees ALL agents' obs and actions."""
def __init__(self):
super().__init__()
self.net = nn.Sequential(
nn.Linear(N * (obs_dim + act_dim), 256), nn.ReLU(),
nn.Linear(256, 256), nn.ReLU(),
nn.Linear(256, 1),
)
def forward(self, all_obs, all_acts):
x = torch.cat([all_obs.flatten(-2), all_acts.flatten(-2)], -1)
return self.net(x).squeeze(-1)
actors = [Actor() for _ in range(N)]
critics = [CentralCritic() for _ in range(N)]
opt_a = [torch.optim.Adam(a.parameters(), lr=1e-3) for a in actors]
opt_c = [torch.optim.Adam(c.parameters(), lr=1e-3) for c in critics]
gamma = 0.95
def update(batch, i):
"""One MADDPG update for agent i."""
o, a, r_i, o_next = batch # joint obs/acts; r_i is agent i's reward
# 1) Critic loss
with torch.no_grad():
a_next = torch.stack([actors[j](o_next[..., j, :]) for j in range(N)], dim=-2)
y = r_i + gamma * critics[i](o_next, a_next)
q = critics[i](o, a)
loss_c = F.mse_loss(q, y)
opt_c[i].zero_grad(); loss_c.backward(); opt_c[i].step()
# 2) Actor loss — agent i's policy gradient
a_i_pred = actors[i](o[..., i, :])
a_pred = a.clone()
a_pred[..., i, :] = a_i_pred
loss_a = -critics[i](o, a_pred).mean()
opt_a[i].zero_grad(); loss_a.backward(); opt_a[i].step()
return float(loss_c), float(loss_a)
৭ · Self-play scaled — OpenAI Five ও AlphaStar
OpenAI Five (২০১৮): Dota-2 — ৫v৫ team game. প্রতিটি hero একটি LSTM-based PPO agent. ৬৪০ unique skill, ১১৭ heroes, partial observability. প্রায় ৪৫,০০০ বছরের simulated play (১২৮,০০০ CPU + ২৫৬ GPU). ২০১৯-এ World Champion OG-কে ২-০ হারায়।
- Surgery: game patch হলে — full retrain না করে network "surgery". Old weights extend.
- Team spirit τ: reward = $(1-\tau) r_i + \tau \bar{r}$। Initially τ low (selfish), ক্রমে বাড়ে (team). Curriculum বুদ্ধিমত্তা।
AlphaStar (২০১৯): StarCraft-II — ১v১ RTS, partial obs, real-time, action space বিশাল। DeepMind সমাধান:
- Imitation learning থেকে শুরু — replay file থেকে human strategy seed.
- League training: Main + Exploiter + League agents — pure self-play-র rock-paper-scissors এড়াতে।
- Result: Grandmaster level — top ০.২%.
৮ · Emergent behaviors
Multi-agent training-এর সবচেয়ে আকর্ষণীয় দিক — pre-programmed না হওয়া complex behavior emerge হয়:
- Hide-and-seek (OpenAI, ২০১৯): agents emergence-এ tool use শিখে — ramp ব্যবহার করে wall block, opponent বাক্সে আটকানো। ৬টি distinct strategy auto-emerge.
- Capture the flag (DeepMind): coordination — defenders + attackers দল ভাগ।
- OpenAI Five: "5-man push", "split push", lane rotation — Dota community-র সব strategy.
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ OpenAI Five-এর "team spirit τ" কেন প্রথমে কম, পরে বেশি? উল্টো করলে কী হত?
চমৎকার curriculum design question.
Setup: $r_i^{\text{shaped}} = (1-\tau) r_i^{\text{individual}} + \tau \bar{r}^{\text{team}}$, $\tau \in [0, 1]$।
(১) Individual reward signal denser: Dota-তে kill, last-hit, gold — প্রতিটি hero নিজে measurable. Team win rare event (গেমের শেষে)। প্রথমে individual signal দিলে — gradient signal density বেশি, learning fast.
(২) Skill before strategy: agent প্রথমে নিজের hero চালানো শিখে — last-hit, dodge skill, item usage. সেটা না জানলে team coordination অর্থহীন। Same as football — passing শেখার আগে dribbling.
(৩) Selfish exploration: early training-এ — selfish behavior diverse. সব agent নিজস্ব niche develop করে। পরে team-অনুকূলে adjustment. Diversity → coordination.
(৪) Why increase τ later: skill শেখার পর — team-fight, objective control, lane rotation — সব team-game. সেখানে individual reward misleading হতে পারে (e.g., farm করতে গেলে team late-game suffer).
উল্টো করলে:
- প্রথমে $\tau = 1$ (pure team): team win rare → gradient sparse → random behavior dominate. Agent কোনো skill শেখে না।
- Late game τ=0 (selfish): high-skill agents team-fight ছেড়ে farm করবে। Lose by sabotage.
(৫) Curriculum learning theory: "Easy first, hard later" — Bengio (২০০৯)। Multi-agent-এ — individual goal easy, team coordination hard. OpenAI Five সেই theory-র concrete demo.
(৬) Generalization: এই trick অন্য domain-এ — team robotics-এ — apply করা হচ্ছে। StarCraft-এ AlphaStar similar curriculum.
মূল উপলব্ধি: Multi-agent reward shaping = curriculum. Single-agent-এ আমরা environment difficulty বাড়াই; multi-agent-এ — coordination intensity.
প্র ০২ Independent Q-learning (IQL) তো ভেঙে পড়ার কথা — তবু কেন কখনো কখনো কাজ করে? Centralized critic বাধ্যতামূলক না হলে কখন?
এটি একটি subtle empirical truth — IQL অনেক জায়গায় surprising-ভাবে কাজ করে।
কখন IQL কাজ করে:
- Loosely-coupled agents: traffic-এ গাড়ি — পাশের গাড়ি ছাড়া অন্যদের influence কম। Local interaction → IQL fine.
- Slowly-changing opponents: opponents যদি ধীরে শিখে — moving target slow enough to track.
- Symmetric agents: সব agent একই (homogeneous) — একে অপরের best response naturally align.
- Cooperative + dense reward: credit assignment problem কম severe.
কখন ভেঙে পড়ে:
- Tightly-coupled coordination: Hanabi, StarCraft — exact joint action important. IQL miss.
- Adversarial: opponent দ্রুত evolve — moving target fast.
- Sparse reward: credit assignment-এ explicit signal need.
- Heterogeneous roles: different abilities, asymmetric. Single agent ভাবা যায় না।
Empirical evidence:
- Tampuu et al. (২০১৭) — ALE-এ Pong/Tag-এ IQL surprisingly competitive.
- de Witt et al. (২০২০) — "Independent PPO" simple SMAC tasks-এ MAPPO-র কাছাকাছি।
- Foerster (Hanabi) — IQL ব্যর্থ; QMIX, BAD প্রয়োজন।
Practical advice:
- সবসময় IQL baseline চালান — সরল, fast.
- যদি ভাল-ই — production deploy. Centralized critic complexity-overhead দরকার নেই।
- IQL stuck হলে — MADDPG/MAPPO/QMIX try.
- Final option — parameter sharing, attention-based communication.
(বোনাস insight) Modern MAPPO (Yu et al., ২০২২) দেখায় — independent PPO-র সাথে centralized critic যোগ করলেই অনেক benchmark-এ SOTA. ভারী QMIX-এর প্রয়োজন রহিত।
মূল কথা: Theory বলে IQL fail করার কথা — practice often disagrees. Empirical baselines first, theory-driven complexity only when needed.
প্র ০৩ OpenAI Five জিতে গেলেও — পরে disabled হয়েছে। AlphaStar মানুষ-পর্যায়ে দাঁড়িয়েই থেমেছে। Production multi-agent RL এত rare কেন?
চমৎকার critical question — research vs deployment-এর বিশাল gap.
(১) Compute budget অসহনীয়: OpenAI Five — ১২৮,০০০ CPU + ২৫৬ GPU, প্রতি ২ সেকেন্ডে full game-day সিমুলেট। AlphaStar — ১৬ TPU × ৪৪ দিন × ১২ agents. Cost millions-of-dollars. Recurring revenue-এর pathway অস্পষ্ট।
(২) Brittleness: Adversarial example — Adam Gleave-এর ২০২০ paper দেখায় AlphaStar-কে "weird" opening দিয়ে break. Trained agent narrow distribution-এ — out-of-distribution opponent fail. Production-এ unacceptable.
(৩) Debugging hard: single-agent debug-এ তো কষ্ট, multi-agent-এ ১০×। কোন agent-এর কারণে fail? Reward shaping change করলে কী হবে — কেউ জানে না।
(৪) Game-specific engineering: Dota-এর প্রতিটি hero-এর জন্য hand-crafted obs encoding. Patch এলে — extensive surgery. Generality কম।
(৫) Limited revenue model: "Beat humans" novelty wears off. Consumer entertainment-এ — humans চায় opponent fun, not impossibly strong. Twitch demonstrations দু'বছর viral, তারপর forgotten.
(৬) Where multi-agent IS in production:
- Algorithmic trading: hedge funds — কিন্তু private, very hidden.
- Ad auction bidding: Google, Meta — implicit market RL.
- Recommendation systems: users + items + advertisers একটি multi-agent equilibrium.
- Robot fleet (Amazon warehouse): hundreds of robots coordinate path.
- Power grid balancing: distributed generators — early-stage MARL.
(৭) Scientific use: AI safety research — agent-agent dynamics study, mesa-optimization.
মূল উপলব্ধি: Game-AI demo headline-grabbing — কিন্তু true production multi-agent quietly সবখানে। Bidding, routing, market — প্রতিটিতে। শুধু "RL" label-এ আসে না।
প্র ০৪ আপনি Dhaka-র traffic light controller-এর জন্য multi-agent RL design করছেন — ১০০টি signal একসাথে। Architecture কী হবে?
চমৎকার applied scenario.
Setup:
- Agent: প্রতিটি traffic light একটি agent. ১০০টি।
- State (local): waiting queue length per direction, current phase, time-since-last-switch.
- State (global): neighbor signal status, time-of-day, weather flag.
- Action: discrete — phase 1/2/3/4 select, বা hold (stay current).
- Reward: $-\sum(\text{queue length}) - \alpha \cdot \text{switch penalty}$।
Architecture choice:
- Parameter sharing: ১০০টি signal homogeneous — একই network architecture, weights share. ১০০× sample efficiency.
- Local observation only (deployment): communication latency reality. Each signal own decisions.
- Centralized critic (training): simulator-এ — global queue-state available. Critic হ্যান্ডল করে non-stationarity.
- Graph structure: signals graph nodes — adjacency = roads connect. Graph Neural Net (GNN) message passing — neighbor-aware.
Training pipeline:
- Phase 1: SUMO/CityFlow simulator — calibrated to Dhaka traffic data (Bangladesh Road Transport Authority).
- Phase 2: MAPPO with parameter sharing + GNN critic. ~১M episodes.
- Phase 3: Sim-to-real — domain randomization (queue noise, sensor failure).
- Phase 4: Shadow deploy — agent suggests, current signal-controller decides. ৩-৬ মাস log.
- Phase 5: Gradual handover — confidence-weighted. Edge cases (VIP convoy, accident) → human override.
Dhaka-specific challenges:
- Mixed traffic: rickshaw, CNG, bus, bike, pedestrian — heterogeneous speed/size. Sensor design হার্ড।
- Manual override habit: traffic police হাত দিয়ে control করেন। RL agent মাঝে মাঝে disabled হবে। Robust to interruption.
- Religious/cultural events: Eid jamaat, friday prayer, Pohela Boishakh — extreme spike. Pre-defined "festival mode".
- Power outages: backup mode (fixed timing) embedded.
- Vehicle non-compliance: red-light violation common — RL must not "trust" all vehicles will stop.
Evaluation metric: avg waiting time, total throughput, equity (poor-area road কি extra delay পাচ্ছে?), safety incidents.
Reality check: Hangzhou (China) deployed similar system — ১৫% avg delay reduction. Dhaka-র চ্যালেঞ্জ বেশি, কিন্তু improvement potential বিশাল।
মূল কথা: Multi-agent RL দাবি করে compute + simulator + domain expertise + slow rollout. One-shot research demo না — ৩-৫ বছরের infrastructure investment.
অনুশীলন
-
Game classification: নিচের গেম-গুলো cooperative/competitive/mixed কোনটি? (a) Football, (b) Tennis 1v1, (c) Two cars merging into highway, (d) Hanabi (cooperative card game), (e) Stock trading.
- (a) Football — mixed (team-cooperative, intra-team mostly cooperative; inter-team competitive zero-sum at scoreline level)
- (b) Tennis 1v1 — fully competitive zero-sum
- (c) Highway merge — mixed, primarily cooperative (avoid crash) with mild competition (lane priority)
- (d) Hanabi — fully cooperative
- (e) Stock trading — general-sum mixed (one wins, another loses, but new money entry-exit changes pie)
-
Non-stationarity: দু'টি agent IQL চালাচ্ছে rock-paper-scissors-এ। Equilibrium কী? কেন IQL converge না হতে পারে?
Nash equilibrium: uniform mixed strategy ($1/3, 1/3, 1/3$)। কিন্তু IQL deterministic Q-update — Agent 1 rock prefer করলে Agent 2 paper, তাহলে Agent 1 scissors, then Agent 2 rock... infinite cycle. Mixed strategy শেখা যায় না deterministic Q দিয়ে — soft policy (Boltzmann, entropy reg) লাগে।
-
CTDE intuition: এক-line-এ ব্যাখ্যা করুন — কেন training-এ centralized critic non-stationarity সমস্যা সমাধান করে?
Critic যদি সব agent-এর action জানে, তাহলে environment তার দৃষ্টিতে stationary — কারণ "অজানা agent policy" আর hidden variable নয়, observed variable.
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পাঠ ২৭ · Inverse RL ও imitation পরবর্তী পাঠ Reward shape করার বদলে demonstration থেকে শেখা।
- পাঠ ২৫ · MCTS ও AlphaZero আগের পাঠ Two-player zero-sum-এর gold standard.
- পাঠ ৩২ · কোর্সের চূড়ান্ত পর্যালোচনা কোর্স review কখন multi-agent, কখন single-agent.
- সব AI Courses দেখুন ABCL TECH Python, ML, DL, NLP, CV, GenAI, RL — সব AI কোর্স একসাথে।