人工智能如何应用在机器人上?--深度强化学习与简单2D机器人场景(下)

上一篇文章我们粗略介绍了策略梯度算法,通过阅读以下内容,我相信你可以获得一个更加深刻和全面的理解!

策略梯度的数学推导

策略梯度实际上是期望函数的梯度估计(score function gradient estimator)的一个特例。一般来说,我们会有一个形式为如下的数学表达式:

代表了特定标量函数f(x)在以

为概率分布函数时的数学期望值。怎样形象的理解这个表达式呢?f(x)对应于我们的回报函数或者是Advantage函数,p(x)是我们的策略网络,也是

(基于一张图像信息的行为概率分布)的一个模型。我们所要关注的就是如何通过调整参数θ来调整概率分布,进而提升取样点的得分(由f(x)判定)。对于当前的乒乓强化学习场景而言就是说我们应该如何调整策略神经网络的参数使得我们选取的行为能够得到尽可能高的回报。

回报函数的数学期望梯度 = 对于所有取样点的概率与其汇报函数乘积和在参数θ上的导数

将导数计算移至加和计算之前

经过一系列数学变换

最终得出:回报函数的数学期望梯度 = 每一个取样点的对数选取概率梯度与相对应的回报值乘积的数学期望

我们来简单描述一下这个过程,首先我们有一个分布函数

,(以p(x)简化代替)从中我们可以选取样点(比如这个分布函数可以是一个高斯分布)。对于每一个选中的取样点x我们可以计算出它的回报函数值f(x)。上面最终的等式告诉了我们应该如何移动概率分布函数(调整θ)使得我们的取样点能够得到更大的回报值。除了拿选取的x值计算f(x)值以外,我们也需要计算

,它是一个梯度向量,指明了为使得选取x概率增加,θ值应该变化调整的方向。换个方式说:我们将θ值顺着

的方向少量推动,那么选取到x取样点的概率在未来就会少量增加。我们仔细观察等式会发现在此之外我们还乘以了f(x),这点说明了取得更高回报值的取样点会更大地影响取样概率分布选取这类取样点的倾向。所以我们会观察到在更新概率分布函数之后我们的概率分布将从一开始的高斯分布形式逐渐演变成倾向于选取更容易获得高回报值取样点的概率分布。

图示:左图:初始时期是一个高斯概率分布,蓝色点代表一些取样点,蓝色箭头代表针对每一个取样点而言要使此取样点被选取的概率增大的话,此概率分布应该移动的方向。

中图:表示左图经过f(x)乘积叠加之后的取样点方向,红色为f(x)=-1,绿色为f(x) =+1,于是红色箭头所指为实际方向的逆向,绿色箭头所指即为实际方向。

右图:中图指明的方向会牵拉概率分布图移动到坐下方,移动之后的概率分布图会包含更多的带来正向奖励的取样点,由此,一次更新完成

学习训练

到此,我们用数学推导阐明了强化学习是如何应用在这个简易的乒乓球游戏中的了。实际的代码编写并不复杂,只有130行的Python代码就可以实现。作者使用了一个两层的策略网络,其中总共有200个隐藏层神经元,每一次的训练长度为10个循环,因为是21分制,所以每个循环大概包括几十局的乒乓球比赛才能决出胜负。经过了8000次训练循环(大约二十万局游戏),总共约800次参数更新之后达到了以下视频中的效果。我们也可以不断调整一些顶层变量使得我们的机器玩家变得更加无敌!

训练学习后的参数值:

我们来看一下训练之后的参数的样子:

图示:每一格代表一个训练完的神经元,这张图总共包含了40个神经元。白色的像素是正值权重值,黑色为负值权重值

由此,我们成功地训练了一个策略神经网络。背后是一种复杂的“猜想”+“验证”的方式:“猜想”即依据当前策略分布选择取样点(行为),“验证”即根据所选取样点(行为)进行判断和改进。当我们不甚了解强化学习原理的时候,我们可能无法理解机器是如何学会玩游戏的,但是当你仔细阅读以上的说明后,你应该会发现这一切并不玄幻,它确实是可以被理解和说明的。

我想通过上面的例子做一个机器学习和人类学习的比较:

人类玩乒乓球游戏是通过很多的经验和判断来学习进步的,比如说直观理解的物理规律(球的弹跳、碰撞、速度改变等)和感性的心理判断(我的对手想要获胜,那么他可能会采取哪些可能的进攻路线呢?)而机器玩家对这一切一无所知。

