深度强化学习及智能路径规划应用综述
2022-02-03程浩鹏杨高奇晏为民王慧婷
程浩鹏,朱 涵,杨高奇,晏为民,王慧婷
(1.中国民用航空飞行学院计算机学院,广汉 618300;2.中国民用航空飞行学院理学院,广汉 618300)
0 引言
机器人技术自上世纪六十年代起就有学者开始了相关的研究,并随着自动控制技术与传感器技术的进步,电子工业的逐步发展,经过近半个世纪的不断发展,各类机器人几乎应用到了各行各业[1]。在进入21 世纪以来,机器人技术热度不减,并被工业界认为是可以引领未来产业发展的重要技术[2]。
机器人的使用领域从传统工业制造领域不断扩展,现已应用于医疗服务、教育服务、地质地理勘探、生物工程、抢险救灾等不同领域[3]。按照作业空间来对机器人做划分,可分类为:陆地移动机器人、水下作业机器人、无人飞机、外星探索机器人等[4]。目前需要突破的机器人关键技术包括:环境感知、导航和运动规划、类人操作、人机交互、行为安全等[5]。本文选取小型移动机器人在路径规划上的应用作为典型研究对象进行分析。
路径规划作为机器人关键技术之一,其原型可视为早在上世纪60 年代就被提出的旅行商问题(Traveling Salesman Problem,TSP)[6],旅行商问题后被证明是组合优化中的一个NP-难问题[7]。由旅行商问题可延伸到物流业中的车辆路径规划问题(Vehicle Routing Problem,VRP),最早是由Dantzig 等[8]提出的卡车调度问题。经典的车辆路径规划问题就是在一定约束条件下,寻找车辆从起点到终点状态的无碰撞最优或次优路径[9]。此约束条件由车辆本身内在约束的运动学和车辆动力学模型约束[10],车辆所处环境的约束[11]等。移动机器人路径规划问题也可作为此类问题之一,是移动机器人导航和运动规划研究内容的重要组成部分。
路径规划问题的求解,有传统路径规划算法和智能仿生学路径规划算法,以及尝试将深度学习与强化学习应用到路径规划问题的求解等方法。可从全局[12]、局部或是全局静态与局部动态结合[13]的概念来对路径规划算法加以分类。除了路径规划问题求解,在小型移动机器人上的路径规划问题通常还包含环境建图[14]这个子问题。此问题使用的建图方式有可视图法[15]、Voronoi 图方法[16]、栅格图法、SLAM 建图等方法。
随着人工智能技术的不断发展,让机器来学习,并像人类一样思考是广大人工智能领域研究者的目标。机器学习作为实现人工智能技术的一部分,经过了半个多世纪的研究后也有了很多分支,在模型上,有神经网络和N个网络叠加的深度神经网络等;学习方法上,包括监督学习、无监督学习以及强化学习等方式。强化学习相比于其他需要更多先验知识来进行训练的学习方式,其具有直接与环境进行交互,通过环境的反馈信息来优化决策的特点。强化学习在游戏、机器人、推荐系统、广告以及金融等各领域都有相关应用。但是最令人印象深刻的一次应用即是2016年AlphaGo[17-18]在围棋上战胜人类顶尖棋手,展示了超凡的学习和决策能力,其原理是将深度神经网络(Deep Neural Network,DNN)与强化学习结合。
图1展示了强化学习与人工智能各个部分之间的关系。
图1 强化学习与人工智能的关系
强化学习与DNN 结合的算法为机器人的路径决策提供了新的思路。本文针对小型移动机器人这一具体机器人种类,梳理深度强化学习的研究进展以及其中关于此类问题的解决方案。本文将从基于值函数的深度强化学习和基于策略的深度强化学习两个方面做介绍。
1 深度强化学习
强化学习方法是在1954 年由Minsky[19]提出,但当时的研究仅仅限于有限的探索阶段,并没有引起太多的重视。强化学习是通过智能体/环境接口来实现学习的。其要素包括策略、奖励函数、值函数和模型,强化学习的一种建模方法是Markov 决策过程[20]。强化学习问题的归类可以从环境映射和学习方式两方面分析,如图2所示。
具体算法类型有值函数与策略函数。图3简要说明了两者方法所产生的算法发展脉络,其中包含了对两者结合使用的算法。
2 基于值函数的深度强化学习
2.1 值函数强化学习算法
值函数更新的强化学习关键原理在于状态动作价值函数Q(St,At)的设计:
通过使用此公式计算每个状态的奖励值,评估智能体在状态St下所能获得的长期价值,并对价值求期望,以此指导智能体选择期望值最大的动作来帮助智能体决策。
深度强化学习自2013 年被Silver 及其团队提出深度Q 网络[21]之后,便获得研究者们的广泛关注,并在此基础上对其进行各种改进。其团队提出的深度Q 网络是基于多层卷积神经网络,并与值函数学习中的经典算法Q-learning算法结合,使用深度神经网络(Deep Neural Net⁃works,DNN)来逼近值函数。在Atari 游戏平台的良好表现证明此方法的良好适用性,但是DQN 也存在过估计、局部最优与全局最优的平衡、学习效率低、算法稳定性不高、智能体探索环境效率差等问题。
过估计问题不仅仅是在DQN 中产生的,而是在其基础算法Q-learning 中已经产生,在Q-learning 中,更新Q值是通过价值函数来进行的,在每次选择Q值时,都会选择最大价值,然后再对价值求期望。正因如此,对于估计Q值的更新,势必会比真实值大,就出现了过估计的问题,因而影响最终结果。Double DQN[22]是DQN 算法的改进版本,证明了在DQN 的某一些实验平台上存在过估计的问题,通过随机分配经验池中的两套已有参数来更新值函数,对值函数更新两次产生两组权重,从而降低过估计的影响。多个对照实验都表明Double DQN 获得了比DQN 更高的分数。除了过估计问题导致的动作选择差异,算法的不稳定性也会对性能造成影响。Ansche 等[23]提出了Averaged-DQN,对DQN 进行了扩展,基于之前学习的Q值估计进行平均,通过减少目标值中的近似误差方差,从而具有更稳定的训练过程并提高性能,显著提高了稳定性和性能。Dong 等[24]提出了动态目标双深度网络(Dynamic Target Double Deep Q Network,DTDDQN),融合了Averaged-DQN 对Double DQN 进行改进,充分利用先验知识对网络进行训练,使得网络输出更接近真实值。
针对DQN 算法采样效率不高的问题,Nair等[25]展示了第一个用于深度强化学习的大规模分布式架构Gorila架构,该架构使用分布式重放内存和分布式神经网络并行地行动和学习。利用大规模并行性,Gorila DQN 在49 款游戏中的41 款游戏中显著优于单DQN。上述方式通过多机器同时训练达到训练效率的提升,在采样方式上进行改进同样也可以提高算法的性能,Google DeepMind 团队的Horgan 等[26]为深度强化学习中的优先回放机制设计了一个分布式框架。这种架构将行为与学习解耦,依赖于优先经验回放,只关注生成的最重要的数据。在Atari 平台上,在其中的近50 种游戏上得到了比单纯使用DQN 平均提高了80%,对单一游戏场景的最大提升可达106%。在强化学习采样过程中,样本所能提供的信息量比较少,这也是导致采样效率不高的原因之一。Bellemare 等[27]提出了价值分布的理论,构建模型输出对价值的分布估计,将传统贝尔曼方程去掉了期望值,引入随机变量Zπ的完全分布,将其称为价值分布。并提出了一种基于分布贝尔曼最优算子的算法,并且在算法中使用51 个原子,生成了分类DQN(Categorical DQN)算法,结果显示C51 的训练性能优于完全训练的DQN。在5000 万帧内,C51在57 场比赛中的45 场比赛中的表现都优于经过全面训练的DQN。
为了提升学习的效率,决斗网络架构DQN(Dueling DQN)[28]使用改进的网络架构可以获得更高的平均奖励,提高稳定性,能够有效地学习状态值函数。随着决斗架构中Q 值的每次更新,价值流V 都会更新,这样为V 分配了更多的资源,因此可以更好地逼近状态值。在实验中,当动作数量很大时,决斗架构相对于单流Q 网络的优势会增加。由于DQN 需要大量的训练才能达到理想的性能要求,在学习时的表现很差,Todd Hester 的团队[29]提出了Deep Qlearning from Demonstrations(DQfD),引入了监督学习的部分思想,使用少量的先验数据来加速强化学习的过程,使用预训练的过程来对学习进行加速,结果表明DQfD 比Prioritized Duel⁃ing Double Deep Q-Networks(PDD DQN)等三种算法的初始性能都更好,在42 场游戏环节中的41 场的前一百万步中得分更高。Deep Mind 团队[30]在分析了DQN 的各种改进版本之后,将各版本算法的优劣进行比较,并提出了集合优点后的算法Rainbow。同样是在Atari 游戏中进行测试,结果显示算法更能应对复杂环境,相比于其他算法能有更好的表现。
2.2 值函数强化学习算法在智能路径规划上的应用
基于值函数深度强化学习进行移动机器人的自动决策和路径规划,是强化学习在实际应用当中的探索之一,很多研究者在上述提出的算法当中进行了改进以及实验。
Chen 等[31]将强化学习的经典算法Qlearning 算法应用在智能船舶的路径决策上,船舶在模拟航道中使用Nomoto 模型进行建模。将距离、障碍物和禁区规则化为奖励或惩罚,用于判断船舶的性能或操纵决策,经过足够多的训练轮次后,产生令人信服的路径和操纵策略。该方法在自学习和持续优化方面更有效,因此更接近人类操纵的结果。Lei 等[32]使用双Q 网络(DDQN)应用于未知环境的动态路径规划。在不同的训练阶段,动态调整起始位置和目标位置,将卷积神经网络(CNN)用于泛化环境状态。结果表明,经过不同动态环境的训练和新环境的测试,智能体能够在未知动态环境下成功到达局部目标位置。Yan 等[33]提出了一种基于全局态势信息的无人机路径规划深度强化学习方法,以STAGE Scenario 软件作为仿真环境,采用了决斗双深度Q 网络(D3QN)算法,证明了所提出的方法在静态和动态任务设置下的性能。Gao等[34]提出将DRL 算法Twin Delayed Deep Deter⁃ministic Policy gradients(TD3)与传统的全局路径规划算法Probabilistic Roadmap(PRM)相结合,作为一种新颖的路径规划器(PRM+TD3)。实验结果表明,增量训练模式可以显著提高开发效率。而且,PRM+TD3 路径规划器可以有效提高模型的泛化能力。
3 基于策略的深度强化学习
3.1 策略更新的强化学习算法
强化学习的另一个状态更新方式是基于策略的更新,和基于值函数的更新方式不同,基于策略的更新方式是根据状态St输出的行动概率,由行动概率来计算状态的价值[35]。在基于策略处理的深度强化学习中,策略梯度的使用非常广泛。其参数更新方式如下:
通过使用DNN 来逼近策略的方法就是基于策略的更新方式。值函数由于其需要对动作进行采样,就只能处理离散动作的情况,而基于策略的算法则是直接利用整体策略对动作进行选择,因而可以用于处理连续动作空间的情况。现在最先进的深度强化学习研究都是以值函数与策略更新方式二者结合方式进行,将两种更新方式中的优良思想融合,也能获得很好的效果。基于策略的深度强化学习可以从基于深度确定性策略梯度[36](Deterministic Policy Gradi⁃ent,DPG),行动者-评论家[37](Actor-Critic,AC)以及策略优化[38](Policy Optimization,PO)三个角度来进行改进。
3.1.1 AC框架和确定性策略梯度方法
单独使用价值更新的方式在AC 框架中被称为Critic-only 方法,完全依赖于价值函数近似,旨在学习贝尔曼方程的近似解,然后有望制定一个接近最优的策略,但在结果策略的接近最优性方面缺乏可靠的保证。而单独使用基于策略更新的方式在AC 框架中被称为Actor-only 方法,存在的问题主要是学习效率低下、环境探索度不高[39]。结合两者的优点就提出了Actor-Critic 算法,训练时可以交替更新参数,一定程度上提高了算法的性能。但是高样本复杂性和对超参数的脆弱性仍然未能解决。Haarnoja等[40]推出了基于最大熵RL 框架的软策略Actor-Critic 算法(Soft Actor-Critic,SAC)。能够提供样本高效学习,同时保留熵最大化和稳定性的优势,使用软策略迭代收敛到最优策略。Za⁃havy 等[41]提出自调整AC 算法(Self-Tuning Actor-Critic,STAC)。通过元梯度下降自动在线调整超参数,并使用一种新的V-trace 算子来改进离策略学习。当应用于Arcade 学习环境时,STAC 中将人类标准化分数的中位数从243%提高到364%。Flet-Berliac 等[42]提出了第三个角色:对手。并形成了对抗性引导下的AC 算法(Adversarially Guided Actor-Critic,AGAC),使行动者行为在奖励极为罕见的任务中具有创新性。实验分析表明,由此产生的对抗性引AGAC算法会导致更详尽的探索。在异步学习方式上,Babaeizadeh 等[43]使用异步优化方式称为Asynchronous Advantage Actor-Critic(A3C)的新型轻量级并行方法,在许多游戏任务上实现了最先进的结果。当使用适当的学习率时,A3C从原始屏幕输入中学习玩Atari 游戏比以前的方法更快、更有效。
确定性策略梯度算法是由Silver 等[44]在AC架构上提出的,可以从探索性行为策略中学习确定性目标策略。基本思想是通过参数概率分布来表示策略。根据参数向量θ随机选择状态s中的动作a。策略梯度算法通常通过对该随机策略进行采样并朝着更大累积奖励的方向调整策略参数来进行。深度确定性策略梯度算法(De⁃terministic Policy Gradient,DDPG)[45]是由确定性策略梯度算法演变而来的,适合于连续控制的场景,在AC 架构基础上,同时又结合了DQN,使之具有深度的特点。此算法只需要一个简单的actor-critic 架构和学习算法,几乎没有“移动部件”,使其易于实现和扩展到更困难的问题和更大的网络。
和其他DRL 方法一样,高估偏差和大量的训练时间是制约DDPG 算法应用的主要瓶颈。为了克服Actor-Critic 中的高估现象,双延迟深度确定性(Twin Delayed DDPG,TD3)策略梯度算法[46]应用了一对critic 函数进行值估计,并在这两个估计之间取最小值进行目标更新。这种最小化操作可以有效缓解连续控制设置中的高估现象,但可能会在每次更新迭代时造成低估偏差,对此有一个简单的解决方案,即批量约束深度Q 学习(BCQ)[47],用于限制TD3 中的低估现象。为了平衡高估和低估的现象,Wu等[48]提出了三元平均深度确定性策略梯度算法(Triplet-Average Deep Deterministic Policy Gradi⁃ent,TADDPG)。算法采用三元批评者的加权动作值和平均Q 值方法来进行稳健的目标更新,此方法在OpenAI gym 的几个控制任务上实现了比原始方法更好的性能。对于深度确定性策略梯度算法也有很多其他的改进,Dirichlet DDPG(D3PG)是Ale 等[49]提出的基于DDPG 的算法,这样就能够解决连续动作空间并满足移动边缘计算(Mobile Edge Computing,MEC)任务划分的约束。为了满足动作空间约束,使用了Dirich⁃let distribution(狄利克雷分布)来捕获受限动作。另一种D3PG(Decomposed Deep Deterministic Policy Gradient,分解的深度确定性策略梯度)的算法是由Dong等[50]提出的,是DDPG的多代理扩展,将全局评论家分解为局部评论家的加权和,提出了一种在学习过程中学习权重的方法,以捕获智能体之间不同级别的依赖关系,另一个优点是它能够提供对最终学习策略的明确解释以及学习机器人关节之间的潜在依赖关系。关于DDPG改进的另一个方案是分布式深度确定性策略梯度算法[51](Distributed Distributional Deep Determinis⁃tic Policy Gradient,D4PG)。使用ApeX 框架[52]大大节省了困难控制任务的挂钟(wall-clock)时间。算法实现了分布式评论家更新、分布式并行参与者的使用、N 步返回(N-step returns)和优先经验回放。该算法在各种控制任务硬操作和运动任务(Hard Manipulation and Locomotion Tasks)中获得了最先进的性能。
3.1.2 策略优化方法
在强化学习策略优化方法中,更新过程中适当的步长对训练效率有着很大的影响。信任域方法是一类流行的算法,其中包括信任区域策略优化(TRPO)和近端策略优化(PPO)。在这些方法中,需要迭代地最小化两项内容:目标函数的线性化以及限制两个连续更新到彼此互相接近的临近项,例如Mirror Descent(MD)[53]。基于此,Schulman 等[54]提出了信赖域策略优化(Trust Region Policy Optimization,TRPO)算法,分析了优化随机控制策略的信任域方法,该算法使用KL 散度惩罚反复优化策略的预期成本的局部近似值。实验证明,其算法在神经网络上的优化是非常有效的,并且具有可扩展性,此算法可以让由各种关节组成的类人智能体学习跳跃、行动等复杂策略。在使用策略优化方法进行模型优化时,倾向于利用没有足够数据来训练模型的区域,导致训练不稳定,这也被称为模型偏差。Kurutach 等[55]分析了基于vanilla模型的强化学习方法的行为,为了解决上述问题,使用模型集合来保持模型的不确定性并规范学习过程,并提出了模型集成信任域策略优化(Model-Ensemble Trust-Region Policy Optimi⁃zation,ME-TRPO)算法,与连续控制基准任务的无模型深度RL 方法相比,显著降低了样本复杂度。Kamyar 等[56]提出了广义信任区域策略优化(Generalized Trust Region Policy Optimization,GTRPO),将模型假设放宽到回合设置和具有无记忆策略的部分可观察模型。算法上,使用Q函数的变体,使得计算效率很高。GTRPO 中的策略更新提高了预期的累积回报,并且GTRPO保证能够收敛。Li 等[57]将信任区域策略优化(TRPO)扩展到多智能体强化学习(MARL)问题。转化为多智能体案例的分布式共识优化问题。通过对共识优化模型进行一系列近似,提出了一种去中心化的MARL 算法,称之为多智能体TRPO(MATRPO)算法,可以基于局部观测和个体奖励来优化分布式策略。实验证明了它在复杂的MARL任务上的强大性能。
信任域方法的另一种策略梯度方法是近端策略优化类型方法。基础算法由Schulman 等[58]提出,使用随机梯度上升优化“代理”目标函数。提出了一种新的目标函数,可实现小批量更新的多个训练次数,称之为邻近策略优化(Proximal Policy Optimization,PPO)。此算法具有信任区域策略优化(TRPO)的一些优点,但它们实现起来更简单、更通用,并且具有更好的样本复杂度(根据经验)。在模拟机器人运动和Atari 游戏的实验上,表明PPO 优于其他在线策略梯度方法,并且总体上在样本复杂性、简单性和挂钟时间之间取得了良好的平衡。Zou等[59]提出了一种适度的强化学习策略更新方法,基于最大熵框架建立了分离的信任区域并进行优化,称之为策略均值和方差分离信任方法(Sepa⁃rated Trust Region for policy Mean and Variance,STRMV),是对邻近策略优化(PPO)的扩展,但它对策略更新更温和,对探索更活跃。实验表明,STRMV 优于以前最先进的on-policy 方法,不仅获得了更高的奖励,而且提高了样本效率。针对近端策略优化(PPO)容易出现探索不足的风险,导致训练失败或陷入糟糕的局部最优。Wang 等[60]提出了信任区域引导PPO(Trust Region-Guided PPO,TRGPPO),它可以自适应地调整信任区域内的裁剪范围。方法不仅提高了信任区域内的探索能力,而且具有更好的性能界限。表1展示了各算法的总结。
表1 深度强化学习模型改进总结
续表1
3.2 基于策略更新方式在智能路径规划中的应用
Lakshmanan 等[61]提出了一个完整的覆盖路径规划(CCPP)模型,基于Tetromino 的可重构机器人平台hTetro,使用经验回放的Actor Critic(ACER)强化学习算法训练具有长短期记忆(LSTM)层的卷积神经网络(CNN)。该模型还与基于旅行商问题(TSP)的遗传算法(GA)和蚁群优化(ACO)方案进行了比较。所提出的方案生成了一条成本较低的路径,需要较少的时间来生成。该模型也非常健壮,可以在任何预训练的环境中生成路径。
近年来,对于多智能体的协同控制以及多智能体强化学习的研究也是强化学习研究的热点之一,Qie 等[62]针对无人机协同控制系统中多无人机目标分配与路径规划(MUTAPP)问题,提出了一种基于多智能体深度确定性策略梯度(MADDPG)算法,被称为同步目标分配和路径规划(STAPP),由于系统中使用的神经网络简单,因此可以保证实时性能。Sunehag 等[63]、Iqbal等[64]从多机器人协作控制方面进行了研究,都取得了比较好的效果。
4 结语
本文主要关注深度强化学习的两种基本类型,以及两者结合的算法的发展历程。关注移动机器人路径规划这一场景,虽然现在深度强化学习的模型较为丰富,各种改进方法层出不穷,但是其效果主要是在视频游戏平台、机械臂仿真等仿真环境,在实际应用上,还是未能完全替代已经成熟的路径规划算法。这主要是因为深度强化学习的特点,需要大量的样本来进行学习,而实际环境空间过大,也会有无法快速探索的问题,这就在效率方面对算法应用提出了要求。
未来在深度强化学习算法落地上还是有不小的挑战,需要在环境、智能体、状态、动作空间、深度网络结构、迭代方式上进行改进,并且在算法的选择上还需要慎重,每种算法的特点各不相同,适用领域也有区别,在算法落地方面也需要进行不同程度的改进,以适应场景。未来对DRL 的研究也可以从多学科合作开展,在移动机器人传感器、运动学与自动控制理论上的分析研究等也可以减轻DRL 应用上的困难,让DRL向着更智能、更实用的方向发展。