AI|清华打造足球AI:首次实现同时控制10名球员完成比赛 胜率94.4%( 二 )


直接学习WeKick中的单智能体操作并复制到每个球员身上显然不可取 , 因为这样大家都只会自顾自地去抢球往球门冲 , 根本就不会有团队配合 。
又没有后场非活跃球员动作的数据 , 那怎么办?
他们在动作集内添加了第二十个动作:build-in , 并赋予所有非活跃球员此标签(比赛中若选用build-in作为球员的动作 , 球员会根据内置规则采取行动) 。
接着采用多智能体行为克隆(MABC)算法训练模型 。
对于离线强化学习来说 , 最核心的思想是找出数据中质量较高的动作 , 并加强对这些动作的学习 。
所以需在计算目标函数时赋予每个标签不同的权重 , 防止球员倾向于只采用某个动作作为行动 。
这里的权重分配有两点考虑:
一是从数据集中挑选出进球数较多的比赛、只利用这些高质量的数据来训练 , 由于奖励较为密集 , 模型能够加速收敛并提高性能 。
二是训练出Critic网络给所有动作打分 , 并利用其结果计算出优势函数 , 然后给予优势函数值大的动作较高的权重 , 反之给予较低的权重 。
此处为了避免梯度爆炸与消失 , 对优势函数做出了适当的裁剪 。
最终的分布式训练架构由一个Learner与多个Worker构成 。
其中Learner负责学习并更新策略 , 而Worker负责搜集数据 , 它们通过gRPC进行数据、网络参数的交换与共享 。

AI|清华打造足球AI:首次实现同时控制10名球员完成比赛 胜率94.4%
文章图片


Worker可以利用多进程的方式同时与多个游戏环境进行交互 , 或是通过I/O同步读取离线数据 。
这种并行化的执行方式 , 也就大幅提升了数据搜集的速度 , 从而提升训练速度 (5小时就能达到别的分布式训练算法两天才能达到的同等性能) 。
另外 , 通过模块化设计 , 该框架还能在不修改任何代码的情况下 , 一键切换单节点调试模式和多节点分布式训练模式 , 大大降低算法实现和训练的难度 。
94.4%的获胜率和场均3分的净胜分
在多智能体(GRF)游戏上的不同算法比较结果中 , TiKick的最终算法(+AW)以最高的获胜率(94.4%)和最大的目标差异达到了最佳性能 。
TrueSkill(机器学习中竞技类游戏的排名系统)得分也是第一 。

AI|清华打造足球AI:首次实现同时控制10名球员完成比赛 胜率94.4%
文章图片


TiKick与内置AI的对战分别达到了94.4%的胜率和场均3分的净胜分 。

推荐阅读