策略梯度法实际上是一个“蛮力”的方法:最优的方法最终会被成千上万次的尝试发现并且存储到程序里面。而作为人类,我们有一个抽象的模型,之后不断调整这个模型的准确度,在调整的时候也参杂了许多思考(对手移动较慢,我们可以击打球使球拥有纵向的高速逃离对手的防守)。有一点很类似,我们人类最终也会把这一套方法存起来,比如说肌肉记忆或者是战术经验。

机器学习需要大量且高频次地获得奖励或惩罚才能快速更正策略网络。而我们人类很多情况下可以预测到某些行为的后果而并不需要亲自尝试来学习。比如说我们不会通过天天开车撞树才能理解到撞车带给我们的损失。

其实强化学习在有很多游戏都可以轻松赢过人类,这一类游戏的共性就是需要快速反应、快速获得奖励或惩罚,而不是需要长期规划的那种游戏。总之,一旦你了解了强化学习的算法内涵那你就可以判断哪些场景适宜这种算法而哪些不适合了。我们现在的人工智能还完全无法比拟我们人类的复杂抽象思维的能力。

结语:

强化学习是一个很强大的人工智能算法,我们这两篇文章总结了如何利用强化学习中的策略梯度算法从零到一让机器通过接收图像信号自我学习出游戏通关策略!实际上,进行简单的更改调试,这个程序就可以应用到其他的游戏上面去,由此可见强化学习算法的通用性。

在促进AI发展方面:

我们观察到这个算法最一开始是通过蛮力选取一些随机的行为施加到控制对象上面的,这些行为直到带来奖励或者惩罚才能更新程序对环境的认知,进而调整选取不同行为的概率。而作为人类,我们处理这个问题的方法更像是通过构建一个抽象模型而非深入研究学习得出行为方式的。由于这些抽象的行为模型难以用数据描述,所以最近在人工智能领域,无监督生成模型(unsupervised generative model)和程序归纳法(program induction)也成为了研究热点。

在复杂机器人场景中的应用:

本文所讨论的强化学习不能够简单直接应用到那些由于搜索空间过于庞大而难以轻易获得最佳行为的场景里。比如说在一个真实的多维机器人场景中,更合理的算法是确定策略梯度法(deterministic policy gradients)而非随机策略梯度法(stochastic policy gradients),意思是我们不从一个随机分布里面选取行为取样点然后奖励获得成功的取样行为,而是采纳一个确定的行为选取策略,然后从另外一个描述回报情况的神经网络(critic network)直接获得梯度信息。这种方法在处理高维行为问题时要优于随机取样行为的方法,但与此同时也更加难以实现。其中的一个可能解决方案是增加多个机器人,平行探索训练。比如像谷歌的机器人工厂或是特斯拉Model S的自主巡航。

还有一系列的方法是通过添加额外的监督来缩小强化学习过程中的探索空间,以此使得本来不可能的任务变得可以实现。比如说可以从人类专家那里拿到一个很好的轨迹或者方向来指导机器人的探索学习方向。比如说大名鼎鼎的阿尔法狗:首先是通过大量观看人类顶尖围棋大赛数据,用监督学习的方法去预测人类棋手的下棋方式;之后对这个“拟人”的下棋策略进行策略梯度方法的优化训练得以战胜人类。在其他的一些没有人类教师的数据可以作为教学材料的领域里,我们可以应用优化算法求出最佳解,并将其作为教学材料。

我希望我的这篇讲解能够给你一个对强化学习更直观、具体的理解,也能让你了解到强化学习方法目前所面临的瓶颈和困难。如果你愿意推动强化学习或人工智能的进步,请假如OpenAI Gym!

END

(0)

