看不懂没关系,因为这个东西确实不是专业的确实很难看懂,我会尽量用浅显的语言对其进行解读。因为内部机制过于复杂,我会尽量用浅显的语言进行描述。下面从左往右进行分析:
1)Encoded observations部分:这个部分有三个输入,首先Unit输入部分,这里包括我方英雄,地方英雄,英雄的移动,防御塔等。其次Image部分,我个人理解应该是,自身英雄周围的一个区域的图像。最后Game state Info部分, 包括比如经济,人头,血量之类的数据。图像经过卷积网络得到一个向量(大家就简单理解为图像识别就可以),Unit的数据和Game state Info的数据则经过FC(全连接网络)得到不同的向量(这里大家理解为,就是把这些游戏里的数据,转换成为另外一种形式,牺牲点严谨性来说,就是转换成一串数字)。之后把这三部分转后的数字,我们拼接起来,变成更大的一长串数字,这就是我们从当前环境中提取的信息。
2)第二部分就是核心部分了,(这部分不想看可以跳过去)。这部分包括LSTM(长短时记忆网络)和Attention(注意力)机制,将之前的一大串输出输入到这个LSTM网络当中,经过FC变换之后,得到初步的输出。Attention部分用了RL探索的剪枝(y1s1,我不是搞强化学习的,这个地方我也不是很懂),反正作用就是,我面前很多东西,比如野怪,小兵,它,敌方英雄,我该干谁呢,就由这个决定就完事了。具体的细节有能力有兴趣的坛友可以去看论文。
3)第三部分模型的输出部分,当然这个部分呢,还是需要再上一步做些调整和变化的。细心的朋友已经发现了,上面这几个输出不是独立的,具体什么意思呢。
这里列举了最简单的移动按钮为例(就是移动轮盘)。首先是button按钮,其次的四个是我该怎么拖动这个按钮(就是我拖动技能,方向和距离),这个大家都很熟悉,一定能秒懂我什么意思。最后一个是Target部分,就是目标,就是我该瞄准谁呢?小兵、塔、敌方英雄等。技能按钮以此类推。
(论文中提到,虽然这些输出有依赖,但是通过一些手段,可以使其独立,就是这几个没什么关系。这里面就是这篇文章比较有新意的地方,叫Dual-clip PPO,反正这些东西不影响我们对AI的理解)
以上就是系统框架内容,通过不断的训练优化这个模型(这里涉及到网络的训练问题,很复杂,还要看工程师的“炼丹”能力如何),AI英雄会越来强,没错就是越来越强,不要问为什么(深度学习的可解释性是个很大的难题),事实摆在眼前。上面内容是不是有点复杂,确实我也这么觉得,如果你都看懂了,说明你很有“炼丹“的天赋(手动狗头)。
下面我们说点轻松的:为了测试AI的性能,AI团队还邀请了几位职业选手进行1v1对抗,以下是论文截图,结果表明,AI可以达到职业水准(没错,就是这么牛x)。
这里还有一个细节,AI的反应时间是133ms,论文中说133ms是顶级业余选手的反应时间,所以被绝悟揍是很正常的。下面是职业怎么挨打的数据,大家看看就好。
然后AI又去找路人玩家PK,数据如下