导语

AlphaGo有一个同父(Deep Mind)的亲哥哥,出生于2015年。从某种程度上说,AlphaGo的这个哥哥比Alpha狗还要厉害,因为它更接近我们人类追求人工智能的终极目标:通用人工智能。所以,这个哥哥一出生就引起了当时的舆论界一片哗然。这个哥哥名叫Deep Q Network,简称DQN。

如果你看着AlphaGo虐待咱人类围棋冠军不爽,那就来一起把它的哥哥DQN解剖了吧!

人工智能打游戏

这个DQN是干嘛的呢?它是一个专门负责打游戏的人工智能!可能你会认为人工智能打游戏没什么了不起,因为游戏本身不就是一种计算机程序吗?但关键是,这个神经网络是要像人类玩家一样通过读取屏幕上的像素级画面获取输入信息,并直接进行判断应该采取什么行动。该网络需要一边玩一边学,从而达到人类的水平。

要知道最终训练得到的这个DQN网络有多牛,不妨让我们来看看它是如何一点点学会打砖块这款游戏的:

这是DQN算法在开始玩打砖块游戏的时候的表现,它显得非常笨拙,球拍总是躲在一个角落里,不知道去接球。

随着DQN不断地学习、不断地总结经验,它的表现开始变好了:

这个时候的DQN已经学会了如何接球。不过,它还在进化……

慢慢地,它竟然学会了将一侧的砖块打穿,然后让小球弹到砖块平台的上边,保证求不掉下来的同时,一直不断地打砖块得分。关键的是,这种看起来能够体现一定智力的策略并不是人类通过编程告诉DQN的,而是它自己通过深度强化学习算法学习出来的。

那么,DQN究竟是如何学习到这种“创造性”的玩游戏策略的呢?接下来,就让我们拿出手术刀,解剖一下这个DQN算法。

Q估值

其实,DQN的思想来源于一种被叫做Q学习(Q-learning)的古老算法。这种算法的基本思想是,给打游戏的人工智能主体赋予一个价值函数Q。这样Q就可以给主体所面临的当前环境状态S(游戏的状态)和主体当前所采取的行动a一个评分,并且主体会在若干个可能行动中选择一个让Q函数值最大的。这就好比一个小孩子,当他面对一个陌生的环境的时候,就会经常问自己,我现在是不是应该躺在地上打个滚儿?Q函数就是它自己的评价标准。如果他的Q函数对陌生环境,打滚这个状态、动作组合评分高的话,它就真的会这样做!

该图是DQN学习打砖块游戏的时候Q函数值随时间的变化情况,我们会看到Q在缓慢上升

但是,即使引入了Q函数,我们还是没有解决问题,因为Q函数又怎么来确定呢?

Deep Q Network

DeepMind的工程师们在这里引入了深度学习技术,它们用一个多层的深度神经网络来建模这个Q函数,如下图所示:

如图所示,左边的神经元负责接收来自游戏屏幕的像素级的画面(这就是环境状态S),然后网络连接到了一个三层的卷积神经网络。我们知道,卷积神经网络是个认图、识图的高手,它不仅可以对图像中的物体进行准确的分类,而且还能够从图像中提取多尺度信息,例如低层的卷积层会提取图像中的边缘、棱角等特征,而高层的卷积网则可能会提取人物、障碍物等大尺度高层次特征。总之,卷积神经网络会帮助智能主体进行分辨图像。

网络的输出层由多个神经元构成,每一个神经元都对应了一种可能的行动a(例如球拍的左移或者右移),输出的数值则表示在在这种环境S和行动a组合下的Q函数值。也就是说,整个网络就是一个Q函数。

Q-learning

我们知道,这个神经网络是一个典型的前馈神经网络,因此,它需要有一个目标函数来指导它的学习。在DQN中,它的目标函数是什么呢?答案就在于这个Q函数要能尽可能地对主体在未来所获得的激励进行准确地评估。这里的激励既包括来自于外在环境的外在激励,例如游戏在下一时刻所获得的积分,也包括内在激励,即主体的Q函数对未来状态和行动的估计值。所以,当环境的外在激励为0的时候,DQN仍然能够学习,它在尽可能地做到让自己的Q函数在现在和未来的预估要尽可能地一致!

