dota2 人工智能 原理

99ANYc3cd6 人工智能 11

核心思想:从“规则”到“学习”

传统的游戏 AI 通常依赖于人类编写的规则。

dota2 人工智能 原理-第1张图片-广州国自机器人
(图片来源网络,侵删)
  • “如果敌人血量低于30%,就使用技能攻击。”
  • “看到敌方英雄,就后退。”

这种方法在 Dota 2 这种极其复杂的游戏中完全行不通,Dota 2 的状态空间(可能的游戏情况组合)比宇宙中的原子数量还要多,人类无法编写出足够的规则来覆盖所有情况。

Dota 2 AI 的核心思想是:不依赖人类规则,而是通过自我对弈和海量训练,让 AI 自己“学会”如何玩这个游戏。

这个“学习”的过程,主要是由 DeepMind 开发的 OpenAI Five 来实现的,它代表了当前游戏 AI 的最高水平。


核心技术栈:深度强化学习

Dota 2 AI 的底层原理是 深度强化学习,我们可以把它拆解成三个关键词来理解:

dota2 人工智能 原理-第2张图片-广州国自机器人
(图片来源网络,侵删)
  1. 强化学习

    • 智能体:我们的 AI 玩家(OpenAI Five)。
    • 环境:Dota 2 游戏本身(包括地图、英雄、小兵、建筑等)。
    • 状态:游戏在某一时刻的所有信息(英雄位置、血量、蓝量、装备、小兵位置等)。
    • 动作:AI 可以执行的操作(移动、攻击、使用技能、买物品等)。
    • 奖励:AI 做了某个动作后,环境给出的反馈,这是 AI 学习的“老师”。

    RL 的目标很简单:智能体通过与环境的不断交互,学习一个策略,使得在长期内累计获得的奖励最大化。

    在 Dota 2 中,奖励不仅仅是“击杀敌人 +100 分”,而是非常复杂的。

    • 正奖励:击杀英雄、推掉防御塔、获得金币和经验、击杀野怪。
    • 负奖励:己方英雄死亡、丢失防御塔、被野怪击杀。
    • 最终奖励:赢得比赛(+10000分),输掉比赛(-10000分)。
  2. 深度学习

    dota2 人工智能 原理-第3张图片-广州国自机器人
    (图片来源网络,侵删)
    • 强化学习需要智能体能够根据“状态”来评估哪个“动作”是最好的,这个评估函数非常复杂,无法用简单的数学公式表达。
    • 深度神经网络 就像一个超级强大的“大脑”,它负责接收“状态”(比如游戏画面的像素数据),然后输出一个“动作”建议,或者直接输出一个对当前局势的“价值”评估。
    • 这个“大脑”有数亿个参数(就像人脑有亿万个神经元),通过训练,这些参数被不断调整,最终让 AI 能理解游戏局势,做出合理决策。
  3. 两者结合

    • 深度神经网络 是 RL 的“大脑”,负责感知和决策。
    • 强化学习算法(如 OpenAI Five 使用的 PPO - Proximal Policy Optimization)是“训练方法”,负责告诉“大脑”如何根据奖励来调整自己,以赢得游戏。

关键实现细节:如何让 AI “学会” Dota 2?

知道了核心是 DRL,我们来看看具体是如何实现的,这涉及到几个关键技术突破。

状态表示:AI 如何“看”懂游戏?

Dota 2 的状态极其庞大,如果直接把所有游戏数据喂给神经网络,计算量会爆炸,OpenAI Five 采取了一种巧妙的方法:

  • 输入数据:AI 不直接看游戏画面(像人眼一样),而是接收一个高度结构化的游戏状态向量,这个向量包含了大约 2万个浮点数,代表:
    • 所有英雄的位置、血量、蓝量、等级、装备、技能冷却时间。
    • 所有小兵和野怪的位置、数量、类型。
    • 所有防御塔和建筑的状态。
    • 游戏时间、金钱等宏观信息。
  • 数据压缩:这个巨大的向量被输入到一个巨大的神经网络中,网络会自动学习如何压缩和提取关键信息,最终形成一个对局势的“理解”。

