Multi-Agent Reinforcement Learning(MARL) 실전 가이드: QMIX, MAPPO, MADDPG 구현 비교와 협력·경쟁 환경 학습 전략

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은 실세계의 복잡한 협력·경쟁 문제를 해결하는 강력한 도구입니다.

핵심 요약:

  1. QMIX: 협력 환경, 이산 행동 공간 → SMAC, 협력 로봇
  2. MAPPO: 범용성, 안정성 → 다양한 환경의 첫 시도
  3. MADDPG: 경쟁·연속 행동 → 자율주행, 게임 AI

실무 적용 체크리스트:
– [ ] 환경이 협력/경쟁/혼합 중 어디에 해당하는가?
– [ ] 행동 공간은 이산인가 연속인가?
– [ ] Centralized training이 가능한가?
– [ ] Communication이 필요한가?
– [ ] Reward shaping 전략은 수립했는가?

다음 단계: PettingZoo나 SMAC 환경에서 직접 구현해보며 각 알고리즘의 특성을 체감하는 것을 추천합니다. 실전 경험이 MARL 이해의 핵심입니다!

이 글이 도움이 되셨나요? ☕

Buy me a coffee

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

TODAY 66 | TOTAL 66