【RL论文精读2】Towards Playing Full MOBA Games with Deep Reinforcement Learning

这篇论文主要探讨了如何开发能够在MOBA(多人在线战术竞技)游戏中运作的人工智能(AI)系统,尤其是像《王者荣耀》这样的大型MOBA游戏,使用深度强化学习(RL)技术进行训练。

论文要点:

  1. MOBA游戏中的挑战

    • MOBA游戏非常复杂,因为它涉及多代理的合作与竞争,拥有巨大的状态-动作空间,以及实时策略的要求。
    • 将AI系统扩展到完整的MOBA游戏的主要挑战在于处理可玩英雄的多样性及其组合数量,这随着英雄池的增长呈指数增长。传统的AI系统,如OpenAI的Dota AI,仅限于一小部分英雄。
  2. 针对完整MOBA的AI框架

    • 论文提出了一种专门设计的深度强化学习范式来应对这些挑战,结合了多种AI技术:
      • 课程自我对战学习:AI通过从有限的英雄池开始逐渐增加难度进行学习。
      • 策略蒸馏:通过从较小、较简单的任务(有限的英雄池)中转移知识到较大、更复杂的任务(完整的英雄池)。
      • 离线策略适应:即使AI策略发生变化,也能进行有效的策略训练。
      • 蒙特卡洛树搜索(MCTS):用于在游戏开始前进行有效的英雄选择(即“选人”阶段)。
  3. 训练方法

    • 使用分布式训练系统,AI通过多个自我对战模拟生成的数据进行学习。
    • 神经网络架构使用多头价值估计(multi-head value estimation),将MOBA游戏中复杂的奖励系统分解为几个组成部分(例如英雄击杀、摧毁塔楼和整体游戏胜利)。
  4. 性能表现

    • AI被训练成能够在《王者荣耀》中使用40个英雄进行游戏,这远超过以往系统的英雄数量。
    • 在与职业电竞选手的42场比赛中,AI赢得了95.2%的胜率,而在超过64万场与顶级玩家的比赛中,AI赢得了97.7%的胜率。
    • 论文强调,这也是第一次对MOBA AI系统进行大规模的性能测试。
  5. 广泛影响

    • AI的策略已经影响了人类玩家,提出了新的战术,并提高了职业电竞选手在资源分配上的效率。
    • 该AI也可以应用于游戏设计的实际场景中,例如测试游戏平衡,帮助开发玩家对环境(PVE)的游戏模式,或者在网络游戏中代理临时掉线的玩家。

该论文开发的AI系统通过先进的深度学习技术展示了其在处理MOBA游戏复杂性和规模方面的能力,推动了AI在实时战略游戏中的前沿发展。

Abstract

  • 现有的工作在处理智能体大量组合造成的游戏复杂性方面有所欠缺(existing work falls short in handling the raw game
    complexity caused by the explosion of agent combinations)
  • 作者结合了许多新最新的技术:……(we develop a combination of novel and existing learning techniques, including curriculum self-play learning, policy distillation, off-policy adaption, multi-head value estimation, and Monte-Carlo tree-search)

Introduction

在论文的引言部分,作者介绍了MOBA(多人在线战术竞技)游戏及其对人工智能(AI)领域的挑战和研究价值。主要包括以下几个方面:

  1. 游戏AI的历史背景

    • 作者首先回顾了AI在各种类型游戏中的成功应用,如棋类游戏(围棋)、Atari系列、第一人称射击游戏(如Capture the Flag)、以及实时策略(RTS)游戏(如StarCraft II)。这些游戏都为AI研究提供了宝贵的测试平台。
  2. MOBA游戏的复杂性

    • MOBA游戏(如《王者荣耀》、《英雄联盟》和《Dota 2》)作为RTS的一个子类型,具有独特的游戏机制,包括多代理之间的竞争与合作、不完全信息、大规模的状态-动作空间、以及复杂的实时操作。由于这些特性,MOBA游戏被认为是AI研究的理想测试平台。
    • 作者指出,MOBA游戏的复杂性远远超过传统的AI游戏测试平台。例如,即使在极简化的情况下,MOBA游戏的状态-动作空间的规模也比围棋大得多。
  3. 现有AI系统的局限性

    • 尽管OpenAI的Dota AI在5v5 MOBA游戏中取得了成功,但其只能处理一个有限的英雄池(17个英雄)。这种限制削弱了MOBA游戏中英雄选择和团队变化的核心策略,表明目前的AI系统尚未掌握完整的MOBA游戏。
  4. 扩大英雄池的挑战

    • 作者指出,扩大英雄池给自我对战强化学习带来了巨大的挑战,因为随着英雄池的增长,可能的英雄组合数呈指数增长。例如,从17个英雄到40个英雄,可能的英雄组合数量从近500万增长到超过2000亿。
    • 随机呈现大量不同的英雄组合给学习系统会导致“学习崩溃”,这一现象已经在OpenAI的实验中观察到。随着英雄池的扩展,训练的速度会变得非常慢,AI的表现也会下降。
  5. 总结:提出贡献

    • 为了应对这些问题,作者提出了一种新的AI学习范式,专门用于支持完整的MOBA游戏玩法
    • 作者对MOBA AI智能体进行了首次大规模性能测试,取得了很好的效果

