Kara0807的个人博客分享 http://blog.sciencenet.cn/u/Kara0807

博文

[转载]基于深度强化学习算法的自主式水下航行器深度控制

已有 387 次阅读 2021-5-8 21:41 |个人分类:智能科学与技术学报|系统分类:论文交流|文章来源:转载

微信截图_20210508213921.png

基于深度强化学习算法的自主式水下航行器深度控制


王日中, 李慧平, 崔迪, 徐德民

西北工业大学航海学院,陕西 西安 710072

 


【摘  要】研究了基于深度强化学习算法的自主式水下航行器(AUV)深度控制问题。区别于传统的控制算法,深度强化学习方法让航行器自主学习控制律,避免人工建立精确模型和设计控制律。采用深度确定性策略梯度方法设计了actor与critic两种神经网络。actor神经网络给出控制策略,critic神经网络用于评估该策略,AUV的深度控制可以通过训练这两个神经网络实现。在OpenAI Gym平台上仿真验证了算法的有效性。

【关键词】 自主式水下航行器 ; 深度控制 ; 深度强化学习

【引用格式】


王日中, 李慧平, 崔迪,  等. 基于深度强化学习算法的自主式水下航行器深度控制[J]. 智能科学与技术学报, 2020, 2(4): 354-360.

WANG R Z, LI H P, CUI D, et al. Depth control of autonomous underwater vehicle using deep reinforcement learning[J]. CHINESE JOURNAL OF INTELLIGENT SCIENCE AND TECHNOLOGY, 2020, 2(4): 354-360.


1.引言



随着机器人技术和传感器、控制、导航等相关技术的迅速发展,自主式水下航行器(autonomous underwater vehicle,AUV)在水下探测、搜救、检测等领域得到了广泛的应用。传统的 AUV 运动控制需要建立一个精确的 AUV 模型,控制质量与模型精度密切相关。而 AUV 是一个典型的多变量、强耦合的非线性系统,其参数和模型具有不确定性。这些不确定性给水下机器人的运动控制带来了巨大挑战。针对这种复杂环境下 AUV 的决策与控制问题,机器学习(machine learning,ML)提供了一种有效的解决方案。作为一种最基本的ML方法,监督学习的方法可以通过 AUV 运动数据训练神经网络,从而对模型误差和不确定性进行自适应补偿,实现AUV的高精度运动控制。

强化学习是更有效的ML方法。强化学习算法不需要系统模型信息以及人为设计控制律,而是通过设置奖励函数让机器人自己探索、学习有用的控制策略。对于一个不断与环境进行交互的机器人来说,强化学习将系统实时状态和动作映射为奖励函数,机器人依靠现有数据寻找可以产生最大回报的动作,从而提高机器人在不确定场景中的智能性。例如,在西洋双陆棋比赛中,使用强化学习算法训练的机器人击败了世界冠军,而且,强化学习算法训练的智能体在雅达利游戏公司出品的多种游戏中的表现超过了人类的水平。

2013年,DeepMind公司提出了深度Q学习网络(deep Q-learning network,DQN)算法,这种将强化学习与深度神经网络结合的算法叫作深度强化学习(deep reinforcement learning,DRL)算法。在系统模型未知的情况下,智能体通过设置的奖励函数来学习探索更好的控制策略,并利用深度神经网络估计强化学习评价指标和拟合当前的控制策略。当控制器训练好时,因为神经网络前向传播的计算速度极快,能很快地实现输入状态和控制输入之间端到端的解算,控制的实时性能得到保障。在2016年和2017年,AlphaGo使用DRL算法连续两年击败围棋世界冠军,引起了社会轰动。目前, DRL算法发展迅速,对于提高机器人的自主性和智能性具有十分重要的意义。本文旨在研究一种DRL算法来解决AUV的深度控制问题。

