一种基于深度强化学习的机器人路径规划方法与流程

文档序号:20339857发布日期:2020-04-10 22:10阅读:449来源:国知局
一种基于深度强化学习的机器人路径规划方法与流程

本发明创造属于机器人技术领域,尤其是涉及一种基于深度强化学习的机器人路径规划方法。



背景技术:

随着人工智能的兴起,机器人正朝着自探索、自学习、自适应的智能化方向发展。路径规划作为智能机器人研究的重要组成部分,其目的是在机器人所处环境下能够选择出一条从起点到终点的最优或次优的无碰撞路径。路径规划结果的好坏,将直接决定机器人是否能够高效准确的完成任务,而算法的设计则是机器人路径规划的核心内容。传统的机器人路径规划方法有人工势场法、模糊逻辑算法、遗传算法、粒子群优化算法等。但这些传统方法大多数要基于环境模型,需要提前搭建地图信息,再对路径提前进行操控规划。如果模型构建不精确将会影响路径规划的准确性甚至威胁机器人及周边环境的安全。强化学习与环境不断进行试错与交互,通过累积奖赏来优化策略,是一种从环境状态到行为映射的学习方式。强化学习可以不需要先验知识,因此被应用于机器人路径规划中。q-learning算法作为典型的与模型无关的强化学习算法,无需知道模型就可以保证收敛,是目前应用于机器人路径规划中最有效的强化学习算法,在状态空间较小情况下能够获得很好的路径规划,但q-learning通过构建q值表选择最优策略,在维数很大时会导致维数灾难,因此很难推广到复杂环境中。



技术实现要素:

有鉴于此,本发明创造旨在提出一种基于深度强化学习的机器人路径规划方法,以解决q-learning在状态空间较大时产生的维数灾难问题。

为达到上述目的,本发明创造的技术方案是这样实现的:

一种基于深度强化学习的机器人路径规划方法,采用端对端的学习方式,将深度卷积神经网络的特征提取能力与强化学习的决策能力相结合,将深度学习框架融于q-learning中,构建目标函数并利用卷积神经网络进行学习,神经网络模型输出每个动作对应的价值,得到将要执行的动作。

进一步的,具体包括收集图像数据,建立训练数据集,初始化q值,建立深度卷积神经网络模型,对模型进行训练,通过实验进行验证。

进一步的,具体步骤包括:

s1:首先,生成栅格图片,以白色像素代替整体环境,随后随机分配黑色方块代表障碍,再将障碍变换多次,生成总体训练数据集;

s2:给定奖赏值,并记录每一个不同状态的评分,作为每个训练图像对应的初始q值;

s3:建立一个由2个卷积层和2个全连接层组成的卷积神经网络,卷积核大小为2*2,将图片数据作为输入,经过卷积神经网络优化损失函数,对目标函数进行计算并更新q值信息,最终输出为神经网络模型采取的动作;

s4:重复步骤3进行模型训练;

s5:在测试集上进行验证。

进一步的,还包括构建预测网络和目标网络的双层网络结构,用预测网络来评估当前状态动作的价值函数,用目标网络产生目标函数,使得一段时间内目标q值保持不变。

进一步的,还包括引入经验回放机制,把每一时间步智能体和环境交互得到的经验样本数据储存到经验池中,当需要进行网络训练时,从经验池中随机抽取小批量的数据进行训练。

进一步的,构建神经网络的目标函数,当状态空间较小时,采用基于表格的方法进行求解,当状态空间较大时,采用值函数近似的方法,通过用函数而不是q值表来表示目标函数。

相对于现有技术,本发明创造所述的一种基于深度强化学习的机器人路径规划方法具有以下优势:

本发明以值函数近似法代替q-learning中的动作值函数,通过设计的深度卷积神经网络,以网络的输出代替了传统的q值表,解决了q-learning在状态空间较大时产生的维数灾难问题;通过构建预测网络和目标网络的双层网络结构和引入经验回放机制,提高了算法的稳定性和收敛性。

附图说明

