基于改进DDQN算法的移动机器人路径规划研究
作者: 付总礼 胡创业 李克 王鑫
关键词:路径规划;DDQN;动态排序;动态奖励函数;PR—DDQN
0 引言
随着人工智能以及机器人技术的飞速发展,集成了自动控制、传感器技术等多个先进领域的机器人技术已成为目前研究潜力极大的科学领域之一,特别是移动机器人领域,成为研究者的主要关注点[1]。随着移动机器人被广泛应用于各个领域,对移动机器人的要求也越来越高,这意味着移动机器人需要高度智能化以及高计算力来解决实际问题。而其中一个重要的研究热点就是移动机器人如何在复杂未知的环境下安全顺利地完成路径规划任务[2-3]。当前,研究学者根据不同的应用场景和移动机器人的类型,开发了多种算法和模型以解决路径规划问题,并已在实际应用中取得了显著成效。
传统路径规划算法主要在已知地图环境中,通过特定的方法寻找从起点到终点的最佳路径[4]。常用的算法包括A*算法、人工势场法和遗传算法等。传统的路径规划算法在科研和应用中已经发展到了成熟阶段,这些算法能够有效地处理许多标准的路径选择问题。然而,当面对现实世界中的复杂和不断变化的环境及任务时,这些传统算法也暴露出了一些不足和局限性。为了解决这些问题,基于强化学习的路径规划方法被提出作为一种新的解决方案。这种方法通过学习和适应环境的动态变化,不断优化其决策过程,从而能够在未知或变化的环境中做出更为合理和高效的路径选择。
Q-Learning(QL) 算法作为强化学习领域中的经典算法,因其简单性和良好的收敛性特点而广受欢迎[5]。然而,随着环境复杂度的增加以及未知因素的介入,QL算法面临着一些挑战。首先,复杂和未知的环境可能会导致训练次数呈指数级增长,这不仅降低了算法的学习效率,还可能导致“维数灾难”[6]。此外,Q- Learning在移动机器人探索环境的初期阶段往往面临着环境认知度低的问题,需要通过频繁的移动机器人与环境的交互来获取必要的信息。这一过程不仅耗时,而且很多时候包含了大量非必要的环境探索,从而进一步增加了算法收敛所需的时间。
随着深度学习技术的迅速发展,深度强化学习成为一个突破性的发展方向,为强化学习领域带来了新的研究机遇。深度强化学习技术通过将深度神经网络的自学习和自适应特性与传统强化学习的试错学习能力相结合,显著增强了移动机器人在复杂和动态环境中的感知与决策能力。这种结合不仅优化了算法的性能,还提高了其适应新环境的灵活性和效率。因此,深度强化学习已经成为移动机器人技术,尤其是在自动导航和任务执行方面,不可或缺的核心技术之一。
目前,深度强化学习算法如DQN和DDQN已被广泛应用于移动机器人的路径规划中,并在实际场景中显示出了良好的效果。面对复杂环境下算法收敛速度慢的挑战,一些研究者已经采取了创新的策略来改进算法。
周治国等针对DQN算法在大范围复杂环境中收敛速度慢的问题进行了改进。他们在DQN网络中加入了一个LSTM模块来保存信息,并通过在经验池中设置阈值筛选样本,该方法有效加快了算法的收敛速度[7]。Lv等人通过创建一个体验价值评估网络来提高DQN算法在学习初期的收敛速度、规划成功率和路径精度,并引入一种平行探索结构,以增加经验池的广度和多样性,从而提高算法的成功率,特别是在路径徘徊现象发生时[8]。Zhang等人为了提升DDQN算法在训练过程中估计目标Q值的准确性,引入了多步引导策略,使用连续多步与环境交互获得的奖励来代替单步奖励。此外,他们还采用了经验分类训练方法,将经验分为两个池,并通过训练损失来更新两个经验池的抽样比例,从而提高算法性能[9]。孙传禹等人在解决DDQN算法中的探索效率低和规划不平滑问题上,结合人工势场优化奖励函数,显著提高了算法在动态环境下的效率[10]。
尽管上述研究在一定程度上改善了深度强化学习算法在移动机器人路径规划中的性能,但在复杂和未知环境下寻找最优路径仍然是一个挑战。因此,为解决上述问题,本文提出一种基于动态排序的优先经验回放机制以及动态奖励的双重深度Q网络(PR- DDQN) 。该算法对原DDQN算法的经验回放机制进行优化,采用动态排序优先回放那些对学习更有价值的经验,以提高样本的利用效率。同时,对奖励函数机制进行了优化,通过动态调整移动机器人每一步的奖励值,加速算法的收敛速度。
1 模型设计
1.1 DDQN 算法
DQN(Deep Q-Network) 算法是由DeepMind 团队开发的一种创新性技术,它巧妙地结合了强化学习与深度神经网络。DQN算法通过使用深度学习来处理复杂环境中的高维数据,有效地解决了传统方法在复杂环境下遇到的维度爆炸问题[11]。其模型结构如图1 所示。DQN算法基于Q-Learning算法,利用神经网络代替Q表,通过公式(1) 函数近似Q值,从而充分发挥深度学习面对高维数据时的优秀处理能力。
式中,w 为学习参数,更新神经网络参数w 的关键在于用损失函数来测量预测的Q值与实际Q值之间的差异。而损失函数通常定义为这两者差异的平方,即(预测Q−实际Q) 2,通过最小化这个损失函数,优化参数w,从而使得预测的Q值更加接近真实的Q值。
在DQN算法中,主要涉及两个神经网络:主网络和目标网络,它们的结构相同,但功能和更新方式有所不同。
主网络在DQN中扮演着至关重要的角色。它的主要任务是根据当前环境的状态,估计各个行动的Q 值。Q值是一个评估指标,用于预测在当前状态下执行特定行动可获得的未来累积回报的期望值。通过这些Q值,算法能够选择最有可能最大化未来回报的行动。主网络通过反复学习状态到行动的映射关系,从而能够在复杂或未知环境中做出智能决策。
与主网络相对的是目标网络,目标网络的参数更新方式与主网络在每次训练迭代中不同。目标网络是在固定的时间间隔后,直接从主网络复制参数而来。这种延迟更新的方法有助于稳定学习过程,它减少了估计Q值时目标值和实际动作值之间的相关性和波动,从而使训练更加稳定。
在深度强化学习中,特别是在DQN算法里,经验池(experience replay pool) 的概念扮演了核心角色[12]。经验池是一种数据结构,用于存储和回放过去的经验,以辅助训练过程。每个经验样本包括4个部分:当前状态(s) 、采取的动作(a) 、接收到的奖励(r) 和执行动作后的新状态。这些样本被存储起来供未来学习使用。
经验池的主要优势在于其能够打破经验样本间的时间序列相关性,这是通过随机抽样实现的。从池中随机抽取样本进行训练有助于模型避免对最近遭遇的状态或动作过度拟合,从而更全面地学习和利用历史经验。这种方法不仅增强了训练数据的多样性,还有助于改善学习算法的稳定性和效率。经验池示意图如图2所示。
在传统的DQN算法中,神经网络为每个可能的动作输出一个状态价值,决策时通常选择Q值最高的动作。然而,在现实应用中,例如移动机器人,不应仅追求局部最优动作(最高Q值),而应考虑全局最优解。这就暴露了DQN中的一个问题,即Q-Learning的依赖性问题:算法可能过度依赖当前的估计值,而忽略了动作的真实价值。
为了解决这一问题,研究者们引入了双重深度Q 网络(Double Deep Q-Network,DDQN) 算法。DDQN采用两个神经网络,分别用于估计当前状态下所有可能动作的价值。通过引入目标网络,减少了对当前估计值的依赖,从而提高了算法的鲁棒性和稳定性,有效地避免了过度估计的问题。DDQN与DQN的网络结构非常相似,但它们使用不同的目标函数来更新网络权重,如公式(2) 和公式(3) 所示:
DDQN通过引入两个独立的网络,一个用于选择动作,另一个用于评估该动作的Q值,有效地减少了估计偏差,从而提高了算法在各种环境下的稳定性和性能。
1.2 经验池设计
在DDQN算法中,经验回放是一个重要的机制,旨在打破样本之间的相关性,因为移动机器人在学习过程中收集的数据是时间序列数据[13]。通过随机抽样样本数据,可以更好地提高样本数据的利用率。尽管随机抽样可以降低数据之间的关联性,但在进行随机抽样时,是以相同的概率来抽取样本的,而每个样本的重要性并不相同。损失函数较低的数据重要性较低,而损失函数较高的数据重要性较高。如果以相同的概率来抽取样本数据,将导致在训练过程中浪费大量时间在重要性较低的样本数据上,从而降低算法的效率。因此,对于样本数据进行加权抽样是很重要的,以确保在训练过程中更多地关注重要性较高的样本。
针对以上问题,对原算法的经验回放机制进行了优化,采用了基于动态排序的优先经验回放机制,并利用时间差分误差(Temporal Difference error,TD er⁃ ror) 来更新神经网络参数。TD误差能够更准确地反映神经网络在当前状态下的预测准确度与实际奖励之间的差距,进而更有效地指导网络参数的更新,从而提高移动机器人的行为性能。TD误差的计算公式如下:
当TD误差越大时,表示当前状态下值函数与TD 目标之间的差距较大,这意味着网络需要进行更大的调整以逼近真实的奖励情况。因此,较大的TD误差会导致网络参数更新的幅度增加,从而提高了该状态处的学习效率。通过优先选择TD误差较大的经验进行回放,可以更有效地训练网络,使其更快地学习到环境的特征和奖励信号。
因此,采用了基于排序的方式进行优先级判断,即Pαi由δi 来决定优先级。通过将经验按照TD误差的大小进行排序。公式如下所示,其中randi 根据 δi 的绝对值排序得到:
若一个样本的TD误差为δi,则这个样本被采样的概率可以表示为:
式中,α 用于调节抽样样本的优先级程度,当α 接近为0时,退位均匀采样,即所有样本的概率相同。当α 为1时,为贪婪策略取样,Pαi为优先级大小。
为了提高算法的效率,进行动态调整参数,即随着时间的推移逐渐降低TD误差和重要性的权重系数,以使经验的优先级逐渐趋于平衡。计算公式如下:
α0 是初始的权重系数,t 表示当前的学习步数。随着学习步数的增加,经验的优先级逐渐趋于平衡或者更加集中于当前网络无法准确预测的经验。这意味着随着移动机器人不断地学习和经验积累,优先级采样机制会逐渐调整,以更好地适应环境和网络的学习状态。
1.3 奖励函数设计
正确设置奖励函数对于引导移动机器人执行期望的行为并惩罚不当行为至关重要。在DDQN算法中,奖励值通常是一个静态常数,导致移动机器人在探索阶段进行随机搜索,从而增加了算法的收敛时间。
为了加速移动机器人找到目标点的速度,本文对奖励函数进行了优化。通过使移动机器人越接近目标点,所获得的正奖励越高,引导移动机器人更快地学习到正确的行为,从而进一步提高路径规划的成功率。
若移动机器人的目标点坐标为T(xt,yt),移动机器人当前坐标为L(xL,yL),则可以计算出移动机器人当前位置和目标位置的欧式距离d,计算公式如公式(8) 所示。将计算出的数据作为启发因子ϕ ={d0,d1,d2,d3},每次进行动作选择时选择启发因子最小的值,从而启发式引导移动机器人移动,并得出改进后的奖励函数R,如公式(9) 所示。
2 实验仿真与分析
为验证算法的可行性,采用栅格法建立了仿真环境,如图3所示。在该仿真环境中,内嵌入不同形状的方块表示移动中的移动机器人,内嵌入不同形状的圆形表示对应机器人需要到达的目标点,黑色区域表示障碍物即禁行区域,白色区域表示可移动区域。
为了更好地验证PR-DDQN算法可行性,采用消融实验,分别对DDQN、仅加入优先经验池的PE- DDQN、仅加入改进奖励函数的RE-DDQN以及最终改进算法PR-DDQN 进行实验。
DDQN和PE-DDQN算法在仿真实验中采用的奖励函数如下:
同时,为更直观地对比算法收敛速度,本文收集了TD误差数据并对其进行分析,以验证算法效率。
图4展示了各个算法的TD误差对比图,横坐标为探索步数,纵坐标为TD误差数值。通过对比示意图,可以观察到不同算法在达到稳定状态的步数上存在差异。例如,DDQN算法约在9 500步左右开始趋于稳定,而PE-DDQN约在8 000步左右趋于稳定,RE- DDQN 约在5 500 步左右趋于稳定,PR-DDQN 约在4 500步左右趋于稳定。因此,可以得出PR-DDQN算法的性能要优于其他3种算法。
3 结论
针对传统的DDQN算法在路径规划中探索效率低、收敛速度慢的问题,本文提出了PR-DDQN算法。在该算法中,对经验回放机制进行了优化,采用了动态排序的优先经验回放机制,以提高实际样本的利用率,从而提高算法的学习效率和性能。同时,优化了原算法的奖励函数机制,通过动态调整移动机器人每一步的奖励,加速算法的收敛速度。
最后,通过消融仿真实验和数据分析,证明了PR-DDQN算法的有效性和高效性。实验结果表明,在路径规划任务中,PR-DDQN 算法相较于传统的DDQN算法,在探索效率和收敛速度上都取得了显著的提升。这表明提出的PR-DDQN算法在解决路径规划问题上具有较高的性能和实用性,为移动机器人在复杂环境下的行为学习提供了有效的方法和工具。