APP下载

基于DDPG的飞行器智能避障仿真应用研究

2021-07-02张仕充时宏伟

现代计算机 2021年13期
关键词:飞行器状态算法

张仕充,时宏伟

(四川大学计算机学院,成都610065)

0 引言

飞行器的智能避障指的是在存在障碍物的三维空间环境中,从出发点自主避开多个障碍物体顺利达到目标位置的过程。飞行器具有智能避障的能力在无人机导航、农业无人机作业、无人机救援、民航二次雷达监视以及战场态势感知决策等场景下具有十分重要的应用意义。

目前,在类似的避障路径规划问题中,已经有多种解决算法,例如遗传算法[1]、蚁群算法[2]等启发式算法。但是这些算法存在观察维度低、局部收敛、动作选择空间离散化以及计算量太大等问题,很难运用在飞行器的智能避障场景下。而强化学习[3]作为机器学习的一个热门研究领域,其基本思想是通过智能体与环境进行交互,从环境中获取一定的奖赏值,通过最大化地累计奖赏值并进行学习,从而找到物体到达目标地点的最优策略。其基本过程如图1所示。飞行器的态势处于一个连续变化空间中,并且其在三维空间中进行动作选择的空间也是一个连续空间。传统的基于值函数的Q-learning[4]和SARSA的强化学习方法解决连续变化空间的问题是通过将状态动作值离散映射到一个Q表中,而连续动作空间和状态空间使用Q表进行存取是一种非常耗内存并且低效的一种方式。为了改进使用Q表的缺点,相关研究提出了Deep Q Network(DQN)算法[5],该算法使用神经网络来对状态值进行拟合,代替Q表,提高了状态动作空间映射效率且大大减少存储占用空间。与前文提到的启发式算法类似,DQN算法虽然效率更高,但是在面对高维观察空间里,同样只能处理离散和低维的动作空间。在飞行器避障等需要连续动作控制的任务下,确定性策略梯度(De⁃terministic Policy Gradient,DPG)能够很好地解决连续动作输出的场景[6],本文结合DQN算法和DPG算法,使用基于演员-评论家算法[7](actor-critic)的深度确定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法[8]应用于飞行器自主避障场景并对其进行仿真实验。结果表明该算法能够较好地学习连续动作空间的策略,进而为飞行器智能避障等连续动作控制场景提供一定的指导性意义。

图1 强化学习基本过程

1 算法原理

在强化学习过程中,智能体和环境在各个时刻进行交互,在每个时刻t,智能体会感知到环境观测xt,执行一个动作at以及环境奖励rt,环境被完全观察到时,st=xt。

一个智能体的行为被定义为策略π,该策略会把状态映射到动作空间的一个概率分布上π:S→P(A)。在强化学习概念中,算法模型使用状态空间S,动作空间A=RN,初始的状态分布p(s1),状态转移概率p(st+1|st,at)以及奖励函数r(st,at)来进行一个马尔可夫决策过程建模。将行为策略π应用于马尔可夫过程来定义一个马尔可夫链,用Eπ表示该马尔科夫链的期望值。状态的总回报定义为:

学习过程的回报取决于策略π。强化学习的目标是学习一种策略,该策略可以使初始状态Eπ[R1]的期望奖励最大化。

智能体所获得的累积回报用状态动作值函数Qπ(公式2)表示。动作状态值函数表示在当前状态s下执行动作a,并且一直遵循策略π到回合结束,在整个过程中智能体所获得的累积回报。

传统的强化学习方法中使用Bellman迭代方程求解动作状态值函数:

如果目标策略是确定的,用函数μ:S←A表示,进一步将上述方程转化为:

期望仅仅取决于环境,这就意味着能够通过不同行为策略μ'产生的状态值转换样本来学习Qμ。

Q-learning作为一个常用的离线算法[4],它使用贪婪策略(greedy policy):μ(s)=arg maxaQ(s,a),使用由θQ参数化的函数逼近器,并通过最小化损耗来对其进行优化:

如果直接将Q-learning用于连续的动作空间是不现实的,因为在连续的动作空间找到贪婪策略需要在每一个时间步进行优化,对于大型的、无限的动作空间,优化太慢且实用性不高。