由于 AUV 是一个连续时间系统,其控制行为有无限种选择,而经典的强化学习(reinforcement learning,RL)算法主要针对状态或控制空间有限的离散情况,因此,无法直接控制 AUV 运动。为了解决这个问题,Silver D等人提出确定性策略梯度(deterministic policy gradient,DPG)算法,解决了在随机策略梯度下具有大动作空间的智能体采样数多的问题,使得通过RL算法控制连续时间系统成为可能。在2016年国际学习表征会议(ICLR)上,Lillicrap T P等人将深度神经网络与DPG结合,提出了深度确定性策略梯度(deep deterministic policy gradient,DDPG),并将其应用于简单的连续系统控制。而苏黎世 ETH 机器人实验室成功地将DRL算法应用于腿部机器人的运动控制。

AUV在执行任务时,一般要求在固定的深度保持稳定的运动,因此深度控制是 AUV 的基本控制目标。本文的目的是探索一种更加先进的 AUV 深度控制方法,解决 AUV 模型的不确定性和非线性给控制带来的难题,并提高 AUV 的控制性能;仅依靠训练得到的与周围环境的交互数据,设计DRL算法,从而实现AUV的深度控制。

2. AUV的运动模型


由于AUV的深度控制主要是在垂直面实现的,因此本文仅考虑其在铅垂平面内的运动方程。地面坐标系与体坐标系下的 AUV 如图1 所示,oxy与图片为地面坐标系,图片为体坐标系;水平舵角δe为控制输入;图片为控制输出,其中图片与θ分别为AUV在垂直面的位置与俯仰角。


图片

图1   地面坐标系与体坐标系下的AUV


AUV在垂直面的二维运动模型如下:

图片


其中图片图片图片图片图片图片图片图片。m是AUV的质量;G是AUV的重力;λ11λ22λ26λ66是与流体动力学有关的附加质量;xcycAUV重心到浮力中心的距离在x轴和y轴上的分量;T是由螺旋桨提供的推力;CxSAUV的阻力系数,该数值与 AUV 的最大横截面积S、速度v和水的密度ρ有关;ΔG是AUV的负浮力,即重力与浮力之差;J zzAUV绕z轴旋转的转动惯量;vxvy分别是AUV在x轴与y轴上的速度分量,wz 是 AUV 的俯仰角速度。此外,攻角图片;无量纲角速度图片, L是AUV的长度。图片图片分别是AUV的升力因数对攻角α、水平舵角δe的位置导数;图片是升力因数对角速度的旋转导数。相应地,图片图片是偏航力矩因数对α、δe以及图片的导数。

对于给定的控制输入δe,通过式(1)中的运动模型即可求得AUV的状态图片


3.基础知识



3.1 强化学习


强化学习是一种机器学习方法,主要解决序列决策的问题。强化学习的基本框架如图2所示,当智能体给出一个具体动作at时,环境更新智能体的状态st,同时给智能体返回奖励rt。这里,当t→∞时,定义智能体的累积奖励为:

图片



其中,γ∈(0,1)为折扣因子,保证G是收敛的。


图片

图2   强化学习的基本框架


强化学习理论推导是在马尔可夫决策模型下进行的,如果一个系统满足马尔可夫性,则系统将来时刻状态只与当前时刻状态有关,与过去时刻状态无关。


图片


马尔可夫决策过程是在马尔可夫过程中加入了决策部分,假设有智能体与环境从1到T时刻的交互序列:

图片


定义随机策略函数图片,表示在状态st下智能体采用动作at的概率。设系统模型为图片,表示在当前状态下采用动作at到下一个状态的概率。其整个马尔可夫决策过程链为:

图片


在该交互序列下,强化学习的目标是找到使回报最大的策略参数:

图片


其优化目标为图片

采用梯度下降法求最优参数:

图片


其中,α为优化步长。

对优化目标求梯度:


图片


将其化简为:


图片


从式(9)可知,对策略进行优化是对策略进行梯度求解。其中,将式(9)后的半部分定义为强化学习状态值函数:


图片


3.2 深度前馈神经网络


深度前馈神经网络是典型的深度学习模型。前馈神经网络定义了一个映射y=g(x;ς),通过学习的方法选择最佳参数ς,使得函数g(⋅)可以拟合函数y= f(x)。