Learning System

在这里插入图片描述

在论文的**Learning System(学习系统)**部分,作者详细介绍了如何构建和训练能够应对完整MOBA游戏的AI系统。该部分主要分为以下几个关键内容:

1. 系统架构(Architecture)

  • MOBA游戏可以被视为一个多智能体的马尔可夫游戏,并且具有部分可观测性。AI的核心是一个基于深度神经网络的策略网络(policy network),该网络通过处理来自游戏的观测信息和历史动作来选择下一步的动作。
  • 网络架构包含多种输入特征,包括标量特征(英雄状态、游戏内数据等)和空间特征(例如游戏中的局部视图)。为了处理部分可观测性问题,系统使用长短时记忆网络(LSTM)来保持记忆。
  • 该系统采用了分层的动作空间设计,将动作分为三个部分:“做什么(What)”,“攻击谁(Who)”以及“如何行动(How)”,从而简化了复杂的MOBA动作控制问题。

2. 强化学习方法(Reinforcement Learning)

  • 该系统使用了“actor-critic”框架,通过策略网络πθ选择动作并通过价值函数Vθ估计状态的价值。
  • 为了应对MOBA游戏的长时间跨度和复杂的动作空间,该系统采用了一种“离线策略”(off-policy)训练方法,使得AI能够在多样化的策略下进行稳定的学习。
  • 系统还采用了一种称为Dual-clip PPO的强化学习算法,这是对Proximal Policy Optimization (PPO) 的一种改进,旨在通过对策略变化的控制,降低训练过程中的不稳定性。

3. 多智能体训练(Multi-agent Training)

  • MOBA游戏中的多英雄组合带来了巨大的学习挑战,因为每一局游戏中的英雄组合都在变化。这种“移动目标问题”使得AI策略的学习更加困难。
  • 为了解决这个问题,作者提出了课程自我对战学习(Curriculum Self-Play Learning, CSPL)。该方法分为三个阶段:
    1. 固定阵容训练(Phase 1):首先使用固定的英雄阵容进行自我对战训练,以降低训练初期的难度,帮助AI掌握基本的策略。
    2. 策略蒸馏(Phase 2):将多个固定阵容的模型(教师模型)整合到一个学生模型中,使用策略蒸馏技术使得学生模型继承所有教师模型的知识。
    3. 随机阵容训练(Phase 3):在全英雄池中随机选择阵容继续进行训练,以提升AI在面对更复杂和多样化阵容时的表现。

4. 英雄选择策略(Learning to Draft)

  • 英雄选择是MOBA游戏中重要的战略步骤,特别是在大规模英雄池的情况下,传统的最小最大(Minimax)算法变得计算不可行。
  • 为了解决这个问题,作者开发了基于蒙特卡洛树搜索(MCTS)的英雄选择代理。该代理通过搜索树来评估每次英雄选择的长远价值,并使用一个价值网络来加速选择过程。

5. 基础设施设计(Infrastructure Design)

  • 为了支持大规模并行训练,作者设计了一个可扩展的分布式强化学习基础设施,采用经典的Actor-Learner架构:
    • Actor(执行器)负责与游戏环境的交互,生成训练数据。
    • Learner(学习器)则负责在GPU上进行策略网络的训练。
    • 系统还引入了一个中央推理模块来优化GPU资源的利用,类似于Seed RL架构。

6. 训练过程和策略更新

  • 系统的训练在分布式集群中进行,采用离线策略学习,使用大量的GPU和CPU资源并行处理。
  • 为了提高训练效率,训练数据被存储在一个经验回放池中,供Learner异步读取并进行更新。

总结:

  • 学习系统部分主要讲述了如何通过结合深度神经网络、分层动作控制、多智能体强化学习、策略蒸馏、以及蒙特卡洛树搜索等技术,构建和训练一个能够胜任完整MOBA游戏AI的系统。
  • 系统的设计不仅关注AI策略的学习效率和稳定性,还针对MOBA游戏的复杂性(如多英雄组合、实时决策)提出了有效的解决方案。

