Multi-Agent Reinforcement Learning이란?
Multi-Agent Reinforcement Learning(MARL)은 여러 에이전트가 동시에 환경과 상호작용하며 학습하는 강화학습 기법입니다. 단일 에이전트 강화학습과 달리, MARL은 에이전트 간 협력, 경쟁, 또는 혼합 시나리오를 다룹니다.
핵심: 각 에이전트는 독립적으로 행동하지만, 다른 에이전트의 행동이 환경을 변화시키므로 비정상성(non-stationarity) 문제가 발생합니다.
MARL이 필요한 실무 사례
- 자율주행: 여러 차량이 도로에서 협력하여 교통 흐름 최적화
- 로봇 협업: 창고에서 다수의 로봇이 협력하여 물류 처리
- 게임 AI: Dota 2, StarCraft II 등 멀티플레이어 게임
- 금융 거래: 다수의 트레이딩 봇이 시장에서 경쟁
주요 MARL 알고리즘 비교
1. QMIX (Q-Mixing)
QMIX는 협력적 MARL을 위한 value-based 방법론입니다. 각 에이전트의 개별 Q-함수를 단조 함수(monotonic function)로 결합하여 전체 팀의 Q-함수를 생성합니다.
핵심 아이디어:
# 개별 에이전트 Q-value를 mixing network로 결합
Q_tot = MixingNetwork([Q1, Q2, ..., Qn], state)
# 단조성 보장: ∂Q_tot/∂Q_i ≥ 0
장점:
– Centralized Training, Decentralized Execution(CTDE) 패러다임
– 개별 에이전트는 자신의 관측만으로 행동 가능
– StarCraft Multi-Agent Challenge(SMAC)에서 우수한 성능
단점:
– 협력 시나리오에만 적합 (경쟁 환경 불가)
– Mixing network의 표현력 제한
2. MAPPO (Multi-Agent PPO)
MAPPO는 PPO를 다중 에이전트로 확장한 policy-based 알고리즘입니다. 각 에이전트가 독립적인 policy를 학습하되, centralized critic을 공유합니다.
핵심 구현:
# Actor: 각 에이전트별 독립 policy
for agent in agents:
action = agent.policy(observation)
# Critic: 중앙화된 가치 함수 (전체 state 사용)
value = centralized_critic(global_state)
# PPO objective
ratio = new_policy / old_policy
loss = -min(ratio * advantage, clip(ratio) * advantage)
장점:
– 연속/이산 행동 공간 모두 지원
– 안정적인 학습 (PPO의 장점 계승)
– 협력·경쟁 혼합 환경에서도 사용 가능
단점:
– Sample efficiency가 상대적으로 낮음
– Hyperparameter에 민감
3. MADDPG (Multi-Agent DDPG)
MADDPG는 경쟁 환경에 강한 actor-critic 알고리즘입니다. 각 에이전트의 critic이 모든 에이전트의 행동을 관찰하여 학습합니다.
핵심 메커니즘:
# Actor: 개별 에이전트 policy
action_i = actor_i(obs_i)
# Critic: 모든 에이전트 정보 활용
Q_i = critic_i(obs_1, ..., obs_n, action_1, ..., action_n)
# Policy gradient
loss_actor = -Q_i(obs_i, actor_i(obs_i))
장점:
– 경쟁·협력 혼합 환경에서 효과적
– 연속 행동 공간에 특화
– 각 에이전트가 다른 에이전트의 policy를 학습에 활용
단점:
– 에이전트 수가 많으면 scalability 문제
– Decentralized execution 시 다른 에이전트 정보 불필요
알고리즘 선택 가이드
| 기준 | QMIX | MAPPO | MADDPG |
|---|---|---|---|
| 환경 유형 | 협력 | 협력/경쟁/혼합 | 경쟁/혼합 |
| 행동 공간 | 이산 | 이산/연속 | 연속 |
| 학습 방식 | Value-based | Policy-based | Actor-Critic |
| Sample Efficiency | 높음 | 중간 | 높음 |
| 확장성 | 우수 | 우수 | 보통 |
| 추천 케이스 | SMAC, 협력 로봇 | 범용 | 자율주행, 게임 AI |
실전 구현 예시: PettingZoo 환경
from pettingzoo.mpe import simple_spread_v3
import torch
import torch.nn as nn
# 환경 생성 (3개 에이전트 협력 과제)
env = simple_spread_v3.parallel_env(N=3)
# MAPPO 기본 구조
class Actor(nn.Module):
def __init__(self, obs_dim, action_dim):
super().__init__()
self.net = nn.Sequential(
nn.Linear(obs_dim, 128),
nn.ReLU(),
nn.Linear(128, action_dim),
nn.Softmax(dim=-1)
)
def forward(self, obs):
return self.net(obs)
class CentralizedCritic(nn.Module):
def __init__(self, total_obs_dim):
super().__init__()
self.net = nn.Sequential(
nn.Linear(total_obs_dim, 256),
nn.ReLU(),
nn.Linear(256, 1)
)
def forward(self, global_state):
return self.net(global_state)
# 학습 루프
actors = {agent: Actor(obs_dim, act_dim) for agent in env.agents}
critic = CentralizedCritic(total_obs_dim)
for episode in range(1000):
observations = env.reset()
done = False
while not done:
actions = {}
for agent in env.agents:
obs_tensor = torch.tensor(observations[agent])
action_probs = actors[agent](obs_tensor)
actions[agent] = torch.multinomial(action_probs, 1).item()
next_obs, rewards, dones, _ = env.step(actions)
# PPO update logic here...
observations = next_obs
done = all(dones.values())
실무 팁과 주의사항
1. Reward Shaping의 중요성
MARL에서는 sparse reward 문제가 더욱 심각합니다. 개별 에이전트에게 즉각적인 피드백을 제공하는 reward shaping이 필수입니다.
2. Communication 메커니즘
- CommNet, TarMAC 등 에이전트 간 통신 구조 고려
- 실제 환경에서 통신 제약이 있다면 CTDE 패러다임 활용
3. Credit Assignment 문제
협력 환경에서 “누가 기여했는가?”를 판단하기 어려움:
– Counterfactual reasoning: COMA, QMIX의 접근법
– Shapley value 기반 reward 분배
4. Hyperparameter 튜닝
| Parameter | QMIX | MAPPO | MADDPG |
|---|---|---|---|
| Learning Rate | 5e-4 | 3e-4 | 1e-3 (actor), 1e-3 (critic) |
| Batch Size | 32 | 128 | 1024 |
| Discount (γ) | 0.99 | 0.99 | 0.95 |
| Update Frequency | 1 step | 10 steps | 100 steps |
마무리
Multi-Agent Reinforcement Learning은 실세계의 복잡한 협력·경쟁 문제를 해결하는 강력한 도구입니다.
핵심 요약:
- QMIX: 협력 환경, 이산 행동 공간 → SMAC, 협력 로봇
- MAPPO: 범용성, 안정성 → 다양한 환경의 첫 시도
- MADDPG: 경쟁·연속 행동 → 자율주행, 게임 AI
실무 적용 체크리스트:
– [ ] 환경이 협력/경쟁/혼합 중 어디에 해당하는가?
– [ ] 행동 공간은 이산인가 연속인가?
– [ ] Centralized training이 가능한가?
– [ ] Communication이 필요한가?
– [ ] Reward shaping 전략은 수립했는가?
다음 단계: PettingZoo나 SMAC 환경에서 직접 구현해보며 각 알고리즘의 특성을 체감하는 것을 추천합니다. 실전 경험이 MARL 이해의 핵심입니다!
이 글이 도움이 되셨나요? ☕
Buy me a coffee
답글 남기기