深度前馈神经网络的结构如图3所示。第一部分是神经网络的输入层,中间的隐藏层通常有多层结构,最后一部分是输出层,用于输出函数值。图片图片是神经网络的参数,通过训练这些参数获得函数的近似值。这个典型的神经网络是一个线性模型,需要对其进行去线性化处理,以便更好地近似非线性函数。常见的去线性化方法是在每个神经元的输出端添加非线性函数,使神经网络变为非线性的,添加的函数被称为激活函数。深度学习中常用的激活函数包括ReLU函数、sigmoid函数和tanh函数。

图片

图3   深度前馈神经网络的结构


深度前馈神经网络得到的近似函数g(⋅)的精确度可用损失函数L(g(x;ς),y)表示,其中,g(x;ς)为神经网络的估计值,y为真实值。损失函数表示估计值和真实值之间的差异。深度学习中损失函数通常为交叉熵或其他特定函数。选定损失函数后,需要通过最小化损失函数来优化参数ς:


图片


求解优化问题时常用的一种深度学习算法是ADAM(adaptive moment estimation)算法,如下所示。


图片

3.3 深度强化学习算法


在本文中,笔者利用actor-critic深度神经网络来实现强化学习算法,其中状态值函数图片与策略函数图片分别用critic和actor神经网络进行估计。通过 critic 神经网络估计状态值函数图片,可以得到:

图片


其中,ω为 critic 神经网络参数。通过式(12)可以得到:

图片


为了求得状态值函数图片在t时刻的最优估计,设计损失函数:

图片


根据式(11),将Qq定义为:

图片


其中,Q′和π′为目标神经网络,其作用为稳定学习过程。目标神经网络参数θ′与ω′更新方式如下:

图片


其中,τ的取值远小于 1,以保证目标神经网络的稳定性。

利用一组N个数据对 critic 神经网络进行训练,求得其平均损失函数为:

图片


对其求梯度为:

图片


通过ADAM算法对式(18)的梯度进行计算,利用学习到的参数ω*对状态值函数图片进行估计。基于估计的状态值函数图片对策略进行评估。

与随机策略梯度不同,在确定性策略梯度中,动作at在状态st确定时就确定了。利用 actor 神经网络图片对确定性策略图片进行估计,将最优策略求解转化为对actor神经网络参数θ的优化,以达到奖励函数最大化的目的,即

图片

其中:

图片


根据式(19)和式(20),可以得到优化目标:


图片


其中,ρ(τ)为系统状态分布,计算式如下:

图片


对优化目标求梯度:

图片


该算法为离线迭代算法,通过 AUV 运动数据对其进行训练。利用一组N个数据对actor神经网络进行训练,利用蒙特卡洛方法对期望进行估计可以得到梯度:

图片


最后,利用 ADAM 算法对梯度进行计算,得到最优参数θ*

当对critic和actor神经网络进行训练时,一般假设训练数据是独立不相关的。但是机器人探索得到的数据是有相关性的,这会导致神经网络的训练效果不佳。可以通过建立一个回放记忆单元解决这一问题,将机器人探索得到的数据存入回放记忆单元中,在训练时随机从回放记忆单元中提取一组数据,以打破数据的相关性。DDPG算法如下。


图片



4.基于DRL算法的AUV定深控制

利用 DRL 算法对 AUV 进行定深控制需要AUV 对环境进行探索学习。考虑到在真实环境中AUV获取大量数据的费用是昂贵的,因此利用式(1)中的AUV模型来获取训练数据。

定义图片为AUV在时刻t的状态;图片为控制输入。对于RL算法来说,上述控制输入为当前时刻AUV的动作,即图片


定深控制的定义是通过控制输入将 AUV 保持在预定深度yd运动。为了解决强化学习中的稀疏奖励和奖励延迟问题,根据 AUV 定深控制的运动特性设计了一个分段式的奖励函数。

在第一个阶段,设计了如下奖励函数:

图片


其中,cy0、cθ0、cω0,均为常数。其目的是鼓励 AUV 下潜到预定深度,并防止其俯仰角过大。

AUV到达预定深度yd的一定范围内时,将奖励函数切换为:

图片


其中,cr是一个常数。其目的是鼓励 AUV 保持在该深度运行。综合上述分析,奖励函数为:

图片