确定性策略梯度算法(Deterministic Policy Gradi⁃ent,DPG)维护一个参数化动作函数μ(s|θμ),该函数通过将状态确定性地映射到特定动作来指定当前策略[6]。在DPG的基础上,结合使用actor-critic方法,其中,critic使用Bellman方程学习,actor网络参数则通过将链式规则应用于公式(4)来更新:

引入非线性函数逼近器(神经网络)的缺点是收敛性不能得到保证,同时,这样的逼近器为学习和生成大规模的状态空间是有必要的。DDPG允许神经网络来在线学习大规模的状态和动作空间。将神经网络用于强化学习的一个挑战是大多数优化算法都假设样本是独立同分布(Independently and Identically Distributed,IID)的,然而当训练样本来自于环境中的连续过程时,不能保证样本具有独立同分布的性质。

DDPG通过使用经验重放机制(replay buffer)来解决这些问题。经验池是一个固定大小且有限的内存R。根据探索策略(exploration policy),状态转换样本采样于环境和经验池。当经验池填满的时候将会抛弃掉最早存入的样本。DDPG是一种离线(off-policy)算法,允许算法能够从一系列不相关状态转换样本中学习。

在很多环境中,算法直接用神经网络实现Q-learn⁃ing被证明是不稳定的[9]。因为正在更新的网络Q(s,a|θQ)也被用于计算目标值yt(见公式6),Q的更新容易不收敛。DDPG算法的解决方式是修改actor-critic和使用软更新(soft target updates)。DDPG算法模型分别创建了一个actor和critic网络的副本(Q'(s,a|θQ')和μ'(s|θμ'))。用副本网络计算目标值,这些目标网络的权重参数通过跟踪学习网络延迟更新:

θ'←τθ+(1 -τ)θ',τ≪1。通过这种方式,目标值的改变速度被限制得较慢,由此提高了学习稳定性,使学习动作值函数的相对不稳定的问题更接近于监督学习。DDPG算法的完整描述[8]。

DDPG算法描述:

2 模拟仿真实验

2.1 状态空间设计

状态空间(state observation)在强化学习算法中主要是对现实状态环境进行描述。在飞行器避障过程中,基本的状态则包括飞行器的经纬度坐标和高度(lng,lat,hei ght)以及速度(velocity)。实验中,速度是矢量,此处可以分解成三维坐标上的分速度:(velocitylng,velocity lat,velocity height)。

在仿真实验中,将经纬度坐标和高度等信息采用三维坐标系表示,将可变环境观测描述为:

state=[lng,lat,height,velocitylng,velocity lat,velocity height]

以上的观测为可变环境状态,除此之外,还有障碍物的属性,即高度和经纬度坐标,对于障碍物信息的状态观测信息,属于不可变的环境信息。在实验中,障碍物信息硬编码在交互环境中,在交互过程中,根据飞行器的状态给与奖励或惩罚。

2.2 决策空间设计

决策空间(action space)指的是智能体做能够采取的动作空间。在飞行器的避障过程中,主要是飞行器的状态改变。因此决策行为就是改变飞行器的运动速度,结合状态空间的做法,在智能体做决策时,主要改变的三维立体坐标分速度的变化量,通过这个变化量使得环境的状态(飞行器的实时状态)被改变。单步动作表示为:

2.3 环境交互规则

环境是智能体交互的空间,智能体通过与环境交互来得到奖赏值,从而影响智能体的动作。在环境中,主要的部分是定义飞行器如何获得奖惩的方式以及初始化环境状态。通过定义和编写step函数来实现智能体的每一步动作来获得奖惩值并且改变环境的状态。在实现中,将动作传入后,计算新的环境状态,根据该环境状态来计算奖励值的大小:如果智能体已经达到目标位置,则给与较大奖励值,回合结束;如果智能进去障碍物区域,则给予较大的惩罚值(负的奖励值),回合结束。除了以上两种情况,为了让每一步智能体都有所奖励,交互环境根据智能体位置和目标点的相对距离来进行奖励值的计算。假设奖励值是越大越好,交互环境根据飞行器位置与目标点的相对距离的相反数给奖励值,流程如图2所示。

图2 环境交互规则流程

环境状态的更新方法如公式(8)、公式(9),飞行器新的速度等于原速度与速度变化量相加。新的坐标等于原坐标与单位时间速度相加。

在飞行器的每一步运行中所得的奖励值计算方法如式(10)-式(11):

O表示出发点位置,L表示飞行器当前位置,G表示目标点。负值奖励表示距离目标位置越近,奖励越大;e表示碰撞障碍物之后奖励值的惩罚项,为常数。