构成本发明创造的一部分的附图用来提供对本发明创造的进一步理解,本发明创造的示意性实施例及其说明用于解释本发明创造,并不构成对本发明创造的不当限定。在附图中:

图1为本发明创造实施例所述的强化学习基本架构示意图;

图2为本发明创造实施例所述的q-learning算法流程图示意图;

图3为本发明创造实施例所述的卷积神经网络图示意图;

图4为本发明创造实施例所述的算法流程图;

图5为本发明创造实施例所述的简单仿真环境示意图;

图6为本发明创造实施例所述的q-learning算法最终路径图;

图7为本发明创造实施例所述的奖赏值随迭代步数变化示意图;

图8为本发明创造实施例所述的到达终点所需步长随迭代步数变化图;

图9为本发明创造实施例所述的复杂仿真环境示意图;

图10为本发明创造实施例所述的复杂环境奖赏值随迭代步数变化图;

图11为本发明创造实施例所述的复杂环境到达终点所需步长随迭代步数变化图;

图12为本发明创造实施例所述的dqn算法最终路径图;

图13为本发明创造实施例所述的部分验证结果示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本发明创造中的实施例及实施例中的特征可以相互组合。

下面将参考附图并结合实施例来详细说明本发明创造。

针对q-learning方法在复杂环境下难以进行路径规划的问题,本发明提出一种基于dqn的改进算法,该算法采用端对端的学习方式,将深度卷积神经网络的特征提取能力与强化学习的决策能力相结合,将深度学习框架融于q-learning中,构建目标函数并利用卷积神经网络进行学习,用网络的输出代替传统的q值表,解决q-learning在状态空间较大时产生的维数灾难问题。最后通过仿真实验来验证算法的可行性与泛化能力。

q-learning算法

q-learning是强化学习算法的一种。强化学习主要由智能体、环境、状态、动作、奖赏值组成。是一种通过多步决策来达到一个目标的学习过程,强化学习的基本架构如图1所示。q-learning算法建立在强化学习框架基础上,首先设定一张q值表,表的行代表不同的状态,列代表不同的可采取的行动,定义好初始状态和奖赏值,智能体在执行某个动作后,环境将会转化到一个新的状态,对于该新的状态,环境会给出对应奖赏值,随后智能体根据新的状态和环境反馈的奖赏,计算并更新q值表,按照q值表选择策略并执行新的动作,通过与环境的不断交互,最终找到一条最优的动作集。

q-learning算法流程见图2,算法的基本形式为:

q(s,a)=q(s,a)+α[r+γmaxaq(s′,a′)-q(s,a)](1)

式(1)中,q(s,a)为动作值函数;s为当前状态;a是当前采取的动作;s′为下一步状态;a′是下一个状态采取的动作;r是系统获得的奖赏;α是学习率;γ是衰减因子;maxaq(s′,a′)表示下一状态s′下选择动作a′使价值函数获得最大值。

将式(1)变形可得:

q(s,a)=(1-α)q(s,a)+α[r+γmaxaq(s′,a′)](2)

根据式(2)进行迭代:

q(s,a)=(1-α)q(s,a)+α[r+γmaxaq(s′,a′)]=(1-α)[(1-α)q(s,a)+α[r+γmaxaq(s′,a′)]]+α[r+γmaxaq(s′,a′)]=(1-α)2q(s,a)+[1-(1-α)2][r+γmaxaq(s′,a′)]

以此类推,第n次迭代:

q(s,a)=(1-α)q(s,a)+α[r+γmaxaq(s′,a′)]=(1-α)nq(s,a)+[1-(1-α)n][r+γmaxaq(s′,a′)]

因为学习率α∈(0,1),所以0<(1-α)<1,当n→∞时,(1-α)n→0。通过式(2)的迭代,最终的动作值函数更新为:

q(s,a)=r+γmaxaq(s′,a′)(3)

智能体通过与环境进行交互,更新动作值函数,最后利用更新的q值表选择最优策略。

