栗子懒 发自 凹非寺
量子位 报道 | 公众号 QbitAI
不是训练两小时,是相当于人类玩两小时。
AI玩个游戏,一定要打几十万上百万局才能学会?
谷歌大脑给自家的强化学习AI,建造了一个有的放矢的高效学习环境:基于视频预测的模拟器SimPLe。
团队说,模拟器的预测能力前所未有,有时可以一帧都不错:
左为模拟器,中为Ground Truth,右为差别
有了它,AI的学习压力明显减轻,只需要相当于人类玩两小时的训练强度,就能解锁雅达利游戏。
与优秀的无模型前辈Rainbow相比,基于模型的SimPLE要训练到相同的成绩,运动量能减少一个数量级。
乒乓球21:0
怎样的模拟器?
和许多游戏AI前辈不同,SimPLe的智能体不是在真实游戏里训练的。
它的游戏策略,完全是在模拟器里炼成的。
这里,有个视频预测模型,会给AI的每个动作预测一个结果。按照谷歌的传统,它也叫世界模型 (World Model) 。
为什么要有这个模型?
在许多雅达利游戏里面,随机探索是很难获得足够多样化的数据的:
有些地方智能体可能没去过,有些动作智能体可能没做过。
环境数据不够丰富,AI就不能更有效地学习。
所以,要让智能体用更高效的方法探索世界:
团队用了一个迭代过程,由数据收集、模型训练、策略训练三个阶段交替而成。
这样,随着智能体的策略 (Policy) 变得越来越好用,模拟器的预测能力也越来越强。
相辅相成之间,智能体不用像没头苍蝇随性试错,便能更快解锁游戏技能了。
怎样预测?
试用了几种不同的架构,团队发现最好的模型是前馈CNN,用一叠卷积编码了一个输入帧 (Input Frames) 的序列。
给定智能体做出的动作,模型就能依靠一叠反卷积 (Deconvolution) ,解码下一郑
研究人员还发现,给模型引入随机性(Stochasticity) 非常有效,可以让策略在更加丰富的场景里,得到训练。
具体做法是,加入一个潜在变量(Latent Variable) ,把它的样本加到瓶颈表征 (Bottleneck Representation) 里面去。
在这项研究的设定下,离散变量是最好用的,被编码成比特序列 (Sequences of Bits) 。
有点像变分自编码器 (Variational Autoencoder) :潜在变量的后验,是基于整个序列近似出来的;
从后验里取出一个值,再用上输入帧和智能体的动作,来预测下一郑
最终,有了一个随机离散模型(Stochastic Discrete Model) ,长这样:
成果喜人
注意,团队并没有为了雅达利的不同游戏,特别调整过模型,也没有特别调整过超参数。
AI玩家表现
训练过程中,环境变化了40万帧,智能体和环境的互动,只有10万次:相当于人类玩耍两小时。
你看,AI打“乒乓球” (Pong) 已经能刷对方一个光头。可能找到了系统的弱点:
更有趣的是“过马路” (Freeway) 游戏。
看上去简单,但对探索的要求非常高。
在这里,智能体是只小鸡,它的进步是很慢的,因为不停地被车撞。
那么,很难成功过一次马路,所以几乎得不到奖励。
不过,SimPLe捕捉到这样稀有的事件,把它们内化到预测模型里面去,学习到优秀的策略。
对比一下,发现在过马路游戏里,达到相同的成绩,SimPLe和环境互动的次数比Rainbow前辈少了一个数量级。
而在大多数游戏里,SimPLe和环境的互动次数,都比Rainbow少了一半以上。
预测之星
拿到这样的成绩,模拟器的预测居功至伟。
团队在AI游戏视频里,发现了许多完美预测的片段,最长达到50个时间步。
比如,过马路里有连续的11秒,模型预测的每一帧都和Ground Truth一毛一样。
另外,乒乓球和打砖块(Brick) 里面,也发现过这样的片段。
团队说,把完美预测的时间再延长,是个很好的研究方向了。
也遇到了困难
有些游戏里,预测模型根本生成不了有用的预测。
研究人员说,最常见的原因,是有些很小的物体,左右了玩家的命运:
比如在亚特兰提斯 (Atlantis) 和战区 (Battle Zone) 里,子弹很小,又稍纵即逝。
团队说,如果想注意到它们,还是让视频预测模型,慢速高清地观察比赛现场吧。
论文传送门:
https://arxiv.org/abs/1903.00374