我们还是用小孩子的例子来说明这种一致性。假设小孩来到了一个陌生的环境,它的父母也不在身边,环境在大多数情况下也没有任何反馈信息。那么,小孩子所做的任何行动都无所谓客观的好还是坏。这个时候,小孩子也就会慢慢地建立起一套自己的价值观(Q函数),它会给他自己的行动一种意义(选择一个行动,以最大化Q)。这种价值观怎样都行,只要它能保持前后一致。直到,这套价值观与来自环境的反馈不一致的时候,它才会调整。比如,它开始以为满地打滚就是好的,但是一旦他的父母发现,打了他一顿,他才开始修正自己的价值观。这就是Q-learning算法的本质。

DQN利用神经网络的方式实现了Q学习算法。神经网络的好处是具有非常好的泛化能力。这样,即使当DQN遇到了一种从未遇到过的环境的时候,它也能作出正确的决策。

DQN的表现

接下来,就让我们看看,这个DQN算法究竟能够表现得多好!

在这张图上,蓝色的柱子就是DQN算法的表现成绩,而灰色的柱子是2015年的时候最好的强化学习算法的表现。每个柱子中的百分比数值是该算法与人类最好的玩家相比的相对表现。不同的行代表了不同的游戏。我们可以看到,DQN算法可以在绝大多数游戏中表现得比人类还好,而且像Video Pinball和Boxing这些游戏上,表现已经远超人类。

DQN不仅可以给出非常酷炫的表现,更重要的是,它还可以学习得到对不同游戏状态的表征,如下图所示:

在图中,每一个点就代表一个游戏状态(外星入侵者Space Invadar),两个点彼此靠近就表示这两种状态是相似的。我们知道,DQN的神经网络不仅可以正确地估计Q函数,而且还能够在隐含层学习得到每个游戏状态的向量表示,我们利用tSNE把这个高维的向量进行降维并可视化,就得到了这张图。

至此,我们已经领略了DQN算法的有效性。然而,有一点值得强调的是,这种DQN算法是一种非常通用的算法。也就是说在保持一套相同的超参数不变的情况,我们只需要让它玩不同的游戏,就会自动学习出来不同的应对策略,因此DQN可以往通用人工智能上迈出一大步。

参考文献:

Mnih V, Kavukcuoglu K, Silver D, et al. Human-level control through deep reinforcement learning[J]. Nature, 2015, 518(7540): 529-533.


如何让机器人自主行动?伯克利利用神经网络动力学实现基于模型的强化学习 

概要:很多人可能会有这样一个疑问:为什么自主机器人不能像我们一样在这个世界中生活呢?那是因为能够处理我们世界所有复杂问题的工程系统是很难的。


一般说来,让机器人在现实世界中自主行动是一件很困难的事情。真的很难!即使具有昂贵的机器人和世界一流的研究人员,机器人仍然难以在复杂的非结构化环境中进行自主导航和交互。

 

很多人可能会有这样一个疑问:为什么自主机器人不能像我们一样在这个世界中生活呢?那是因为能够处理我们世界所有复杂问题的工程系统是很难的。从非线性动力学、部分可观测性到不可预知的地形和传感器故障,机器人特别容易受到墨菲定律的影响:一切可能出错的事物都会出错。我们并不是通过对机器人可能遇到的每个情景进行编码以对抗墨菲定律,相反,我们可以选择接受这种失败的可能性,并让我们的机器人能够从中学习。从经验中学习控制策略是有利的,因为与手动控制器不同的是,学习控制器可以通过更多的数据来进行适应和改进。因此,当出现这样一个场景——其中,所有事情都出错了,尽管机器人虽然会失败,但是,当下一次遇到类似的情况时,已学习过的控制器便有可能修正它的错误。为了处理现实世界中任务的复杂性,当前基于学习的方法通常使用深度神经网络,这是一种强大但非数据有效的神经网络;这些基于反复摸索的学习器往往会经历再次失败、第三次失败,甚至是数千到数百万次的失败。当代深度强化学习方法的样本无效性往往是现实世界中利用学习型方法的主要瓶颈之一。

  



 图1.一个已学习的神经网络动力学模型使六足机器人学习运行和遵循所需的轨迹,而整个过程只需17分钟的真实经验。

 

我们一直在研究用于机器人控制的神经网络的基于学习的样本高效方法。对于复杂的、接触点丰富的模拟机器人以及实际应用中的机器人(图1),我们的方法能够学习轨迹跟踪的运动技能,而这一过程仅使用收集自机器人在环境中的随机行为的数分钟数据。在本文中,我们将对该方法和结果进行简要概述。


