学习笔记之——深度强化学习(Deep Reinforcement Learning)

本博文为本人学习深度强化学习的学习笔记。仅供本人学习记录用,如有写得不对的地方,请多指教哈~

 

目录

强化学习

深度强化学习

基于深度强化学习的移动机器人导航

参考资料:


 

Deep Reinforcement Learning,百度百科上对其解释是“深度强化学习将深度学习的感知能力和强化学习的决策能力相结合,可以直接根据输入的图像进行控制,是一种更接近人类思维方式的人工智能方法。”深度学习具有较强的感知能力,但是缺乏一定的决策能力;而强化学习具有决策能力,对感知问题束手无策。因此,将两者结合起来,优势互补,为复杂系统的感知决策问题提供了解决思路。

强化学习、深度学习都是机器学习的一个重要的分支。而深度强化学习,可以就是两者的结合版,是google的DeepMind团队提出的一种算法框架,是一种用于做决策学习的算法。深度学习善于做非线性的拟合,而强化学习适合做决策学习,将二者巧妙的结合,综合两者的优势,便是DRL。

本博文首先介绍强化学习,然后介绍深度强化学习,最后介绍基于深度强化学习的移动机器人导航。

 

强化学习

关于深度学习部分,由于已经比较熟悉了,在此就不额外介绍了。直接开始介绍强化学习。

不同于深度学习侧重于感知和表达,强化学习则侧重于寻找解决问题的策略,强化学习中的智能体在与环境交互的过程中,为了获取更大的累计奖赏值而不断优化动作策略,当累积的奖赏值达到最大后且稳定则意味着学习到全局或局部最优策略。

强化学习是一种目标导向(goal-directed)的学习方法。是一种学习如何做能够最大化当前场景中的奖励值的学习方法。实际上是一种从状态到动作的映射关系(map situations to actions)的学习过程。因此,在一个强化学习的任务中至少包括以下几个部分:当前的状态(stateBegin)、能够采取的行动(action)、达到下一状态(stateEnd)、动作的奖励(rewards)。注意,对于传统的机器学习方式,输入一个状态s,模型就映射得到一个动作a。但强化学习是通过应用这些映射的动作,得到一系列的反馈奖励值,然后从中挑出最大奖励值的那个动作。因此,强化学习具有以下两个明显的特征:试验式求解方式(Trial-and-Error,试错法)和奖励延迟机制(Delayed Reward)。

强化学习考虑的完全是一个整体的问题——是一个以目标为导向的智能体和未知的环境进行交互的问题。

强化学习的学习思路和人比较类似,是在实践中学习,比如学习走路,如果摔倒了,那么我们大脑后面会给一个负面的奖励值,说明走的姿势不好。然后我们从摔倒状态中爬起来,如果后面正常走了一步,那么大脑会给一个正面的奖励值,我们会知道这是一个好的走路姿势。那么这个过程和之前讲的机器学习方法有什么区别呢?

强化学习的基本概念

强化学习与机器学习的关系

机器学习可以分为三类,分别是 supervised learning,unsupervised learning 和reinforcement learning。而强化学习与其他机器学习不同之处为:

  1. 没有教师信号,也没有label。只有reward,其实reward就相当于label。
  2. 反馈有延时,不是能立即返回。
  3. 相当于输入数据是序列数据。
  4. agent执行的动作会影响之后的数据

       强化学习来和监督学习最大的区别是它是没有监督学习已经准备好的训练数据输出值的。强化学习只有奖励值,但是这个奖励值和监督学习的输出值不一样,它不是事先给出的,而是延后给出的,比如走路中,摔倒了才得到大脑的奖励值。同时,强化学习的每一步与时间顺序前后关系紧密。而监督学习的训练数据之间一般都是独立的,没有这种前后的依赖关系。

  再来看看强化学习和非监督学习的区别。也还是在奖励值这个地方。非监督学习是没有输出值也没有奖励值的,它只有数据特征。同时和监督学习一样,数据之间也都是独立的,没有强化学习这样的前后依赖关系。