将设计的奖励函数代入算法 2 中,利用 critic神经网络估计状态值函数:

图片


通过训练actor神经网络得到最优策略图片。此外,为了让AUV在训练过程中更好地探索环境,在动作中加入了随机噪声,即:

图片


其中,υ是Ornstein-Uhlenbeck随机噪声。

为了训练神经网络,将下一时刻系统状态图片、当前时刻状态st、动作at和奖励rt组成一个元组图片,将其按时序存入状态缓冲区,并用于训练神经网络。

基于深度强化学习的 AUV 定深控制系统如图4所示。其中,用于估计状态值函数的critic神经网络的输入为图片,其输出为近似的状态值函数图片,用于求解actor神经网络的损失函数。而训练好的actor神经网络的输入为AUV当前时刻的状态st,输出为定深控制动作。

图片
图4   基于深度强化学习的AUV定深控制系统


5.仿真实验


在本节中,笔者用仿真实验验证算法的有效性。仿真平台为OpenAI Gym平台,利用第2节的AUV运动模型建立仿真模型,如图5所示。


图片
图5   OpenAI Gym仿真平台中的AUV深度控制模型


初始化奖励函数参数cy=1、cθ=4、cω=2、cr=5。通过 TensorFlow 搭建深度神经网络,其中critic神经网络由5个全连接层组成,隐藏层每层节点数为 32 个,除输出层外,在其他 4 层加入ReLU激活函数。actor神经网络由4个全连接层组成,隐藏层每层节点数为16个,除了输出层外,在其他3层加入ReLU激活函数,输出层使用tanh激活函数对输出进行[-1,1]的归一化。

在训练初期,AUV先进行自由探索,将数据存入回放记忆单元中。当回放记忆单元存满后,通过随机采样的方式抽取一组 64 个数据对神经网络进行训练。critic神经网络训练的学习率为0.001,actor神经网络的学习率为0.000 1。在对两个神经网络进行更新后,通过式(16)对目标神经网络进行更新,其中更新参数 t=0.001。最后,利用训练后的 actor神经网络与环境进行交互,将得到的数据用于更新数据集。在整个学习过程中重复上述步骤,直到奖励函数收敛。平均奖励值随训练幕数的变化如图6所示,由图6可知,在经过1 000幕的训练后,每一幕的平均奖励函数得到了收敛。AUV定深运动的轨迹如图7所示。

图片
图6   平均奖励值随训练幕数的变化

图片

图7   AUV定深运动的轨迹

假设AUV的预定深度yd= -5 m,图6和图7显示,经过2 000幕的训练后,由actor神经网络控制AUV定深运动的轨迹。这表示经过训练的actor神经网络可以控制 AUV 高精度下潜到预定深度,并保持在预定深度运动。如图8所示,与另一种不需要模型信息的PID控制算法相比,DDPG算法有更高的控制精度。

图片
图8   AUV定深控制效果比较

6.结束语


本文将DRL算法应用于AUV的定深控制,不依赖于 AUV 的系统建模和控制律设计。通过设计合理的奖励函数引导 AUV 探索学习定深控制律。仿真实验证明了该方法的可行性,比起传统无模型PID控制算法,其具有更高的精度。在未来的研究中可以着重研究提高算法学习速率和学习效率的方法和向实际系统迁移的可能性。


作者简介 About authors

王日中(1995-),男,西北工业大学航海学院博士生,主要研究方向为多机器人协同、强化学习。

李慧平(1983-),男,博士,西北工业大学航海学院教授,博士生导师,主要研究方向为水下机器人导航定位、智能决策与优化控制、模型预测控制、多机器人协同。

崔迪(1995-),女,西北工业大学航海学院博士生,主要研究方向为事件触发控制、模型预测控制。

徐德民(1937-),男,中国工程院院士,西北工业大学航海学院教授,博士生导师,主要研究方向为水下航行器总体设计、导航制导与控制。 


微信截图_20210508213942.png



https://wap.sciencenet.cn/blog-951291-1285621.html

上一篇:[转载]基于深度强化学习的智能暖气温度控制系统
下一篇:[转载]基于深度强化学习的六足机器人运动规划

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2021-9-25 20:26

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部