前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《 NEXT 技术快报》:机器学习篇

《 NEXT 技术快报》:机器学习篇

原创
作者头像
serena
修改2021-08-03 14:56:11
1.2K0
修改2021-08-03 14:56:11
举报
文章被收录于专栏:社区的朋友们社区的朋友们

作者:ChengGe

导语: 每年暑期都是各路顶会扎堆,今年也不例外,SIGGRAPH,CVPR,ICML这三个我们一直关注的领域顶会相继召开,本期“NEXT技术快报”将重点关注这三大顶会的内容,摘录与游戏开发,游戏体验相关的内容做一个归纳点评。

本期“机器学习”部分的内容主要来自ICML2017 Reinforcement Learning这个Track相关的内容。强化学习是目前机器学习中和游戏AI最接近的领域,本次ICML2017重点听了这部分的内容。整个强化学习Tutorial+Conference+Workshop一条线听下来,从方法纬度看,今年做Model Based和Hierarchical变成趋势。RL能做的也就几块,近两年Model Free的方法做的差不多,尤其TRPO,PPO放出来之后,开始转到Model Based方法,以及Model本身的预测。Hierarchical是解决多任务,多目标问题的利器,和NN互补,放到RL框架来也很自然。另外还有些其他领域的方法和RL的结合,比如Game里的CFR。下面将从RL面临的问题的角度详解几篇文章。

泛化和迁移(Generalization and Transfer)

网络模型的泛化和迁移是目前深度学习领域的一个巨大挑战。泛化和迁移问题又可以细分成多种形式:

● 从训练环境到测试环境的泛化

● 从训练环境到其他未曾见过环境的泛化(0-shot)

● 从简单训练环境到复杂陌生环境的泛化(1-shot)

● 从模拟环境到真实世界的泛化

● 多个训练模型的经验迁移

Robust Adversarial Reinforcement Learning

原文链接:https://arxiv.org/pdf/1703.02702.pdf

【摘要】

CMU和GoogleBrain今年ICML合作的这篇文章主要想解决强化学习的模型怎样从模拟环境到真实环境,从训练环境到测试环境的迁移,同时增加模型的健壮性。主要思想是采用反策略在训练中增加噪声,提高模型的抗干扰能力和泛化性。下列几个OpenAI Gym仿真场景中,红色的箭头表示训练中的干扰力,这些干扰因素也会被参数化并参与学习,在训练中充当Adversarial角色。

【问题】

  • 由于缺乏真实数据,强化学习中从模拟(Simulation)到真实世界的迁移十分困难;
  • 即使在真实世界训练,训练到测试的泛化也很困难。

【解决方法】

在训练主Agent同时,训练一个对手Agent,对手Agent要学习的策略就是破坏主Agent的策略。从而,模拟在泛化过程中,或是向真实世界迁移过程中的意外情况。举个形象的例子,两个人一起开车,一个人学习正常开车,另外一个人阻止正常开车。对手Agent除了Agent的行为外,还被赋予“超能力”,比如改变路面的摩擦力,改变车子的质量。本质上是在制造噪声数据,让主Agent更加Robust。

【结果分析】

优势:通过对HalfCheetah,Swimmer,Hopper,Walker2D等几个问题的实验,相对于基线方法TRPO,文中的RARL在训练和测试过程中表现出了更强的鲁棒性:对初始化状态不敏感;对测试环境适应性强;测试中对噪声情况也更加鲁棒。

不足:Adversarial Agent Reward随不同问题场景变化,较难设置;竞争训练的过程,较单个Agent训练复杂,不易收敛,较依赖于参数。

【应用落地】

  • RL中训练结果难以在测试环境中泛化。
  • 模拟器向更加复杂的真实环境迁移。

DARLA: Improving Zero-Shot Transfer in Reinforcement Learning

原文链接:https://arxiv.org/pdf/1707.08475.pdf

【摘要】

