人工智能顶会NeurIPS 2018正在如火如荼的进行着,并且首次在第一天增加了Expo
Workshop。一共有十家公司有幸拿到了组织workshop的机会,其中中国有四家,分别是阿里巴巴,百度,Pony.AI和网易。其中,AI方面一向低调的网易首次公布了自主研发的创新性强化编程(Reinforced
Programing)框架。下面我们就一起了解下网易在NeurIPS 2018的Workshop,以及这个强化编程框架吧。
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游戏训练流程图 (GIF1 Pong训练效果)
然后,伏羲实验室使用一款1v1动作对战游戏验证了混合编程和多网络编程在解决复杂问题上的的优势。通过流程图的方式可以引入专家经验,也可以对训练模型进行分层。实验设置如下:实验1为未经任何处理的端到端模型,直接由RL算法探索所有空间。实验2为单个神经网络与专家知识的混合编程模型,神经网络先选择技能大类,同一类技能内再靠人工规则实现选择。实验3为结合经验的分层神经网络模型,在这里,上层策略与底层策略都由神经网络实现。
端到端模型、混合编程模型与分层模型
实验结果显示:蓝色线条为端到端的模型,效果最差;红色为网络加规则的混合模型一开始上升很快,且始终优于蓝色;绿色线条为分层模型,最初低于红色,但在后续训练过程中逐渐变成收益最高的一条曲线。验证了复杂问题中引入人工经验进行混合编程与问题分解进行分层网络训练的优势。
实验结果对比
在过去的一年多时间里,伏羲实验室已经利用该框架将深度强化学习应用于游戏产业。目前已在网易的多款自研产品中取得成果并上线,涵盖MMORPG、篮球、动作及休闲等众多品类。
下面是强化编程框架在潮人篮球这款游戏中的应用实例。以多网络的方式实现了篮球游戏内的AI设计,通过流程图实现attack、defense、ball
clear、free ball四个网络的建模,编辑对应的神经网络,调用RL插件接口,在Web前端申请计算资源进行训练。
https://url.cn/5TS6ifu?sf=uri
流程图工具建模实例
可以看到4个网络的训练随着机器人的状态进行切换
https://url.cn/5hDZefB?sf=uri
流程图工具建模实例
最终,在潮人篮球线上3V3模式中,3个AI Bot胜率达82%,2个AI与1个玩家人机合作胜率达70%。
https://url.cn/5KXsIzp?sf=uri
潮人篮球3v3
网易伏羲实验室
网易伏羲实验室是国内首家专业游戏AI研究机构,成立于2017年9月,目前已有160名成员。实验室在强化学习、自然语言处理、计算机视觉和虚拟人等方向开展学术研究及产业落地尝试。愿景是“以人工智能技术点亮游戏未来”,希望运用人工智能的尖端技术为玩家营造新世代的游戏体验,同时借助游戏平台的海量数据和仿真环境,推动人工智能技术发展。
在本届NeurIPS
Expo研讨会上,伏羲实验室提出了一种新的强化编程框架,能够让没有任何强化学习背景知识的使用者也能将这项技术应用到现实问题,促进强化学习在产业界落地。该框架是对传统编程的增强,使用者能够以调用一种可学习函数的方式使用强化学习,方便的实现逻辑规则与强化学习的混合编程及多网络协同学习,该框架还提供了可视化的流程图前端工具和集成各种算法的后端云平台,能够更加快捷地实现上述编程模式。此外,很多后续工作也在进行,如集成AutoML、支持模仿学习等。
在该框架的工作中,南京大学LAMDA实验室的俞扬教授团队与伏羲团队建立了合作,并计划将该框架用于星际AI和基于环境建模的模仿学习研究中。该框架已经在多款网易的游戏中应用,并计划和氪信科技一起将其推广到金融领域。网易方面表示,希望这套强化编程框架不断改进变得更加通用,让强化学习技术更快的在产业应用中发挥价值,未来帮助用户解决更多实际问题。同时也欢迎各界积极交流、探讨,共同推进AI技术发展。