대규모 멀티에이전트 학습을 위한 Mean-Field Games와 게임이론적 강화학습
Mean-Field Games와 게임이론적 강화학습의 평형 계산, 수렴 관리, 분산 운영 방식과 적용 판단 기준을 정리한다.
2026-08-14 · 최초 발행 2024-04-29
분포를 중심에 두는 멀티에이전트 학습
에이전트 수가 많아지면 모든 개체 쌍의 상호작용을 직접 모델링하는 방식은 빠르게 부담이 커진다. Mean-Field Games(MFG)는 이 문제를 집합의 분포, 즉 평균장으로 근사한다. Game-Theoretic Reinforcement Learning(GT-RL)은 상대 전략을 고려해 최적 반응을 찾고, 평형에 가까운 혼합전략을 계산하는 데 초점을 둔다.
두 접근은 같은 문제를 풀기 위한 단일한 방법은 아니다. 동형 에이전트가 대규모로 존재하는 환경에서는 MFG가 적합할 수 있고, 이기종 에이전트의 전략적 관계가 핵심이면 GT-RL의 평형 계산이 더 직접적인 도구가 된다.
Mean-Field Games가 다루는 대상
MFG는 무수히 많은 동형(anonymous) 에이전트의 관계를 개별 쌍대 상호작용 대신 집합 분포인 평균장으로 표현하는 게임 이론 틀이다. 각 에이전트의 보상은 자신의 상태와 행동, 그리고 집합 분포 (m_t)에 의해 결정된다.
평형은 정책 (\pi)와 분포 궤적 (m_t)가 서로 맞물리는 고정점으로 볼 수 있다. 이산 시간 환경에서는 마코프 전이와 분포 업데이트가 상호 일치하는 조건으로 나타난다.
평균장 분포 (m_t)는 시점 (t)에서 에이전트 상태 또는 행동의 경험적 분포이며, 집계자(aggregator)가 이를 추정한다. 평균장 또는 상대 전략 분포를 고정했을 때 보상을 최대화하는 정책은 최적 반응 BR((\pi; m))으로 다룬다.
평형을 학습에 연결하는 GT-RL
GT-RL은 내쉬 평형, 상관 평형, 코스 상관 평형 같은 게임 이론의 평형 개념을 강화학습 절차에 결합한다. 상대 전략 분포를 고려한 최적 반응 탐색과 메타 솔버(meta-solver)를 통한 혼합전략 계산이 여기에 포함된다.
대표적인 알고리즘으로는 PSRO(Policy Space Response Oracles), Nash Q-learning, CFR(순차 게임), Fictitious Play 기반 RL이 있다. PSRO에서는 과거 정책 집합 (\Pi)를 보존한 채 새 최적 반응 정책을 추가하고, 유한 게임 근사로 만든 보상 행렬에서 내쉬 혼합전략을 계산한다. 일반합 게임은 정규형 변환 또는 코스 상관 평형(CCE)을 도입해 다룰 수 있다.
상대 모델링도 학습 안정성에 영향을 준다. population-level payoff을 추정하고 opponent sampling 또는 importance weighting을 사용해 샘플 효율을 높일 수 있다.
고정점을 찾는 과정과 수렴 관리
MFG 학습은 보통 정책을 고정한 전방 시뮬레이션으로 (m_t)를 추정하고, 분포를 고정한 뒤 최적 반응 정책을 학습하는 후방 업데이트를 반복한다. 수치적 고정점 탐색으로 수렴을 판단하는 구조다.
집계자의 흔들림은 그대로 정책 학습의 불안정성으로 이어질 수 있다. 지수 가중 이동평균(EWMA), entropic regularization, step size 스케줄은 분산 변동을 완화하는 수단이다. GT-RL에서는 엔트로피/TSallis 정칙화, mirror descent, optimistic updates도 비정상적 진동을 줄이고 유일 평형 선택을 돕는다.
수렴 여부는 단일 지표로 단정하기 어렵다. exploitability의 감소 추세, KL/Wasserstein 같은 분포 거리의 축소, 정책 변화율을 함께 확인한다. exploitability가 줄지 않고 정체되거나 분포 발산과 정책 진동이 감지되면 학습률을 낮추고 정칙화를 강화하며, 타깃 네트워크 업데이트를 지연하거나 체크포인트로 롤백할 수 있다.
대규모 환경에서 쌍대 상호작용의 복잡도는 O(N^2)이지만, 평균장 집계는 O(N)으로 다룰 수 있다. 이는 통신과 메모리 부담을 줄이는 기반이 된다. CTDE(중앙집중 학습·분산 실행) 구조에서는 중앙 집계 서비스가 (m_t)를 관리하고, 버전드(mean-field versioning) 방식으로 일관성을 유지한다.
교통, 네트워크, 시장에서의 모델링
도시 교통 신호 최적화에서는 다수 교차로를 동형 에이전트로 보고 교통량 분포를 평균장으로 집계할 수 있다. 목표는 지연과 대기열 길이의 최소화다. 에피소드 시뮬레이션 뒤 차로별 흐름 분포를 추정하고, 엔트로피 정칙화 PPO로 최적 반응 정책을 갱신한 다음 분포와 정책의 고정점 수렴을 확인한다. 평균 지연시간, throughput, 교차로 간 편차를 보는 fairness, 신호 변동성으로 보는 안정성이 운영 지표가 된다.
무선 또는 네트워크 자원 할당에서는 기지국과 유저 장치의 전력·채널 선택을 평균장 간섭 분포로 근사한다. 수신 SINR 분포를 집계하고 최적 반응으로 전력·채널 정책을 업데이트한 뒤, 분포 수렴 후 드리프트 대응을 위한 온라인 적응을 적용한다. 간섭 예측 안정성 향상, 시행착오 비용 감소, 대규모 셀 환경에서의 스케일 아웃이 기대되는 지점이다.
경매와 마켓 시뮬레이션은 다수 입찰자의 전략 분포를 평균장으로 모델링하며 클릭과 체류 시간의 동태도 포함할 수 있다. PSRO는 기존 정책 집합에서 최적 반응 입찰 정책을 찾고, 메타 게임의 내쉬 혼합을 계산한 뒤 정책을 배치하는 흐름으로 적용된다. 평가는 수익률, 시장 안정성, 조작 취약성(exploitability), 규정 준수 제약을 함께 반영한다.
동일 계산 예산에서는 에피소드 효율이 1.22.0배가 되고 분산 폭은 2040% 감소하며, 대규모 환경에서 수렴 실패율이 감소할 수 있다. 이는 상황 의존적인 정량 효과 예시다.
MFG와 GT-RL의 선택 기준
| 항목 | Mean-Field Games | Game-Theoretic RL |
|---|---|---|
| 성능 | 동형 대규모 환경에서 높은 효율 | 이기종/소수 에이전트 전략적 상호작용에서 우수 |
| 확장성 | O(N) 근사로 매우 우수 | 정책 집단·메타 게임 크기에 따라 증가 |
| 일관성 | 분포-정책 고정점으로 해석 용이 | 다양한 평형 개념 지원, 해석 유연 |
| 안정성 | 정칙화·평균화로 진동 완화 | 메타 솔버·BR 질에 민감, 관리 필요 |
| 운영 편의 | 중앙 집계 서비스로 단순 운영 | 정책 집단 관리·혼합 배치가 추가 부담 |
MFG는 대규모 동형 환경에서 상호작용을 근사하면서 수렴 안정성을 다루기 좋다. GT-RL은 여러 평형 개념을 적용할 수 있어 전략적 상호작용을 해석하는 폭이 넓다. 복잡한 대규모 시스템에서는 MFG와 PSRO를 함께 쓰는 혼합 전략도 고려할 수 있다.
정책, 분포, 메타 전략이 만나는 학습 흐름
입력에는 초기 정책 (\pi0), 환경 동역학, 보상 함수, 집계자 파라미터, 메타 솔버 설정이 들어간다. 학습은 시뮬레이션, 평균장 또는 상대 분포 추정, 최적 반응 탐색, 메타 혼합 계산, 수렴 평가를 거친다. 결과물은 수렴 정책 또는 혼합전략과 가중치·메타 전략 같은 배포 아티팩트다.
집계자에는 versioned (m_t)를 적용해 읽기와 쓰기의 경합을 막고, 불완전한 업데이트는 롤백 대상으로 처리한다. 정책과 메타 전략에도 버전 태깅을 적용하면 온라인 모니터링, 변경률 제한, 가드레일을 포함한 배포 운영에 도움이 된다.
평균장을 정책 입력으로 쓰는 실행 골격
아래 코드는 평균장 (m)을 정책 입력에 넣고, 집계자에 EWMA를 적용하며, 단순 정책경사로 최적 반응을 근사하는 골격이다. 실제 적용에서는 배치 샘플, 가치함수, 엔트로피 정칙화, 메타 솔버의 결합이 필요하다.
# pip install torch numpy
import torch, numpy as np
class MeanFieldAggregator:
def __init__(self, alpha=0.1):
self.alpha, self.m = alpha, None
def update(self, batch_actions):
hist = np.bincount(batch_actions, minlength=K) / len(batch_actions)
self.m = hist if self.m is None else (1-self.alpha)*self.m + self.alpha*hist
return self.m
class Policy(torch.nn.Module):
def __init__(self, obs_dim, act_dim):
super().__init__()
self.net = torch.nn.Sequential(
torch.nn.Linear(obs_dim + K, 128),
torch.nn.ReLU(),
torch.nn.Linear(128, act_dim)
)
def forward(self, obs, m):
m_t = torch.from_numpy(m).float().repeat(len(obs),1)
logits = self.net(torch.cat([obs, m_t], dim=-1))
return torch.distributions.Categorical(logits=logits)
def best_response_train(env, policy, aggregator, steps=10000):
opt = torch.optim.Adam(policy.parameters(), lr=3e-4)
for _ in range(steps):
obs = env.reset()
acts, rews, obss = [], [], []
m = aggregator.m if aggregator.m is not None else np.ones(K)/K
for t in range(H):
dist = policy(torch.from_numpy(obs).float().unsqueeze(0), m)
a = dist.sample().item()
nobs, r, done, _ = env.step(a)
acts.append(a); rews.append(r); obss.append(obs)
obs = nobs
if done: break
aggregator.update(np.array(acts))
# simple policy gradient step (baseline 생략)
R = sum(rews)
loss = -torch.log(dist.probs[0, a]) * R
opt.zero_grad(); loss.backward(); torch.nn.utils.clip_grad_norm_(policy.parameters(), 1.0); opt.step()
모델링 가정과 운영상 부담
동형성과 익명성 가정은 먼저 검증해야 한다. 이질적인 군집이 존재하면 mixture-of-MFG 또는 타입별 평균장 분리를 적용할 수 있다. 부분관측 환경이라면 RNN 또는 메모리 정책과 belief 업데이트도 고려 대상이다.
학습 과정에서는 엔트로피 정칙화와 step size 스케줄을 병행하고, optimistic mirror descent로 진동을 억제할 수 있다. PSRO는 정책 집단이 과도하게 커질 위험이 있어 pruning(지배전략 제거)과 payoff 저랭크 근사를 함께 검토한다.
평가에는 exploitability, regret, KL/Wasserstein 분포 거리, 공정성 지표를 병행한다. OpenSpiel은 메타 솔버와 정상형 게임, PettingZoo/EnvPool은 멀티에이전트 환경, RLlib/LightZero는 분산 학습에 활용할 수 있으며 최신 호환성 확인이 필요하다. PoC에서 파일럿을 거쳐 점진적으로 확산하는 방식이 운영 리스크를 관리하는 데 적합하다.