【强化学习】构建强化学习系统,你需要先了解这些背景知识

2017 年 11 月 14 日 产业智能官 机器之心

选自joshgreaves

机器之心编译


强化学习(RL)是关于序列决策的一种工具,它可以用来解决科学研究、工程文理等学科的一系列问题,它也是围棋程序 AlphaGo 的重要组成部分。本文旨在分享 85 页强化学习课本中最重要的内容,我们从最基础的马尔科夫决策过程开始一步步构建形式化的强化学习框架,然后再详细探讨贝尔曼方程以打好强化学习的基础。当然,如果你想更全面地了解这一主题,建议阅读 Richard Sutton 和 Andrew Barto 的著作《Reinforcement Learning: An Introduction》。


监督学习 vs 评估学习


对于很多感兴趣的问题,监督学习无法提供我们需要的灵活性。监督学习和强化学习之间的主要区别在于收到的反馈是评估性的还是指导性的。指导性反馈提示如何达到目标,而评估性反馈告诉你达到目标的程度。监督学习一般是基于指导性反馈来解决问题,而强化学习则基于评估性反馈解决问题。图像分类是一个带有指导性反馈的监督问题,当算法尝试分类特定数据时,它将从指导性反馈中了解到哪个是真正的类别。而评估性反馈仅仅告诉你目标的达成的程度,如果你使用评估性反馈训练分类器,那么你的分类器可能会说「我认为这是一只仓鼠」,然后它将得到 50 分。但是,由于没有任何语境信息,我们不知道这 50 分是什么。我们需要进行其他分类,探索这 50 分代表我们是正确还是错误的。或许 10000 是一个更好的分值,但是我们还是不知道它是什么,除非我们尝试对其他数据点进行分类。


强化学习说:猜到是仓鼠会收到两个金色星星和一个笑脸,而猜测是沙鼠,则会收到一个银色星星和一个大拇指。


在我们感兴趣的很多问题中,评估性反馈更加直观,易于使用。例如,想象一个控制数据中心温度的系统。指导性反馈似乎没有什么用处,那么你如何告诉算法给定时间步中每个组件的正确设置是什么呢?此时评估性反馈将发挥作用。你可以获取关于特定时间阶段使用的电量或平均温度,甚至过热机器的数量等反馈数据。这事实上就是谷歌使用强化学习解决该问题的方式。现在,让我们赶快来了解强化学习吧。


马尔科夫决策过程


假定我们知道状态 s,如果未来的状态条件独立于过去的状态,那么状态 s 符合马尔科夫属性。这意味着 s 描述了所有过去状态直至当前状态。如果这很难理解,通过实例会更好懂。想象一个在空中飞起的球,它的状态由位置和速度决定,并足以描述其当前和下一个时间步的位置(不考虑外界影响的物理模型)。因此,这一状态具备马尔科夫属性。但是,如果我们只知道球的位置而不知道其速度,它的状态则不是马尔科夫。当前状态并未收纳所有过去的状态,我们还需要过去时间步的状态信息才能构建球的恰当模型。


强化学习通常可以建模为一个马尔科夫决策过程,即 MDP,它是一个有向图,具有节点和边的状态,可以描述马尔科夫状态之前的转化。下面是一个简单实例:


一个简单的马尔科夫决策过程。


这一 MDP 展示了「学习」的马尔科夫决策过程。首先你在一个「不理解」的状态中,接着你面临着两个可能的动作(action)——学习或者不学习。如果你选择不学习,则有 100% 的可能性返回到不理解的状态里。然而,如果你选择学习,则可能性降低为 20%,即你有 80% 的可能性进入理解状态。


实际上,我确定进入理解状态的可能性要高于 80%。MDP 的核心其实很简单,对于一个状态你可以采取一系列动作,而采取一个动作之后,会有一些关于你要转入状态的分布。正如在采取不学习动作的情况中,这一转化也可以很好地被确定。


强化学习的目标是学习如何采取动作,从而把更多时间花在更有价值的状态中。为了一个有价值的状态,我们需要更多的 MDP 信息。你无需一个 MDP 教你便懂得不吃东西就会饿死,但是强化学习智能体可不这样。

你不需要MDP来告诉自己饿了要吃饭,但是强化学习的智能体需要它。


这一 MDP 增加了奖励。每次转入一个状态,你会收到一个奖励。在这个实例中,由于挨饿你获得了一个负面奖励,由于饿死而获得了一个更大的负面奖励。如果你吃饱了,则获得一个正面奖励。现在我们的 MDP 已经彻底成型,可以开始思考如何采取动作以获取最大奖励。


由于这个 MDP 很简单,我们很容易看到获取高奖励的方式就是呆在高奖励区域,即饿了就吃。在这一模型中当我们吃饱了就没有太多其他选择,但我们会不可避免地再次饥饿,并立即选择吃东西。强化学习感兴趣的问题具有更大更复杂的马尔科夫决策过程,并且通常在我们实际探索之前,无法获得这种策略的任何信息。


形式化强化学习问题


现在我们已经有了很多所需的基本组成,下一步需要了解强化学习中使用的术语。最重要的组成是智能体(agent)和环境(environment)。智能体是被间接控制的,存在于环境中。通过回顾 MDP 可以看到,智能体可以在给定的状态下选择对它而言有显著影响的动作。然而,智能体并不能完全控制环境的动态。环境会接收这些动作,然后返回新的状态和奖励。


图片来自 Sutton 和 Barto 的《Reinforcement Learning: an Introduction》


这张图片很好地解释了智能体和环境之间的互动。在某个时间步 t,智能体处于状态 s_t,采取动作 a_t。然后环境返回一个新的状态 s_t+1 和一个奖励 r_t+1。奖励处于时间步 t+1 的原因是它是由环境在 t+1 的状态 s_t+1 中返回的,因此令它们保持一致更加合理(如图中所示)。


前半部分主要概述了强化学习的基本概念与组成部分,在上文中我们概述了强化学习问题的一般框架,并已经预备好学习如何最大化奖励函数以训练强化学习模型。在下一部分中,我们将进一步学习状态价值(state value)函数和动作价值(action value)函数,以及为解决强化学习问题奠定了算法基础的贝尔曼方程。此外,我们还将探索一些简单且高效的动态规划解决方案。当然,下一部分只是简要地概述贝尔曼方程。


理解强化学习:贝尔曼方程


对强化学习最重要的方程的逐步推导、解释,解开神秘面纱。


在前面内容中,我们学习了 MDP 和强化学习框架的主要部分。接下来,我们将在这个理论的基础上学习价值函数和贝尔曼方程。


奖励和回报(return)


正如之前所讨论的,强化学习智能体需要学习最大化累积未来奖励(cumulative future reward)。描述累积未来奖励的术语是回报,通常用 R 表示,并对特定时间步的回报加上一个下标 t。使用数学符号表示为:


如果这个序列是无穷的,可能最终会得到无限大的回报,这对于问题的定义来说没有什么意义。因此,只有奖励的序列是有限的,该方程才是有意义的。总是有终点的任务被称为阵发性的(episodic),阵发性问题的一个不错的例子是卡片游戏。事件片段起始于给每个人发牌,并由于游戏的特定规则不可避免地会走向结束。然后,另一个片段将从发牌开始下一个回合。


相比使用未来累积奖励作为回报,更常使用的是未来累积折现奖励(future cumulative discounted reward):


其中 0<γ<1。以这种方式定义回报有两个好处,一个是这种定义可用于无穷序列的回报,更早期的奖励有大得多的权重,这意味着比起更遥远的未来,我们更关心即将发生的奖励。选择的γ越小,这种倾向就越明显。从γ等于 0 和 1 的两个极端例子就能理解,如果γ等于 1,这个方程就变成了对所有的奖励都同样的关心,无论在什么时候。另一方面,当γ等于 0 的时候,这个方程就变成只关心即将发生的奖励,并对后面的所有奖励都不关心,这会使模型变得极端短视。它将会采取对当前回报最大的动作,而不会考虑该动作的任何未来影响。


策略