关键点解释

公式三

在论文中,公式3 描述的是多教师策略蒸馏(multi-teacher policy distillation)过程中的损失函数。我将逐步解释这个公式及其涉及的概念。

公式3:

[ L distil ( θ ) = ∑ teacher i E π θ [ ∑ t H × ( π i ( s t ) ∣ ∣ π θ ( s t ) ) + ∑ head k ( V i k ( s t ) − V θ k ( s t ) ) 2 ] ] [ L_{\text{distil}}(\theta) = \sum_{\text{teacher}_i} \mathbb{E}_{\pi_\theta} \left[ \sum_t H \times (\pi_i(s_t) || \pi_\theta(s_t)) + \sum_{\text{head}_k} (V^{k}_i(s_t) - V^{k}_\theta(s_t))^2 \right] ] [Ldistil(θ)=teacheriEπθ[tH×(πi(st)∣∣πθ(st))+headk(Vik(st)Vθk(st))2]]

这个公式表达了学生模型(student model)的策略蒸馏损失函数,它结合了从多个教师模型中学到的策略和价值估计。该公式的目的是让学生模型从教师模型中继承知识,从而在面对更加复杂的英雄组合时表现得更好。

公式3的各部分解释:
  1. 损失函数 ( L distil ( θ ) (L_{\text{distil}}(\theta) (Ldistil(θ))

    • 这是总的损失函数,表示学生模型相对于多个教师模型的策略和价值差异。
    • ( θ (\theta (θ) 表示学生模型的参数。
  2. ( ∑ teacher i (\sum_{\text{teacher}_i} (teacheri)

    • 表示所有教师模型的总和。每个教师模型都是在固定的英雄阵容下训练的,它们各自掌握了特定组合的游戏策略和价值估计。
  3. ( E π θ (\mathbb{E}_{\pi_\theta} (Eπθ)

    • 表示在学生模型的策略下进行期望计算。这意味着学生模型会基于自己的策略来选择动作,并用这些动作生成的状态来计算损失。
  4. ( ∑ t H × ( π i ( s t ) ∣ ∣ π θ ( s t ) ) (\sum_t H \times (\pi_i(s_t) || \pi_\theta(s_t)) (tH×(πi(st)∣∣πθ(st)))

    • 这一部分是策略损失,用香农交叉熵(Shannon’s cross entropy)来度量教师模型 ( π i (\pi_i (πi) 和学生模型 ( π θ (\pi_\theta (πθ) 在状态 ( s t (s_t (st) 下的策略分布差异。
    • 交叉熵是一种衡量两个概率分布之间差异的指标。在这里, ( π i ( s t ) (\pi_i(s_t) (πi(st)) 表示教师模型在状态 ( s t (s_t (st) 下选择各个动作的概率分布, ( π θ ( s t ) (\pi_\theta(s_t) (πθ(st)) 表示学生模型在相同状态下的概率分布。
    • 交叉熵公式:对于两个概率分布 ( p ( x ) (p(x) (p(x)) 和 ( q ( x ) (q(x) (q(x)),交叉熵定义为:
      [ H ( p ∣ ∣ q ) = − ∑ x p ( x ) log ⁡ q ( x ) ] [ H(p || q) = - \sum_x p(x) \log q(x) ] [H(p∣∣q)=xp(x)logq(x)]
      在这个公式中,交叉熵衡量的是教师模型的分布 ( p = π i ( s t ) (p = \pi_i(s_t) (p=πi(st)) 与学生模型的分布 ( q = π θ ( s t ) (q = \pi_\theta(s_t) (q=πθ(st)) 之间的差异。
    • 换句话说,交叉熵越小,说明学生模型的策略与教师模型的策略越接近。
  5. ( ∑ head k ( V i k ( s t ) − V θ k ( s t ) ) 2 ) (\sum_{\text{head}_k} (V^{k}_i(s_t) - V^{k}_\theta(s_t))^2) (headk(Vik(st)Vθk(st))2)

    • 这一部分是价值估计损失,用于度量教师模型和学生模型在状态 (s_t) 下的价值估计差异。
    • ( V i k ( s t ) (V^{k}_i(s_t) (Vik(st)) 和 ( V θ k ( s t ) (V^{k}_\theta(s_t) (Vθk(st)) 分别表示教师模型和学生模型在状态 ( s t (s_t (st) 下对于第 ( k ) (k) (k) 个价值头 ( r e w a r d h e a d ) (reward head) rewardhead的估计值。通过最小化这两个估计值之间的平方差,学生模型能够学习如何更好地估计状态的价值。

Shannon’s Cross Entropy(香农交叉熵)

  • 定义:香农交叉熵是信息论中的一个重要概念,它用于衡量两个概率分布之间的差异。在机器学习中,交叉熵通常用于分类任务中的损失函数,它衡量模型预测的概率分布与真实分布(或目标分布)之间的差异。

  • 在策略蒸馏中的作用:在策略蒸馏过程中,交叉熵被用来衡量教师模型和学生模型在同一状态下的策略分布差异。通过最小化这个交叉熵,学生模型可以逐渐学习到教师模型的策略,使其在状态空间中的行为与教师模型保持一致。

总结:

  • 公式3描述了学生模型通过策略蒸馏从多个教师模型中学习的过程。通过最小化策略交叉熵和价值估计的平方误差,学生模型能够有效地继承多个教师模型的策略和价值知识。交叉熵在这个过程中起到的作用是衡量学生模型与教师模型在策略上的差异,帮助学生模型逐步接近教师模型的表现。

2.学生驱动的策略蒸馏(student-driven policy distillation)

During distillation, the student model is used for exploration in the
fixed-lineup environments where teachers are trained, known as student-driven policy distillation[9]. The exploration outputs actions, states and the teacher’s predictions (used as guidance signal for
supervised learning) into the replay buffer.

这段话可以翻译为:

在蒸馏过程中,学生模型被用于在教师模型训练的固定阵容环境中进行探索,这种方式被称为学生驱动的策略蒸馏。探索过程中,学生模型会输出动作、状态以及教师模型的预测结果(作为监督学习的指导信号)并存储到回放缓冲区中。

  1. 蒸馏过程(distillation)

    • 这里的“蒸馏”指的是将多个教师模型所学到的知识转移到学生模型中。教师模型是在固定的英雄阵容(fixed-lineup)下训练出来的,它们掌握了特定的策略和价值估计。
  2. 学生模型的探索(student model is used for exploration)

    • 在蒸馏过程中,学生模型被用来在那些教师模型训练的固定阵容环境中进行探索。探索意味着学生模型会尝试在游戏环境中做出一系列的动作,以获得经验。
  3. 学生驱动的策略蒸馏(student-driven policy distillation)

    • 这是指通过学生模型主动探索环境并与教师模型的策略进行对比,学生模型逐步学习到教师模型的策略。在这个过程中,学生模型不仅是被动地从教师模型中学习,还会主动尝试新的动作和状态,以丰富其经验和策略。
  4. 回放缓冲区(replay buffer)

    • 在探索过程中,学生模型输出的动作、状态和教师模型的预测结果会被存储到回放缓冲区中。回放缓冲区用于存储过去的经验,这些经验会在后续的监督学习过程中作为训练数据,帮助学生模型改进其策略。
  5. 指导信号(guidance signal for supervised learning)

    • 教师模型的预测结果被用作监督学习的指导信号。换句话说,学生模型在学习过程中将会参考教师模型的预测,将其作为“正确答案”来调整自己的策略。

总结:

在策略蒸馏过程中,学生模型通过在教师模型的固定阵容环境中主动探索,生成一系列动作和状态,并参考教师模型的预测结果进行学习。这种方法使学生模型能够有效继承教师模型的知识,同时通过探索积累更多的经验,逐步改进其策略。

后面的实验部分同样精彩,有机会再分享

Adversarial attacks are a major concern in the field of deep learning as they can cause misclassification and undermine the reliability of deep learning models. In recent years, researchers have proposed several techniques to improve the robustness of deep learning models against adversarial attacks. Here are some of the approaches: 1. Adversarial training: This involves generating adversarial examples during training and using them to augment the training data. This helps the model learn to be more robust to adversarial attacks. 2. Defensive distillation: This is a technique that involves training a second model to mimic the behavior of the original model. The second model is then used to make predictions, making it more difficult for an adversary to generate adversarial examples that can fool the model. 3. Feature squeezing: This involves converting the input data to a lower dimensionality, making it more difficult for an adversary to generate adversarial examples. 4. Gradient masking: This involves adding noise to the gradients during training to prevent an adversary from estimating the gradients accurately and generating adversarial examples. 5. Adversarial detection: This involves training a separate model to detect adversarial examples and reject them before they can be used to fool the main model. 6. Model compression: This involves reducing the complexity of the model, making it more difficult for an adversary to generate adversarial examples. In conclusion, improving the robustness of deep learning models against adversarial attacks is an active area of research. Researchers are continually developing new techniques and approaches to make deep learning models more resistant to adversarial attacks.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值