由式(3)可知,q-learning算法与初值无关,可以无需环境模型就能保证收敛,利于此特性可以将其应用于机器人路径规划中。但是根据算法流程可知:q-learning通过计算动作值函数来更新q值表,再根据q值表选择最优策略,然而在实际生活中,大部分问题都是有巨大的状态空间或者动作空间,想建立q值表就会产生维数灾难问题,因此q-learning算法很难应用在复杂环境下的路径规划。

基于dqn的路径规划算法

dqn(deepq-learningnetwork)是q-learning算法的一种变体,其原理是把深度卷积神经网络与q-learning算法相结合,利用神经网络对图像的强大表征能力,把图片数据作为强化学习中的状态,并作为神经网络模型(智能体)的输入,随后神经网络模型输出每个动作对应的价值(q值),得到将要执行的动作。dqn在q-learning算法的基础上主要做了以下三大改变:

a)目标函数

当状态空间较小时,可以采用基于表格的方法进行求解,当状态空间较大时,基于表格的方法不再适用。值函数近似的方法可以解决状态空间过大产生的维度灾难问题。通过用函数而不是q值表来表示q(s,a),如式(4)所示,值函数近似法通过参数θ使得动作值函数q(s,a,θ)逼近最优动作值函数q*(s,a)。

q(s,a,θ)≈q*(s,a)(4)

式(4)中,s为当前状态;a是当前采取的动作;θ为卷积神经网络的权值参数。

为了获得卷积神经网络可学习的目标函数,dqn算法通过q-learning算法建立网络可优化的损失函数,根据式(1)可知,q-learning算法的更新公式为:

q(s,a)=q(s,a)+α[r+γmaxaq(s′,a′)-q(s,a)](5)

根据式(4)和式(5),使用均方误差定义dqn算法的损失函数l(θ)为:

其中,目标函数(即targetq)为:

targetq=r+γmaxaq(s′,a′,θ)(7)

在获得dqn算法的损失函数后,可直接采用梯度下降法对卷积神经网络模型损失函数l(θ)的权重θ进行求解。

b)目标网络

在q-learning算法中,预测q值和目标q值使用了相同的参数模型,当预测q值增大时,目标q值也会随之增大,这在一定程度上增加了模型震荡和发散的可能性。

为了解决该问题,dqn算法使用旧的网络参数θ-评估一个经验样本中下一时间步的状态q值,且只在离散的多步间隔上更新旧的网络参数θ-,为待拟合的网络提供了一个稳定的训练目标,并给予充分的训练时间,从而使得估计误差得到很好的控制。

dqn算法使用两个网络进行学习:预测网络q(s,a,θ),用来评估当前状态动作的价值函数;目标网络q(s,a,θ-),用来产生式(7)中的目标函数。算法根据式(6)的损失函数更新预测网络中的参数θ,经过n次迭代后,将预测网络的参数θ复制给目标网络中的参数θ-

dqn算法通过引入目标网络,使得一段时间内目标q值保持不变,在一定程度上降低了预测q值和目标q值的相关性,使得训练时损失值震荡和发散的可能性降低,从而提高了算法的稳定性。

c)经验回放

dqn算法在应用时会保存大量历史经验样本数据,每个经验样本数据以式(8)的形式进行储存:

(s,a,r,s′,t)(8)

式(8)表示智能体在状态s下执行动作a,到达新的状态s′,并获得相应的奖赏r。其中,t为布尔值类型,表示新的状态s′是否为终止状态。

dqn算法把每一时间步智能体和环境交互得到的经验样本数据储存到经验池中,当需要进行网络训练时,从经验池中随机抽取小批量的数据进行训练。通过引入经验回放机制,一方面,可以较容易的对奖赏数据进行备份;另一方面,小批量随机样本采样的方式有助于去除样本间的相关性,减少函数近似时值函数估计中产生的偏差,进而解决了数据相关性及非静态分布等问题,使得网络模型更容易收敛。