一个强化学习策略可以写为 π(s, a),它描述了一种动作的方式。策略函数的输入为状态(state)和动作(action),并返回在输入状态的情况下采取输入动作的概率。因此,对于一个给定的状态,该状态下所有动作 a 的策略函数值之和一定为 1。在下面的案例中,如果我们的状态是「hungry」,那么可采取的两种动作「Eat」或「Dont Eat」,并且当前状态下这两个动作的策略函数和为 1。

我们的策略函数应该要描述每一个状态下动作的选择方案。所以一个等概率的随机策略将简单地将动作「Eat」或「Dont Eat」的概率设为相等,即π(hungry, E)=0.5、π(hungry, E bar)=0.5、π(full, E bar)=1,其中 E 为动作「Eat」,E bar 为动作「Dont Eat」。这也就说明在「hungry」状态下选择动作「Eat」或「Dont Eat」的概率相等。


我们在强化学习中的目标是学习一个最优的策略 π*,它将告诉我们如何选择一个动作以获得最大的回报。上图是非常简单的案例,我们很容易看出来最优策略就是在 hungry 状态下选择动作 Eat,即π*(hungry, E) = 1.0。在该案例中最优的策略是确定性的,即每一个状态都有最优的一个动作。这种确定性情况可以写为π*(s) = a,它代表着策略函数即将状态映射到具体动作的一个函数。


价值函数


为了学习最优策略,我们使用了价值函数。强化学习中有两种价值函数:状态价值函数 V(s) 和动作价值函数 Q(s, a)。


状态价值函数在遵循一个策略时描述状态的值。根据策略π,状态价值函数的期望回报是:


注意:即使是在同样的环境中,价值函数也会根据策略的不同而发生变化。原因在于状态的值取决于动作,在特定状态下采取的动作会影响期望奖励的值。还要注意期望的重要性。(期望即加权平均值;字面意义上即你期望看到的回报。)我们使用期望的原因之一是到达一个状态后发生的事情存在一定的随机性。你可能有一个随机策略,这意味着我们需要结合所有不同动作的结果。此外,转移函数(transition function)也可能是随机的,这意味着我们最终的状态可能不是 100% 的概率。记住上面的例子:当你选择一个动作时,环境将回报下一个状态。它可能回报多个状态,即使在给定一个动作的前提下。我们将更多地把它当作贝尔曼方程。期望会考虑所有随机性。


我们使用的另一个价值函数是动作价值函数。该函数告诉我们使用特定策略时某个状态中采取一个动作的值。在策略 π中,给定状态和动作情况下,期望回报为:



状态价值函数的注意事项同样适用于动作价值函数。期望根据策略考虑未来动作的随机性,以及环境回报状态的随机性。


贝尔曼方程


Richard Bellman 是一位美国应用数学家,他推导出了以下方程,使得我们能够开始解决马尔科夫决策过程(MDP)。贝尔曼方程在强化学习中非常普遍,也是理解强化学习算法工作原理所必须了解的。但是在我们学习贝尔曼方程之前,需要一些有用的符号。这些符号定义如下:

p 是转移概率(transition probability)。如果我们在状态 s 处开始,并实施动作 a,则会得到状态 s'和概率



是我们在状态 s 处开始,实施动作 a,进入状态 s'得到的期望(或平均)奖励(reward)的另一种符号。


最后,了解了这些,我们就可以推导出贝尔曼方程了。我们认为贝尔曼方程是一个状态价值函数。使用回报的概念,我们将重写方程(1):

如果我们将第一个奖励从和中拆分出来,我们可以将方程重写为:

这里的期望解释了如果我们继续维持状态 s、策略π,回报将如何发展。期望可以通过总结所有可能的动作与返回状态来明确写出。接下来的两个方程可以帮助我们完成下一步。

通过结合上面两个期望的计算公式,我们可以将状态价值函数写为如下形式:

现在请注意,方程(1)与这个方程的末尾形式相同。我们可以替换它,得到:

动作价值函数的贝尔曼方程可以用同样的方式进行推导。本文结尾有具体过程,其结果如下:

贝尔曼方程的重要性在于它可以让我们借助其他状态的值表达某个状态的值。这意味着如果我们知道 s_t+1 的值,我们就可以很轻松地算出 s_t 的值。这为迭代计算每个状态的值创造了很多机会,如果我们知道下一个状态的值,我们就可以知道当前状态的值。最重要的是我们需要记住一些编号方程。最后,有了贝尔曼方程,我们就可以开始了解如何计算最优策略,构建我们的第一个强化学习智能体了。


下一步:动态规划


在随后的文章中,我们还将讨论使用动态规划计算最优策略,它也是高级算法的基础。同时,这也是我们第一次编写强化学习算法的机会。我们还将探究策略迭代与价值迭代的优势与劣势。


动作价值函数的贝尔曼方程:与推导状态价值函数的贝尔曼方程过程相同,我们得到了一系列方程,从方程(2)开始:





深度强化学习综述:从AlphaGo背后的力量到学习资源分享


来源:机器之心                    


选自arXiv

作者:Yuxi Li

编译:Xavier Massa、侯韵楚、吴攀





摘要


本论文将概述最近在深度强化学习(Deep Reinforcement Learning)方面喜人的进展。本文将从深度学习及强化学习的背景知识开始,包括了对实验平台的介绍。接着我们会介绍深度 Q 网络(Deep Q-Network,DQN)及其拓展、异步方法(asynchronous methods)、策略优化(policy optimization)、奖励(reward)及规划(planning)。在这之后,我会讨论注意和记忆(attention and memory)机制、非监督学习及学习去学习。随后,会讨论强化学习的各种应用,包括在游戏(特别是 AlphaGo)、机器人、口语对话系统(聊天机器人)、机器翻译、文本序列预测、神经架构设计、个性化网络服务、医疗、金融及音乐生成等方面的应用。我们会提到一些未覆盖到的主题/论文。在列举强化学习相关资源之后,我们将会以讨论结束论文。


1 导语


强化学习(RL)实际上是关于序列决策的一种工具,它能够解决包括科学研究、工程文理等学科的一系列问题(Sutton and Barto, 2017)。


增强学习及神经网络的结合可以追溯到 1990 年代(Tesauro, 1994; Bertsekas and Tsitsiklis, 1996; Schmidhuber, 2015)。而在最近深度学习的突破性进展之下(LeCun et al., 2015; Goodfellow et al., 2016),得益于大数据的普及、计算能力的提升及新的算法技术,我们正见证着强化学习的复兴(Krakovsky, 2016),特别是强化学习及深度学习的结合(也就是深度强化学习(deep RL))。


我们已见证了诸多突破性进展——深度 Q 网络(Mnih et al., 2015)、AlphaGo(Silver et al., 2016)及可微分神经计算机(Graves et al., 2016)。还有一些全新的架构及应用,包括异步方法(Mnih et al., 2016)、对抗网络架构(Dueling Network Architectures,Wang et al., 2016a)、价值迭代网络(value iteration networks,Tamar et al., 2016)、用于机器翻译的双学习(dual learning for machine translation,He et al., 2016a)、口语对话系统(spoken dialogue systems,Su et al., 2016b)、信息提取(information extraction,Narasimhan et al., 2016)、 引导性策略搜索(guided policy search,Levine et al., 2016a)、 生成对抗模仿学习(generative adversarial imitation learning,Ho and Ermon,2016)、非监督的强化及辅助学习(unsupervised reinforcement and auxiliary learning,Jaderberg et al., 2017)及神经架构设计(neural architecture design,Zoph and Le, 2017)等等。在这篇概述中,我们主要关注近几年的工作成果,当然也只能覆盖不完全的、一小部分成果。


我们将给读者一系列的参考资料以帮助其进一步学习:


强化学习(Sutton and Barto, 2017; Szepesvari, 2010; Bertsekas, 2012; Powell, 2011; Bertsekas and Tsitsiklis, 1996; Puterman, 2005; Littman, 2015; Kaelbling et al., 1996)

深度学习(LeCun et al., 2015; Goodfellow et al., 2016; Bengio, 2009; Deng and Dong, 2014)

