相关电子技术论文

相关标签

基于策略梯度的强化学习方法研究

发布时间:2019-12-03 17:17

  摘 要

  强化学习目前已经成为计算机领域中研究热点之一,很多计算机研究者也投身于该领域中寻求最优的强化学习算法来解决现实生活中的问题。目前有许多有关于寻求最优的强化学习的方法,有基于模型的动态规划法,也有无模型的强化学习方法。而基于策略梯度的强化学习方法也是学者们深入了解学习的方法之一。本文主要是在理解策略搜索方法的基础上学习策略梯度方法,之后研究了解几种基于策略梯度的强化学习方法,这里举例了TRPO、DDPG和A3C这三种策略梯度的方法,研究分析这三种方法,通过实验来对他们的性能进行比较。

  关键词: 强化学习;策略搜索;策略梯度;TRPO;DDPG;A3C

  前 言

  在机器学习的领域中,根据反馈的不同,学习技术可以分为监督学习、非监督学习和强化学习这三大类。其中强化学习作为一种以环境反馈作为输入的、特殊的、适应环境的机械学习方法,被认为是设计智能Agent的核心技术之一。近年来,随着高性能计算、大数据和深度学习技术的发展,强化学习算法也得到了广泛的关注和快速发展,成为目前机器学习领域的研究热点之一[1]。

  所谓的强化学习是从环境状态学习到动作的映射,它的目的是通过环境行动获得的累积奖励值最大化。对于监督学习和非监督学习,它们是通过正例和反例来了解要采取什么行动,这些例子都是确定的、已知的,根据这些例子来采取相对较好的行动;强化学习它是一个互动的过程,需要在不断的尝试与测试的过程中找到最佳的动作,这个过程需要大量的搜集数据,通过分析这些数据来获取最佳的策略。强化学习通常涉及两个方面的问题:一方面是怎么样来进行强化学习,另一个是解决怎么样强化学习的方法或技术。

  强化学习的方法可以以策略为中心和以值函数最优为中心分为两大类,分别是策略优化方法和动态规划方法,策略优化的方法根据是否利用模型可以分为无模型的策略搜索方法和基于模型的策略搜索方法。其中无模型的策略搜索方法根据策略是否随机,分为随机性策略强化学习和确定性策略强化学习。本文介绍的策略梯度的强化学习方法属于策略优化方法的一种,它在策略搜索方法中最先发展起来。

  第1章 绪 论

  第1.1节 研究背景

  强化学习目前已经成为计算机领域中研究热点之一。广大的计算机研究者也投身于该领域中寻求更好的、效率更高的强化学习算法来解决现实生活中的问题。强化学习的方法可以以策略为中心和以值函数最优为中心分为两大类,分别是策略优化方法和动态规划方法,策略优化的方法根据是否利用模型可以分为无模型的策略搜索方法和基于模型的策略搜索方法,

  强化学习的大型应用需要使用广义函数逼近,如神经网络,决策树或基于实例的方法。过去十年的主导的方法是价值函数方法,其中所有函数逼近努力进入估计价值函数,动作选择策略隐含地表示为估计值的“贪婪”策略(例如,在每个状态中选择具有最高估计值的动作的策略)。价值函数方法在许多应用程序中运行良好,但有一些限制。首先,它的目标是寻找确定性策略,而最优策略往往是随机的, Singh,Jaakkola和Jordan在1994提出了这个想法[2] :选择具有特定概率的不同行为。其次,行动的估计价值发生细微的变化都有可能导致它被选中或不被选择。这种不连续的变化已被确定为建立价值函数法后的保证算法收敛的关键障碍。例如,Q-Iearning,动态规划方法都被证明无法收敛到简单的MDP和简单的函数逼近。即使在改变策略之前的每个步骤中发现最佳近似值,以及“最佳”的概念是平均误差意义还是略微不同的剩余梯度,时间差的意义,以及动态编程方法。因此学者们提出了一种策略搜索的方法,即策略梯度算法,这种算法受到许多学者的欢迎,它也逐步成为强化学习的研究热点之一。

  第1.2节 主要工作

  本文主要是研究基于策略梯度的强化学习方法,要了解策略梯度的算法,首先要对强化学习的基本原理要有所了解,在了解强化学习的基本原理后要知道现有的学习框架是什么,本文会介绍马尔科夫决策过程,这是经过无数学者不断的研究所提供的一套最好的学习框架。最后通过对几种策略梯度算法的研究,来分析他们的差异性,并且通过实验来比较他们的性能。本文的主要工作如下:

  (1)了解什么是强化学习,知道强化学习的原理是什么;强化学习的框架是马尔科夫决策过程,介绍马尔科夫决策过程,只有在理解的基本的基础知识后,再对策略梯度的算法进行介绍,了解什么是策略梯度。

  (2)在理解策略梯度的强化学习方法之后,通过对基于策略梯度的几种方法进行研究分析,分析它们之间有何差异,所采用的方法有何不同,为后面的实验分析提供理论知识

  (3)完成实验代码,了解这些代码所对应控制的是哪部分,通过实验结果来比较它们的性能。

  (4)整理总结,对上面的几种算法比较进行总结,对整篇文章进行分析以及提出自己的想法。

  第1.3节 本文结构

  本文共分为五章,各章内容安排如下:

  第1章:绪论。本章介绍了课题的研究背景、本文的主要工作,最后介绍了本文的组织结构。

  第2章:策略梯度的强化学习方法。本章第一部分简单介绍了强化学习方法,以及马尔科夫决策过程,为后面介绍策略梯度的强化学习方法提供了基础的知识依据;第二部分主要是介绍本文主题,就是策略梯度的强化学习方法,了解什么是策略,什么是梯度。

  第3章:几种常见的基于策略梯度的强化学习方法。主要介绍了几种策略梯度的强化学习方法,有信赖域策略优化的强化学习方法、深度确定性策略梯度的强化学习方法和异步优势行动者-评论家的强化学习方法,通过对这些算法的介绍,可以看出这些算法具体体现在哪里不同以及这些不同地方的介绍。

  第4章:几种策略梯度方法性能比较。主要通过pycharm软件,利用实验代码来更加直观的看出这几种策略梯度强化学习方法之间性能的差异,对上一章介绍的几种算法有更好的理解。

  第5章:总结。对整个文章进行整理汇总。

  第2章 基于策略梯度的强化学习方法

  第2.1节 强化学习

  第2.1.1节 强化学习原理

  所谓的强化学习是从环境状态学习到动作的映射,它是通过环境和行动的不断交互来获得的累积奖励值,使得奖励值最大化。这种方法不同于监督学习和非监督学习,通过正例和反例来决定要采取什么行动,但它需要通过试验和错误来找到最佳的行为策略。强化学习通常涉及两个方面:一个是将强化学习视为一类问题,另一个是解决这类问题的技术。当强化学习是一类问题时,当前的学习技术大致分为两类:一类是搜索Agent的行为空间以发现Agent的最佳行为,通常是用遗传算法等搜索技术实现。另一类是统计技术和动态规划方法被用来估计环境条件行为的函数值。研究人员特别称这种学习技术为强化学习技术。

  监督学习和非监督学习的数据是静态的,不需要与环境进行交互,比如图像识别,只要给足够的差异样本将数据输入到深度网络中进行训练,就能够实现图像的识别。然而,强化学习是个动态的学习过程,动作行为需要不断地与环境进行交互,所需要的数据也是通过与环境不断地交互产生的。所以,与监督学习和非监督学习相比,强化学习所需要涉及到的对象更多,比如动作、环境、状态转移概率和回报函数等。  如图1所示,智能体(Agent)想要达到某种目标,首先智能体(Agent)向环境做出一个动作A,在动作A和环境的交互下,智能体会根据动作A的作用下产生一个新的状态S,同时环境会给智能体(Agent)一个回报。智能体(Agent)通过不断的改变动作,而动作又与环境进行不断地交互从而使得智能体(Agent)获得更多的数据。强化学习算法是智能体(Agent)利用对这些大量的数据进行分析,找到相对于目标来说最佳的动作,变成新的状态,之后再发出新的动作与环境交互,收集新的状态时产生的新的数据,并对这些新的数据进行分析从而知道自己应该采取怎样的动作才是最佳的,经过数次反复这样的学习后,智能体(Agent)能最终达到相应的目标。

  举个例子,设定一个场景,两个围棋高手在下棋,而围棋高手就相当于这里的智能体(Agent),在围棋高手决定出哪步的时候,他在思考如何下才能赢,他在想当下这步时对方会下哪步来做出应对,通过反推得到这个围棋高手应该下哪步是最好的选择,这里思考的过程相当于动作A与环境交互的过程,围棋高手(智能体)根据思考反推得到的具体下哪步,这就是强化学习所需要的最优解。

  强化学习是一个比较复杂的研究方向,高阳[2]等人曾在自己发表的文章中将强化学习领域所涉及的分支和算法进行了整理和汇总,总结了TD算法、Q-Learning算法、Sarsa算法、最佳搜索强化学习方法和经验强化型强化学习算法等,另外还涉及到多Agent强化学习、动态规划、部分感知、函数估计、符号学习和强化学习偏差等方面知识,学习环境还引进了马尔科夫型环境,采取马尔科夫决策过程。

  第2.1.2节 马尔科夫决策过程

  通过无数学者几十年的不断努力研究,他们提出了一套框架,用于解决大部分的强化学习问题,这个框架就是马尔科夫决策过程。要了解马尔科夫决策过程,可以分为三步来了解马尔科夫决策过程,第一步是了解马尔科夫性,第二步了解马尔科夫过程,最后一步了解马尔科夫决策过程。

  马尔科夫性指的是下一个状态St+1仅仅与当前的状态St有关,与之前的状态没有关系。它的定义为:状态St如果是马尔科夫的,那么P[St+1|St]= P[St+1| S1,···,St]。从定义里我们可以看出,当前状态St包含了之前所有的状态S1 ,S2···,但是对于状态St+1来讲的话,之前的状态S1 ,S2···跟St+1没有关系,它只跟St有关系。马尔科夫性描述的是每个状态的性质,但是强化学习是一个过程,它要描述的是一个状态序列,所以学者提出了马尔科夫过程这个概念,它可以描述一个状态序列,只要保证状态序列的每个状态都具有马尔科夫性就行。

  马尔科夫过程的定义为:马尔科夫是一个二元组为(S,P),二元组中S是有限状态集合,P是状态转移概率。但是强化学习算法不仅仅要描述一个状态序列,它同时也要满足通过动作与环境的交互,从环境中获得回报,但是马尔科夫过程不存在动作和回报奖励,满足不了描述强化学习,所以学者们将动作和回报奖励考虑在内的马尔科夫过程称为马尔科夫决策过程。

  马尔科夫决策过程定义为:它由一个五元组(S,A,P,R,?)组成,其中S是有限状态集合;A为有限动作集合;P为状态转移概率;R为回报函数;?为折扣因子,用来计算累计奖赏。因此强化学习的目标是给定一个马尔科夫决策过程,寻找最优策略。策略是指状态到动作的映射,策略常用符号π表示,它是指在给定了状态S时,动作集合A上的一个分布,即:

  这个公式的意思是当前状态为s时,如果要到下个状态s+1,执行动作a的状态转移概率,而状态为s,执行动作a的策略就是一个概率的分布,所以当相同状态s时执行不同的动作,从而可以得到这些动作的策略。而强化学习就是分析这些策略,找到最优策略能够使得期望最大,这里的期望可以表示为:k+1是计算的累计奖赏,所以强化学习的目标是当状态为s,执行动作a根据得到的策略π计算最大期望。

  第2.2节 基于策略梯度的强化学习方法

  这节内容主要介绍策略梯度,要了解策略梯度的方法,我们可以先从字面的意思来了解。首先将策略梯度分开为策略和梯度两个部分,策略在网上查的定义为可以实现目标的方案集合,或根据形势的发展而指定的行动方针,以我个人的观点意思就是为了实现某个目的而做出的一些方法的集合,举例来讲就是一个人需要投资理财,而业务员提供的许多投资理财的方案就是策略;而梯度是一个数学名词,它表示某一函数求导后可以得到某个点沿着它的方向的最大值,数学里一般用▽表示。所以策略梯度的意思就是求策略所提供的方案集合中的最优解。

  策略梯度的方法是最先在策略搜索方法里提出来的,策略搜索讲的是将策略参数化,根据马尔科夫决策过程可以将策略表示为π?(s|a),这样来强化学习的意思就是找到最好的参数?使得策略最优,从而求得的回报期望也就越大。这样的话,策略搜索就变成了一个优化的问题,而策略梯度就是解决优化问题的一种方法,也就是最速下降法。根据上面讲的策略梯度可以表示为▽π?(s|a),而回报期望就能够表示为:  其中ɑ表示步长,对于步长的理解的话,简单举个例子:对于c++的一段代码for(i=0;i<10;i++),这个中的i++就表示步长为1,从i=0时逐渐增长。步长影响着参数?,并且能够加快优化的速度。但是步长的更新在这里是不能稳定的控制,不过John Schulman提出了一种算法TRPO[7],它能够解决这个问题,在第三章节中本文会介绍这种算法。

  第2.3节 本章小结

  本章主要简单介绍了强化学习方法,了解什么是强化学习,之后又介绍了强化学习所需要的最常用的一种框架,马尔科夫决策过程,为后续将策略梯度的方法的理解提供基础理论依据,方便理解介绍的策略梯度方法,策略梯度的强化学习方法本章主要是介绍了什么是策略梯度的方法,即最速下降法,用于求解策略搜索方法(优化问题)。

  第3章 几种常见的基于策略梯度的强化学习方法

  第3.1节 信赖域策略优化的强化学习方法

  TRPO的英文单词为Trust Region Policy Optimization,中文可以翻译成信赖域策略优化,它是由John Schulman提出的。说到TRPO算法,首先要讲一下策略梯度的缺点,上一章我们大概介绍了策略梯度,知道了策略梯度的参数更新方程式为:

  ?new=?old + ɑ▽π?(s|a)

  策略梯度算法的缺点就在与更新步长ɑ,即步长选取的问题。如果步长选取太长的话,策略就容易发散;如果太短的话,收敛的速度就很慢。这时需要合适的步长,它是指策略更新后,所得到的回报函数的值不能更差,就是说新的策略应使得新的回报函数的指单调增或者说单调不减,而TRPO算法就是解决这个问题。

  它的含义是在状态为s时,动作a符合参数?的概率分布。而确定性策略的公式表示为:ɑ=μ?(s),因为策略是确定的,所以在状态为s时,动作是唯一的、确定的。比较一下随机策略与确定性策略的优缺点,随机策略的优点是可以将探索和改善集中在一起放在同一个策略中,而确定性策略的优点是它需要采样的数据不多,算法效率比随机策略要高很多。因为在求期望时,需要对状态和动作分布求积分,这就要求对状态空间和动作空间进行大量的数据采样,这样所得的数据进行求平均值才能得到近似的期望。而确定性策略的动作是确定的,所以策略梯度不需要对动作空间进行数据的采样积分,相比于随机策略,确定性策略的效率要高很多。

  但是由于确定性策略,对于状态S和策略参数?已知时,那么所对应的动作也是固定的,也就是说如果采用的是确定性策略,它所产生的轨迹永远是固定的,不会改变。而我们所说的强化学习是通过Agent与环境的不断交互来学习,做出相对于比较好的动作,所以DDPG采用了异策略的学习方法,异策略(off-policy)就是行动策略和评估策略不是用的同一个策略而是分开的。其中动作采用的是随机策略而评估采用的是确定性策略,对于整个确定性策略,我们采用的是Actor-Critic算法,我们可以称为行动者-评论家算法。行动者-评论家算法就是利用行动者(指的是行动策略)来调整参数,而评论家(评估策略)采用逼近函数的方法,使得到的回报期望最大[9]。

  上面介绍的异策略行动者-评论家方法就是确定性策略梯度强化学习方法,简称DPG,而DDPG最前面的D为deep,字面翻译就是深度,这是指的是采用深度神经网络,利用它来逼近动作值函数和评估策略。DDPG采用了经验回放和独立的目标网络,经验回放的方法是智能体(Agent)在强化学习的过程中将数据储存在一个数据库中,然后再通过随机采样的手段来训练神经网络,因为神经网络训练的数据是独立的,而强化学习要求的数据之间是存在一定的关联性,所以能在一定程度上保证神经网络的稳定性。而独立的目标网络是对待逼近的参数与行动策略的参数进行单独的更新。

  第3.3节 异步优势行动者-评论家强化学习方法

  A3C的英文全称为:Asynchronous Methods for Deep Reinforcement Learning[10],中文可以翻译为异步优势行动者-评论家强化学习方法。利用神经网络的方法时时常不稳定,不能保证它的稳定性,上节介绍的DDPG算法也同样运用了神经网络,但是它是运用了经验回访的技术来消除这种不稳定性,然而经验回放技术要考虑到两个问题:第一个问题是智能体(Agent)与环境的每次交互都需要耗费很多的内存和计算力,这大大的影响到了算法的效率;第二个问题是如果用了经验回放技术,那么算法的策略应该采用异策略(off-policy)方法来进行学习,但是根据DDPG算法的介绍,异策略是根据旧的策略所产生的数据进行更新;此外DRL(深度强化学习)的训练都依赖与计算机的图形处理器(如GPU),所以异步优势行动者-评论家强化学习方法采用了异步优势的方法,即异步同时执行多个智能体(Agent),通过这些智能体(Agent)所经历的不同状态来消除训练过程中产生的状态转移样本之间的关联性,而且这种方法只需要一个标准的多核CPU就可以实现算法,这就使得使用这种算法可以节省大量的时间和资源,并且也大大地提升了效率。而A3C算法也是用了Actor-Critic算法利用行动者(指的是行动策略)来调整参数,而评论家(评估策略)采用逼近函数的方法,使得到的回报期望最大。

  第3.4节 本章小结

  本章主要简单介绍三种基于策略梯度的强化学习方法,他们分别是TRPO、DDPG、A3C这三种方法,其中TRPO是无模型的策略搜索方法并且它的策略是随机的,这个算法主要是在策略梯度的基础上弥补了由于步长而导致的算法缺陷,它提供的新策略能够保证步长能够单调不减,这就能保证算法得到的回报函数的值不会越来越差导致后面的数据崩溃;而DDPG算法也是无模型的策略搜索方法,但是它采用的策略是异策略(off-policy),就是说动作部分采用了随机策略,这样就能够保证强化学习说的动作与环境能够交互,毕竟如果是确定性策略,那么动作的值是固定的,这就不能体现强化学习交互的方面,所以动作部分采用随机策略,而回报部分采用的是确定性策略,这个确定性策略的学习框架采用的是Actor-Critic算法,利用函数逼近的方法计算估计值函数,这样利用深度神经网络(经验回放和独立的目标网络)进行动作函数和回报函数值的逼近实现算法;最后介绍的A3C算法采用的是异步优势策略方法,它不同于异策略(off-policy),这里指的是异步执行多个智能体(Agent),根据每个智能体(Agent)所经历的不同状态,消除它们在训练过程中产生的状态转移样本之间的关联性。了解了这些算法的基本内容之后,我们下章节通过pycharm完成实验来比较它们的性能。

  第4章 几种策略梯度方法性能比较

  这章主要是通过实验来比较这三种基于策略梯度的强化学习方法的性能,本文是想通过比较算法训练的时间来比较他们的性能,设置相同的epochs(训练次数)这里设置500,看最后强化学习运行完的整个训练所需的时间,通过比较最后得到的时间来比较它们的性能。

  第4.4节 本章小结

  从上面的实验结果可以看出,在相同的条件下,A3C的算法效率明显比其他两种要高,这里可以得出,采用异步优势的方法,算法效率明显比传统的策略梯度算法效率要好;通过比较TRPO和DDPG的实验结果可以看出,DDPG的效率比TRPO的效率要高,可以看出因为确定性策略采样收集数据比随机策略要少,因此在算法效率上要提高好多。

  第5章 总 结

  本文主要介绍基于策略梯度的强化学习方法,首先主要说明了一下强化学习的背景以及策略梯度的一些简单介绍,之后介绍了强化学习基本原理,简单的说就是智能体为了达到某种目标,而强化学习就是在这个过程中提供最佳的路径能够达到这个目标。而强化学习方法的具体表现采用了马尔科夫决策过程这个框架,它描述的是一组状态序列,下一个状态受当前状态的影响,但是与之前状态没有关系,根据动作和回报函数,通过求目标期望的方法来体现强化学习。有了这些强化学习的理解基础后,再对策略梯度进行介绍,策略梯度就是将策略参数化,通过梯度的求解方式求得最优策略从而使得目标期望最大。最后介绍了几种策略梯度的算法,TRPO主要是对策略梯度进行了一些改进,因为策略梯度不能保证影响参数的步长能够稳定更新,所以这个算法主要是控制步长在安全区域来保证策略单调不减,从而使得期望更好;DDPG算法采用的是深度神经网络,采用异策略AC的算法,异策略就是行动策略是随机策略而评估是确定性策略;而A3C是采用异步优势AC算法,异步执行多个Agent,通过不同状态来消除状态转移样本之间的关联性。最后通过实验来比较这三个算法的性能。

  由于本人能力和研究时间有限,并且本人是刚刚接触强化学习方面和python方面的知识,所以对于这些算法的研究比较浅,上文介绍的算法内容也是自己一些浅薄的理解。但是在学习的过程中,也让我对强化学习有了进一步的了解,让我感受到强化学习的魅力与强大,不管是策略梯度算法还是一些其他算法,都让我对强化学习未来的发展有了更加强大的信心。

毕业论文:http://www.3lunwen.com/jsj/dzjs/5398.html

上一篇:基于布洛芬阴离子的离子交换膜的可控抗菌性能研究

下一篇:没有了

     移动版:基于策略梯度的强化学习方法研究

本文标签:
最新论文