相关推荐

  • 传说中的数据挖掘工程师,究竟是做什么的?

    数据挖掘,从字面上理解,就是在数据中找到有用的东西,哪些东西有用就要看具体的业务目标了.最简单的就是统计应用了,比如电商数据,如淘宝统计过哪个省购买泳衣最多等. 进一步,可以基于用户的浏览.点击.收藏 ...

  • 强化学习入门——说到底研究的是如何学习

    自机器学习重新火起来,深度强化学习就一直是科研的一大热点,也是最有可能实现通用人工智能的一个分支.然而对于没有强化学习基础的同学们,如果直接去学习深度强化学习,想必会碰到很多问题.本文尝试普及一些最基 ...

  • 理解强化学习知识之策略梯度

    策略梯度简述 为什么要引入策略梯度,它的优缺点? 策略目标函数 怎么优化目标函数---得到策略梯度 关于策略的设计 基于蒙特卡洛的策略梯度--REINFORCE算法 降低方差---为策略梯度添加常数基 ...

  • 人类偏好的“可塑性”,从博弈说起

    经济学家通过为人类受试者提供选择来套取他们的偏好.该技术广泛应用于产品设计.营销和交互式电子商务系统中.例如,汽车设计师向受测试者提供具有不同油漆颜色.座位安排.后备厢大小.电池容量.杯架等选项的汽车 ...

  • 使用t-SNE算法进行可视化

    t-SNE全称如下 t-Distributed Stochastic Neighbor Emdedding 是一种非线性的降维算法,常用于将数据降维到二维或者三维空间进行可视化,来观察数据的结构. 在 ...

  • 神经网络如何学习的?

    像下山一样,找到损失函数的最低点. 毫无疑问,神经网络是目前使用的最流行的机器学习技术.所以我认为了解神经网络如何学习是一件非常有意义的事. 为了能够理解神经网络是如何进行学习的,让我们先看看下面的图 ...

  • 国外牛人深度强化学习训练双足机器人Cassie,如今的它可以变着花样行走

    导读 双足机器人Cassie虽然相比于波士顿动力的Atlas名气稍微逊色一点,但一直以来它凭借特殊的外形,稳定的行走步态,扎实的进化速度,以及时不时传来即将商业化(送快递)的消失,也使其那腿足机器人领 ...

  • 深度强化学习综述(上)

    人工智能中的很多应用问题需要算法在每个时刻做出决策并执行动作.对于围棋,每一步需要决定在棋盘的哪个位置放置棋子,以最大可能的战胜对手:对于自动驾驶算法,需要根据路况来确定当前的行驶策略以保证安全的行驶 ...

  • 基于自适应策略的深度强化学习

    人工智能算法与Python大数据 致力于提供深度学习.机器学习.人工智能干货文章,为AI人员提供学习路线以及前沿资讯 23篇原创内容 公众号 点上方人工智能算法与Python大数据获取更多干货 在右上 ...

  • 陈根:强化学习,如何增强机器人的鲁棒性?

    文/陈根 双足机器人曾是科幻文学和电影的主题.在非理想地形上,早期双足机器人的形象通常是移动缓慢且笨拙的.但是随着科技的发展,它们开始能够进行更快.更有效地移动.现在,有些双足机器人已经可以适应环境和 ...

  • Sergey Levine-伯克利《深度强化学习2020》课程视频及ppt分享

    课程介绍 本课程主要讲解深度强化学习相关的基础知识,基础模型:还设计迁移学习.多任务学习和元学习. 文末附本课程视频及ppt免费下载地址. 课程主页 http://rail.eecs.berkeley ...

  • 深度强化学习DDPG在量化投资的应用

    主动基金被动管,被动基金主动管. 所以,我们的模型主要应用于场内ETF,ETF可以随时交易且手续费相对较低.而且ETF是支持T+0的. 继续强化学习. 今天探讨一下这DDPG:深度确定性策略梯度(De ...

  • 脑机头条 第33期| OpenAI大规模深度强化学习玩DOTA2

    更多脑机干货第一时间送达 2020年2月22日 脑机头条 第33期 强化学习定义: 是智能体(Agent)以"试错"的方式进行学习,通过与环境进行交互获得的奖赏指导行为,目标是使智 ...

  • 从零实现一个支持深度强化学习的量化投资系统

    研究过外汇自动交易,期货CTA,然后是股票的量化投资,当然本质上没有太大区别. 开源量化系统也用过几个,数据格式融合的问题,有些不方便,而且客观讲,实现一个简单的量化系统,其实非常简单. 这一次算是重 ...

  • Neuron:使用深度强化学习揭示大脑如何在高维环境中编码抽象的状态表示

    人类拥有一种特殊的能力,可以通过感官对高维事物进行观察并高效地做出决策.然而,大脑如何表示环境的当前状态以指导这一过程尚不清楚.Deep Q-network (DQN)通过捕捉从多元输入到潜在动作值的 ...