引言:人工智能技术越来越广泛的应用于各行各业,而这一切都离不开底层深度学习框架的支持。近日,百度深度学习PaddlePaddle正式发布了强化学习框架PARL,同时开源了基于该框架,在NeurIPS 2018强化学习赛事中夺冠的模型完整训练代码,再次向业界展示了百度在深度学习领域的技术能力。
PARL的效果如何?
PARL是基于百度 PaddlePaddle 打造的深度强化学习框架,覆盖了DQN、DDQN、Dueling DQN、DDPG、PPO等主流强化学习算法。在PARL 1.0的发布中,基于PARL实现的DDPG, DQN, PPO等算法均有覆盖,在一些经典测试问题中,如Atari Game, Mujoco等,均取得了state-of-the-art的成绩。性能相比其他平台也毫不示弱。
此外,PARL 框架支持百亿级别数据或特征的训练,基于PARL可同时通过8块GPU拉动近20000个CPU节点运算。在NeurIPS 2018赛事中将需要近5个小时迭代一轮的PPO算法加速到不到1分钟,相对单机运算加速比高达几百倍。与现有开源强化学习工具和平台相比,PARL框架具有更高的可扩展性、可复现性和可复用性,支持大规模并行和稀疏特征,能够快速完成对工业级应用案例的验证。
在NeurIPS 2018强化学习赛事中PRAL的使用脱颖而出,击败了400多支来自全球各个研究机构的参赛队伍,获得冠军的最关键因素是,PARL框架在算法上采用了独特的网络结构,特征处理、奖励值工程、探索策略以及学习方法。其中比较重要一点是用了课程学习(Curriculum Learning)来学习一个比较好的初始步态。而在架构方面,受到GA3C启发,所设计的DDPG并行结构直接达到了单机性能的几百倍,使得深度强化学习框架PARL的调研效率大大提升。
PARL在哪些前沿应用发挥作用?
a. 新闻和信息推荐
近年来,信息流在研究上出现两个难点和热点,一个是列表页内的组合优化,另一个是列表页间的兴趣转移。传统推荐往往都是基于用户和单点内容之间的喜好程度来预估。现代信息推荐系统注重列表内的组合,以及列表页间的转移变化。而这两个点,都是强化学习适合的重要场景。
列表页内的优化主要是内容之间的组合,现代信息流推荐系统并不是一次只推荐一个内容,而是一次推荐多个内容。由于列表多个内容之间的相互关联会影响到用户体验,但对于
具体如何关联,却没有办法确定。虽然大家都知道多样性比较重要,但为什么重要,以及多样性到底怎么量化,目前依旧缺乏统一的认识。而列表页间的优化,针对的是用户行为的序列。用户浏览完一个列表,重新刷新,再看第二个列表,这个过程中兴趣有没有发生转移?有没有新的兴趣被激发?这两个点都涉及到长期收益问题。也就是说,不能再仅仅用当前内容的用户反馈来学习,而是得用比较长时间的收益来学习。
在列表页内组合上,PARL所提出的序列框架统一了学术界对列表页框架认识的一些模糊。根据百度发布的文章,多样性一个概念远不足以反映列表页内的关联关系。内容之间既有相互重叠,又有相互关联和促进。以往的多样性建模往往比较片面。而基于序列优化的建模方式,能够处理内容之间所有可能关联。强化学习在这中间,起到了关键的序列全局优化的作用。而百度内部在2017年底就Launch了序列优化框架,据了解,这个框架至今已经取得了不少收益。而PARL在其中充分发挥了其在大规模训练中性能的优势。
(序列生成网络 – 指针网络)
而在列表页之间的转移方面,百度内部也早已已经开展了探索。对于信息流推荐这类产品的列表间优化,强化学习面临一个难题是Variance过大,可能导致准确率下降。 学术界有不少针对这个问题的工作,但提出的方法都相对偏理想化,鲜有方法能够真正用到线上并产生收益。开发者正在基于PARL创新“Credit Assignment”这类新的算法,以更好地更接地气地解决这些问题,据悉目前已有一些进展,不远将来可能发布这些成果。
(序列生成 – 评估框架)
b. 自动导航和控制
PARL框架也将强化学习用在无人机和无人车的自动导航和避障领域。控制问题是一个经典的Delayed Reward问题,强化学习最开始也是在控制领域应用最广的。因为如果发生碰撞或者控制不好,一定不是当前一个时间步的问题,而是多个时间步的连续问题。传统的强化学习研究,都不关注成本和风险,认为灾害事件(如碰撞)可以无成本获得。但真实场景,比如无人车、无人机,则不允许有那么多的碰撞。
开发者利用很多无人车、无人机测试过程中的“安全员”这一角色,不仅为了在测试中可以保障安全,还将这些夹杂了安全员干预的、不符合传统强化学习路径的数据收集起来,作为信号来学习。该算法叫干预辅助强化学习(Intervention Aided Reinforcement Learning)(http://proceedings.mlr.press/v87/wang18a.html),它可以通过学习带干预的路径,来强化策略,使得干预可以直接被降低。基于这套算法,百度成功使得一个端到端(end-to-end)的复杂神经网络模型,能够被用于直接控制飞行器的避障,在障碍物比较密集的环境中平稳飞行。这不仅证明了强化学习被用在自动导航问题上的可能性,也为无人车的强化学习训练探索了一种方法。该方法也会在短期内开源到PARL里面,方便用户使用
总结:
在强化学习方面,百度内早在 2012 年就将在 multi-armed bandit 问题上的研究成果部署到了推荐系统中,应用于搜索、对话、推荐等产品,通过点击反馈结合在线训练的方式,动态调整探索和收益的平衡点,在降低探索风险的同时最大化推荐收益。随着PaddlePaddle在工业界的影响不断深入,未来基于PaddlePaddle深度学习框架PARL将对工业界,以及学术界的深度强化学习应用和研究起到长远的促进作用,来满足业界日趋发展旺盛的深度强化学习应用的需求,做到真正源于产业实践的深度学习框架。