2.4 实验

本文的应用背景设定为在三维空间中,飞行器从起始点自主达到目标点范围。在空间中存在多个障碍物体,当飞行器与障碍物体接触时任务失败。算法的训练目标是不断调整飞行器的运动属性,使得飞行器全程均能避过障碍体区域,到达目标点范围,即可完成任务设定的目标。初始化场景如图3所示,红色点为出发点,绿色点为目标点,其他深色长方体为障碍物,他们均在同一直线上。

图3 初始化场景设定

由算法(表1)实现的DDPG网络模型结构图如图4所示,其中actor、critic、target_actor、target_critic网络为三层全连接网络,隐藏层均使用ReLU激活函数,网络的经验重放池容量为10000,奖励折扣系数为0.99,优化器为Adam,学习率(learning rate)为0.01,单次训练样本数(batch size)为32。

图4 DDPG网络模型结构

2.5 仿真结果分析

仿真实验通过DDPG算法与同样是基于连续动作空间选择的传统DPG算法进行对比,两种算法均在同一交互环境中运行。图5所示为传统DPG算法的回合累积奖励变化曲线,图6所示为DDPG算法的回合累积奖励变化曲线。纵坐标表示从单个回合开始到结束的回合累积奖励值,横坐标表示回合序号。每个回合运行步数为1800步,单步奖励根据公式(11)计算得出,由于初始状态的出发点并不在目标点,两点之间存在初始距离,所以每回合累积奖励不会为0。

图5 传统DPG算法回合累积奖励

图6 DDPG算法回合累积奖励

从回合累积折扣奖励看来,传统DPG算法的回合累积奖励在240回合之前不太稳定,之后稳定在-13800左右;DDPG算法在经过170回合后的回合累积奖励趋于一个平稳值,在-4000左右,由此一直稳定到所有回合结束。根据公式(11)定义的单步奖励所积累的回合奖励也从侧面反映了规划路径距离和最佳路径(起始点到目标点直线距离)之间的差距。从图5、图6可以看出,传统DPG算法在240回合之后累积奖励绝对值比DDPG算法在170回合之后累积奖励绝对值大。这也体现出传统DPG算法规划的路径与理想最佳路径之间的最终差距比DDPG算法所规划路径的较大。

DPG算法第300回合结束生成的路径如图7所示,因为单个回合步数限制,在单个回合结束之后没有到达目标点位置。DDPG算法在300回合时生成的规划路径如图8所示。从出发点几乎直线达到目标点,由于三维图像的视角因素,该路线经过最低障碍物上方,其余障碍物下方达到目标点位置,并不是直线。触碰到障碍物体时会导致回合结束,不会产生到达目标点的完整路径。在这两种生成的路径规划图中,均有一定的走向目标地点的运动趋势。但是DDPG得益与Q'网络和μ'网络的纠正效果以及经验重放单元,收敛性较为凸出,网络整体学习效果较高,DDPG算法比传统的DPG算法在相同的飞行器避障环境下路径的生成效果较优秀,而且所需要训练的回合数较少,所以在飞行器智能避障的连续动作控制场景中,DDPG算法具有一定的应用指导价值。

图7 传统DPG规划路径

图8 DDPG规划路径

3 结语

人工智能的主要目标之一就是利用未经处理的高维传感数据来解决复杂的任务。强化学习算法DQN的提出,使得机器的智能程度在某些游戏上能够达到或超越人类的游戏水平。但是DQN主要处理离散低维动作空间。而现实生活场景中,存在了各种各样的连续控制问题和需求。通过DQN结合用于连续动作选择的DPG算法,DDPG吸收这两种算法各自的优势。相比较传统的DPG算法,在连续动作控制上,产生了更好的效果。本文基于DDPG的强化学习算法,实现飞行器在空间多障碍体环境中进行智能避障,到达目标地点。飞行器的飞行控制的动作选择是一个连续的动作空间,该场景和DDPG算法适用场景一致,通过仿真模拟研究,实验效果较明显。

猜你喜欢

飞行器状态算法
高超声速飞行器
Travellng thg World Full—time for Rree
智珠二则
飞去上班
生命的另一种状态
学习算法的“三种境界”
算法框图的补全
算法初步知识盘点
神秘的飞行器
“牛顿第一定律”练习