本文基于dqn算法框架,设计了一种在栅格环境中复杂状态下的dqn改进算法,该算法构建的深度卷积神经网络模型包含2个卷积层和2个全连接层,网络结构见图3,通过输入图片数据对模型进行训练;构建了预测网络和目标网络的双层网络结构,提高了算法的稳定性;引入经验回放机制,提高了算法收敛性。最终解决栅格环境复杂状态下的机器人路径规划问题,算法流程见图4。

具体步骤如下:

1.首先,生成栅格图片,以白色像素代替整体环境,随后随机分配黑色方块代表障碍,再将障碍变换多次,生成总体训练数据集。

2.给定奖赏值,并记录每一个不同状态的评分,作为每个训练图像对应的初始q值。

3.设计一个由2个卷积层和2个全连接层组成的卷积神经网络,卷积核大小为2*2,将图片数据作为输入,经过卷积神经网络优化损失函数,对目标函数进行计算并更新q值信息,最终输出为神经网络模型(智能体)采取的动作。

4.重复步骤3进行模型训练。

5.在测试集上验证算法的可行性与泛化能力。

仿真实验

首先利用q-learning算法在简单环境和复杂环境下进行仿真实验,以证明其不足之处;然后利用本文算法在复杂环境下进行实验,通过对比实验证明本文算法相较于q-learning算法的优越性及其在复杂环境下进行路径规划的有效性;最后将训练好的算法应用于更多的测试数据上,证明算法的泛化能力。

简单仿真环境

利用python构建二维栅格地图,用来表示整体环境信息,每个小栅格的尺寸为1*1像素,模型的总尺寸为15*15像素。空心圆代表机器人的初始位置,实心圆代表目标位置,黑色方块代表障碍物;白色区域代表可移动区域。构建的简单仿真环境如图5所示。图6为q-learning算法经过5000次迭代过程得到的最短路径图,说明q-learning算法能够使机器人在简单环境下进行路径规划。

图7为奖赏值随迭代步数变化曲线,图8为到达终点所需的步长随迭代步数的变化图。可知随着迭代步数的增加,奖赏值越来越大,到达终点所需步长越来越短,最终收敛于最优步长。

复杂仿真环境

用同样的方法构建更为复杂的环境,模型的总尺寸扩大为25*25像素,并放置更多的障碍物,构建的仿真环境如图9所示。

利用q-learning算法在图9的环境下进行路径规划实验,经过5000次迭代过程,机器人并没有到达终点。图10为奖赏值随迭代步数变化曲线,图11为到达终点所需的步长随迭代步数的变化图。由图可知,经过5000次的迭代,奖赏值仍为负值,模型并没有收敛,q-learning算法在环境状态较复杂时难以进行路径规划。

引入文章提出的基于dqn的改进算法,环境像素大小和障碍数量与图9保持一致,通过变换障碍位置2000次作为模型的训练数据,将图9输入到训练好的模型中,图12为dqn算法输出的最终图像,为验证模型的泛化能力,输入与训练集不同的图片100张,有87张找到了最终路径,其部分结果如图13所示,算法有效性达87%。可见,本发明设计的dqn算法能够在环境状态较复杂时进行路径规划,并具有较强的泛化能力。

针对强化学习q-learning算法在复杂环境下难以进行路径规划的问题,提出了一种基于dqn的改进算法,该算法以值函数近似法代替q-learning中的动作值函数,通过设计的深度卷积神经网络,以网络的输出代替了传统的q值表,解决了q-learning在状态空间较大时产生的维数灾难问题;通过构建预测网络和目标网络的双层网络结构和引入经验回放机制,提高了算法的稳定性和收敛性。

仿真实验表明该方法相较于q-learning算法能够在复杂的环境下找出路径,并在新的测试集上取得了87%的识别率,具有较高的泛化能力。本文主要在平面环境下进行了仿真研究,为下一步在空间状态复杂环境中的机器人路径规划研究奠定基础。

以上所述仅为本发明创造的较佳实施例而已,并不用以限制本发明创造,凡在本发明创造的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明创造的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1