强化学习模型

       强化学习的关键要素有:environment,reward,action 和 state。有了这些要素我们就能建立一个强化学习模型。强化学习解决的问题是,针对一个具体问题得到一个最优的policy,使得在该策略下获得的reward最大。所谓的policy其实就是一系列action。也就是sequential data。 
(如下图所示)强化学习要先从要完成的任务提取一个环境,从中抽象出状态(state) 、动作(action)、以及执行该动作所接受的瞬时奖赏(reward)。 

在上图中,大脑代表算法执行的个体。选择一个合适的动作(action)。而地球则代表需要研究的环境,它有自己的状态模型。当我们选择了action后,环境的状态(state)就会变。我们会发现环境状态已经变为St+1,同时我们得到了我们采取动作At的延时奖励(Reward)Rt+1。然后个体可以继续选择下一个合适的动作,然后环境的状态又会变,又有新的奖励值。。。这就是强化学习的思路。

强化学习的一些概念

  1. 环境的状态S,t时刻环境的状态St是它的专家状态集中某一个状态。
  2. 个体动作A,t时刻个体采取的动作At是它的动作集中某一个动作。
  3. 环境的奖励R,t时刻各自在状态St采取的动作At对应的奖励Rt+1会在t+1时刻得到。奖励函数,是强化学习的目标,可以看作是从观察环境变量到奖励值的映射,衡量出该状态的满意度。强化学习智能体的直接目标就是最大化在长期行动当中的一个总奖励值。这个奖励函数就决定了当前的决定对于智能体来讲是一个好的决定还是一个坏的决定。
  4. 个体的策略(policy)π。决定了某一时刻做出的行为,即一种从观测状态到执行动作的映射。它代表个体采取动作的依据。即个体会依据策略π来选择动作。最常见的策略表达方式是一个条件概率分布, 即在状态s时采取动作a的概率。即此时概率大的动作被个体选择的概率较高。
  5. 个体在策略π和状态s时,采取行动后的价值(value),一般用表示。这个价值一般是一个期望函数。虽然当前动作会给一个延时奖励Rt+1,但是光看这个延时奖励是不行的,因为当前的延时奖励高,不代表到了t+1,t+2,...时刻的后续奖励也高。比如下象棋,我们可以某个动作可以吃掉对方的车,这个延时奖励是很高,但是接着后面我们输棋了。此时吃车的动作奖励值高但是价值并不高。因此我们的价值要综合考虑当前的延时奖励和后续的延时奖励。价值函数一般可以表示为下式,不同的算法会有对应的一些价值函数变种,但思路相同:相对于奖励函数这种即时的衡量方式,值函数是一种长期的衡量方式。值函数就是从当前的状态开始到将来的某个状态下的累计奖励值。值函数就是从当前的状态开始到将来的某个状态下的累计奖励值。是一种从当前状态开始到所有可能的状态的长期满意度衡量。强化学习的目标就是选择一组最佳的动作,使得全部的汇报加权和期望最大。这个期望的累积奖励值就可以通过值函数来衡量。
  6. 上式中的是奖励衰减因子,在[0,1]之间。如果为0,则是贪婪法,即价值只由当前延时奖励决定,如果是1,则所有的后续状态奖励和当前奖励一视同仁。大多数时候,我们会取一个0到1之间的数字,即当前延时奖励的权重比后续奖励的权重大。
  7. 环境的状态转化模型,可以理解为一个概率状态机,它可以表示为一个概率模型,即在状态s下采取动作a,转到下一个状态 的概率,表示为
  8. 探索率ϵ,这个比率主要用在强化学习训练迭代过程中,由于我们一般会选择使当前轮迭代价值最大的动作,但是这会导致一些较好的但我们没有执行过的动作被错过。因此我们在训练选择最优动作时,会有一定的概率ϵ不选择使当前轮迭代价值最大的动作,而选择其他的动作。强化学习与马尔科夫决策过程不能划等号,原因在于强化学习在MDP的基础上还要进行探索和利用(exploitation&exploration)。通过已知的模型直接应用的过程就是exploitation,不断尝试新的事物由此来纠正当前的模型(先前的经验)就是一个exploration的过程。