动作空间:AI 如何“做”决策?

Dota 2 的动作也非常多,英雄有4个技能、物品栏、信使、地图移动等,如果让 AI 从所有可能动作中选一个,计算量同样巨大。

  • 分层决策:OpenAI Five 采用了分层决策的方法,简化了问题:
    1. 宏观策略:神经网络首先决定一个“高层次目标”,推下路”、“打肉山”、“抓人”。
    2. 微观操作:在具体的操作层面,AI 会将复杂的动作空间分解成一系列简单的、可并行的动作,同时决定“英雄A移动到X点”、“英雄B使用技能Y”、“英雄C攻击目标Z”。

    这种方法极大地降低了单次决策的复杂度。

训练过程:AI 如何“练习”?

这是最关键、也最耗时耗力的部分,OpenAI Five 的训练过程堪称“地狱模式”。

  • 自我对弈:AI 不会去学习人类玩家的录像,因为它会学到人类的“坏习惯”,它唯一的老师就是过去的自己,AI 会和自己进行大量的对战,每打完一局,它就会分析这局游戏,更新自己的神经网络,让自己变得更强。
  • 海量计算资源:训练过程需要海量的计算资源,OpenAI Five 在训练时,使用了 256个 CPU 核心和 128个 GPU,进行数月的连续训练,累计进行了约180年的自我对弈(按实时计算),这相当于一个AI不吃不喝不睡,日夜不停地玩了180年的Dota。
  • 课程学习:为了让训练效率更高,AI 不会一上来就玩完整的5v5比赛,它像学习课程一样,从简单到复杂:
    1. 1v1 对战:先学会控制一个英雄,理解基本的移动和攻击。
    2. 2v2 对战:学习简单的配合。
    3. 5v5 但简化规则:比如没有信使、没有某些复杂物品。
    4. 完整的5v5比赛:最终挑战最复杂的全要素游戏。

AI 的特点与局限性

AI 的强大之处:

  1. 操作精度:人类的APM(每分钟操作次数)有限,而 AI 可以在瞬间做出成百上千个精确操作,实现“完美”走位、技能释放和物品使用。
  2. 大局观:AI 拥有上帝视角,能同时监控所有英雄和单位的位置,做出全局最优的决策(同时分路带线、打肉山、抓人)。
  3. 团队协作:AI 之间的沟通是即时的、无误差的,它们可以像一台精密的机器一样,完美地执行一个复杂的战术,抱团推进”或“四一分推”。
  4. 海量知识:AI 记忆了亿万盘对局的得失,它知道在任何局势下,最优解是什么,这远超任何人类选手。

AI 的局限性:

  1. 缺乏“创造力”和“直觉”:AI 的所有决策都基于它学到的数据,它不会像人类选手那样,凭借“灵光一闪”做出一个出乎意料的、反常规但最终效果极佳的操作,它的策略是“最优解”,而不是“可能的最优解”。
  2. 对未知模式的适应性差:如果人类开发出一个全新的、AI从未见过的战术或英雄出装,AI 在初期可能会非常不适应,因为它没有相关的数据。
  3. “训练成本”极高:训练一个 OpenAI Five 级别的 AI,需要天文数字的计算资源和时间,这是个人或小团队无法企及的。
  4. 无法“理解”游戏:AI 知道“推塔能赢”,但它不理解“推塔”这个行为背后的战略意义(比如控制地图资源、限制对方发育),它只是在执行一个能最大化获胜概率的程序。

Dota 2 人工智能的原理,可以概括为:

以深度强化学习为理论框架,通过一个由深度神经网络构成的“大脑”,利用自我对弈和海量计算资源进行训练,最终学会在一个极其复杂的环境中,通过最大化长期奖励来做出最优决策。

它不仅是游戏领域的一次革命,更是人工智能发展道路上的一个重要里程碑,证明了 AI 在处理复杂、动态、长期规划任务上的巨大潜力,它让我们看到了 AI 的强大,也让我们思考了人类智慧在创造力、直觉和适应性上的独特价值。

抱歉,评论功能暂时关闭!