DeepMind这篇文章主要想解决Transfer Learning中的一类问题:Domain Adaption,即在一个领域学习的模型,在Reward结构基本不变的情况下,能适应另外一个领域,这里的领域可以理解为模型的输入分布。之前研究者通过对齐源领域(Source Domain)和目标领域(Target Domain)的内在表示来提升模型的适应性,但是这种方法通常需要知道目标领域信息,而这种信息很多时候很难获取,或是根本就不知道。于是Irina Higgins(DeepMind的美女Research Scientist)另辟蹊径,在Target Domain的情况下,通过分解Source Domain到一个低维的表示(比如游戏环境中的颜色,位置,尺度,几何图形,光照等等),“过滤”掉领域相关的信息,进而增强模型对0-shot Target Domain的适配性。他们还为这套方法取了个很别致的名字:DARLA(DisentAngled Representation Learning Agent)。这个模型在DeepMind Lab仿真环境和Jaco Arm,MuJogo上sim2sim, sim2real的domain transfer测试结果都远远高于目前的基线算法。

【解决方法】

DARLA分三步走,第一步:从环境中学习基本的视觉概念,如颜色,物体,位置等等,也就是所谓的Disentangled Visual Representation;第二步:在Source Domain中,使用上一步得到的低维的分解的视觉表示作为观察,学习策略模型;第三步:Target Domain上测试。模型Framework如下:

上图中主体部分是蓝色的VAE(提取低维Domain无关的信息)和灰色策略网络,旁边黄色的DAE模块是用来给VAE提供特征空间(而不是像素)重建Loss的。

【应用落地】

存在Domain Adaption的场景,比如游戏规则相同,场景变化(ViZDoom Track2)。文中仅仅展示的该算法在简单任务上的游戏,多目标,多阶段任务还是要结合其他方法综合治疗。

回报函数(Reward Function)

Reward Function是强化学习中牵引训练目标的重要手段。RL训练中设置Reward Function是件非常不容易的事,被研究者戏称“Reward Engineering”。前卫的研究者很早就开始探索各种自动化获取Reward的方法,从稍早的IRL(Inversed Reinforcement Learning)到这次ICML中出现的Curiosity,从Extrinsic Reward到难以设置的Intrinsic Reward.

Curiosity-driven Exploration by Self-supervised Prediction

原文链接:https://arxiv.org/pdf/1705.05363.pdf

Source:https://github.com/pathak22/noreward-rl

【摘要】

增强Reward很难设定,本文提出了一个思路:既然外在的Reward难以确定,那么自发的“好奇心”呢?Berkeley的Deepak在这篇文章中将好奇心建模成:预测行为在视觉特征空间的结果与观测的误差(视觉特征空间是通过自监督的反向动力学模型得到的)。这种方法在只有Sparse Extrinsic Reward甚至没有Extrinsic Reward的情况下,可以有效的提升Agent的探索能力,同时还有模型泛化性上的增益。但是文中只举了马里奥和ViZDoom Navigation的例子,这两个例子偏简单,说明内生的Curiosity比着先验丰富的Extrinsic Reward还是要差不少,但是针对没有Extrinsic Reward的情况下,好奇心至少能驱动Agent持续Explore。

上图是马里奥的例子,在第一关中使用好奇心去做探索,习得的模型,在关卡二中接着用好奇心探索,探索效率就要高很多,说明用好奇心探索得到的模型泛化性能更佳,主要原因可能是这两关基于Curiosity的Reward结构类似,但这并不是hand-craft出来的,是学出来的。

【解决方法】

上图左半部分除去ICM是一个标准MDP Chain上的Policy Optimization,右边是ICM(Intrinsic Curiosity Module)的展开图,先看左图,和一般的Policy Optimization不同的是Reward里除了Extrinsic Reward 外还引入了Intrinsic Reward 。再来看看上图右侧,ICM模块输入当前状态,当前动作和下一帧状态,输出Intrinsic Reward 。和映射到feature空间联合Pridict当前动作,这块其实是用来训练两个状态的Feature Map的,这样做的优势是抽取Images像素中与决策相关的信息,过滤无用的信息,让预测更加鲁棒。再看ICM左边前向部分,输入是当前的动作,和在feature空间的映射,输出用来预测下一状态在feature 空间的映射,两者的误差作为Intrinsic Reward 输出。看上去很绕,但是思想很朴素,环境的预测误差作为Intrinsic Reward,预测误差越大,好奇心越大,探索也越有效,越值得鼓励。和之前DeepMind用Color Control作为Auxillary Task有点神似,把当前动作对环境的改变作为驱动Explore的一个要素。

