NeurIPS 2018网易推出强化编程框架,一文解读如何帮RL落地产业
【新智元导读】人工智能顶会NeurIPS 2018正在如火如荼的进行着,并且首次在第一天增加了Expo Workshop。一共有十家公司有幸拿到了组织workshop的机会,其中中国有四家,分别是阿里巴巴,百度,Pony.AI和网易。其中,AI方面一向低调的网易首次公布了自主研发的创新性强化编程(Reinforced Programing)框架。
Workshop简介
随着李世石与AlphaGO的巅峰对决,强化学习为越来越多的人所知晓。强化学习(Reinforcement Learning,RL)是机器学习中的一个重要分支,智能体(Agent)通过与环境不断交互学习如何进行连续决策。Agent从环境中获取状态(State),决策要做的动作(Action),并得到环境反馈(Reward),逐渐学会更好的策略(Policy),从而最大化自己的收益。换句话说,强化学习可以通过人机训练或者自我学习,不断进步,找到解决问题的最佳方法。随着强化学习的爆发性进展,它也被大家寄予了越来越大的期望。
强化学习发展历程
既然强化学习这么厉害,已经在棋类游戏中打遍人类无敌手。是不是之后所有的事情就可以交给强化学习让机器自己来学习了呢?其实大部分强化学习的研究都还局限在学术界,如何把强化学习落地到实践中来依旧是个非常大的难题,受着很多条件的限制。因此网易伏羲AI实验室组织举办了主题为“Make Reinforcement Learning in Touch with Industry”的Expo Workshop来讨论如何更好的让强化学习应用到产业界中来。在Workshop中,网易除了公布自主研发的强化编程框架外,还邀请了南京大学的俞扬教授,天津大学的郝建业教授,氪信科技的CEO朱明杰博士,和滴滴AI实验室强化学习组负责人秦志伟博士等多位学术界和产业界著名专家学者共同探讨强化学习落地产业应用的相关进展。
强化编程框架
强化学习之所以难在产业界落地,主要有以下几个问题:1.知识依赖:强化学习这么前沿,对理论深刻理解的人自然少之又少,而仅仅想做应用也必需掌握一些基本的理论概念。2. 现实场景的复杂性和多变性:学术研究是把问题简单和抽象化,而现实中产业应用问题通常更加复杂,需要结合大量的先验知识,而且场景丰富多变。3.计算及数据量巨大:产业应用中问题的复杂性同样带来更大的计算量及数据样本量需求。
强化编程框架的设计也正是为了解决这几个问题。在解决知识依赖的问题上,新框架希望最终将学习成本降至最低,在传统编程的基础上,创新性的将函数概念扩展出可学习的“神经网络函数”。也就是说,就算你不懂强化学习,你也可以像调用普通函数一样简单的调用神经网络函数,而且这个神经网络函数可以自我学习。在解决现实场景复杂性和多变性的问题上,新框架设计了一套可视化的流程图前端工具,可以快速设计及维护上层逻辑,应对复杂多变的场景需求;同时,新框架让传统编程和强化学习无缝衔接,灵活的支持逻辑规则与强化学习混合编程,并支持多网络的协同训练。这通常对应了复杂问题的分解及分层结构的强化学习,在这里都可以通过流程图轻松直观的表达。在解决计算及数据量巨大的问题上,伏羲实验室提供了一整套后端云平台作为解决方案。之所以叫强化编程这个名字,实际上是一语双关。首先是对现有编程方法的一种增强,其次是通过强化学习来实现地这种能力。
伏羲强化编程框架
从整个框架来看,首先提供了一个面向业务方的流程图工具,以流程图的形式对强化学习问题进行建模,自动生成代码(目前支持Lua、Python及C#语言),嵌入到各种类型的业务产品中,实现与环境交互,并具有调试功能。同时提供一个基于完整计算集群的容器云平台,将各种RL算法(DQN、A3C、Impala等)通过容器化的方式进行封装,支持所有主流的深度学习框架(TensorFlow、Mxnet、PyTorch等)。基于RPC连接环境和训练集群,并对客户端获取的数据进行有效地封装和转发,同时将服务器产生的策略返回给客户端,组包在服务器端进行,支持并行及动态扩容的训练。网易伏羲实验室还提供了一套完整的SDK方案,在平台上完成训练后,可以方便地将训练结果导出,部署到服务器或客户端。最后可以通过一个Web控制前端,查看训练数据及效果、规划计算资源、改进训练方案,从而提升工作效率。
实际应用
伏羲实验室先在Atari游戏Pong上验证了该框架解决经典强化学习实验问题的有效性。下图为相应的流程图和训练效果:
Pong游戏训练流程图
Pong训练效果
然后,伏羲实验室使用一款1v1动作对战游戏验证了混合编程和多网络编程在解决复杂问题上的的优势。通过流程图的方式可以引入专家经验,也可以对训练模型进行分层。实验设置如下:实验1为未经任何处理的端到端模型,直接由RL算法探索所有空间。实验2为单个神经网络与专家知识的混合编程模型,神经网络先选择技能大类,同一类技能内再靠人工规则实现选择。实验3为结合经验的分层神经网络模型,在这里,上层策略与底层策略都由神经网络实现。
端到端模型、混合编程模型与分层模型
最终实验结果显示:蓝色线条为端到端的模型,效果最差;红色为网络加规则的混合模型一开始上升很快,且始终优于蓝色;绿色线条为分层模型,最初低于红色,但在后续训练过程中逐渐变成收益最高的一条曲线。验证了复杂问题中引入人工经验进行混合编程与问题分解进行分层网络训练的优势。
实验结果对比
在过去的一年多时间里,伏羲实验室已经利用该框架将深度强化学习应用于游戏产业。目前已在网易的多款自研产品中取得成果并上线,涵盖MMORPG、篮球、动作及休闲等众多品类。比如在潮人篮球这款游戏中,3V3模式3个AI Bot胜率达82%,2个AI与1个玩家人机合作胜率达70%。