曾无好事来相访,赖尔高文一起予。这篇文章主要讲述基于深度强化学习的区域化视觉导航方法相关的知识,希望能为你提供帮助。
基于深度强化学习的区域化视觉导航方法??人工智能技术与咨询??
本文来自《上海交通大学学报》,作者李鹏等
?关注微信公众号:人工智能技术与咨询。了解更多咨询!
在环境中高效导航是智能行为的基础,也是机器人控制领域研究的热点之一.实现自主导航的传统方法是结合一系列硬件和算法解决同步定位和建图、路径规划及动作控制等问题,该类方法在实际应用中取得了良好效果,但需人工设计特征和预先构造地图[1].通过对空间认知行为的研究,动物神经学家发现,哺乳动物可基于视觉输入和环境信息(食物、巢穴、配偶等)在海马体内形成认知地图[2],从而实现大范围导航.在探索环境过程中,端到端的学习方法可建立视觉到动作的直接映射,使得动作不会与视觉信息分离,而是在一起相互学习,以此获得与任务相关的空间表征.近年来备受关注的深度强化学习[3]具有类似的学习方法,可通过构建表征完成具有挑战性的导航任务.
当机器人与环境交互时,导航被看作一个寻优过程[4],而随着深度模型的发展和异步优势训练方法的应用,深度强化学习在导航领域展现出强大的生命力.Zhu等[5]将预先训练好的ResNet与Actor-Critic(AC)算法结合,并在根据实际场景设计的3D仿真环境下进行测试,实现了目标驱动的视觉导航,同时证明该方法具有更好的目标泛化能力.Mirowski[4]等提出Nav A3C模型,且在训练过程中增加深度预测和闭环检测任务,使得在同样训练数据下可两次更新网络参数.Jaderberg等[6]则研究了关于非监督辅助任务对训练的影响,这两种方法为提升导航性能提供了新的思路.为适应大比例地图,Oh等[7]在探索过程中将重要环境信息存储在外部记忆体中,待需要时再进行调用,但当处于非常大或终身学习场景中时,该系统的内存容量会随探索周期的持续而线性增长.面对这种情况,可考虑通过分割环境缓解模型记忆压力,类似的区域划分方法已在多个领域发挥作用.黄健等[8]在标准粒子群算法的基础上加入区域划分方法,针对不同区域的粒子采用不同策略自适应调整粒子的惯性权重和学习因子,达到寻优与收敛的平衡,降低了由声速不确定性引发的水下定位误差.张俊等[9]将边指针和区域划分结合,提高了大规模数据处理效率.Ruan等[10]则利用局部区域提高了数据关联准确性.在医学研究中,区域划分是研究脑片图像中不同脑区分子表达、细胞数目及神经网络连接模式量化和比较的基础[11],而在航空运输领域,区域划分更是与航线规划密切相关.同样,在利用深度强化学习实现导航的方法中,也有涉及区域划分的研究.Kulkarni等[12]在框架中应用继承表征(SR)实现深度继承强化学习(DSR),并在两个简单的导航任务中进行实验.与深度Q网络(DQN)[13]相比,DSR能更快适应末端奖励值变化,且对于多区域环境可进行子目标提取.Shih等[14]提出一种分布式深度强化学习模型,可用于室内不同区域间的导航.Tessler等[15]模仿动物学习方式提出一种终身学习模型,在模型中可重复使用和同化其他任务中学习到的技巧,其中就包括某一环境下的导航策略,通过技巧之间的组合,可实现区域间导航.
本文研究在终身学习模型的基础上展开,面对分布式环境,不再使用单一模型在整个环境中导航,而是利用子模块在各区域内独立学习控制策略,并通过区域化模型集成控制策略实现大范围导航.与此同时,在训练方法上做出两点改进:① 在子模块中增加奖励预测任务,缓解导航任务固有的奖励稀疏性,构建对奖励敏感的空间表征.② 在原有探索策略基础上结合深度信息躲避障碍物,防止遍历停滞.实验在第一人称视角的3D环境下进行.
1 深度强化学习简介深度强化学习是深度学习和强化学习的结合,利用深度学习可自动抽象高维数据(图像、文本、音频等)的特性,解决了强化学习由于内存、计算及样本复杂度等引发的维数灾难问题,这给人工智能领域带来了革命性的变化,预示对视觉世界具有更高层次理解的端到端系统的建立.其中,典型架构为深度Q网络[13]及深度递归Q网络[16].
1.1 深度Q网络
深度Q网络是第一个被证明的可以在多种环境中直接通过视觉输入学习控制策略的强化学习算法,其模型如图1所示,其输入是4个连续串联的状态帧.
文章图片
图1 DQN模型
Fig.1 DQN model
标准的强化学习通过与环境交互实现,在每一个时间步t,智能体会根据当前环境状态st和策略π选择一个动作at,在执行动作以后,将获得一个奖励信号rt,并进入下一状态st+1.定义Rt为每一个时间步的累积折扣奖励:
Rt= [Math Processing Error]∑t=tTγt-trt
(1)
式中:T为回合的最大步数; γ∈[0, 1]为折扣因子; t为下一时间步; rt为下一时间步的奖励.DQN使用动作值函数学习控制策略,在给定策略π的情况下,动作值函数Qπ定义为状态s下执行动作a后的期望回报:
Qπ(s, a)=E[Rt|st=s, at=a]
(2)
在定义Qπ的同时定义最优动作值函数Q*,即Q*(s, a)= [Math Processing Error]maxπQπ(s, a),借助贝尔曼方程可迭代更新动作值函数:
Qi+1(s, a)=Es[r+γ[Math Processing Error]maxaQi(s, a)]
(3)
式中:s及a分别为下一时间步的状态和动作.当i→∞时,Qi→Q*.DQN使用一个参数为θ的深度卷积神经网络拟合Q值,此时同样可以利用贝尔曼等式更新参数θ,定义均方误差损失函数:
Lt(θt)=Es,a,r,s[(yt- [Math Processing Error]Qθt(s, a))2]
(4)
式中:yt=r+γ[Math Processing Error]maxa[Math Processing Error]Qθt(s, a)代表目标,通过微分损失函数可得梯度更新值:
[Math Processing Error]ΔθtLt(θt)=Es,a,r,s[(yt- [Math Processing Error]Qθt(s,a)) [Math Processing Error]ΔθtQθt(s, a)]
(5)
通过在环境中学习不断减小损失函数,使得Q(s, a; θ)≈Q*(s, a).其实DQN并不是第一个尝试利用神经网络实现强化学习的模型,它的前身是神经拟合Q迭代(NFQ)[17],并且DQN架构与Lange等[18]提出的模型密切相关,而DQN之所以能达到与专业游戏测试人员相当的分数,是因为应用了两种关键改进:① 目标网络,与标准的Q-learning相比,这种方法使用一组参数滞后的网络生成目标,可在更新Q(st, at)和yt的时间点之间增加延迟,从而降低策略发散或振荡的可能性.② 经验回放,这是一种受生物学启发的机制,通过对经验池中样本均匀采样,可有效打破数据的时间相关性,同时平滑数据分布.从训练角度看,经验池的使用可大大减少与环境所需的交互量,并且能够提高批量数据吞吐量.目标网络和经验回放在随后的深度强化学习方法中也得到了应用和发展[19].
1.2 深度递归Q网络
DQN已被证明能够从原始屏幕像素输入学习人类级别的控制策略,正如其名字一样,DQN根据状态中每一个可能动作的Q值(或回报)选择动作,在Q值估计足够准确的情况下,可通过在每个时间步选择Q值最大的动作获取最优策略.然而,由1.1节可知,DQN的输入是由智能体遇到的4个状态组成的,这种从有限状态学习的映射,本身也是有限的,因此,它无法掌握那些要求玩家记住比过去4个状态更远事件的游戏.换句话说,任何需要超过4帧内存的游戏都不会出现马尔可夫式,此时游戏不再是一个马尔可夫决策过程(MDP),而是一个部分可见的马尔可夫决策过程(POMDP)[20].当使用DQN在POMDP中学习控制策略时,DQN的性能会有所下降,因为在状态部分可观察的情况下,智能体需记住以前的状态才能选择最优动作.为此,Hausknecht等[16]将具有记忆功能的长短时记忆网络(LSTM)[21]与DQN结合,提出深度递归Q网络(DRQN),其模型如图2所示.
文章图片
图2 DRQN模型
Fig.2 DRQN model
为隔离递归性影响,对DQN结构进行最小程度修改,只将DQN中第一个全连接层替换为相同大小的LSTM层,使LSTM轻易与DQN结合.实验中设计了多种环境测试DRQN处理部分可观测状态的效果:① 当使用完整观察状态进行训练并使用部分观察状态进行评估时,DRQN可更好地应对信息丢失带来的影响.② 在每个时间步只有一个状态帧输入时,DRQN 仍可跨帧集成信息学习控制策略.
2 区域化导航方法基于对分布式环境的分析,以深度强化学习为基础,在各区域内学习控制策略,同时通过区域化模型结合控制策略完成复杂环境下的导航任务.在学习过程中,为提高训练效率及导航性能,在子模块中增加奖励预测任务,并结合深度信息躲避障碍物.
2.1 景深避障
高效探索未知环境是导航的基础,以哺乳动物为例,当将其置于一个陌生环境时,它会根据环境中的颜色、气味及光照等特征快速遍历空间,以便于后续的目的性行为.在设计机器人探索策略时,同样力求高效遍历状态空间,并尽量减少与障碍物碰撞,但由于传感器限制,机器人并不能获得如此多的环境信息,因此在探索起始阶段需使用启发式的探索策略,并结合硬件辅助完成遍历过程.比较典型的探索方案是DQN以及DRQN所使用的ε-greedy[12, 15]策略,该策略在每一个时间步t选择动作at的方法如下式所示:
at= [Math Processing Error]random(at∈A),εargmaxa∈AQ(st,a),1-ε
(6)
其中,ε在探索开始时设置为1,并随探索步数的增加线性减少,最后固定为一个比较小的值.在训练阶段,机器人主要通过视觉信息在区域内自主学习.因此,当撞到障碍物时,如果此时没有较好的避障措施,那么将长时间停留在一个地点.为了防止遍历停滞,提高探索效率,本文在ε-greedy探索策略基础上,结合状态深度信息为探索动作添加限制,单个回合的探索流程如图3所示.
文章图片
图3 探索流程
Fig.3 Exploration process
从流程图可以看出,景深避障需在执行动作之前完成,即当机器人获取视觉信息后,并不立即使用视觉信息选取动作,而是先通过状态深度图中的最小值与阈值相比较,在判断是否撞到障碍物后再执行下一步动作.
2.2 奖励预测
在学习导航策略过程中,机器人需识别出具有高回报或高奖励的状态,以便于更高效地学习值函数和策略.然而,环境中的奖励往往是稀疏分布的,目标也只有一个,这就提出一个问题:在不包含奖励的状态下,智能体应通过什么学习以及如何学习.
其实除奖励外,环境中还包含大量可以用来学习的目标,例如当前或后续帧中的某些特征,传统的无监督学习就是通过重建这些特征实现加速学习的.相反,在辅助任务[6]中,机器人的目标是预测和控制环境中的特征,并把它们当作强化学习中的伪奖励,在缺少奖励的情况下进行学习.在状态空间中,奖励一般代表环境中的长期目标,而伪奖励代表环境中的短期目标,当伪奖励的目标与奖励的目标紧密相关时,将有助于形成对目标敏感的空间表征.导航的目标是最大化奖励,为缓解奖励稀疏性和促进表征学习,在区域导航子模块中增加奖励预测任务,其模型如图4所示.
文章图片
图4 奖励预测模型
Fig.4 Reward prediction model
模型中通过前馈网络连接被卷积编码的状态实现奖励预测,其中有两点值得注意:① 奖励预测主要针对感知环境的卷积部分进行优化,除用于获取对奖励敏感的表征外,不会影响控制策略的学习,所以奖励预测使用与动作选取不同的体系结构.② 在模型训练方面,虽然奖励预测与动作选取同步更新,但前者没有使用在线学习方法,而是利用经验池更新.在训练过程中,奖励预测需通过3帧连续序列Sτ={sτ-3, sτ-2, sτ-1}预测在随后观测中的奖励rτ,但不要求其给出具体数值,所用损失函数为交叉熵分类:
LRP=- [Math Processing Error]rτlgr^τ+(1-rτ)lg(1-r^τ)
(7)
式中: [Math Processing Error]r^τ为预测值.此外,为提高表征构建效率,不再使用随机方式采样训练样本,而是以P=0.5的概率从经验池中抽取包含奖励的序列,经验池中数据也会随策略π产生的数据更新.
2.3 区域化导航模型
哺乳动物具有非凡的空间探索和创造能力,通过感知不断变化的环境可准确地回到几百米,甚至上千米以外的巢穴,但对于移动机器人,随着状态和动作空间的扩张,导航性能会随之下降,特别是当面对具有多区域特性的大比例环境时,往往会陷入无限探索困境.受终身学习模型启发,本文提出一种区域化导航方法,面对分布式环境,该方法使用单独的子模块在各区域内学习控制策略,模块结构如图5所示,图中价值函数Vπ定义为在给定策略π的情况下以状态s为起点的期望回报:
[Math Processing Error]Vmπ(s)=ERt|st=s
(8)
文章图片
图5 区域导航子模块
Fig.5 Submodule of region navigation
式中:m为区域编号.模块中包括动作选取和奖励预测两部分.在整个学习过程中,动作选取和奖励预测既相互独立又相辅相成,它们会按照各自的方式更新参数:动作选取部分通过与环境交互不断优化导航策略,奖励预测部分则利用经验池中的数据构建表征.同时它们又相互联系:当执行更优导航策略后,经验池中包含奖励的状态会增多,有助于形成对奖励敏感的表征,而表征会以参数共享的方式传递到动作选取部分,进一步提升导航性能.
当所有区域控制策略训练完成时,按照收敛的先后顺序将策略集成到模型内部,模型中的每一层代表一个区域的控制策略.环境控制策略由相同的子模块在整个环境中学习获得,主要起中继作用,因此不要求其收敛,当所有区域策略收敛后,环境控制策略也停止训练,并以当前参数集成到模型中.本文策略选取的方法是基于动作Q值实现的,为更好地分辨区域,不再使用单一观测选取策略,而是综合考虑机器人在环境中某一位置前后左右4个方向的观测值:
Qv= [Math Processing Error]Q(s,a)+Q90(s,a)+Q180(s,a)+Q270(s,a)4
(9)
式中:Qv为动作均值; Q(s, a)、Q90(s, a)、Q180(s, a)及Q270(s, a)为机器人在起始位置每向右旋转90° 度所选动作的Q值.同时定义 [Math Processing Error]Qv0,用于表示环境控制策略的动作均值,([Math Processing Error]Qv1, [Math Processing Error]Qv2, …, [Math Processing Error]QvN)用于表示各区域控制策略的动作均值.计算出的各策略动作均值存储在缓冲区,在结合最大值函数后,可选出拥有最大动作均值的控制策略:
[Math Processing Error]I=max{Qv0,Qv1,…,QvN}
(10)
式中:I为最优策略编号.如果此时选取的是某一区域的控制策略,那么执行该策略直到区域内目标,然后将策略选取权交回.如果此时选取的是环境控制策略,只执行单步动作就将策略选取权交回,其流程如图6所示.
文章图片
图6 多区域导航流程
Fig.6 Multi-area navigation process
3 实验结果与分析3.1 实验环境及参数设置
实验在第一人称3D游戏平台DeepMind Lab[22]内进行,在实验过程中,仿真环境以60帧/s的速度运行,部分运行画面如图7所示.动作空间是离散的,但允许细微控制,智能体可执行向前、向后或侧向加速,并以小幅度增量旋转.奖励通过在环境到达目标获得,每次接触目标后,智能体都将被随机重置到一个新的起点,同时开始下一轮探索.构建测试环境如图8所示,其中包括单区域和多区域环境.在每个单区域环境中,包含1个目标(+10)和4个促进探索的稀疏奖励(苹果,+1).
文章图片
图7 仿真环境运行画面
Fig.7 Running screens of simulation environment
文章图片
图8 测试环境
Fig.8 Test environment
区域导航子模块结构已在2.3节给出,在该模块中使用具有遗忘门的LSTM[23],除接受卷积编码的状态外,LSTM还融合上一时间步的动作和奖励信息,策略和值函数可由LSTM输出线性预测所得.卷积层和全连接层后紧接ReLU非线性单元,卷积层滤波器数量、尺寸、跨度以及全连接层和LSTM层参数如表1所示.学习过程中使用8线程异步优势演员评论(A3C)方法[24]优化参数,ε在探索环境的前106步由1线性降低到0.1,并固定为0.1,学习率从[10-4,5×10-3]区间内按对数均匀分布取样,折扣因子γ=0.99.机器人学习导航的过程主要以奖励分值-时间(S-t)图呈现,奖励为1 h内(虚拟时间)机器人所获奖励与完成回合数的平均值,每个回合机器人执行 4500 步动作.
表1 神经网络参数
Tab.1 Neural network parameters
网络部分 | 动作选取 | 奖励预测 |
卷积层1 | 16, 8, 4 | 16, 8, 4 |
卷积层2 | 32, 4, 2 | 32, 4, 2 |
全连接层 | 256 | 128 |
LSTM | 256 | 无 |
3.2 训练方法实验
3.2.1 景深避障实验 在结合深度信息探索环境时,需预先设定碰撞阈值,所以在实验过程中首先研究不同约束值对训练的影响,然后对比使用不同深度信息探索环境的方法.在测试景深避障过程中只执行导航子模块中的动作选取部分,不执行奖励预测部分,实验在3个单区域环境中进行.
使用不同约束值避障实验结果如图9所示,数据为3个单区域平均所得.由图9可知,当阈值取 [Math Processing Error]0,3区间内不同值时,机器人探索效率和学习效果也各不相同.如果阈值设置为0,也就是只有在机器人撞到障碍物后才给予惩罚,会导致探索效率低下.而当阈值较大时,机器人将过早执行避障措施,间接干扰了导航动作,致使需要更多步数才能获取奖励.当阈值为1或2时,机器人既能有效避障,又可维持较高奖励的导航行为,但由于阈值为2时控制策略缺乏稳定性,因此文中阈值设定为1.
文章图片
图9 不同阈值实验结果
Fig.9 Experiment results of different thresholds
结合不同深度信息探索环境的实验结果如图10所示,其中Nav A3C+D2参考文献[4],深度图认知参考文献[25].由图10可知,Nav A3C+D2通过预测环境深度信息,高效利用学习样本,可在短时间内掌握控制策略,但该模型中包含两层LSTM且结合深度预测任务,训练过程中需消耗更多计算量.而深度图认知以环境深度信息作为输入,易于形成景深趋向的控制策略,可高效探索未知环境,但只利用深度信息,忽略了环境的颜色特征,导致机器人无法进一步理解环境.景深避障则是利用深度信息作为碰撞判别依据,使机器人在探索环境过程中有效避障,且不会给训练带来额外负担,不过对目标导向行为没有实质性的帮助,这也是本文后续增加奖励预测的原因.
文章图片
图10 探索方法实验结果
Fig.10 Experiment results of exploration method
3.2.2 奖励预测实验 在奖励预测任务中,要求机器人在给定连续3帧的情况下,预测在随后不可见帧中的奖励,但无需预测奖励的具体数值,只需给出有无奖励即可.同时,使用经验池抽取样本,忽略原始数据中奖励序列的概率分布,以更高的概率抽取奖励事件.实验在单区域环境中进行,在测试奖励预测过程中不使用景深避障,实验结果如图11所示.由图11可知,在增加奖励预测后,机器人可在相同时间内,学习到更高奖励的导航策略,并在一定程度上稳定学习过程.
文章图片
图11 奖励预测实验结果
Fig.11 Experiment results of reward prediction
为进一步证明奖励预测对空间表征的影响,抽取[4×106,5×106] h区间内的一个动作序列构建价值函数-时间图(v-t图),其结果如图12所示.由图12可知,在首次找到目标后,具有奖励预测的机器人可在随后的探索中以更少的动作再次到达目标,从而提高单个回合内所获奖励.由此可知,共享卷积层对模型性能起着决定性作用,同时训练动作选取和奖励预测,可使卷积层内核捕捉到奖励的相关信息,并将包含奖励存在和位置的特征给予LSTM,形成对奖励敏感的空间表征,促进目标导向的控制策略.
文章图片
图12 价值函数-时间图
Fig.12 Value functions versus time
3.3 区域导航实验
3.3.1 单区域导航实验 为验证区域化模型在分布式环境中的性能,分别在单区域及多区域环境中进行测试.在单区域环境中,并不涉及策略的切换与结合,因此只使用区域导航子模块在环境中学习控制策略,并使用Nav A3C+D2和终身学习模型中的深度技巧模块进行对比.
单区域环境导航实验结果如图13所示,由图13可知,由于本身以DQN模型为基础,深度技巧模块难以适应部分可见环境,在所有单区域环境中均表现出学习时间长,所获奖励少的缺陷.而在结合景深避障和奖励预测后,区域导航子模块在单区域1和单区域3中展现出与Nav A3C+D2类似的学习能力,但在单区域2内,由于环境特性,Nav A3C+D2具有更好的控制策略.
文章图片
图13 单区域导航实验结果
Fig.13 Experiment result of single-area navigation
3.3.2 多区域导航实验 多区域环境由单区域环境组合而成,图8(d)中包含两个区域,图8(e)中包含3个区域.在训练过程中,无论环境中包含几个区域,区域化模型和终身学习模型都会根据人工划分的区域分配相应的子模块在各区域内独立学习,而Nav A3C+D2需在整个环境内学习控制策略.与单区域不同,在多区域环境中,当机器人接触到目标后,将被随机重置到分布式环境中的任一位置,而不再局限于单个区域.
多区域导航实验结果如图14所示,其中,在各区域策略稳定收敛前,区域化模型和终身学习模型奖励为同一时间内各子模块所获奖励的平均值.待策略集成后,奖励为区域间导航所得.由图14可知,在分布式环境中,随着区域数量的增加,受神经网络记忆能力限制,使用单一模型的Nav A3C+D2和区域导航子模块的性能会随之降低,虽然增加LSTM层数可在一定程度上减缓性能下降,但无法解决根本问题,且增加的训练难度也是难以承受的.区域化模型利用子模块在各区域内学习控制策略,并通过策略的切换和结合实现区域间导航,受区域数量的影响较小.与此同时,由于使用了改进的训练方法,维持了较高的学习效率和导航性能.终身学习模型同样可实现策略的切换和结合,但由于模型本身限制,难以形成高奖励的控制策略.同时可以看出,区域之间策略的切换和结合并不完美,这也是图中策略集成后奖励降低的原因.
文章图片
图14 多区域导航实验结果
Fig.14 Experiment results of multi-area navigation
4 结语本文提出一种区域化视觉导航方法,面对分布式环境,该方法使用子模块在各区域内独立学习控制策略,并通过区域化模型集成控制策略完成大范围导航.经实验验证,相比单一模型,区域化模型受神经网络记忆能力和区域数量影响较小,可更好地完成多区域环境下的导航任务,且在训练过程中结合景深避障和奖励预测,使得子模块可高效探索环境,同时获取良好导航策略.实际上,区域化并不是一个陌生的词语,它早已出现在生活的方方面面,如人类居住的环境就是根据区域划分.此外,区域划分还在道路规划、灾害救援和无人机导航等领域发挥作用,其中最具代表性的是医学图片研究中的区域分割,该方法是分辨病变位置和种类的基础.本文提出的区域化导航方法可应用于仓储机器人、无人驾驶车辆、无人机及无人船等无人智能系统.但文中环境分割通过人工实现,未来将在自主区域划分做出进一步研究.
文章图片
?关注微信公众号:人工智能技术与咨询。了解更多咨询!
【基于深度强化学习的区域化视觉导航方法】
推荐阅读
- 领导让我研究 Eureka 源码 | 注册过程 #yyds干货盘点#
- #yyds干货盘点#如何使用JMeter测试Java程序性能
- 你真的懂Redis的5种基本数据结构吗()
- Git SSH Key 生成并添加到github/gitee步骤#yyds干货盘点#
- #yyds干货盘点# FFmpeg[5] - 将视频文件转码成MP4格式(FFmpeg转封装2)
- #yyds干货盘点#Go语言查缺补漏ing Day1
- 丢棋子问题#IT人的升职加薪tips#
- 使用index.php而不是archive.php的WordPress
- WordPress使用functions.php仅在特定页面模板上运行功能