【应用落地】

RL中,尤其是做Policy Optimization的时候,在没有Extrinsic Reward或是很稀疏时,对于简单的Task可以尝试一下这种方法,或是把这种方法改成Auxilary Task之一,辅助主Reward探索更多系统隐含的回报因素。

FeUdal Networks for Hierarchical Reinforcement Learning

原文链接:https://arxiv.org/pdf/1703.01161.pdf

【摘要】

在这篇文章里,Deepmind主攻Atari2600里最难解的一类问题:推理规划类问题。本应该放在下一节Multitask里,但是因为这篇的核心贡献还是阶段性Reward的自动探索,姑且放在这里吧!问题如下图:Montezuma Revenge中玩家需要操纵角色先通过梯子下到地牢,然后爬上梯子拿到钥匙,再回到上层打开门进入下一关。这类问题的Reward很难设定,如果只是拿过关分值作为Reward,会有个Delayed Credit Assignment问题,也就是说等到谜题解开的时候,不知应该给前面哪一步决策加分;同时伴随的还有探索空间非常大,回报非常稀疏的问题。

于是大家就想到解规划问题的利器层次结构,将问题Divide and Conquer,比如上面这个解谜问题可以切分成若干个子问题,子问题解决了,主要目标也就达到了,子问题可以设置自己的Reward,看上去很完美。但是Deepmind这帮人觉得这样解太Low了,因为需要太多的HandCraft,不同的问题,需要人工先解一遍,然后让神经网络解决每个Intuitive的子问题。于是开挂想用一个更加General的层次模型来解决这个问题。算法框架分两层,上层叫Manager,主要负责生成中间一个个小的Goal,下层叫Worker,主要负责完成Goal。这样只要设定一个最终的Reward,Manager负责探索阶段性的回报函数,Worker用这个回报函数完成阶段性的目标。算法框架如下图:

【应用落地】

简单的线性推理,可以考虑一下这种方法,毕竟只有两层嘛,上层探索的周期是Fixed的,只能探索这一周期内的sub goal!当然可以加多层Manager,那么到底加几层是不是也很Artifact呢!猜想这篇虽然设计精妙,却没有得到BestPaper提名,也许就是因为以上原因吧。当然,David Silver今年拿到了Test of Time也是实至名归,Deepmind也算是拿了今年ICML两项大奖之一。作为跟着David在YouTube上10集Course入门RL的人,还是想送给David由衷的祝福。

复杂的多任务,如果带并行,带循环,带计数的推理,还是需要更加复杂的结构来解,或是如下节将会提到的让人的先验能有机的和现有的RL结合。

多任务(Multitask)

多任务通常指较复杂的多目标任务,这些任务通常有时序上的依赖关系,在状态空间不大,Model(状态转移概率)已知的情况下,可使用规划类的算法解决。但是当模型未知,状态空间很大(维度,尺度)的情况下,尤其当Action连续时,规划类算法各种搜索技巧也会无能为力。而以解Intuitive问题见长的神经网络似乎天生就不是用做推理的,这次ICML,看到不少重拾Hirarchical方法,尝试优雅的结合神经网络来解决多任务,多目标的规划类问题。其实,这也不是个新鲜玩法,早在去年AlphaGo,David Silver就将DRL和MCTS放在一起解围棋中的推理问题,只不过MCTS虽然形式上是个层次结构,但本质上是个带权值适应的搜索树,层次中并没有Goal的概念。

Modular Multitask Reinforcement Learning with Policy Sketches

