开源啦:连DeepMind也捉急的游戏,这个算法带你攻破第一关
写作“很好奇”,读作“不怕死”。
打游戏的时候,有些平淡的操作,还没执行就看得到结果。
比如玩马里奥,可以不去踩敌人,一路往前跳。
可是,没试过怎么知道,哪些敌人可以踩?
一扇门,不推开怎么知道里面是什么?
人类玩家有好奇心,大概AI也要有好奇心比较好。
OpenAI想要鼓励强化学习AI,去探索未知的世界,不要局限在已知的舒适区。
于是,团队推出了一种方法,叫做“随机网络蒸馏 (Random Network Distillation, RND) ”,专注培养AI的好奇心:隐藏房间什么的,只有好奇的AI才能发现。
当然,这方法不止用来打马里奥,不然就屈才了。
用RND加持的算法打蒙特祖玛的复仇 (最难的雅达利游戏,可称强化学习AI的噩梦),智能体逃出了第一关的全部24个房间,成绩远远超过人类的平均分数 (4.7k) ,以及现有最前沿的算法。
鼓励探索,当然是用高额奖励
RND是一种基于预测的方法。
给每一个备选的动作,预测一下结果:
如果,结果非常容易预测,奖励分就偏低。
结果越难预测,就表示越“未知”,奖励分也越高。
重赏之下,AI探索新世界的意愿就会更强了。
不过,预测结果有个难点,叫做嘈杂电视问题 (Noisy-TV Problem) :
举个栗子,在一个迷宫游戏里,摆一台“电视”,播放随机频道。
走到电视里面前,智能体就停下来不走了。
一旦没有了“电视”,智能体又能正常玩耍了。
是预测受到了干扰。
为了避免这样的干扰,团队定义了预测误差的三个因素:
一号因素,预测误差很高,预测器无法从之前看到的例子中泛化。后面的经历会受到高预测误差的影像。
二号因素,预测误差很高,因为预测目标是随机 (Stochastic) 的。
三号因素,预测误差很高,因为缺少必要信息,或者预测器模型的局限性太大,无法适应复杂的目标函数。
OpenAI团队判断,一号是必要的,因为它把新颖程度量化了,二号和三号则需要竭力避免。
RND就是为了避免这两个因素,而诞生的探索奖。
上图是传统预测和RND预测的对比。
避免二号因素,就要让神经网络给出确定性的答案,而不是给出多个答案和它们各自的可能性;
避免三号因素,就要选择和目标网络相同的架构。
对蒙特祖玛的复仇来说,这样特殊的奖励机制尤其必要:
如果是一般的游戏,简单的探索策略就够用了,但蒙特祖玛里面,除了拿到钥匙有奖励、碰到骷髅会死之外,其余都是0,AI很难感受到游戏规则,也不易学到有用的经验。
加重探索奖,才能让AI更加理解游戏。
团队表示,RND不止蒙特祖玛的复仇适用,马里奥等等其他游戏也适用。以及,越过游戏范畴,更加广泛的强化学习AI也都可以用这个方法,让智能体对新鲜事物更好奇。
好奇的宝宝成绩好
从最简单的雅达利打砖块开始观察。
内在奖励,指探索奖;外在奖励,指游戏中直接体现的奖励,如游戏分值。
每当智能体打下一块砖,砖块有了新的排列格式,内在奖励就会达到峰值 (训练伊始) 。
当它首次通过第一关的时候,内在奖励也达到了峰值 (训练数小时后) 。
再看超级马里奥,内在目标与外在目标已经基本一致了。
智能体通过了11关,找到了许多隐藏的房间,并打败了库巴大魔王。
接下来,就是蒙特祖玛的复仇。
见这段视频:https://v.qq.com/x/page/n1351cp49k7.html?start=44
最好成绩,当然是24个房间都攻破,顺利通过第一关,得分17.5k。
并且,多数情况下,智能体都能解锁20-22个房间,得分14.5k。
对比一下,人类平均分是4.7k。
有代码,有论文
现在,OpenAI已经把RND开源了,可以从传送门前往瞻仰:
https://github.com/openai/random-network-distillation
还有,论文也公开了:
https://arxiv.org/pdf/1810.12894.pdf
博客在这里:
https://blog.openai.com/reinforcement-learning-with-prediction-based-rewards/
- SQuAD风云:AI对鲁迅作品的理解超过我了?别激动……2018-01-20
- 马云正式卸任后,阿里巴巴开盘跌0.87%2019-09-10
- 亚马逊在华拓展云计算团队,挑战阿里巴巴和腾讯2019-10-16
- AI独角兽云知声,已完成一期科创板IPO辅导2019-10-17