机器学习(Jordan and Mitchell, 2015; Hastie et al., 2009;Bishop,2011;Murphy,2012;Jamesetal.,2013)

实用机器学习建议(Domingos,2012;Zinkevich,2017)

人工智能(Russell and Norvig, 2009)

神经网络中的深度学习(Schmidhuber,2015)

自然语言处理(Hirschberg and Manning,2015;Deng and Liu, 2017)

机器人学(Kober et al., 2013)

迁移学习(Taylor and Stone、2009;Panand Yang,2010;Weiss et al., 2016)

半监督学习(Zhu and Goldberg,2009)

贝叶斯强化学习(Ghavamzadeh et al., 2015)

口语对话系统(Hinton et al., 2012;He and Deng,2013;Young et al., 2013)

人工智能安全(Amodei et al., 2016; Garcia and Fernandez,2015)

 蒙特卡洛搜索(MCTS)(Browne et al., 2012;Gelly et al., 2012)

多代理强化学习(Shoham et al., 2003;Busoniu et al., 2008)

博弈论(Leyton-Brown and Shoham,2008)等等。


我们将会在 23 节中列举强化学习资源。在 goo.gl/KoXIQC 及 goo.gl/1Q1lzg 参见强化学习的应用。


该概述的大纲如下:第二节,深度学习及强化学习的背景知识及对测试平台的介绍;第三节,对深度 Q 网络及其拓展的介绍;第四节,异步放法的介绍;第五节,策略优化;第六节,奖励;第七节,规划;第八节,注意和记忆机制,特别是对可微分神经计算机(DNC)的介绍;第九节,非监督学习;第十节;学习去学习(learning to learn);第十一节,游戏/博弈,包括棋类游戏、视频游戏及非完美信息博弈;第十二节,AlphaGo;第十三届,机器人学;第十四节,对话系统(聊天机器人);第十五节,机器翻译;第十六节,文字序列预测;第十七届,神经架构设计;第十八节,个性化网络服务;第十九节,医疗;第二十节,金融;第二十一节,音乐生成;第二十二节,一个未回顾论文/话题的待办清单;第二十四节,讨论。


特别地,我们将在 23 节中列举一系列关于强化学习的资源,包括图书、在线课程、教程、会议、期刊、研讨会乃至博客等。如果非要选择唯一一个推荐的强化学习的资源,那么应该是 Sutton 教授的强化学习书(RL Book,Sutton and Barto,2017,第二版正在编辑中)。它覆盖了强化学习的基础知识,并介绍了它最新的进展,包括深度 Q 网络、AlphaGo、梯度策略方法(Policy Gradient Methods)及在心理学与神经科方面的进展。对深度学习而言,则可以选择 Goodfellow 等人的书(2016)。


2 背景知识


在这一节中,我们将会简要介绍在深度学习(Sutton and Barto,2017)与深度学习(Goodfellow et al., 2016)方面的基础知识与概念。


2.1 深度学习

2.2 强化学习