隐马尔科夫模型(HMM)

对于HMM模型的问题,一般有以下两个特征:1、问题是基于序列的(时间序列或状态序列)2、两类数据。一类是可观测到的,即观测序列;另一类是不能观测到的,即状态序列。

隐马尔科夫模型(Hidden Markov Model,HMM)是一个关于时序的概率模型,描述了一个由隐藏的马尔科夫链随机生成的不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。其中,隐藏的马尔科夫链生成的状态随机序列被称为状态序列,每一个状态生成一个观测,由此产生的观测随机序列被成为观测序列。序列的每一个位置都可以看作一个时刻。每一个状态之间以一定的概率进行转换,生成的观测序列也不止一个,因此也存在一个概率分布。

HMM分为五个部分组成:状态序列、状态转移矩阵、观测序列、观测概率分布及一个初始的状态分布。

HMM模型的定义

首先,假设Q是所有可能的隐藏状态的集合,V是所有可能观测状态的集合。

其中,N是可能的隐藏状态数,M是可能的观测状态数。对于一个长度为T的序列,I对应的状态序列, O是对应的观察序列,即:

其中,任意一个隐藏状态任意一个观测状态

HMM模型需要两个很重要的假设:

1、齐次马尔科夫链假设。即任意时刻的隐藏状态只依赖于它前一个隐藏状态,

2、观测独立性假设。即任意时刻的观察状态只仅仅依赖于当前时刻的隐藏状态。

 

马尔科夫决策过程(Markov Decision Process,MDP)

马尔科夫决策理论的一个核心就是:通过一个智能体(agent)来感知和该问题相关的环境状态,并且在与环境交互的过程中得到最大收益的目标。

MDP的价值函数与贝尔曼方程(Bellman)

上面第七个是环境的状态转化模型。而在实际的情况中,下一个状态的概率不仅仅与上一个状态s有关,还与之前的状态都有关。这一会导致我们的环境转化模型非常复杂,复杂到难以建模。因此我们需要对强化学习的环境转化模型进行简化。简化的方法就是假设状态转化的马尔科夫性,也就是假设转化到下一个状态s′的概率仅与上一个状态s有关,与之前的状态无关。用公式表示就是:

除了对于环境的状态转化模型这个因素做马尔科夫假设外,我们还对强化学习第四个要素个体的策略(policy)π也做了马尔科夫假设。即在状态s时采取动作a的概率仅与当前状态s有关,与其他的要素无关。用公式表示就是

对于第五个要素,价值函数也是一样, 现在仅仅依赖于当前状态了,那么现在价值函数表示为:

其中,代表收获(return), 是一个MDP中从某一个状态St开始采样直到终止状态时所有奖励的有衰减的之和。对于上面的价值函数的表达式没有考虑到所采用的动作a带来的价值影响,因此我们除了这个状态价值函数外,还有一个动作价值函数,即:

 根据价值函数的表达式,我们可以推导出价值函数基于状态的递推关系,比如对于状态价值函数,可以发现:

也就是说,在t时刻的状态St和t+1时刻的状态St+1是满足递推关系的,即:

这个递推式子称为贝尔曼方程。这个式子告诉我们,一个状态的价值由该状态的奖励以及后续状态价值按一定的衰减比例联合组成。通过Bellman方程,可以知道,值函数的求解就是一个动态规划的迭代过程。为了计算当前状态s的值函数的值,只需要计算到下一个状态的奖励和下一个状态的值函数的和,如此使用动态规划的算法进行迭代计算便可以计算出所有状态稳定的值函数的值了。(朝着值函数最大的方向前景就是最好的策略)

同样的方法,可以得到动作价值函数的贝尔曼方程:

状态价值函数与动作价值函数的递推关系

根据动作价值函数和状态价值函数的定义,可得到他们之间的转化关系公式:

也就是说,状态价值函数是所有动作价值函数基于策略π的期望。通俗说就是某状态下所有状态动作价值乘以该动作出现的概率,最后求和,就得到了对应的状态价值。反过来,利用上贝尔曼方程,可从状态价值函数表示动作价值函数,即:

通俗说就是状态动作价值有两部分相加组成,第一部分是即时奖励,第二部分是环境所有可能出现的下一个状态的概率乘以该下一状态的状态价值,最后求和,并加上衰减。这两个转化过程也可以从下图中直观的看出:

 把上面两个式子互相结合起来,可以得到:

动作值函数实际上就是值函数的一种动作的具体表示。

最优价值函数

值函数优化的目的是为了得到当前状态S的最大的累计奖励值,也就是会穷尽所有的策略来得到一个最大值;动作值函数优化问题的目的是在当前状态s和当前动作a的情况下,求解最大的累计奖励值,也就是说穷尽所有的策略当中的所有动作,然后找到一个最优的动作使得Q函数最大。

解决强化学习问题意味着要寻找一个最优的策略让个体在与环境交互过程中获得始终比其它策略都要多的收获,这个最优策略我们可以用 π∗表示。一旦找到这个最优策略π∗,那么我们就解决了这个强化学习问题。一般来说,比较难去找到一个最优策略,但是可以通过比较若干不同策略的优劣来确定一个较好的策略,也就是局部最优解。

 如何比较策略的优劣呢?一般是通过对应的价值函数来比较的,也就是说,寻找较优策略可以通过寻找较优的价值函数来完成。可以定义最优状态价值函数是所有策略下产生的众多状态价值函数中的最大者,即:

同理也可以定义最优动作价值函数是所有策略下产生的众多动作状态价值函数中的最大者,即:

对于最优的策略,基于动作价值函数我们可以定义为:

只要找到了最大的状态价值函数或者动作价值函数,那么对应的策略π∗就是我们强化学习问题的解。同时,利用状态价值函数和动作价值函数之间的关系,我们也可以得到:

反过来的最优价值函数关系也很容易得到:

利用上面的两个式子也可以得到和第三节末尾类似的式子:

基于动态规划的强化学习问题求解

 

 

 

强化学习要解决的就是一个决策的问题。

深度强化学习(DRL)

模型、数据和求解算法是机器学习的三要素。DRL也不例外。但是DRL中的数据区别于传统机器学习算法的数据。对于一个深度强化学习问题,在学习开始的时候,甚至都不用准备数据。数据的获取是经过一步一步地仿真采样得到的。而得到的数据并不是一种带标签的数据,也不是无监督学习中的训练数据。强化学习的数据是一种标签延迟的训练数据。

 

 

 

 

基于深度强化学习的移动机器人导航

移动机器人具有广阔的应用前景(如下图所示)。对于应用在各个领域的移动机器人来说,导航与定位都是其一项非常基本和关键的技术

基于对环境的信息的掌握程度将传统的导航方法分为两类:一种是环境信息已知的全局路径规划导航方法,即导航的环境、机器人初始位姿及导航目标都已知,该类方法有 Dijkstra 算法、人工势场法、PRM 随机路图算法和 SLAM 技术等,利用 SLAM 技术进行导航需要先在初始阶段构建机器人所处环境的地图,然后基于该地图对机器人位置进行推断,进而进行路径规划导航;另一种是用于部分或完全未知动态环境的导航,像 A*搜索算法、D*算法以及快速扩展随机树法 RRT 等。

人工智能领域中对深度强化学习研究是最近几年的研究热点。强化学习应用于机器人的研究由来已久,强化学习通过机器人与环境交互进而寻找最优的策略,而深度学习侧重对事物的感知和表达。深度强化学习结合了深度学习感知抽象能力与强化学习策略寻优能力,在很多传统方法无法解决的问题上表现优异。而且由于机器人导航技术也主要分为两部分:对环境的感知部分和决策控制部分。所以研究将深度强化学习算法应用到解决室内移动机器人的导航问题中具有重大的意义。
 
 

 

 

参考资料:

基于深度强化学习的机器人导航研究_王大方

https://www.cnblogs.com/pinard/p/9385570.html(强化学习)

https://blog.csdn.net/hellocsz/article/details/80835542(强化学习)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值