原文链接:https://arxiv.org/pdf/1611.01796.pdf

Source: https://github.com/jacobandreas/psketch

Video:https://www.youtube.com/watch?v=NRIcDEB64x8

【摘要】

这篇是本届ICML增强学习这个Channel唯一入选Best Paper提名的文章,细读一遍发现是个Hierarchical Framework:引入Policy Sketches高层的干预,虽然会被人说Low,但从实用角度还是忍不住点个赞!代码也放出来了,试验结果也很抢眼球。Berkeley RL红人Sergey Levin团队放出来的文章干货居多,推导漂亮,实验充分,值得精读。

上图中是两个多任务的问题,左边图Agent的目标是Make planks,需要完成这个任务,首先需要砍树取得木头,然后使用Workbench完成任务。右边一个任务则是Make Sticks,和左边任务公用一个高层动作:砍木头。这篇文章最大的贡献是将人类完成一项复杂任务的先验抽象成高层动作的序列,即文中所谓的Policy Sketches,然后将其做到Actor-Critic框架里。对于比较长而复杂的Policy Sketches,还设计了一层Curriculum,很工程,很实用!Sketches里的每个高层动作都对应这一个PolicyNet,下面是算法框架,除了Curriculum部分,做RL的人应该能秒懂:

贴个算法在这里又不做解释除了凑点篇幅,更想说的是Michael I. Jordan, Andrew N. G., Pieter Abbeel, Sergey Levin伯克利这一脉家风严谨,公式中的符号系统设计精美而一致。偏应用的文章要想拿BestPaper提名最直接的途径就是推理严谨,简单易懂,并且放源码,一码胜千言嘛!

【应用落地】

这篇文章最大的特点,看上去很实用!至于实际疗效如何,待Axon拿复杂MT问题试下来才知道。

Zero-Shot Task Generalization with Multi-Task Deep Reinforcement Learning

原文链接:https://arxiv.org/pdf/1706.05064.pdf

Video:https://www.youtube.com/watch?v=L7cumHGI4uM

【摘要】

这篇文章是密歇根大学的Junhyuk Oh教授去现场讲的,正会(Conference)和VGML Workshop听了两趟,Professor Oh略带催眠属性的汗蒸英文,听第二遍的时候实在忍不住打了个盹儿... ... 这篇文章主要尝试解决多任务环境下的两层泛化问题:未见过的指令和长指令序列。针对前者,通过学习指令之间的相关性,很常规的想法;针对后者,依然是Hierarchical,主要idea是学了一个元控制器(Meta Controller)使用习得的技能去完成高层的指令,同时决定何时去Update子任务,解决Delayed Reward问题。

如上图,实验是拿MineCraft做的,Testing里加入了Training里没有的指令(蓝色部分),并且增长了指令序列。不难发现,蓝色部分新增的指令,其实只是换了施动对象,动作本身并没有改变。这篇可以和上篇对比着看,一样用高层指令序列,一样用Hierarchical,一样的Engineering,却做出了不同的风格。

【应用落地】

Multitask这两篇的实用性较强,两篇的侧重点稍微不同,前者着重一个高层指令和RL的结合框架,后者考虑较简单的指令泛化,两者都展示了较好的Task级别(指令序列)的泛化。在解多任务问题时可以综合考虑这两篇的思路。

多智能体(Multiagent)

ICML开会的这几天中,DeepMind和暴雪联合放出了星际2AI平台SC2LE,伴随发布的还有大量玩家Replay数据;OpenAI在Dota2国际邀请赛TI17中战胜了Solo高手,Dota2职业选手Dendi,并约战明年5V5. 在此之前,Facebook的FAIL也放出了SC的大量玩家数据,并且发布了一个轻量级的Multiagent实验平台ELF。由此可见Multiagent俨然成为众多顶级AGI团队角逐的下一个目标。Multiagent是人类通向AGI途中必须迈过的坎,对比单智能体,状态空间维度和尺度骤增,Non-Stationary Environment,集中(Centralized)和分散(Decentralized)的平衡,Multiagent 受信(Credit Assignment)问题,高层的Planning,都带来了极大的挑战。同时,Multiagent拥有巨大的商业前景,如:无人驾驶,人机Teaming,无人机多机协同,智能物流系统 etc.