2.3 测试平台


  • 街机学习环境(Arcade Learning Environment,ALE,Bellemare et al., 2013)是一个由 2600 个 Atari 游戏构成的用于研发及评估 AI 的框架。

  • DeepMind 团队则发布了它的第一人称视角 3D 游戏平台 DeepMind Lab(Beattie et al., 2016)。DeepMind 及暴雪会合作以发布星际争霸 2 的人工智能研究环境(goo.gl/Ptiwfg)。

  • OpenAI Gym(https://gym.openai.com/)是一个用于开发强化学习算法的工具包。它由一系列环境构成,包括了 Atari 游戏及模拟的机器人构成,以及一个用于比较及复现结果的网站。

  • OpenAI Universe(https://universe.openai.com/)被用于将任一程序转换到一个 Gym 环境。Universe 已经集成了许多的环境,包括 Atari 游戏、flash 游戏、如 Mini World of Bit Sand 这样的浏览器任务。最近,侠盗猎车手 5(GTA5)也已经被加入到 Universe 中来帮助模拟自动驾驶车辆。

  • FAIR TorchCraft(Synnaeve et al., 2016)是一个为如星际争霸这样实时战略类(RTS)游戏开发的库。

  • ViZDoom 是一个基于《毁灭战士(Doom)》游戏的为研究视觉强化学习的研究平台。

  • TORCS 是一个赛车比赛驾驶模拟器(Bernhard Wymann et al., 2014)。

  • MuJoCO(Multi-Joint dynamics with Contact)是一个物理引擎,参见:http://www.mujoco.org/

  • Duan et al., 2016 为连续控制任务给出了一个跑分平台,开源代码参见:https://github.com/openai/rllab

  • Nogueira and Cho(2016)展示了 WebNav 挑战,来测试维基百科链接导航。


3 深度 Q 网络(DEEP Q-NETWORK)



算法 1:深度 Q 网络,截取自 Mnih et al. (2015)


3.1 双重 DQN(DOUBLE DQN)

3.2 优先经验回放(PRIORITIZED EXPERIENCE REPLAY)

3.3 对抗架构(DUELING ARCHITECTURE)

3.4 更多拓展


4 异步方法



算法 2:A3C,每个 actor-learner 线程,来自 Mnih et al. (2016)


5 策略优化


策略通常是随机的。然而在 2014 年,Silver et al. (2014) 引入确定性策略梯度(DPG)来有效估计策略梯度。Lillicrap et al. (2016) 用深度神经网络扩展了 DPG。同时我们介绍了几份近期成果,包括引导策略搜索(Guided Policy Search,Levine et al.,2016a)、信赖域策略优化(Trust Region Policy Optimization,Schulman et al.,2015)、基准测试结果(Duan et al., 2016)以及策略梯度与 Q 学习(O'Donoghue et al., 2017)。


5.1 确定性策略梯度

5.2 深度确定性策略梯度

5.3 引导策略搜索

5.4 信赖域策略优化

5.5 基准测试结果


Duan et al. (2016) 提出了连续控制任务的基准,包括了一些经典任务(如车柱)、具有极大状态与动作空间的任务(如 3D 人形运动)、部分观察任务、层次结构任务,并实施了许多算法,包括批处理算法:REINFORCE 算法、截断性自然策略梯度(TNPG)、奖励加权回归(RWR)、相对熵策略搜索(REPS)、信赖域策略优化(TRPO)、交叉熵方法(CEM)、自适应协方差矩阵进化策略(CMA-ES); 也包括在线算法:深度确定性策略梯度(DDPG);还有批处理算法的重复性变体。开源地址:https://github.com/openai/rllab


Duan et al.(2016) 比较了各种算法,并表明 DDPG、TRPO 和截断性自然策略梯度(TNPG)(Schulman et al., 2015) 在训练深度神经网络策略中颇有成效,但分层任务(hierarchical tasks)也还需要更好的算法。


5.6 结合策略梯度与 Q-Learning


6 奖励


逆向强化学习(IRL/inverse reinforcement learning)是给定观察最佳行为来确定奖励函数的问题(Ngand Russell,2000)。在激励学习或学徒制学习中,代理学习使用来自专家的轨迹样本并从其演示中执行任务,代理学习没有强化信号,在训练时也没有来自专家的额外数据;模仿学习的两种主要方法是行为克隆和逆向强化学习;行为克隆被制定为监督学习问题,将状态行动对(state-action pairs)从专家轨迹(expert trajectories)映射到策略中(Ho and Ermon,2016)。


6.1 生成对抗网络

6.2 生成对抗式模仿学习


7 规划


Tamar et al. (2016) 提出了价值迭代网络(VIN),即一个用于近似价值迭代算法的完全可微分的 CNN 规划模块,它可用于学习规划,例如强化学习中的策略。与传统的规划相反,VIN 是无模型的,其中的奖励和转移概率是要学习的神经网络的一部分,从而避免系统识别的问题。VIN 可以通过反向传播进行端到端训练,它也可以在一组不同的任务中泛化:VIN 可以泛化在一组不同的任务:简单的网格世界(gridworlds)、火星车导航、连续控制和用于维基百科链接导航的 WebNav Challenge(Nogueira and Cho, 2016)。价值迭代网络及决斗网络(Wang et al.,2016b)的一个优点便是它们能为强化学习问题设计新型深度神经网络架构。欲访问有关 VIN 的博客,请点击 goo.gl/Dr8gKL。


8 注意和记忆


注意(attention)和记忆(memory)是两个重要的机制,在许多情况下它们一起发挥作用。


Mnih et al. (2014) 引入循环注意模型(RAM/ recurrent attention model)来关注图像或视频的区域或位置的选定序列,用于图像分类和对象检测。作者使用 RL 方法特别是 REINFORCE 算法来训练模型,以克服模型不可微分的问题,并对图像分类任务和动态视觉控制问题进行实验。Xu et al. (2015) 整合了图像字幕的注意,用 REINFORCE 算法训练硬版本的注意机制,并在 Flickr8k、Flickr30k 和 MSCOCO 数据集上展示了注意的有效性。注意机制也应用到了 NLP 中,如 Bahdanau et al. (2015; 2017),以及应用外部记忆的可微分神经计算机中(Graves et al., 2016)。


Graves et al.(2016) 提出了可微分神经计算机(DNC),其中神经网络可以从外部存储器读取与写入,使 DNC 可以解决复杂的结构化的问题,而没有读写存储器的神经网络却不能解决。DNC 将内存分配干扰最小化,并实现了长期存储。类似于常规计算机,在 DNC 中,神经网络是控制器,外部存储器是随机存取存储器;并且 DNC 用存储来表示并操纵复杂的数据结构。不同的是,DNC 使用梯度下降来学习端对端的表示和操纵,而梯度下降的数据是目标导向的。当使用有监督学习来训练时,DNC 可以解决合成问题来用于自然语言的推理;它可以解决交通网络中两个站点之间的最短路径定位问题和家庭树中的关系推理问题。当使用强化学习来训练时,DNC 可以解决一个使用被符号序列指定的变动性目标的移动块拼图。DNC 优于正常神经网络,如 LSTM 或 DNC 的前身神经图灵机(Graves et al., 2014),若碰到更困难的问题,LSTM 可能会失败。虽然这些实验是相对小规模的,我们仍期望看到 DNC 的进一步改进和应用。


欲查阅 Deepmind 对于 DNC 的描述,请点击 goo.gl/58mgoX。欲查阅注意与/或记忆的更多信息,如 Ba et al. (2014); Eslami et al. (2016); Gregor et al. (2015); Jaderberg et al. (2015); Oquab et al.(2015);Yang et al.(2015);Zagoruyko and Komodakis(2017);Zaremba and Sutskever(2015); Weston et al. (2015); Sukhbaatar et al. (2015); Ba et al. (2016); Danihelka et al. (2016); Kaiser and Bengio (2016),请参阅 goo.gl/ArW2nE 和 goo.gl/UukROv,这是有关注意与记忆的博客。


9 无监督学习


Jaderberget al.(2017) 提出了无监督的强化辅助学习(UNREAL),通过共享一个共同的表征(representation),并在通常的累积奖励之外最大化伪奖励功能,从而提高学习效率。UNREAL 通过学习大量的可能训练信号而受益,特别是当外部奖励信号很少被观察到时。UNREAL 由 RNN-LSTM 基本代理,像素控制,奖励预测和值函数重放组成。基本代理(base agent)使用 A3C 进行在策略(on-policy)训练。观察、奖励和动作的经验存储于答复缓冲器(reply buffer)内,以供辅助任务使用。辅助策略使用基础 CNN、LSTM 以及解卷积网络(deconvolutional network)来使输入图像中不同区域的像素强度的变化最大化。奖励预测模块通过观察最后三个帧来预测下一帧中的短期外在奖励,以解决奖励稀疏性的问题。值函数重放则会进一步训练值函数。UNREAL 改善了 A3C 在 Atari 游戏上的表现,并在 3D Labyrinth 游戏中表现出色。欲访问Deepmind有关 UNREAL 的官方博客,请点击 goo.gl/zhqBGy。


我们将在第 13 节讨论使用类似的无监督辅助学习的机器人导航以及生成式对抗网络(GAN),并在第 6 节讨论近期的无监督学习框架。也请参阅Sutton et al.(2011) , 一个用于以无监督感觉运动学习互动来学习知识的可扩展实时架构 Horde.



10 学习去学习(LEARNING TO LEARN)


学习去学习与迁移学习、多任务学习或表征学习相关,是形成实现强大人工智能的核心要素之一(Lake et al., 2016)。学习去学习也与元学习(meta learning)和一次性学习(one-shot learning)有关。


Duan et al. (2017) 和 Wang et al. (2016a) 提出通过学习一个灵活的 RNN 模型来处理一系列 RL 任务,从而能够提高样本效率,能够从几个样本中学到新任务,并且可以从先验知识中获益。此代理使用 RNN 建模,并输入了观察、奖励、行动和终止标志;它使用 RL,Duan et al.(2017)提出的 TRPO 和 Wang 等(2016a)的 A3C 算法来训练 RNN 的权重,并且在使用特定 RL 算法解决的多个问题中表现相似。Duan 等在 2017 年使用多臂赌博机、表 MDP 和视觉导航进行了实验,并指出对于较大型的问题,需要更好的 RL 算法来训练 RNN。Wang et al.(2016a)对独立臂赌博机、依赖臂赌博机、持续性臂和 MDP 进行了实验。未来的工作方向之一便是提高可扩展性。


Li 和 Malik 在 2017 年建议通过将特定的优化算法表示为策略,将收敛速度表示为奖励,以引导策略搜索(Levine et al.,2016a)来使无约束连续性优化算法自动化。


11 Games(博弈/游戏)


游戏为强化学习/人工智能算法提供了非常好的测试平台。我们在第 3 节讨论了深度 Q 网络(DQN)及其延展,所有这些都在 Atari 游戏上做了测试。我们在第 4 节讨论了 Mnih et al. (2016),在第 9 节讨论了 Jaderberg et al. (2017),在第 13 节讨论了 Mirowski et al. (2017)——他们使用了 Labyrinth 作为测试平台。


西洋双陆棋和围棋是完美信息博弈(perfect information games)。我们在 11.1 讨论了西洋双陆棋这样的棋盘游戏。在 11.2 讨论了 Doom 这样的视频游戏。我们将扑克游戏放到了 11.3,讨论了非完美信息博弈(imperfect information games),其中涉及到了博弈论(game theory)。Labyrinth 和 Doom 等视频游戏通常是非完美博弈,但是目前还没有使用博弈论来解决这些问题。


我们将 AlphaGo(Silver et al., 2016) 单独成了第 12 节,因为其有很大的重要性。


11.1 棋盘游戏

11.2 视频游戏

11.3 非完美信息博弈


12 AlphaGo


AlphaGo (Silver et al., 2016) 是一个计算机围棋程序,其在 2015 年 10 月份以 5 局全胜击败了欧洲围棋冠军,成为了第一个在全尺寸 19×19 棋盘上无让子地击败了人类职业棋手的计算机围棋程序。不久之后,2016 年 3 月份,AlphaGo 以 4:1 的成绩击败了曾获 18 次世界冠军的围棋手李世石,引起了世界的广泛关注。这是人工智能发展的一个里程碑。围棋问题的困难之处不仅在于其超大的搜索空间(search space)——250^150,一个天文数字;而且也是因为其局面评估(position evaluation)的难度非常大,而西洋双陆棋和国际象棋等游戏已经通过局面评估得到了解决。


12.1 训练流程和蒙特卡洛树搜索(MCTS)


我们在 Silver et al. (2016) 与 Sutton and Barto (2017) 的基础上简要讨论了 AlphaGo 的工作方式。参见 Sutton and Barto (2017) 中第 16 章可了解 AlphaGo 的详细和直观描述。DeepMind 对 AlphaGo 的描述可查阅:goo.gl/lZoQ1d


AlphaGo 是使用深度 CNN 技术、监督学习、强化学习和蒙特卡洛树搜索(MCTS)(Browne et al., 2012; Gelly et al., 2012) 打造的。AlphaGo 的工作分成了两个阶段:神经网络训练流程和 MCTS。其训练流程阶段包括根据专家的走子训练一个监督学习策略网络、快速部署策略、强化学习策略网络和强化学习价值网络。


13-21:强化学习的应用介绍


这几节介绍了强化学习的不同类型的应用,这里简单给出目录,详情请查阅原论文。


13 机器人学

14 口语对话系统

15 机器翻译

16 文本序列预测

17 神经架构设计

18 个性化网络服务

19 医疗保健

20 金融

21 音乐生成


22 未来工作


下面我们列出了上面的概述中没有讨论到的有趣的和/或重要的研究方向/论文,希望能够为有兴趣进一步研究它们的人提供信息入口。这也将是我们未来工作的一部分。


• 理解机器学习(understanding deep learning), Daniely et al. (2016); Li et al. (2016b); Zhang et al. (2017) 

• 探索(exploration)如:Stadie et al. (2015); Bellemare et al. (2016); Kulkarni et al. (2016); Osband et al. (2016); Nachum et al. (2017) 

• 基于模型的学习(model-based learning)如:Oh et al. (2015); Gu et al. (2016b) 

• 回溯算法(retrace algorithm), Munos et al. (2016)

 • 预测(predictron), Silver et al. (2017) 

• 分层强化学习(hierarchical RL)如:Kulkarni et al. (2016); Vezhnevets et al. (2016); Tessler et al. (2017); Florensa et al. (2017) 

• 迁移/多任务强化学习(transfer/multitask RL)如: Maurer et al. (2016); Mo et al. (2016); Parisotto et al. (2016), NIPS 2015 Transfer and Multi-Task Learning: Trends and New Perspectives Workshop 

• 零次/一次性学习(zero/one-shot learning)如:Vinyals et al. (2016); Lake et al. (2015); Johnson et al. (2016) 

• 半监督强化学习(semi-supervised RL)如:Finn et al. (2017) 

• deep symbolic RL, Garnelo et al. (2016) 

•内在动机(intrinsic motivation)如:Stadie et al. (2015); Kulkarni et al. (2016); Oudeyer et al. (2016) 

• 超参数学习(hyperparameter learning)如:Andrychowicz et al. (2016) 

• 信息提取(information extraction)如:Narasimhan et al. (2016) 

• 文本博弈(text games)如:He et al. (2016b); Narasimhan et al. (2015) 

• 语言树结构学习(language tree-structure learning)如:Yogatama et al. (2017) 

• 问答系统(question answering)如:Shen et al. (2016); Trischler et al. (2016) 

• 大型动作空间(large action space)如:Dulac-Arnold et al. (2016); He et al. (2016c) 

• 适应性规范化(adaptive normalization), van Hasselt et al. (2016b) 

• 自动驾驶载具(self-driving vehicle)如:Bojarskietal.(2016),NIPS 2016 Workshop on Machine Learning for Intelligent Transportation Systems 

• 智能电网(smart grid)如: Wen et al. (2015b)

• 通信网络(communication networks)如: Mestres et al. (2016) 

• 物理实验(physics experiments)如: Denil et al. (2016) 

• 深度概率编程(deep probabilistic programming), Tran et al. (2017) 

• 深度博弈学习(deep learning games), Schuurmans and Zinkevich (2016) 

• 程序学习(program learning)如:Reed and de Freitas (2016) 

• 量子强化学习(quantum RL)如:Crawford et al. (2016), NIPS 2015 Workshop on Quantum Machine Learning


23 资源


我们列出了一些用于深度强化学习的资源,当然并不能做到完全。


23.1 书籍


• Richard S. Sutton 和 Andrew G. Barto 所著的毫无疑问的和直观的强化学习书 (Sutton and Barto, 2017) 

• 简明和理论性的《Algorithms for Reinforcement Learning》,作者:Csaba Szepesv´ari (Szepesv´ari, 2010) 

• 一本关于近似动态编程的理论书籍,作者:Dimitri P.Bertsekas(Bertsekas, 2012) 

• 一本面向运筹学的书《Approximate Dynamic Programming》,作者:WarrenB. Powell (Powell, 2011) 

•《Deep Learning》,作者:IanGoodfellow, Yoshua Bengio 和 Aaron Courville (Goodfellow et al., 2016)



23.2 课程

• David Silver, 强化学习(Reinforcement Learning), 2015, 幻灯片:goo.gl/UqaxlO,视频:goo.gl/7BVRkT

• Sergey Levine, John Schulman and Chelsea Finn, CS 294: 深度强化学习(Deep Reinforcement Learning)2017 年春季课程, http://rll.berkeley.edu/deeprlcourse/ 

• Charles Isbell, Michael Littman and Pushkar Kolhe, Udacity: 机器学习:强化学习(Machine Learning: Reinforcement Learning), goo.gl/eyvLfg

• 李飞飞、 Andrej Karpathy 和 Justin Johnson, CS231n: 用于视觉识别的卷积神经网络(Convolutional Neural Networks for Visual Recognition), http://cs231n.stanford.edu 

• Richard Socher, CS224d: 用于自然语言处理的深度学习(Deep Learning for Natural Language Processing), http://cs224d.stanford.edu 

• Nando de Freitas, 深度学习课程(Deep Learning Lectures), https://www.youtube.com/user/ProfNandoDF 


23.3 教程 


• David Silver, 深度强化学习(Deep Reinforcement Learning), ICML 2016 

• Pieter Abbeel 和 John Schulman, 通过策略优化的深度强化学习(Deep Reinforcement Learning Through Policy Optimization), NIPS 2016 

• 吴恩达,使用深度学习开发人工智能应用的基本要点(Nuts and Bolts of Building Applications using Deep Learning), NIPS 2016 

• John Schulman,深度强化学习研究的基本要点(The Nuts and Bolts of Deep Reinforcement Learning Research),深度强化学习研讨会, NIPS 2016 

• John Schulman, 深度强化学习(Deep Reinforcement Learning), Deep Learning School, 2016 

• Pieter Abbeel, Deep Reinforcement Learning, Deep Learning Summer School, 2016; http://videolectures.net/deeplearning2016 abbeel deep reinforcement/

• David Silver, Deep Reinforcement Learning, 第二届强化学习与决策多学科会议(RLDM), Edmonton 2015; http://videolectures.net/rldm2015 silver reinforcement learning/ 

• Rich Sutton, Introduction to Reinforcement Learning with Function Approximation, https://www.microsoft.com/en-us/research/video/tutorial-introduction-to-reinforcementlearning-with-function-approximation/ 

• Joelle Pineau, 强化学习入门(Introduction to Reinforcement Learning), Deep Learning Summer School, 2016; http://videolectures.net/deeplearning2016 pineau reinforcement learning/ 

• Deep Learning Summer School, 2016, 2015


23.4 会议、期刊和研讨会


• NIPS: 神经信息处理系统

• ICML: 国际机器学习大会

• ICLR: 国际学习表征大会

• RLDM: 强化学习与决策多学科会议

• AAAI, IJCAI, ACL, EMNLP, SIGDIAL, ICRA, IROS, KDD, SIGIR, CVPR, 等

• Science Robotics, JMLR, MLJ, AIJ, JAIR, PAMI, 等

• Nature May 2015, Science July 2015, 搜索关于机器学习/人工智能的论文

• Deep Reinforcement Learning Workshop, NIPS 2016, 2015; IJCAI 2016 

• Deep Learning Workshop, ICML 2016 


23.5 博客


• Andrej Karpathy, karpathy.github.io, esp. goo.gl/1hkKrb 

• Denny Britz, www.wildml.com, 尤其是 goo.gl/MyrwDC 

• Junling Hu, Reinforcement learning explained -learning to act based on long-term payoffs 

• 邓力,深度强化学习可以如何帮助打造聊天机器人(How deep reinforcement learning can help chatbots)

• Christopher Olah, colah.github.io 


在这个信息/社交网络时代,信息已经超过了我们的极限,比如来自 Twitter、Google+、微信、arXiv 等的信息。有效地筛选最佳信息的技巧变得十分关键。


24 讨论


这是深度强化学习最好的时代,也是深度强化学习最坏的时代,而原因却是一样的:它以惊人的速度在发展。我们已经看到了突破、激动人心的新方法和应用,并且还有望看到更多和见证更快的发展。因此,不管是在深度还是在广度上,这篇概述都是不完整的。但是,我们也尽量总结这一惊人领域的重要成就并讨论其潜在的方向和应用。


深度强化学习这一领域的进步是有目共睹的,在不到两年时间内,我们就看到 Nature 上发表了三篇使用了深度强化学习的论文:深度 Q 网络(deep Q-network)(Mnih et al., 2015)、AlphaGo (Silver et al., 2016) 和可微分神经计算机 (Graves et al., 2016);我们也已经见证了许多深度 Q 网络上的扩展、改进和应用。注意和记忆机制(Graves et al., 2016)也得到了很大的关注。


2016 年,使用了深度强化学习的全新架构和应用在许多顶级会议上被评选为最佳(学生)论文:ICML 上的决斗网络(dueling network)架构(Wang et al., 2016a)、ACL 上的口语对话系统(Su et al., 2016b)(学生论文)、EMNLP 上的信息提取(Narasimhan et al., 2016)、以及 NIPS 上的价值迭代网络(value iteration networks)(Tamar et al., 2016)。激动人心的成就比比皆是:异步方法(Mnihetal.,2016)、用于机器翻译的双学习(dual learning)(Heetal., 2016a)、有引导的策略搜索(Levine et al., 2016a)、生成对抗式模仿学习(Hoand Ermon, 2016)、无监督强化和辅助学习(Jaderberg et al., 2017)、神经架构设计(Zoph and Le, 2017)等等。


价值函数是强化学习的核心,比如在深度 Q 网络及其许多扩展中。策略优化方法已经在许多不同的应用领域得到了关注,比如:机器人、神经架构设计、口语对话系统、机器翻译、注意(attention)和学习去学习(learning to learn)等等,不能胜举。新的学习机制也在涌现,比如:使用无监督/半监督/迁移学习来提升学习的质量和速度,而且更多的新机制还将涌现。这是强化学习的复兴(Krakovsky, 2016)。事实上,即使是在「人工智能的冬天」,强化学习和深度学习也在不断发展进步。


考虑学习模型的问题是非常关键的,这些问题包括稳定性、收敛性、准确度、数据效率、可扩展性、速度、简洁性、可解释性、稳健性和安全性等。调查评论/批评也是很重要的,这些批评可能来自认知科学领域,涉及到直观物理学、直观心理学、因果模型、组合性、学习去学习、实时运行(Lake et al., 2016)等问题;这能够帮助我们打造出更强大的人工智能。也请参考 Peter Norvig 的观点 goo.gl/obvmVB. 



在这第三波人工智能的大潮下,深度学习将会有更为深度的影响,正如我们已经见证的许多成就一样。强化学习作为一种更为通用的学习和决策范式,将会给深度学习、机器学习和广义上的人工智能带来深远的影响。这里提一件有趣的故事,当 Rich Sutton 教授 2003 年在阿尔伯塔大学开始工作时,他将他的实验室命名为了 RLAI:Reinforcement Learning and Artificial Intelligence(强化学习与人工智能实验室)。


致谢


感谢来自Baochun Bai, 胡峻玲(Junling Hu), Ruitong Huang, Lihong Li, Dale Schuurmans, David Silver, Rich Sutton, Csaba Szepesvari, Yi Wan 和 Qing Yu的建议。任何剩余错误为本文作者所出。本文同时受益于各类研讨会/网上讨论,特别是2016年4月在MIT举行的AlphaGo研讨会,以及2016年10月份『机器之心』北美系列巡游活动中在多伦多大学、McGill大学和阿尔伯塔大学举办的深度(强化)学习研讨会。另外也要感谢2016年11月关于David Silver幻灯片的网上研讨会,以及几个微信群组中的讨论。


参考文献(略)


论文链接:https://arxiv.org/abs/1701.07274



从算法到训练,综述强化学习实现技巧与调试经验


来源:机器之心  


作者:WilliamFalcon 

机器之心编译

参与:乾树、黄小天




本文整理自 John Schulman 题为「深度强化学习研究的具体内容」的演讲,主要内容是作者在加州大学伯克利分校参加夏季深度强化学习训练营时写下的技巧。


GitHub地址:https://github.com/williamFalcon/DeepRLHacks


调试新算法的技巧


1. 通过低维状态空间环境的使用简化问题。


  •  John 建议使用钟摆问题,因为它具有 2 维状态空间(摆角与速度)。

  •  便于得到值函数的形式和算法应处的状态,以及它们随时间如何演化。

  •  直观地了解为什么某些参数不起作用(也可以说,价值函数是否足够平滑等)


2. 为了测试你的算法是否合理,你要构造一个适用于该算法的问题。

 

  •  例如:对于分层强化学习,你要构建一个它应该会学习的明显的分层结构的问题。

  •  该问题可以简单测试出算法是否合理。

  •  警告:不要使算法过度拟合你这个玩具问题(你要知道玩具问题并不具有实际意义)。


3.  熟悉你知道的某些环境。


  •  随着时间的推移,你将会知道训练应该花费多长时间。

  •  知晓奖励信号的演化过程等。

  •  允许你设置一个基准,以了解你过去试验的效果。

  •  John 使用弹跳机器人,通过这个机器人他知道应该采取多快的学习速度,并且可以很容易地发现奇怪的行为。


调试新任务的技巧


1.  简化任务


  • 开始简化直到曙光降临。

  • 方法 1 :简化征空间:


   ◦ 例如,如果你正在使用图像(巨大的维度空间)学习,那么可能先要手动处理图像特征。示例:如果你觉得你的函数正在尝试近似得到某个参数的位置,请使用 x,y 坐标位置作为步骤 1 的特征。

   ◦ 一旦前一步开始工作,将使问题更加复杂,直到你解决所有的问题。


  • 方法 2:简化奖励函数。


   ◦ 这样你就可以快速地得到反馈,从而知道算法是否正确。

   ◦ 例如:当机器人击中目标时有奖励(+1)。这通常很难学习,因为在开始和奖励函数之间的不确定因素太多了。将问题重新定位为目标的距离,这将增加学习,并带来更快的迭代速度。


在强化学习中构建问题的技巧


也许现在还不清楚这些特征是什么,奖励是什么,甚至它是否可行。


1. 第一步:可视化处理这个问题的随机策略。


  • 看看它的效果。

  • 如果随机策略奏效过,那么很有可能强化学习会得到预期的效果。


   ◦ 策略梯度会发现这种行为,并使其更有可能。


  • 如果随机策略从未奏效,那么强化学习基本也不用考虑了。


2. 确保评论有用:


  • 通过给个体同样的评论来测试你能否控制这个系统。


   ◦ 示例:自己查看预处理的图像,以确保没有删除必要的细节或某种程度上阻碍了算法。


3. 确保合理地缩放特征。


 经验法则:


   ◦ 评论:取特征均值为 0,标准差为 1。

   ◦ 奖励: 如果你能控制它,就把它放缩到一个合理的值。

       ◦ 对当前所有数据进行处理。


  • 观测所有的评论和奖励,确保没有过度的异常值。


4. 每当你碰到一个新问题,都要找好出发点。


  • 目前还不清楚哪种算法可行,因此有一组出发点(从其他方法)


   ◦ 交叉熵法

   ◦ 策略梯度法

   ◦ 某种 Q-learning 方法 (点击 OpenAI Baselines 或 RLLab 开始学习)


重现论文代码


依托论文来重现其中的实验结果有时(很多时候)很难。下面有一些技巧可能帮到你:


1. 使用多于你当前所需的样本。


2. 采用正确的策略,但这并非绝对。


  • 循序渐进,一点一点的改进算法。

  • 然后微调超参数使其具有泛化能力。

  • 使用更大的批量可以使算法作用于所有数据。


   ◦ 如果批量太小,噪声会掩盖信号。

   ◦ 例如:TRPO,John 用的批量太小,只好设置时间步为 100k。

   ◦ DQN 的最佳超参数为:10k 时间步,1mm 帧置于 replay buffer。


训练指导手册

全面检查你的训练是否奏效。


1查看每个超参数的灵敏度

  • 如果算法过于敏感,那么就是算法不够鲁棒,我们不应该满足于此。

  • 有时一个莫名的变动会使算法奏效,但这并不具有泛化能力。

2. 监测优化过程中的指标是有益的。

  • 变化值

  • 观察价值函数是否精确。

   ◦ 预测是否有效?

   ◦ 预测的返回值正常吗?

   ◦ 更新范围有多大?

  •  来自深度网络的标准诊断

3. 有一个连续的基准测试系统。

  • 需要惩罚。

  • 比较你尝试过的所有问题的性能。

   ◦ 有时,它对于一个问题有效,但对别的问题就错乱了。

   ◦ 容易过拟合某一个问题。

  •  有一套你偶尔运行的基准测试系统。

4. 误以为你的算法有效,但实际上看到的是随机噪音。

  • 例子:7 个任务的 3 个算法图,看起来像 1 个算法,可能在适用于所有问题,但事实证明却是随机种子不同的相同算法罢了。

5尝试不同的随机种子!!

  • 多次运行并取平均值。

  • 在多个种子上运行多个任务。

   ◦ 否则,算法可能会过拟合。


6. 算法大可不必修改。

  • 大多数技巧实际上是以某种方式规范化特征或改进你的优化过程。

  • 很多技巧也有同样的效果…所以你可以删除其中的一些,简化你的算法(非常关键)。

7化你的算法

  • 泛化能力更佳

8. 实验过程自动化

  • 不要花一整天的时间看你的代码输出结果。

  • 在云服务上进行实验并分析结果。

  • 使用框架跟踪实验和结果:

   ◦ 大多使用 iPython notebooks。

   ◦ 似乎不需要将结果存进数据库。


通用的训练策略


1. 白化(Whiten)和标准化数据(一开始就对所有数据进行处理)。

  • 评论:

    ◦ 通过计算运行平均值和标准差来计算。然后对所有数据进行 z 变换。处理所有数据(不仅仅是最近的数据)。

    ◦ 评论所有看到的数据(不只是最近的数据)

        ◦ 至少它会随着时间的推移而缩小,它随时间变化的很快。

        ◦ 如果你不断改变目标,可能会误导优化器。

        ◦ 缩放(用新数据)意味着你的优化器可能不认识这些数据,并且性能将大打折扣。

  •  奖励:

   ◦ 缩放但不转移数据。

       ◦ 影响代理发展的意愿。

       ◦ 会改变问题(换句话说,你想要代理生存多久)。

  • 规范目标:

   ◦ 与奖励相同。

  • PCA 白化?

   ◦ 有用

   ◦ 首先看看它是否真的有助于神经网络。

   ◦ 过度的缩放(-1000,1000)或(-0.001,0.001)肯定会使学习缓慢。


2. 表示折扣因子的参数。

  • 确定你的信用分配。

  • 例如:如果因子是 0.99,那么你就会忘记 100 步之前发生了什么... 这意味着你目光短浅。

   ◦ 最好去关注它如何应用于实时数据。

       ◦ 为了更好的感受,在强化学习中我们通常将时间离散化。

       ◦ 这 100 步是实际时间的 3 秒吗?

       ◦ 那段时间里会发生什么?

  • 如果 TD 方法用于估计值函数 fx 的策略梯度,则 gamma 可以接近 1(如 0.999)

   ◦ 算法变得非常稳定。


3. 这个问题可以在离散化的层次上真正解决。

  • 例如:在游戏中,如果你正在做跳帧。


   ◦ 作为一个人,你是否能控制它?

   ◦ 看看随机探索的样子

       ◦ 离散化决定你的布朗运动走多远。

       ◦ 如果连续做许多动作,那么算法就倾向于进一步探索。

       ◦ 用一种有效方式来将你的时间离散化。


4. 密切关注每段训练返回值。

  • 不只是看看最大值和最小值。

   ◦ 最好的回馈是你的策略可以得到很好的磨合。

   ◦ 你的策略总是按预期来的吗??

  • 看 episode 长度(有时比它的奖励更有用)。

   ◦ 如果在游戏中你每次都输,所以你可能永远赢不了,但是…episode 长度可以告诉你,如果你输的速度较慢。

   ◦ 你可能在开始时看到 episode 长度的改进,但不一定是奖励。


策略梯度方法调整


1. 密切关注熵


  • 动作空间的熵


   ◦ 更关注状态空间中的熵,但没有很好的计算方法。


  • 如果梯度下降得太快,那么策略就会变得确定而不再探索。

  • 如果梯度不下降,那么策略就不正确,因为它实际上是随机的。

  • 可以修复:


   ◦  KL 惩罚

       ◦ 防止梯度下降过快。

   ◦ 为熵加权重。


  • 如何测量熵。


   ◦ 对于大多数策略,可以解析地计算熵。

       ◦ 如果熵连续,通常是高斯的,所以可以计算微分熵。


2. KL 散度


  • 从 KL 散度看更新的大小。

  • 例子:如果 KL 是 0.1,更新过小。如果是 10 更新又过大。


3. 以方差为基准。


  • 看看价值函数是否真的是一个好的预测器或奖励。


   ◦ 如果方差为负可能是过拟合或噪声过大。

       ◦ 可能需要调整超参数。


4. 初始化策略


  • 非常重要(比在监督学习还重要)。

  • 最终层输出 0 或极小值以最大化熵


    ◦ 在开始时最大限度地随机探索


Q-学习策略


1. 谨慎使用 replay buffer 的内存。


  •  你可能需要一个巨大的缓冲区,因此需要相应地修改代码。


2. 指定一份学习率表。


3. 如果收敛缓慢或有一个缓慢的启动期


  • 耐心等待,DQN 收敛速度极慢。



人工智能赛博物理操作系统

AI-CPS OS

人工智能赛博物理操作系统(新一代技术+商业操作系统“AI-CPS OS”:云计算+大数据+物联网+区块链+人工智能)分支用来的今天,企业领导者必须了解如何将“技术”全面渗入整个公司、产品等“商业”场景中,利用AI-CPS OS形成数字化+智能化力量,实现行业的重新布局、企业的重新构建和自我的焕然新生。


AI-CPS OS的真正价值并不来自构成技术或功能,而是要以一种传递独特竞争优势的方式将自动化+信息化、智造+产品+服务和数据+分析一体化,这种整合方式能够释放新的业务和运营模式。如果不能实现跨功能的更大规模融合,没有颠覆现状的意愿,这些将不可能实现。


领导者无法依靠某种单一战略方法来应对多维度的数字化变革。面对新一代技术+商业操作系统AI-CPS OS颠覆性的数字化+智能化力量,领导者必须在行业、企业与个人这三个层面都保持领先地位:

  1. 重新行业布局:你的世界观要怎样改变才算足够?你必须对行业典范进行怎样的反思?

  2. 重新构建企业:你的企业需要做出什么样的变化?你准备如何重新定义你的公司?

  3. 重新打造自己:你需要成为怎样的人?要重塑自己并在数字化+智能化时代保有领先地位,你必须如何去做?

AI-CPS OS是数字化智能化创新平台,设计思路是将大数据、物联网、区块链和人工智能等无缝整合在云端,可以帮助企业将创新成果融入自身业务体系,实现各个前沿技术在云端的优势协同。AI-CPS OS形成的字化+智能化力量与行业、企业及个人三个层面的交叉,形成了领导力模式,使数字化融入到领导者所在企业与领导方式的核心位置:

  1. 精细种力量能够使人在更加真实、细致的层面观察与感知现实世界和数字化世界正在发生的一切,进而理解和更加精细地进行产品个性化控制、微观业务场景事件和结果控制。

  2. 智能:模型随着时间(数据)的变化而变化,整个系统就具备了智能(自学习)的能力。

  3. 高效:企业需要建立实时或者准实时的数据采集传输、模型预测和响应决策能力,这样智能就从批量性、阶段性的行为变成一个可以实时触达的行为。

  4. 不确定性:数字化变更颠覆和改变了领导者曾经仰仗的思维方式、结构和实践经验,其结果就是形成了复合不确定性这种颠覆性力量。主要的不确定性蕴含于三个领域:技术、文化、制度。

  5. 边界模糊:数字世界与现实世界的不断融合成CPS不仅让人们所知行业的核心产品、经济学定理和可能性都产生了变化,还模糊了不同行业间的界限。这种效应正在向生态系统、企业、客户、产品快速蔓延。

AI-CPS OS形成的数字化+智能化力量通过三个方式激发经济增长:

  1. 创造虚拟劳动力,承担需要适应性和敏捷性的复杂任务,即“智能自动化”,以区别于传统的自动化解决方案;

  2. 对现有劳动力和实物资产进行有利的补充和提升,提高资本效率

  3. 人工智能的普及,将推动多行业的相关创新,开辟崭新的经济增长空间


给决策制定者和商业领袖的建议:

  1. 超越自动化,开启新创新模式:利用具有自主学习和自我控制能力的动态机器智能,为企业创造新商机;

  2. 迎接新一代信息技术,迎接人工智能:无缝整合人类智慧与机器智能,重新

    评估未来的知识和技能类型;

  3. 制定道德规范:切实为人工智能生态系统制定道德准则,并在智能机器的开

    发过程中确定更加明晰的标准和最佳实践;

  4. 重视再分配效应:对人工智能可能带来的冲击做好准备,制定战略帮助面临

    较高失业风险的人群;

  5. 开发数字化+智能化企业所需新能力:员工团队需要积极掌握判断、沟通及想象力和创造力等人类所特有的重要能力。对于中国企业来说,创造兼具包容性和多样性的文化也非常重要。


子曰:“君子和而不同,小人同而不和。”  《论语·子路》云计算、大数据、物联网、区块链和 人工智能,像君子一般融合,一起体现科技就是生产力。


如果说上一次哥伦布地理大发现,拓展的是人类的物理空间。那么这一次地理大发现,拓展的就是人们的数字空间。在数学空间,建立新的商业文明,从而发现新的创富模式,为人类社会带来新的财富空间。云计算,大数据、物联网和区块链,是进入这个数字空间的船,而人工智能就是那船上的帆,哥伦布之帆!


新一代技术+商业的人工智能赛博物理操作系统AI-CPS OS作为新一轮产业变革的核心驱动力,将进一步释放历次科技革命和产业变革积蓄的巨大能量,并创造新的强大引擎。重构生产、分配、交换、消费等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生新技术、新产品、新产业、新业态、新模式。引发经济结构重大变革,深刻改变人类生产生活方式和思维模式,实现社会生产力的整体跃升。





产业智能官  AI-CPS



用“人工智能赛博物理操作系统新一代技术+商业操作系统“AI-CPS OS”:云计算+大数据+物联网+区块链+人工智能)在场景中构建状态感知-实时分析-自主决策-精准执行-学习提升的认知计算和机器智能;实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链






长按上方二维码关注微信公众号: AI-CPS,更多信息回复:


新技术:“云计算”、“大数据”、“物联网”、“区块链”、“人工智能”;新产业:“智能制造”、“智能农业”、“智能金融”、“智能零售”、“智能城市”、“智能驾驶”;新模式:“财富空间”、“特色小镇”、“赛博物理”、“供应链金融”


点击“阅读原文”,访问AI-CPS OS官网




本文系“产业智能官”(公众号ID:AI-CPS)收集整理,转载请注明出处!



版权声明产业智能官(公众号ID:AI-CPS推荐的文章,除非确实无法确认,我们都会注明作者和来源。部分文章推送时未能与原作者取得联系。若涉及版权问题,烦请原作者联系我们,与您共同协商解决。联系、投稿邮箱:erp_vip@hotmail.com





登录查看更多
1

相关内容

以发现者Richard Bellman的名字命名的Bellman方程,也称为动态规划方程,是与称为动态规划的数学优化方法相关联的最优性的必要条件。 它根据某些初始选择的收益以及由这些初始选择产生的剩余决策问题的价值,写出某个特定时间点决策问题的价值。 正如Bellman的“最优原理”所规定的,这将动态优化问题分解为更简单的子问题。 Bellman方程首先应用于工程控制理论和应用数学的其他主题,随后成为经济学理论的重要工具。 尽管动态规划的基本概念已在约翰·冯·诺伊曼(John von Neumann)和奥斯卡·莫根斯坦(Oskar Morgenstern)的博弈与经济行为理论以及亚伯拉罕·瓦尔德(Abraham Wald)的顺序分析中得到了预言。 使用最佳控制理论几乎可以解决的任何问题,也可以通过分析适当的Bellman方程来解决。 但是,术语“贝尔曼方程”通常是指与离散时间优化问题相关的动态规划方程。 在连续时间优化问题中,类比方程是偏微分方程,通常称为汉密尔顿-雅各比-贝尔曼方程。
【圣经书】《强化学习导论(2nd)》电子书与代码,548页pdf
专知会员服务
201+阅读 · 2020年5月22日
《强化学习》简介小册,24页pdf
专知会员服务
272+阅读 · 2020年4月19日
强化学习和最优控制的《十个关键点》81页PPT汇总
专知会员服务
103+阅读 · 2020年3月2日
【综述】自动驾驶领域中的强化学习,附18页论文下载
专知会员服务
172+阅读 · 2020年2月8日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
强化学习与文本生成
微信AI
41+阅读 · 2019年4月4日
一文了解强化学习
AI100
15+阅读 · 2018年8月20日
深度强化学习入门,这一篇就够了!
机器学习算法与Python学习
27+阅读 · 2018年8月17日
一文学习基于蒙特卡罗的强化学习方法(送书)
人工智能头条
7+阅读 · 2018年3月13日
【强化学习】强化学习/增强学习/再励学习介绍
产业智能官
10+阅读 · 2018年2月23日
【干货】机器学习和深度学习概念入门(下)
机器学习研究会
6+阅读 · 2017年12月31日
【强化学习】易忽略的强化学习知识之基础知识及MDP
产业智能官
17+阅读 · 2017年12月22日
技术 | 强化学习入门以及代码实现
AI100
51+阅读 · 2017年8月26日
Logically-Constrained Reinforcement Learning
Arxiv
3+阅读 · 2018年12月6日
Arxiv
4+阅读 · 2018年10月31日
Arxiv
23+阅读 · 2018年8月3日
Relational Deep Reinforcement Learning
Arxiv
10+阅读 · 2018年6月28日
Arxiv
9+阅读 · 2018年4月20日
VIP会员
相关VIP内容
【圣经书】《强化学习导论(2nd)》电子书与代码,548页pdf
专知会员服务
201+阅读 · 2020年5月22日
《强化学习》简介小册,24页pdf
专知会员服务
272+阅读 · 2020年4月19日
强化学习和最优控制的《十个关键点》81页PPT汇总
专知会员服务
103+阅读 · 2020年3月2日
【综述】自动驾驶领域中的强化学习,附18页论文下载
专知会员服务
172+阅读 · 2020年2月8日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
相关资讯
强化学习与文本生成
微信AI
41+阅读 · 2019年4月4日
一文了解强化学习
AI100
15+阅读 · 2018年8月20日
深度强化学习入门,这一篇就够了!
机器学习算法与Python学习
27+阅读 · 2018年8月17日
一文学习基于蒙特卡罗的强化学习方法(送书)
人工智能头条
7+阅读 · 2018年3月13日
【强化学习】强化学习/增强学习/再励学习介绍
产业智能官
10+阅读 · 2018年2月23日
【干货】机器学习和深度学习概念入门(下)
机器学习研究会
6+阅读 · 2017年12月31日
【强化学习】易忽略的强化学习知识之基础知识及MDP
产业智能官
17+阅读 · 2017年12月22日
技术 | 强化学习入门以及代码实现
AI100
51+阅读 · 2017年8月26日
相关论文
Top
微信扫码咨询专知VIP会员