更多细节查阅论文(https://arxiv.org/pdf/1708.02596.pdf)和相关代码(https://github.com/nagaban2/nn_dynamics)

 

样本效率:无模型的VS基于模型的

 

从经验中学习机器人技能通常属于强化学习的范畴。强化学习算法一般可以分为两类:无模型,即学习策略或值函数;以及基于模型的,即学习动力学模型。虽然无模型深度强化学习算法能够学习广泛的机器人技能,但它们往往会受到高昂的样本复杂性的限制,通常需要数百万个样本才能获得良好的性能表现,而且一次只能学习一项任务。尽管之前的一些研究已经将这些无模型算法应用于现实世界的操作任务中,但这些算法的高度复杂性和不灵活性已经阻碍了它们在现实世界中用于学习运动技能的应用。

 

基于模型的强化学习算法通常被认为是更有效的样本。然而,为了获得良好的采样效率,这些基于模型的算法通常使用相对简单的函数逼近器,其不能很好地推广到复杂的任务,或者使用高斯过程这样的概率动力学模型,其概括性好,但复杂和高三维的领域,如摩擦接触,会导致不连续的动力学系统。相反,我们使用中等大小的神经网络作为函数逼近器,可以实现出色的样本效率,同时仍然具有足够的表现力,可以用于各种复杂和高维运动任务的推广和应用。

 

基于模型深度强化学习的神经网络动力学

 

在我们的研究中,我们的目标是将深度神经网络模型在其他领域中的成功扩展到基于模型的强化学习中。近年来,先前那些将神经网络与基于模型的强化学习相结合的努力还没有实现能够与较简单的模型(例如高斯过程)相媲美的结果。例如,Gu等人观察到,即使是线性模型在合成经验生成方面也能够获得较好的性能表现,而Heess等人则在将涵盖神经网络在内的模型纳入到无模型学习系统中看到了相对适度的益处。我们的方法依赖于一些关键的决策:首先,我们在一个模型预测控制框架内使用已学习的神经网络模型,其中系统可以迭代地重新规划并修正错误;其次,我们使用相对较短的范围预测,以便我们不必依靠这个模型对未来做出非常准确的预测。这两个相对简单的设计决策使得我们的方法能够执行各种各样的运动任务,其中,这些运动任务之前没有使用通用的基于模型的强化学习方法进行演示,即可以直接在原始状态观察中操作。

 

我们的基于模型的强化学习方法如图2所示。我们保持一个迭代增加的轨迹数据集,并使用该数据集对动态模型进行训练。这个数据集是用随机轨迹进行初始化的。然后,我们通过在使用数据集对神经网络动态模型进行训练、使用模型预测控制器(MPC)和已学习的动态模型收集附加的轨迹以聚合到数据集上之间交替,从而执行强化学习。我们在下面将对这两个组成部分进行讨论。

 

图2.基于模型的强化学习算法概述

 

动力学模型

 

我们将已学习的动力学函数参数化为一个深度神经网络,可以通过一些需要学习的权重进行参数化。我们的动力学函数以当前状态st和动作at作为输入,然后输出预测的状态差st + 1-st。动力学模型本身可以在监督学习环境中进行训练,其中收集的训练数据以成对的输入(st,at)和相应的输出标注(st + 1,st)。

 

需要注意的是,我们上面所提到的“状态”可以随着智能体的变化而变化,并且可以包括诸如质心位置、质心速度、关节位置以及其他任何我们想选择的可测量数值。

 

控制器

 

为了使用一个已学习的动力学模型来完成任务,我们需要定义一个对任务进行编码的奖励函数。例如,标准的“x_vel”奖励可以编码一个前进的任务。对于轨迹追踪的任务,我们制定了一个奖励函数,能够激励靠近轨迹,并沿着轨迹前进。

 

使用已学习的动力学模型和任务奖励函数,我们建立了一个基于模型的控制器。在每个时间步骤中,智能体通过随机生成K个候选动作序列,使用已学习的动力学模型预测那些动作序列的结果,并选择对应于最高累积奖励的序列(图3),做出到达未来所需H步的规划。然后,我们只执行动作序列中的第一个动作,继而在下一个时间步骤中重复规划过程。这种重新规划使得该方法在学习动力学模型中能够对抗不准确性。

 

图3.使用已学习动力学模型模拟多个候选动作序列的过程示意图,预测其结果,并根据奖励函数选择最佳动作序列。

 

结果

 

我们首先在各种MuJoCo智能体上评估了我们的方法,包括游泳者、half-cheetah和蚂蚁。图4显示,使用我们的已学习动力学模型和MPC控制器,智能体能够遵循一组稀疏的路标所定义的路径。此外,我们的方法只用了几分钟的随机数据对已学习的动力学模型进行训练,显示了它的样本效率。

 

请注意,使用这种方法的话,我们只需要对模型进行一次训练,且仅需要改变奖励函数,就可以在运行时将模型应用于各种不同的期望轨迹,而不需要单独的特定于任务的训练。

 






图4:蚂蚁、游泳者和猎豹的移动轨迹结果。每个智能体为了执行这些不同的轨迹而使用的动力学模型仅经过一次训练,且仅使用随机收集的训练数据。

 

我们方法中的哪些方面对取得良好的性能表现至关重要?我们首先考察了MPC规划范围H的变化。图5表明,如果范围太短的话性能会受到影响,可能是由于不可恢复的贪婪行为。对于half-cheetah而言,如果范围太长的话性能也会受到影响,主要是因为已学习动力学模型中的不准确性。图6显示了一个用于单一100步预测的已学习动力学模型,显示某些状态元素的开环预测最终偏离了基本事实。因此,一个中等的规划范围最好避免贪婪行为,同时最小化不准确模型所带来的不利影响。

 

图5:由控制器使用不同的范围值进行规划的任务性能图。范围太低或太高都是不太合适的

 

图6:动力学模型的100步前向模拟(开环),表明对某些状态元素的开环预测最终会偏离基本事实。

 

我们还改变了用来训练动力学模型的初始随机轨迹的数量。图7显示,虽然较多数量的初始训练数据能够导致较高的初始性能,但是数据聚合能够使得即使是低数据初始化实验也能运行以至达到较高的最终性能水平。这突出显示了强化学习的策略数据是如何提高采样效率的。

 

图7:通过使用不同数量的初始随机数据进行训练的动力学模型所获得的任务性能表现曲线图。

 

值得注意的是,基于模型的控制器的最终性能仍然远低于无模型学习器(当无模型学习器经过数千次的经验训练时)。这种次优的性能表现有时被称为“模型偏差(model bias)”,并且是基于模型的强化学习中的一个已知问题。为了解决这个问题,我们还提出了一种混合的方法,结合了基于模型和无模型的学习,以消除收敛的渐近偏差(asymptotic bias),尽管这是要以附加的经验为代价的。这种混合的方法,以及其他分析,论文中皆有详述。

 

学习在现实世界中运行


图8:VelociRoACH的长度为10厘米,重量约为30克,每秒可以移动27个身体长度,并使用两个电机来控制所具有的六条腿。

 

由于我们的基于模型的强化学习算法可以使用比无模型算法更少的经验来学习运动步态,因此可以直接在真实世界中的机器人平台上对其进行评估。在其他研究中,我们研究了这种方法是如何完全从现实世界的经验中进行学习的,从而完全从零开始获取一个millirobots(图8)的运动步态的。

 

对于许多应用来说,Millirobots由于其体积小和制造成本低而成为十分具有前途的机器人平台。然而,控制这些millirobots是非常困难的,主要是由于它们的动力不足、功率限制和大小等局限性。虽然手动控制器有时可以控制这些millirobots,但是它们往往在动力学机动和复杂的地形上遇到困难。因此,我们利用上面的基于模型的学习技术来使VelociRoach millirobot进行轨迹追踪。图9显示,我们的基于模型的控制器在经过17分钟的随机数据训练后,可以精确地遵循高速轨迹。

 




图9:使用我们的基于模型的学习方法,VelociRoACH能够遵循各种期望轨迹。

 

为了分析模型的泛化能力,我们收集了地毯和聚苯乙烯泡沫塑料地形上的数据,继而对该方法进行了评估,如表1所示。正如预期的那样,当基于模型的控制器在与训练期间相同的地形上执行时表现得非常好,表明模型将地形的知识结合在内。然而,当模型在来自两个地形的数据中进行训练时,性能会下降,这可能表明,我们需要进行更多的研究从而开发出能够用于学习适用于多种任务环境的模型的算法。表2显示,随着越来越多的数据被用于训练动力学模型,性能将会不断提高,这是一个令人鼓舞的迹象,表明我们的方法将会随着时间的推移而不断改进(与手动解决方案不同)。

 

表1:用不同类型的数据进行训练以及在不同表面上执行轨迹追踪的模型的成本

 

表2:使用经过不同数据量(腿)训练的动力学模型轨迹追踪过程中产生的成本

 

我们希望这些结果展示了基于模型的方法在采样效率机器人学习领域的未来前景,并鼓励在这一方面进行更多的研究。

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

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.NET

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



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