Counterfactual Multi-Agent Policy Gradients

原文链接:https://arxiv.org/pdf/1705.08926.pdf

Video: https://www.youtube.com/watch?v=3OVvjE5B9LU

【摘要】

这是一篇Oxford在VGML Workshop的文章,注意上面视频不是VGML现场的。Multiagent情况下,如果把所有Agent联合在一起训练,状态空间和Action空间都会随Agent数量指数级增长。这篇文章提出了一套Decentralized方案,准确的说是:Centralized Training Decentralized Policy。Actor--Critic中Critic用使用Centralized训练,而Policy每个Agent单独训练,Critic仅用于训练过程中,所以在Test的时候只需要Decentralized Policy。本文的另外一个Idea是采用Counterfactual Baseline去Marginalised出单个Agent行为的价值,解决多Agent授信问题。这种Decentralized的方法能够达到接近Centralized方法训练出来的Multiagent策略,还是不错的!

上图(a)中红色的是训练中需要的Centralized Critic,蓝色是Decentralized Plicy,(b)(c)对应的分别是Policy Net和Critic Net。

【应用落地】

文中使用Starcraft的Micromanagement做实验,取得了和Centralized方法接近的效果,但是训练难度降低了不少,所以类似的场景可以试试这种方法COMA。

Coordinated Multi-Agent Imitation Learning

原文链接:https://arxiv.org/pdf/1703.03121.pdf

【摘要】

Multiagent中稍复杂的协同配合很难直接用强化学习得到,借助Imitation Learning来习得是个很直观的思路。但是用IL来学Multiagent Coordination也有自己的挑战,比如协同策略是隐含在Demo中不易得到;Demo 数据噪声问题;从Demo中习得的协同策略的泛化性问题等等。这篇文章以Predator-Prey和足球为实验场景,提出了一套半监督的方法同时学习隐含Agent之间的协同策略,以及单个Agent的Policies。

【解决方法】

对于单个Agent的Policy,每个Agent一个策略网络,是个Decentralized的训练过程;对于Multiagent的协作模型,文中则是设计了一套基于变分推理(Variational Inference)的方案。总体思路上有点类似上篇:Joined Learning Decentralized Policy Net。

算法构架如上图,左边是Agent Policy训练,右边是Structure Model,即隐含的角色分配模型,用Graph Model表示。每个训练周期,先固定右边的Structure Model,用IL有导师的训练左边的策略网络;再固定左边的策略网络,通过最大化角色分配Entropy,来训练右边的角色分配模型。这样做可以部分的避免由于Demo中的角色变换带来的Non-stationarity。

【应用落地】

游戏中解决Multiagent角色动态分配带来的non-stationarity问题可以考虑试试这种方法。Imitation Learning部分没有太多新意。建模角色分配的图模型,文中用的是一阶的Markov Model,针对更加复杂的协作问题可能需要替换成更加General的图模型。

NEXT技术快报:快速扫描学术/技术前沿进展,做出必要的分析归纳,寻找它们在产品中落地的可能性。希望能帮助大家了解前沿,拓宽视野,提高决策效率。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 泛化和迁移(Generalization and Transfer)
  • 【摘要】
  • 【问题】
  • 【解决方法】
  • 【结果分析】
  • 【应用落地】
  • 【摘要】
  • 【解决方法】
  • 【应用落地】
  • 回报函数(Reward Function)
  • 【摘要】
  • 【解决方法】
  • 【摘要】
  • 【应用落地】
  • 多任务(Multitask)
  • 【摘要】
  • 【应用落地】
  • 【摘要】
  • 【应用落地】
  • 多智能体(Multiagent)
  • 【摘要】
  • 【应用落地】
  • 【摘要】
  • 【解决方法】
  • 【应用落地】
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com