谷歌Gorila强化学习体系解析

jopen 9年前

 

【编者按】 本文根据ICML 2015第二天David Silver和Arun Nair的演讲整理。 David Silver 是谷歌DeepMind强化学习团队的主管,Arun Nair来自Deepmind应用团队,演讲的主题是谷歌强化学习体系Gorila,分别从学术研究和实际应用的角度来解析。

Gorila (General Reinforcement Learning Architecture)

在5月份圣地亚哥举办的ICLR(International Conference on Learning Representations)会议上,Silver对同一主题做了 主题演讲 ,但那次演讲更注重强化学习(RL)的普遍利益,而不是Gorila本身。

总的来说,在前馈监督学习和无监督强化学习方面,Gorila是Jeff Dean等人开发的著名的 DistBelief 的一般化。

什么是强化学习?

从ML(机器学习)的角度来看,强化学习( Reinforcement Learning )比监督式学习有某些更优秀的特点,但也很难成功地实现它。监督或半监督学习取决于两个关键特性:

  1. 有良好标记的数据来告诉你训练阶段中的网络是否正确工作。标记的数据往往很难得到,而且得到大规模标记数据是需要昂贵的支出,因为我们需要人工为数据打标签。
  2. 有一个定义良好的教师模块(Teacher module),并能够构建你的目标函数,用这样的方式,你甚至可以有一个教师模块。

在无监督学习中,没有类别标签和“教师”。最常见的无监督学习的例子是,在没有外界帮助的情况下,算法可以根据数据集的本质特征进行聚类。

强化学习(RL)和监督学习、无监督学习都不同。RL从另一个角度考虑问题,一个网络是否可以在现在通过采取一个或多个动作并在将来有所回报或者 付出(潜在的遥远的,即t步之后的步骤)。这种延迟的奖励方案更难训练因为我们可能有大量的t步需要回滚,而且我们同样需要解决债权转让的问题,也就是把 网络选择的多个动作和实现目标结合起来。这没有教师模块也没有多少标记的数据,我们只需要能够测量环境中动作的结果。

从数学意义上来说,对于一个给定的环境状态(包含动作action),网络需要选择最好的action,去学习最好的策略从而得到最好的结果。比如 求解Q learning/贝尔曼最优方程(来自动态规划派)

可视化最简单的方法是玩视频游戏(这也是确保主流媒体覆盖面丰富的一种很棒的方式)。:) DeepMind团队使用49款游戏(包括Atari 2600 - Seaquest,Tennis,Boxing等)来训练网络。

关于Gorila

谷歌Gorila强化学习体系解析

来自于David Silver2015年在ICML大会上介绍强化学习的示意图(已获得试用许可)

我对Gorila感兴趣的地方是,它与Dean的MapReduce或者Chang的BigTable有多少相似之处。在这两种情况下,一个很艰难的问题(有效利用异构计算集群对非常大数据集的存储和查询)以起初从未有过的规模和水平被新的设计良好的网络解决了。

Gorila的四个关键组件:

  • Actor(有许多Actor,它们与游戏玩家、服务用户等相对应)
  • Replay memory (这是一个关键组件,提高了RL系统的性能,并且使得Q learning任务得到学习)
  • Learner(并行,所以可以产生比之前迭代更多的梯度渐变)
  • Q网络或模型本身(分布式使用DistBelief,DistBelief可以并行处理更多的网络)

启示

所有这一切的意义是相当明显的,但是他们的重要性仍值得一提:

  1. 小组的报告中,性能和挂钟训练时间(在49款Atari游戏中,v2在41款游戏中打败了v1(自然DQN),在其中的25款 游戏中,他们分别以22×2倍、11×5倍胜过人类玩家)显著加快。训练时间从2周降至1天。因此,从非常基本研究到二轮迭代的速度是快的(按我的测算, 不足一年)。
  2. 谷歌正在围绕ML建设相同的基础架构,因为他们面临着其他问题(Gorila用于强化学习,MapReduce负责并行处 理,BigTable则用来数据存储)。历史经验告诉我们,迟早会有开源化,而且在软件中使用强化学习将是常事(然而现在它还很深奥,甚至在深度学习社区 中也如此)。
  3. 随着Gorila的推进,强化学习有着比视频游戏和系统更为广泛的实际应用潜力。如果你想象我们都是谷歌服务(油Tube,AdWords等)中的演员或者主演,那么使用RL为我挑选最合适的广告、向我推荐新的内容等将会变的相当现实。

最后,Silver和Nair提到了将要发表的论文,一旦发表,我将马上提供链接。

英文原文: GORILA: GOOGLE REINFORCEMENT LEARNING ARCHITECTURE (译者/刘翔宇 审校/刘帝伟、朱正贵 责编/周建丁) 

关于译者: 刘翔宇,中通软开发工程师,关注机器学习、神经网络、模式识别。