CN107102644A - 基于深度强化学习的水下机器人轨迹控制方法及控制系统 - Google Patents

基于深度强化学习的水下机器人轨迹控制方法及控制系统 Download PDF

Info

Publication number
CN107102644A
CN107102644A CN201710479333.0A CN201710479333A CN107102644A CN 107102644 A CN107102644 A CN 107102644A CN 201710479333 A CN201710479333 A CN 201710479333A CN 107102644 A CN107102644 A CN 107102644A
Authority
CN
China
Prior art keywords
neutral net
decision
current
mrow
evaluation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710479333.0A
Other languages
English (en)
Other versions
CN107102644B (zh
Inventor
马琼雄
余润笙
石振宇
黄晁星
李腾龙
张庆茂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China Normal University
Original Assignee
South China Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by South China Normal University filed Critical South China Normal University
Priority to CN201710479333.0A priority Critical patent/CN107102644B/zh
Publication of CN107102644A publication Critical patent/CN107102644A/zh
Application granted granted Critical
Publication of CN107102644B publication Critical patent/CN107102644B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/04Control of altitude or depth
    • G05D1/06Rate of change of altitude or depth
    • G05D1/0692Rate of change of altitude or depth specially adapted for under-water vehicles
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/042Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators in which a parameter or coefficient is automatically adjusted to optimise the performance

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Feedback Control In General (AREA)

Abstract

本发明公开了一种基于深度强化学习的水下机器人轨迹控制方法及控制系统,包括学习阶段和应用阶段;在学习阶段,通过仿真器模拟水下机器人的运作过程,采集仿真器所模拟的正在运作的水下机器人的数据,包括各时刻的状态和各时刻对应下一时刻的目标状态,通过这些数据针对决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络四个神经网络进行学习;在应用阶段,获取到水下机器人当前时刻的状态以及下一时刻的目标状态,然后输入至学习阶段最终学习得到的决策神经网络中,通过决策神经网络计算出水下机器人当前时刻需要的推进力。本发明可以实现水下机器人运动轨迹的精确控制。

Description

基于深度强化学习的水下机器人轨迹控制方法及控制系统
技术领域
本发明涉及水下机器人控制技术,特别涉及一种基于深度强化学习的水下机器人轨迹控制方法及控制系统。
背景技术
近年来,水下机器人在海洋探索和海洋环境保护等多个海洋科学领域得到了广泛的应用,其地位日益重要.通过对水下机器人运动轨迹的精准控制,人们可以安全地完成一些危险系数较高的任务,例如勘探海底石油和修理海底管道等.目前水下机器人在指定轨迹上完成任务仍普遍存在着手动操作的方式,手动操作对需要人投入大量的精力,劳动强度大,尤其当水流变化或者是外界干扰时,仅靠人工操作不仅操作复杂并且难以保证水下机器人的轨迹精度。实现水下机器人运动轨迹精准的自主控制将大大节省人力物力,然而,由于水下环境极其复杂,水下机器人的运动极易受到水流、流体阻力的影响,同时水下机器人的自动控制问题具有极强的非线性性质,导致水下机器人动力学模型构建难度较大,在各种水域中缺乏普适性.许多传统的控制方式诸如PID,模糊算法,滑模算法都曾被应用于水下机器人控制领域.虽然传统的控制方法可以使得水下机器人在执行轨迹跟踪任务时达到一定的精度,但仍不能满足水下作业对高精确性的要求,而且参数的整定较为繁琐。因此,本发明的目的在于提供一种通过仿真模型数据或者是根据人工操作数据进行学习,从而能够实现减少参数整定且能实现高精度轨迹控制的方法,提高水下机器人控制性能和作业效率。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提供一种基于深度强化学习的水下机器人轨迹控制方法,通过该控制方法可以实现水下机器人运动轨迹的精确控制,避免由于水下机器人高维连续的行为空间和非线性性质导致的轨迹跟踪精度低的控制问题。
本发明的第二目的在于提供一种用于实现上述方法的基于深度强化学习的水下机器人轨迹控制器系统。
本发明的第三目的在于提供一种基于深度强化学习的水下机器人轨迹控制方法,通过该控制方法可以实现水下机器人运动轨迹的更加精确控制,避免由于水下机器人高维连续的行为空间和非线性性质导致的轨迹跟踪精度低的控制问题。
本发明的第四目的在于提供一种用于实现第三目方法的基于深度强化学习的水下机器人轨迹控制系统。
本发明的第一目的通过下述技术方案实现:一种基于深度强化学习的水下机器人轨迹控制方法,包括学习阶段和应用阶段;在所述学习阶段,通过仿真器模拟水下机器人的运作过程,并且采集仿真器所模拟的正在运作的水下机器人的数据,根据这些数据针对决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络进行学习;具体步骤如下:
S1、首先建立四个神经网络,分别作为决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络,并且针对四个神经网络的神经网络参数进行初始化;其中神经网络的参数指的是神经网络中各层神经元的连接权重;同时建立一个经验数据缓冲区,并进行初始化;然后针对上述初始化后的四个神经网络,从初始时刻开始,进入步骤S2开始学习;
S2、实时采集仿真器所模拟的正在运作的水下机器人在当前时刻的状态;然后根据当前时刻的状态和下一时刻的目标状态,利用当前决策神经网络计算当前时刻需要的推进力;在获取到当前时刻需要的推进力后,将当前时刻需要的推进力实施至仿真器所模拟的正在运作的水下机器人上;然后采用水下机器人的动力学模型计算出水下机器人下一时刻的状态;并且根据当前时刻需要的推进力、下一时刻的状态以及下一时刻的目标状态计算出的当前时刻的奖励信号值;
S3、将步骤S2中获取到的当前时刻的状态、当前时刻的奖励信号值以及下一时刻的目标状态组成一个经验存入经验数据缓冲区;
S4、判断经验数据缓冲区当前存储的数据量是否大于指定阈值,若是,则从经验数据缓冲区中随机选取出N个经验,然后执行步骤S5,否则执行步骤S6;
S5、更新当前决策神经网络、当前辅助决策神经网络、当前评价神经网络和当前辅助评价神经网络的神经网络参数,具体为:
S51、针对于步骤S4中选取出的N个经验中的每个经验进行以下处理:将每个经验中的某时刻状态、某时刻的下一时刻的目标状态输入至当前决策神经网络,通过当前决策神经网络输出某时刻的推进力;同时将每个经验中的某时刻状态、某时刻下一时刻的目标状态输入至当前辅助决策神经网络,通过当前辅助决策神经网络输出某时刻的推进力;然后将每个经验中的某时刻的状态和上述当前决策神经网络输出的某时刻的推进力输入至当前评价神经网络中,将当前评价神经网络的输出均作为当前评价神经网络的评价值;同时将每个经验中的某时刻状态和当前辅助决策神经网络获取输出的某时刻的推进力输入至当前辅助评价神经网络中,将当前辅助评价神经网络的输出均作为当前辅助评价神经网络的评价值;根据当前评价神经网络和当前辅助评价神经网络输出的评价值,利用评价神经网络的损失函数计算出当前评价神经网络的梯度;然后根据当前评价神经网络的梯度对当前评价神经网络的神经网络参数进行更新,得到更新后的评价神经网络,再根据更新后的评价神经网络对当前辅助评价神经网络的神经网络参数进行更新,得到更新后的辅助评价神经网络;
S52、根据当前评价神经网络的评价值,利用决策神经网络的损失函数计算当前决策神经网络的梯度,然后根据当前决策神经网络的梯度对当前决策神经网络的神经网络参数进行更新,得到更新后的决策神经网络,同时根据更新后的决策神经网络的神经网络参数针对辅助决策神经网络的神经网络参数进行更新,得到更新后的辅助决策神经网络,然后进入步骤S6;所述更新后的决策神经网络和更新后的辅助决策神经网络供下一时刻使用;
S6、当下一时刻到来时,即下一时刻为当前时刻时,判定该时刻是否到达时刻T;若否,则返回步骤S2;若是,则表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络均完成一次训练,进入步骤S7;
S7、判断决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络当前的训练次数定值M是否超过定值m;
若否,则将到来的下一时刻重设为初始时刻,然后返回步骤S2,开始决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的下一次训练;
若是,则计算决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的m次训练时通过步骤S2所计算得到的奖励信号值的标准差,并且判断其是否小于第一阈值,若是,则决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络学习结束;若否,则将到来的下一时刻重设为初始时刻,然后返回步骤S2;
在所述应用阶段:首先获取水下机器人当前时刻的状态以及下一时刻的目标状态,然后由上述学习阶段学习完成的决策神经网络根据水下机器人当前时刻的状态以及下一时刻的目标状态计算出当前时刻需要输出至水下机器人的推进力。
优选的,所述学习阶段还包括如下步骤:S8、在水下机器人的运行过程中实时采集各个时刻的数据,针对于步骤S7中学习完成的决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络,进行以下再学习,具体为:
S81、首先初始化经验数据缓冲区;将步骤S7中学习完成的决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络分别作为初始神经网络;然后针对上述初始神经网络,从初始时刻开始,进入步骤S82开始学习;
S82、判断当前时刻是否为初始时刻;
若是,则采集水下机器人在当前时刻的推进力以及下一时刻的目标状态,然后进入步骤S84;
若否,则进入步骤S83;
S83、采集水下机器人当前时刻的状态、当前时刻的推进力以及下一时刻的目标状态;并且获取水下机器人上一时刻的推进力;根据水下机器人上一时刻的推进力、当前时刻的状态以及当前时刻的目标状态计算上一时刻的奖励信号值;然后将上一时刻的状态、上一时刻的奖励信号值以及当前时刻的目标状态组成一个经验后存储进经验数据缓冲区;
S84、判断经验数据缓冲区当前存储的数据量是否大于指定阈值,若是,则从经验数据缓冲区中随机选取出N个经验,然后执行步骤S85,否则执行步骤S86;
S85、更新当前决策神经网络、当前辅助决策神经网络、当前评价神经网络和当前辅助评价神经网络的神经网络参数,具体为:
S851、针对于步骤S84中选取出的N个经验中的每个经验进行以下处理:将每个经验中的某时刻状态、某时刻的下一时刻的目标状态输入至当前决策神经网络,通过当前决策神经网络输出某时刻的推进力;同时将每个经验中的某时刻状态、某时刻下一时刻的目标状态输入至当前辅助决策神经网络,通过当前辅助决策神经网络输出某时刻的推进力;然后将每个经验中的某时刻的状态和上述当前决策神经网络输出的某时刻的推进力输入至当前评价神经网络中,将当前评价神经网络的输出均作为当前评价神经网络的评价值;同时将每个经验中的某时刻状态和当前辅助决策神经网络获取输出的某时刻的推进力输入至当前辅助评价神经网络中,将当前辅助评价神经网络的输出均作为当前辅助评价神经网络的评价值;根据当前评价神经网络和当前辅助评价神经网络输出的评价值,利用评价神经网络的损失函数计算出当前评价神经网络的梯度;然后根据当前评价神经网络的梯度对当前评价神经网络的神经网络参数进行更新,得到更新后的评价神经网络,再根据更新后的评价神经网络对当前辅助评价神经网络的神经网络参数进行更新,得到更新后的辅助评价神经网络;
S852、根据当前评价神经网络的评价值,利用决策神经网络的损失函数计算当前决策神经网络的梯度,然后根据当前决策神经网络的梯度对当前决策神经网络的神经网络参数进行更新,得到更新后的决策神经网络,同时根据更新后的决策神经网络的神经网络参数针对辅助决策神经网络的神经网络参数进行更新,得到更新后的辅助决策神经网络,然后进入步骤S86;所述更新后的决策神经网络和更新后的辅助决策神经网络供下一时刻使用;
S86、当下一时刻到来时,即下一时刻作为当前时刻时,判定该时刻是否到达时刻T;若否,则返回步骤S82;若是,则表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络均完成一次训练,进入步骤S87;
S87、判断决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络从步骤S82所述的初始神经网络开始进行再学习时至当前的训练次数X是否超过定值x;
若否,则将到来的下一时刻重设为初始时刻,然后返回步骤S82,开始决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的下一次训练;
若是,则计算出决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的x次训练时通过步骤S83所计算得到的奖励信号值的标准差,并且判断其是否小于第一阈值,若是,则决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络学习结束;若否,则将到来的下一时刻重设为初始时刻,然后返回步骤S82。
更进一步的,所述步骤S51和步骤S851中,利用评价神经网络的损失函数计算出当前评价神经网络的梯度为:
yi=ri+γQ'(si,μ'(sit')|ωt');
其中Loss为评价神经网络的损失函数,Loss为:
其中μ(sit)是指选取出的N个经验中第i个经验的某时刻的状态si和某时刻的下一时刻的目标状态输入至当前决策神经网络时通过当前决策神经网络输出的某时刻的推进力;Q(si,μ(sit)|ωt)是选取出的N个经验中第i个经验的某时刻的状态si以及上述当前决策神经网络输出的某时刻的推进力μ(sit)作为当前评价神经网络的输入时得到的当前评价神经网络的输出;θt为当前决策神经网络的神经网络参数,ωt为当前评价神经网络的神经网络参数;
其中μ'(sit')是指选取出的N个经验中第i个经验的某时刻的状态si和某时刻的下一时刻的目标状态输入至当前辅助决策神经网络时通过当前辅助决策神经网络输出的某时刻的推进力;Q'(si,μ'(sit')|ωt')是选取出的N个经验中第i个经验的某时刻的状态si以及上述当前辅助决策神经网络输出的某时刻的推进力μ'(sit')作为当前辅助评价神经网络的输入时得到的当前辅助评价神经网络的输出;θt'为当前辅助决策神经网络的神经网络参数,ωt'为当前辅助评价神经网络的神经网络参数;
ri是选取出的N个经验中第i个经验中某时刻的奖励信号值,γ是折扣系数,取值范围在0和1之间;
所述步骤S51和步骤S851中根据当前评价神经网络的梯度对当前评价神经网络的神经网络参数进行更新,得到:
其中ωt为当前评价神经网络的神经网络参数;ωt+1为当前评价神经网络的神经网络参数更新后的值,对应为更新后的评价神经网络的神经网络参数;α为评价神经网络的神经网络参数学习率,取值范围在0和1之间;
所述步骤S51和步骤S851中根据更新后的评价神经网络对当前辅助评价神经网络的神经网络参数进行更新,得到:
ω't+1=ρωt+1+(1-ρ)ω't
其中ωt'为当前辅助评价神经网络的神经网络参数;ω't+1为当前辅助评价神经网络的神经网络参数更新后的值,对应为更新后的辅助评价神经网络的神经网络参数;ρ是辅助决策神经网络和辅助评价神经网络的神经网参数的学习率,取值范围在0和1之间;
所述步骤S52和步骤S852中根据当前评价神经网络的评价值,利用决策神经网络的损失函数计算当前决策神经网络的梯度为:
其中J为决策神经网络的损失函数,J为:
J=Q(si,μ(sit)|ωt);
所述步骤S52和步骤S852中根据当前决策神经网络的梯度对当前决策神经网络的神经网络参数进行更新,得到:
其中θt为当前决策神经网络的神经网络参数;θt+1为当前决策神经网络的神经网络参数更新后的值,对应为更新后的决策神经网络的神经网络参数;β为决策神经网络的神经网络参数学习率,取值范围在0和1之间;
所述步骤S52和步骤S852根据更新后的决策神经网络的神经网络参数针对辅助决策神经网络的神经网络参数进行更新,得到:
θ't+1=ρθt+1+(1-ρ)θ't
其中θ't为当前辅助决策神经网络的神经网络参数;θ't+1为当前辅助决策神经网络的神经网络参数更新后的值,对应为更新后的辅助决策神经网络的神经网络参数。
更进一步的,所述步骤S7中计算决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的m次训练时计算得到的奖励信号值的标准差为:
其中:
其中表示第j次训练过程中当前时刻t的奖励信号值;表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中下一时刻t+1的状态,表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中下一时刻t+1的目标状态,其中表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中计算出的当前时刻t需要的推进力;是决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成第定值M-定值m至第m次总共最近的m次训练时计算得到的所有奖励信号值的均值;ε为第一阈值;t=1即为初始时刻;
所述步骤S87中计算决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的x次训练时计算得到的奖励信号值的标准差为:
其中:
其中表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中当前时刻t的状态,表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中当前时刻t的目标状态,其中表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中采集的上一时刻t-1的推进力;表示第j次训练过程中计算出的上一时刻t-1的奖励信号值;为决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成第X-x至第X总共最近的x次训练时得到的所有奖励信号值的均值。
本发明的第二目的通过下述技术方案实现:一种用于实现上述基于深度强化学习的水下机器人轨迹控制方法的基于深度强化学习的水下机器人轨迹控制系统,其特征在于,包括仿真器、第一数据采集模块、第一奖励计算模块、第一经验数据缓冲区、第一决策模块和通讯模块;
所述仿真器,用于模拟水下机器人的运作过程,用于接收决策模块发送的水下机器人当前时刻需要的推进力,并且将该推进力实施至所模拟的正在运行的水下机器人上,然后采用水下机器人的动力学模型计算出水下机器人下一时刻的状态;
所述第一数据采集模块,用于学习阶段的各时刻,通过通讯模块实时采集仿真器所模拟的正在运作的水下机器人在当前时刻的状态和下一时刻的目标状态,并且传送至决策模块,同时采集仿真器采用水下机器人的动力学模型计算出的水下机器人下一时刻的状态;用于在应用阶段的各时刻,通过通讯模块实时采集水下机器人在当前时刻的状态和下一时刻的目标状态;
所述第一奖励计算模块,用于根据仿真器所模拟的正在运行的水下机器人当前时刻需要的推进力、下一时刻的状态以及下一时刻的目标状态计算出的当前时刻的奖励信号值;
所述第一经验数据缓冲区,用于在各时刻接收仿真器所模拟的正在运行的水下机器人当前时刻的状态、当前时刻的奖励信号值以及下一时刻的目标状态所组成的经验,并进行存储;
所述第一决策模块:用于在学习阶段建立决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络;用于在学习阶段获取到仿真器所模拟的正在运行的水下机器人在当前时刻的状态和下一时刻的状态后,通过当前决策神经网络计算出水下机器人当前时刻需要的推进力,然后发送至仿真器;用于在学习阶段的各时刻,当第一经验数据缓冲区存储进仿真器所模拟的正在运行的水下机器人当前时刻的状态、当前时刻的奖励信号值以及下一时刻的目标状态所组成的经验后,判断第一经验数据缓冲区当前存储的数据量是否大于指定阈值,若是,则从第一经验数据缓冲区中随机选取出N个经验,通过这N个经验实现对当前决策神经网络、当前辅助决策神经网络、当前评价神经网络和当前辅助评价神经网络的神经网络参数更新;用于在决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络当前训练次数超过定值M时,计算出决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的m次训练时所计算得到的奖励信号值的标准差,当该标准差小于第一阈值时,结束决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的学习;
用于在应用阶段获取第一数据采集模块所采集的水下机器人当前时刻的状态以及下一时刻的目标状态,然后将其输入至学习阶段学习完成的决策神经网络,通过学习阶段学习完成的决策神经网络计算出水下机器人当前时刻需要的推进力;
所述通讯模块,用于实现第一数据采集模块、第一决策模块与水下机器人控制系统之间的通讯;用于将第一决策模块在应用阶段得到的水下机器人当前时刻需要的推进力发送至水下机器人控制系统;用于在应用阶段的各时刻,将水下机器人当前时刻的状态和下一时刻的目标状态发送至第一数据采集模块。
优选的,还包括第二数据采集模块、第二奖励计算模块、第二经验数据缓冲区、第二决策模块;
所述第二数据采集模块,用于在学习阶段的各时刻,通过通讯模块采集水下机器人当前时刻的状态、当前时刻的推进力以及下一时刻的目标状态;
所述第二奖励计算模块,用于根据第二数据采集模块获取的水下机器人上一时刻的推进力、当前时刻的状态以及当前时刻的目标状态计算上一时刻的奖励信号值;
所述第二经验数据缓冲区,用于在各时刻接收水下机器人上一时刻的状态、上一时刻的奖励信号值以及当前时刻的目标状态所组成的经验,并进行存储;
所述第二决策模块:
用于在第一决策模块结束对决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的学习之后,将第一决策模块最终学习得到的决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络作为初始神经网络,然后进行再次学习;
用于在学习阶段的各时刻,当第二经验数据缓冲区存储进水下机器人上一时刻的状态、上一时刻的奖励信号值以及当前时刻的目标状态所组成的经验后,判断第而经验数据缓冲区当前存储的数据量是否大于指定阈值,若是,则从第二经验数据缓冲区中随机选取出N个经验,通过这N个经验实现对当前决策神经网络、当前辅助决策神经网络、当前评价神经网络和当前辅助评价神经网络的神经网络参数更新;用于在决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络当前训练次数超过X时,计算出决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的x次训练时所计算得到的奖励信号值的标准差,当该标准差小于第一阈值时,结束决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的学习,将得到的决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络作为学习阶段学习完成的神经网络,输入至第一决策模块,供第一决策模块在应用阶段时使用。
本发明的第三目的通过下述技术方案实现:一种基于深度强化学习的水下机器人轨迹控制方法,包括学习阶段和应用阶段;在所述学习阶段,具体步骤如下:
S1、首先建立四个神经网络,分别作为决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络,并且针对四个神经网络的神经网络参数进行初始化;其中神经网络的参数指的是神经网络中各层神经元的连接权重;同时建立一个经验数据缓冲区,并进行初始化;然后针对上述初始化后的四个神经网络,从初始时刻开始,进入步骤S2开始学习;
S2、判断当前时刻是否为初始时刻;
若是,则采集水下机器人在当前时刻的推进力以及下一时刻的目标状态,然后进入步骤S4;
若否,则进入步骤S3;
S3、采集水下机器人当前时刻的状态、当前时刻的推进力以及下一时刻的目标状态;并且获取水下机器人上一时刻的推进力;根据水下机器人上一时刻的推进力、当前时刻的状态以及当前时刻的目标状态计算上一时刻的奖励信号值;然后将水下机器人上一时刻的状态、上一时刻的奖励信号值以及当前时刻的目标状态组成一个经验后存储进经验数据缓冲区;
S4、判断经验数据缓冲区当前存储的数据量是否大于指定阈值,若是,则从经验数据缓冲区中随机选取出N个经验,然后执行步骤S5,否则执行步骤S6;
S5、更新当前决策神经网络、当前辅助决策神经网络、当前评价神经网络和当前辅助评价神经网络的神经网络参数,具体为:
S51、针对于步骤S4中选取出的N个经验中的每个经验进行以下处理:将每个经验中的某时刻状态、某时刻的下一时刻的目标状态输入至当前决策神经网络,通过当前决策神经网络输出某时刻的推进力;同时将每个经验中的某时刻状态、某时刻下一时刻的目标状态输入至当前辅助决策神经网络,通过当前辅助决策神经网络输出某时刻的推进力;然后将每个经验中的某时刻的状态和上述当前决策神经网络输出的某时刻的推进力输入至当前评价神经网络中,将当前评价神经网络的输出均作为当前评价神经网络的评价值;同时将每个经验中的某时刻状态和当前辅助决策神经网络获取输出的某时刻的推进力输入至当前辅助评价神经网络中,将当前辅助评价神经网络的输出均作为当前辅助评价神经网络的评价值;根据当前评价神经网络和当前辅助评价神经网络输出的评价值,利用评价神经网络的损失函数计算出当前评价神经网络的梯度;然后根据当前评价神经网络的梯度对当前评价神经网络的神经网络参数进行更新,得到更新后的评价神经网络,再根据更新后的评价神经网络对当前辅助评价神经网络的神经网络参数进行更新,得到更新后的辅助评价神经网络;
S52、根据当前评价神经网络的评价值,利用决策神经网络的损失函数计算当前决策神经网络的梯度,然后根据当前决策神经网络的梯度对当前决策神经网络的神经网络参数进行更新,得到更新后的决策神经网络,同时根据更新后的决策神经网络的神经网络参数针对辅助决策神经网络的神经网络参数进行更新,得到更新后的辅助决策神经网络,然后进入步骤S6;所述更新后的决策神经网络和更新后的辅助决策神经网络供下一时刻使用;
S6、当下一时刻到来时,即下一时刻作为当前时刻时,判定该时刻是否到达时刻T;若否,则返回步骤S2;若是,则表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络均完成一次训练,进入步骤S7;
S7、判断决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络当前的训练次数Y是否超过定值y;
若否,则将到来的下一时刻重设为初始时刻,然后返回步骤S2,开始决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的下一次训练;
若是,则计算决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的y次训练时计算得到的奖励信号值的标准差,并且判断其是否小于第一阈值,若是,则决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络学习结束;若否,则将到来的下一时刻重设为初始时刻,然后返回步骤S2;
在所述应用阶段:首先获取水下机器人当前时刻的状态以及下一时刻的目标状态,然后由上述学习阶段学习完成的决策神经网络根据水下机器人当前时刻的状态以及下一时刻的目标状态计算出当前时刻需要输出至水下机器人的推进力。
优选的,所述步骤S51,利用评价神经网络的损失函数计算出当前评价神经网络的梯度为:
yi=ri+γQ'(si,μ'(sit')|ωt');
其中Loss为评价神经网络的损失函数,Loss为:
其中μ(sit)是指选取出的N个经验中第i个经验的某时刻的状态si和某时刻的下一时刻的目标状态输入至当前决策神经网络时通过当前决策神经网络输出的某时刻的推进力;Q(si,μ(sit)|ωt)是选取出的N个经验中第i个经验的某时刻的状态si以及上述当前决策神经网络输出的某时刻的推进力μ(sit)作为当前评价神经网络的输入时得到的当前评价神经网络的输出;θt为当前决策神经网络的神经网络参数,ωt为当前评价神经网络的神经网络参数;其中μ'(sit')是指选取出的N个经验中第i个经验的某时刻的状态si和某时刻的下一时刻的目标状态输入至当前辅助决策神经网络时通过当前辅助决策神经网络输出的某时刻的推进力;Q'(si,μ'(sit')|ωt')是选取出的N个经验中第i个经验的某时刻的状态si以及上述当前辅助决策神经网络输出的某时刻的推进力μ'(sit')作为当前辅助评价神经网络的输入时得到的当前辅助评价神经网络的输出;θt'为当前辅助决策神经网络的神经网络参数,ωt'为当前辅助评价神经网络的神经网络参数;ri是选取出的N个经验中第i个经验中某时刻的奖励信号值,γ是折扣系数,取值范围在0和1之间;
所述步骤S51中根据当前评价神经网络的梯度对当前评价神经网络的神经网络参数进行更新,得到:
其中ωt为当前评价神经网络的神经网络参数;ωt+1为当前评价神经网络的神经网络参数更新后的值,对应为更新后的评价神经网络的神经网络参数;α为评价神经网络的神经网络参数学习率,取值范围在0和1之间;
所述步骤S51中根据更新后的评价神经网络对当前辅助评价神经网络的神经网络参数进行更新,得到:
ω't+1=ρωt+1+(1-ρ)ω't
其中ωt'为当前辅助评价神经网络的神经网络参数;ω't+1为当前辅助评价神经网络的神经网络参数更新后的值,对应为更新后的辅助评价神经网络的神经网络参数;ρ是辅助决策神经网络和辅助评价神经网络的神经网参数的学习率,取值范围在0和1之间;
所述步骤S52中根据当前评价神经网络的评价值,利用决策神经网络的损失函数计算当前决策神经网络的梯度为:
其中J为决策神经网络的损失函数,J为:
J=Q(si,μ(sit)|ωt);
所述步骤S52中根据当前决策神经网络的梯度对当前决策神经网络的神经网络参数进行更新,得到:
其中θt为当前决策神经网络的神经网络参数;θt+1为当前决策神经网络的神经网络参数更新后的值,对应为更新后的决策神经网络的神经网络参数;β为决策神经网络的神经网络参数学习率,取值范围在0和1之间;
所述步骤S52根据更新后的决策神经网络的神经网络参数针对辅助决策神经网络的神经网络参数进行更新,得到:
θ't+1=ρθt+1+(1-ρ)θ't
其中θ't为当前辅助决策神经网络的神经网络参数;θ't+1为当前辅助决策神经网络的神经网络参数更新后的值,对应为更新后的辅助决策神经网络的神经网络参数。
优选的,所述步骤S7中计算决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的y次训练时计算得到的奖励信号值的标准差为:
其中:
其中表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中当前时刻t的状态,表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中当前时刻t的目标状态,其中表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中上一时刻t-1的推进力;表示第j次训练过程中上一时刻t-1的奖励信号值;为决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成第Y-y至第Y总共最近的y次训练时得到的所有奖励信号值的均值;ε为第一阈值。
本发明的第四目的通过下述技术方案实现:一种用于实现第三目的中基于深度强化学习的水下机器人轨迹控制方法的基于深度强化学习的水下机器人轨迹控制系统,包括数据采集模块、奖励计算模块、经验数据缓冲区、决策模块和通讯模块;
所述数据采集模块,用于在学习阶段的各时刻,通过通讯模块采集水下机器人当前时刻的状态、当前时刻的推进力以及下一时刻的目标状态;用于在应用阶段的各时刻,采集水下机器人当前时刻的状态和下一时刻的目标状态;
所述奖励计算模块,用于根据数据采集模块获取的水下机器人上一时刻的推进力、当前时刻的状态以及当前时刻的目标状态计算上一时刻的奖励信号值;
所述经验数据缓冲区,用于在各时刻接收水下机器人上一时刻的状态、上一时刻的奖励信号值以及当前时刻的目标状态所组成的经验,并进行存储;
所述决策模块:
用于在学习阶段建立决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络;
用于在学习阶段的各时刻,当经验数据缓冲区存储进水下机器人上一时刻的状态、上一时刻的奖励信号值以及当前时刻的目标状态所组成的经验后,判断经验数据缓冲区当前存储的数据量是否大于指定阈值,若是,则从经验数据缓冲区中随机选取出N个经验,通过这N个经验实现对当前决策神经网络、当前辅助决策神经网络、当前评价神经网络和当前辅助评价神经网络的神经网络参数的一次更新,当到来的下一时刻达到T时刻时,完成一次训练;
用于在决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络当前训练次数超过Y时,获取到决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的y次训练时奖励计算模块所计算得到的奖励信号值,从而计算出决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的y次训练时奖励信号值的标准差,当该奖励信号值的标准差小于第一阈值时,结束决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的学习;
用于在应用阶段从数据采集模块中获取水下机器人当前时刻的状态以及下一时刻的目标状态,然后将其输入至学习阶段学习完成的决策神经网络,通过学习阶段学习完成的决策神经网络计算出水下机器人当前时刻需要的推进力。
所述通讯模块,用于实现数据采集模块和决策模块与水下机器人控制系统之间的通讯,将决策模块在应用阶段计算出的水下机器人当前时刻需要的推进力发送至水下机器人控制系统;用于将在学习阶段各时刻,将水下机器人当前时刻的状态、当前时刻的推进力以及下一时刻的目标状态传送至数据采集模块;用于在应用阶段的各时刻,将水下机器人当前时刻的状态和下一时刻的目标状态发送至数据采集模块。
本发明相对于现有技术具有如下的优点及效果:
(1)本发明中公开的一种基于深度强化学习的水下机器人轨迹控制方法,包括学习阶段和应用阶段;在学习阶段,通过仿真器模拟水下机器人的运作过程,并且采集仿真器所模拟的正在运作的水下机器人的数据,包括各时刻的状态和各时刻对应下一时刻的目标状态,通过这些数据针对决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络四个神经网络进行学习;在应用阶段,获取到水下机器人当前时刻的状态以及下一时刻的目标状态,然后输入至学习阶段最终学习得到的决策神经网络中,通过决策神经网络计算出水下机器人当前时刻需要的推进力。其中本发明四个神经网络在各时刻,当前决策神经网络和当前决策神经网络在输入数据后,通过当前评价神经网络和当前辅助评价神经网络分别对应针对当前决策神经网络和当前辅助决策神经网络的输出进行评价,反映出对当前决策神经网络输出对最终控制效果的影响,并且通过评价结果更新当前决策神经网络和当前辅助决策神经网络的神经网络参数;其中当前评价神经网络和当前辅助评价神经网络在获取到评价结果后,同时通过评价结果针对当前评价神经网络和当前辅助评价神经网络的神经网络参数进行更新;可见,本发明在学习阶段通过深度强化学习的方式最终学习得到决策神经网络,能够实现水下机器人运动轨迹的精确控制,避免由于水下机器人高维连续的行为空间和非线性性质导致的轨迹跟踪精度低的控制问题。另外本发明针对四个神经网络进行训练的数据来自于仿真器所模拟的正在水下运行的水下机器人,因此不需要经过现场学习,具有操作简单以及方便的优点。
(2)本发明中公开的一种基于深度强化学习的水下机器人轨迹控制方法,在通过仿真器所模拟的正在运作的水下机器人的采集数据训练完四个神经网络后,还可以通过实时采集的实际水下机器人的数据对上述训练完成的四个神经网络进行再学习,能够有效避免使用仿真模型不够真实而带来偏差的问题,因此能够实现水下机器人运动轨迹的更高精确控制。
(3)本发明公开的另一种基于深度强化学习的水下机器人轨迹控制方法,包括学习阶段和应用阶段;在学习阶段各时刻,直接采集实际运行的水下机器人以下数据,包括当前时刻的状态、当前时刻的推进力和下一时刻的目标状态;
通过这些数据针对决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络四个神经网络进行学习。在应用阶段,获取到水下机器人当前时刻的状态以及下一时刻的目标状态,然后输入至学习阶段最终学习得到的决策神经网络中,通过决策神经网络计算出水下机器人当前时刻需要的推进力。其中本发明四个神经网络在各时刻,当前决策神经网络和当前决策神经网络在输入数据后,通过当前评价神经网络和当前辅助评价神经网络分别对应针对当前决策神经网络和当前辅助决策神经网络的输出进行评价,反映出对当前决策神经网络输出对最终控制效果的影响,并且通过评价结果更新当前决策神经网络和当前辅助决策神经网络的神经网络参数;同时当前评价神经网络和当前辅助评价神经网络在获取到评价结果后,同时通过评价结果针对当前评价神经网络和当前辅助评价神经网络的神经网络参数进行更新;可见,本发明在学习阶段通过深度强化学习的方式最终学习得到决策神经网络,能够实现水下机器人运动轨迹的精确控制,避免由于水下机器人高维连续的行为空间和非线性性质导致的轨迹跟踪精度低的控制问题。另外本发明针对四个神经网络进行训练的数据来自于实际在水下运行的水下机器人,因此学习能够学习得到更加准确的决策神经网络,提高轨迹控制的精度。
(4)本发明两种基于深度强化学习的水下机器人轨迹控制方法中,均建立了决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络四个神经网络;通过辅助决策神经网络和辅助评价神经网络能够有效提高决策神经网络和评价神经网络的学习速度。
附图说明
图1是本发明实施例1的水下机器人轨迹控制系统框图。
图2是本发明实施例2的水下机器人轨迹控制系统框图。
图3是本发明实施例3的水下机器人轨迹控制系统框图。
图4是目标轨迹为直线轨迹时,本发明方法与传统PID控制器所控制的水下机器人轨迹图。
图5是目标轨迹为直线轨迹时,本发明方法与传统PID控制器所控制的水下机器人轨迹的误差图。
图6是目标轨迹为圆弧轨迹时,本发明方法与传统PID控制器所控制的水下机器人轨迹图。
图7是目标轨迹为圆弧轨迹时,本发明方法与传统PID控制器所控制的水下机器人轨迹的误差图。
图8是目标轨迹为正弦曲线轨迹时,本发明方法与传统PID控制器所控制的水下机器人轨迹图。
图9是目标轨迹为正弦曲线轨迹时,本发明方法与传统PID控制器所控制的水下机器人轨迹的误差图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例1
本实施例公开了一种基于深度强化学习的水下机器人轨迹控制方法,其特征在于,包括学习阶段和应用阶段;在所述学习阶段,通过仿真器模拟水下机器人的运作过程,并且采集仿真器所模拟的正在运作的水下机器人的数据,根据这些数据针对决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络进行学习;具体步骤如下:
S1、首先建立四个神经网络,分别作为决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络,并且针对四个神经网络的神经网络参数进行初始化;其中神经网络的参数指的是神经网络中各层神经元的连接权重;同时建立一个经验数据缓冲区,并进行初始化;然后针对上述初始化后的四个神经网络,从初始时刻开始,进入步骤S2开始学习;
S2、实时采集仿真器所模拟的正在运作的水下机器人在当前时刻的状态;然后根据当前时刻的状态和下一时刻的目标状态,利用当前决策神经网络计算当前时刻需要的推进力;在获取到当前时刻需要的推进力后,将当前时刻需要的推进力实施至仿真器所模拟的正在运作的水下机器人上;然后采用水下机器人的动力学模型计算出水下机器人下一时刻的状态;并且根据当前时刻需要的推进力、下一时刻的状态以及下一时刻的目标状态计算出的当前时刻的奖励信号值;
S3、将步骤S2中获取到的当前时刻的状态、当前时刻的奖励信号值以及下一时刻的目标状态组成一个经验存入经验数据缓冲区;
S4、判断经验数据缓冲区当前存储的数据量是否大于指定阈值,若是,则从经验数据缓冲区中随机选取出N个经验,然后执行步骤S5,否则执行步骤S6;在本实施例中上述指定阈值去128,N为64。
S5、更新当前决策神经网络、当前辅助决策神经网络、当前评价神经网络和当前辅助评价神经网络的神经网络参数,具体为:
S51、针对于步骤S4中选取出的N个经验中的每个经验进行以下处理:将每个经验中的某时刻状态、某时刻的下一时刻的目标状态输入至当前决策神经网络,通过当前决策神经网络输出某时刻的推进力;同时将每个经验中的某时刻状态、某时刻下一时刻的目标状态输入至当前辅助决策神经网络,通过当前辅助决策神经网络输出某时刻的推进力;然后将每个经验中的某时刻的状态和上述当前决策神经网络输出的某时刻的推进力输入至当前评价神经网络中,将当前评价神经网络的输出作为当前评价神经网络的评价值;同时将每个经验中的某时刻状态和当前辅助决策神经网络获取输出的某时刻的推进力输入至当前辅助评价神经网络中,将当前辅助评价神经网络的输出均作为当前辅助评价神经网络的评价值;根据当前评价神经网络和当前辅助评价神经网络输出的评价值,利用评价神经网络的损失函数计算出当前评价神经网络的梯度;然后根据当前评价神经网络的梯度对当前评价神经网络的神经网络参数进行更新,得到更新后的评价神经网络,再根据更新后的评价神经网络对当前辅助评价神经网络的神经网络参数进行更新,得到更新后的辅助评价神经网络;
其中在本步骤中利用评价神经网络的损失函数计算出当前评价神经网络的梯度为:
yi=ri+γQ'(si,μ'(sit')|ωt');
其中Loss为评价神经网络的损失函数,Loss为:
其中μ(sit)是指选取出的N个经验中第i个经验的某时刻的状态si和某时刻的下一时刻的目标状态输入至当前决策神经网络时通过当前决策神经网络输出的某时刻的推进力;Q(si,μ(sit)|ωt)是选取出的N个经验中第i个经验的某时刻的状态si以及上述当前决策神经网络输出的某时刻的推进力μ(sit)作为当前评价神经网络的输入时得到的当前评价神经网络的输出;θt为当前决策神经网络的神经网络参数,ωt为当前评价神经网络的神经网络参数;其中μ'(sit')是指选取出的N个经验中第i个经验的某时刻的状态si和某时刻的下一时刻的目标状态输入至当前辅助决策神经网络时通过当前辅助决策神经网络输出的某时刻的推进力;Q'(si,μ'(sit')|ωt')是选取出的N个经验中第i个经验的某时刻的状态si以及上述当前辅助决策神经网络输出的某时刻的推进力μ'(sit')作为当前辅助评价神经网络的输入时得到的当前辅助评价神经网络的输出;θt'为当前辅助决策神经网络的神经网络参数,ωt'为当前辅助评价神经网络的神经网络参数;ri是选取出的N个经验中第i个经验中某时刻的奖励信号值,γ是折扣系数,取值范围在0和1之间,在本实施例中折扣系数γ设置为0.99。
本步骤中根据当前评价神经网络的梯度对当前评价神经网络的神经网络参数进行更新,得到:
其中ωt为当前评价神经网络的神经网络参数;ωt+1为当前评价神经网络的神经网络参数更新后的值,对应为更新后的评价神经网络的神经网络参数;α为评价神经网络的神经网络参数学习率,取值范围在0和1之间,在本实施例中α取0.05;
所述步骤S51中根据更新后的评价神经网络对当前辅助评价神经网络的神经网络参数进行更新,得到:
ω't+1=ρωt+1+(1-ρ)ω't
其中ωt'为当前辅助评价神经网络的神经网络参数;ω't+1为当前辅助评价神经网络的神经网络参数更新后的值,对应为更新后的辅助评价神经网络的神经网络参数;ρ是辅助决策神经网络和辅助评价神经网络的神经网参数的学习率,取值范围在0和1之间,在本实施例中ρ取0.01;
S52、根据当前评价神经网络的评价值,利用决策神经网络的损失函数计算当前决策神经网络的梯度,然后根据当前决策神经网络的梯度对当前决策神经网络的神经网络参数进行更新,得到更新后的决策神经网络,同时根据更新后的决策神经网络的神经网络参数针对辅助决策神经网络的神经网络参数进行更新,得到更新后的辅助决策神经网络,然后进入步骤S6;所述更新后的决策神经网络和更新后的辅助决策神经网络供下一时刻使用;
本步骤中根据当前评价神经网络的评价值,利用决策神经网络的损失函数计算当前决策神经网络的梯度为:
其中J为决策神经网络的损失函数,J为:
J=Q(si,μ(sit)|ωt);
本步骤中根据当前决策神经网络的梯度对当前决策神经网络的神经网络参数进行更新,得到:
其中θt为当前决策神经网络的神经网络参数;θt+1为当前决策神经网络的神经网络参数更新后的值,对应为更新后的决策神经网络的神经网络参数;β为决策神经网络的神经网络参数学习率,取值范围在0和1之间,在本实施例中β取0.05;
本步骤中根据更新后的决策神经网络的神经网络参数针对辅助决策神经网络的神经网络参数进行更新,得到:
θ't+1=ρθt+1+(1-ρ)θ't
其中θ't为当前辅助决策神经网络的神经网络参数;θ't+1为当前辅助决策神经网络的神经网络参数更新后的值,对应为更新后的辅助决策神经网络的神经网络参数。
S6、当下一时刻到来时,即下一时刻为当前时刻时,判定该时刻是否到达时刻T;若否,则返回步骤S2;若是,则表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络均完成一次训练,进入步骤S7;在本实施例中T为200,即时刻200即为第200个时刻。
S7、判断决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络当前的训练次数定值M是否超过定值m;在本实施例中定值m取100。
若否,则将到来的下一时刻重设为初始时刻,然后返回步骤S2,开始决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的下一次训练;
若是,则计算决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的m次训练时通过步骤S2所计算得到的奖励信号值的标准差,并且判断其是否小于第一阈值,若是,则决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络学习结束;若否,则将到来的下一时刻重设为初始时刻,然后返回步骤S2;
其中本步骤中计算决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的m次训练时计算得到的奖励信号值的标准差为:
其中:
其中表示第j次训练过程中当前时刻t的奖励信号值;表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中下一时刻t+1的状态,表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中下一时刻t+1的目标状态,其中表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中计算出的当前时刻t需要的推进力;是决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成第定值M-定值m至第m次总共最近的m次训练时计算得到的所有奖励信号值的均值;ε为第一阈值,在本实施例中第一阈值设置为0.015;t=1即为初始时刻。
在所述应用阶段:首先获取水下机器人当前时刻的状态以及下一时刻的目标状态,然后由上述学习阶段学习完成的决策神经网络根据水下机器人当前时刻的状态以及下一时刻的目标状态计算出当前时刻需要输出至水下机器人的推进力。
在本实施例中所采用的决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络4个神经网络具有相同的网络结构,包括3个隐藏的全连接层,每一个隐藏层有100个神经元,隐藏层之间的激活函数为Relu函数,输出层和隐藏层之间的激活函数设置为Tanh。
本实施例中水下机器人当前时刻的状态由水下机器人当前时刻的速度和位置确定,水下机器人下一时刻的目标状态由水下机器人下一时刻的目标速度和目标位置确定。
将本实施例方法与传统通过PID控制器控制水下机器人轨迹的方法相比,其中图4、6和8所示分别是目标轨迹为直线、圆弧曲线和正弦曲线的情况下,这两种方法的实际轨迹,图5、7和9所示分别是目标轨迹为直线、圆弧曲线和正弦曲线的情况下,这两种方法的实际轨迹的误差。其中图4至图9中,benchmark是对应理想的目标轨迹,DRL是对应本实施例基于深度强化学习的水下机器人轨迹控制方法获取到的实际轨迹;通过这些图可以看出本实施例方法比传统通过PID控制器控制水下机器人轨迹的方法具有更好的控制精度。
本实施例还公开了一种用于实现上述方法的基于深度强化学习的水下机器人轨迹控制系统,如图1所示,包括仿真器、第一数据采集模块、第一奖励计算模块、第一经验数据缓冲区、第一决策模块和通讯模块;
仿真器,用于模拟水下机器人的运作过程,用于接收决策模块发送的水下机器人当前时刻需要的推进力,并且将该推进力实施至所模拟的正在运行的水下机器人上,然后采用水下机器人的动力学模型计算出水下机器人下一时刻的状态;在本实施例中基于OpenAI Gym开发仿真模块,水下机器人的实验平台为OpenROV;
其中水下机器人的动力学模型如下所示:
其中,M为质量矩阵;C(v)为向心力与科里奥利力矩阵;D(v)为阻尼矩阵;g(η)为重力与浮力矩阵;δ为模型的不确定向量,表示外界环境的干扰;F为目标输入量,在这里表示水下机器人的电机推进力,位置变量η与速度变量v分别表示为:和v=[u,v1,r]T。根据水下机器人的仿真模型计算下一时刻t+1的状态为:
st+1=[v(t+1),η(t+1)]T
其中:
v(t+1)=M-1F+M-1G(t);
其中:
G(t)=-D(v(t))v(t)-g(η(t))-C(v(t))v(t)-δ;
为水下器件人当前时刻偏航角。
第一数据采集模块,用于学习阶段的各时刻,实时采集仿真器所模拟的正在运作的水下机器人在当前时刻的状态和下一时刻的目标状态并且传送至决策模块,同时采集仿真器采用水下机器人的动力学模型计算出的水下机器人下一时刻的状态;用于在应用阶段的各时刻,通过通讯模块实时采集水下机器人在当前时刻的状态和下一时刻的目标状态;
第一奖励计算模块,用于根据仿真器所模拟的正在运行的水下机器人当前时刻需要的推进力、下一时刻的状态以及下一时刻的目标状态计算出的当前时刻的奖励信号值;其中本实施例中当前时刻的奖励信号值计算公式如下:
其中Ft为当前时刻t需要的推进力;st+1为下一个时刻t+1的状态;为下一时刻t+1的目标状态;rt为当前时刻t的奖励信号值,其反应的是将当前时刻t需要的推进力Ft实施至仿真器所模拟的正在运作的水下机器人上时,在下一个时刻t+1根据实际状态和目标状态来判断实施的当前时刻t需要的推进力Ft的合适程度。
第一经验数据缓冲区,用于在当前时刻,接收仿真器所模拟的正在运行的水下机器人当前时刻的状态、当前时刻的奖励信号值以及下一时刻的目标状态所组成的经验,并进行存储;
第一决策模块:用于在学习阶段建立决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络;用于在学习阶段获取到仿真器所模拟的正在运行的水下机器人在当前时刻的状态和下一时刻的状态后,通过当前决策神经网络计算出水下机器人当前时刻需要的推进力,然后发送至仿真器;用于在学习阶段的各时刻,当第一经验数据缓冲区存储进仿真器所模拟的正在运行的水下机器人当前时刻的状态、当前时刻的奖励信号值以及下一时刻的目标状态所组成的经验后,判断第一经验数据缓冲区当前存储的数据量是否大于指定阈值,若是,则从第一经验数据缓冲区中随机选取出N个经验,通过这N个经验实现对当前决策神经网络、当前辅助决策神经网络、当前评价神经网络和当前辅助评价神经网络的神经网络参数更新;用于在决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络当前训练次数超过定值M时,计算出决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的m次训练时所计算得到的奖励信号值的标准差,当该标准差小于第一阈值时,结束决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的学习;
用于在应用阶段获取第一数据采集模块所采集的水下机器人当前时刻的状态以及下一时刻的目标状态,然后将其输入至学习阶段学习完成的决策神经网络,通过学习阶段学习完成的决策神经网络计算出水下机器人当前时刻需要的推进力;
所述通讯模块,用于实现第一数据采集模块、第一决策模块与水下机器人控制系统之间的通讯;用于将第一决策模块在应用阶段得到的水下机器人当前时刻需要的推进力发送至水下机器人控制系统;用于在应用阶段的各时刻,将水下机器人当前时刻的状态和下一时刻的目标状态发送至第一数据采集模块。
实施例2
本实施例公开了一种基于水下机器人轨迹控制方法,其与实施例1中公开的基于水下机器人轨迹控制方法的区别仅在于,本实施例中学习阶段还包括如下步骤:S8、在水下机器人的运行过程中实时采集各个时刻的数据,针对于步骤S7中学习完成的决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络,进行以下再学习,具体为:
S81、首先初始化经验数据缓冲区;将步骤S7中学习完成的决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络分别作为初始神经网络;然后针对上述初始神经网络,从初始时刻开始,进入步骤S82开始学习;
S82、判断当前时刻是否为初始时刻;
若是,则采集水下机器人在当前时刻的推进力以及下一时刻的目标状态,然后进入步骤S84;
若否,则进入步骤S83;
S83、采集水下机器人当前时刻的状态、当前时刻的推进力以及下一时刻的目标状态;并且获取水下机器人上一时刻的推进力;根据水下机器人上一时刻的推进力、当前时刻的状态以及当前时刻的目标状态计算上一时刻的奖励信号值;然后将上一时刻的状态、上一时刻的奖励信号值以及当前时刻的目标状态组成一个经验后存储进经验数据缓冲区;
S84、判断经验数据缓冲区当前存储的数据量是否大于指定阈值,若是,则从经验数据缓冲区中随机选取出N个经验,然后执行步骤S85,否则执行步骤S86;
S85、更新当前决策神经网络、当前辅助决策神经网络、当前评价神经网络和当前辅助评价神经网络的神经网络参数,具体为:
S851、针对于步骤S84中选取出的N个经验中的每个经验进行以下处理:将每个经验中的某时刻状态、某时刻的下一时刻的目标状态输入至当前决策神经网络,通过当前决策神经网络输出某时刻的推进力;同时将每个经验中的某时刻状态、某时刻下一时刻的目标状态输入至当前辅助决策神经网络,通过当前辅助决策神经网络输出某时刻的推进力;然后将每个经验中的某时刻的状态和上述当前决策神经网络输出的某时刻的推进力输入至当前评价神经网络中,将当前评价神经网络的输出均作为当前评价神经网络的评价值;同时将每个经验中的某时刻状态和当前辅助决策神经网络获取输出的某时刻的推进力输入至当前辅助评价神经网络中,将当前辅助评价神经网络的输出均作为当前辅助评价神经网络的评价值;根据当前评价神经网络和当前辅助评价神经网络输出的评价值,利用评价神经网络的损失函数计算出当前评价神经网络的梯度;然后根据当前评价神经网络的梯度对当前评价神经网络的神经网络参数进行更新,得到更新后的评价神经网络,再根据更新后的评价神经网络对当前辅助评价神经网络的神经网络参数进行更新,得到更新后的辅助评价神经网络;
S852、根据当前评价神经网络的评价值,利用决策神经网络的损失函数计算当前决策神经网络的梯度,然后根据当前决策神经网络的梯度对当前决策神经网络的神经网络参数进行更新,得到更新后的决策神经网络,同时根据更新后的决策神经网络的神经网络参数针对辅助决策神经网络的神经网络参数进行更新,得到更新后的辅助决策神经网络,然后进入步骤S86;所述更新后的决策神经网络和更新后的辅助决策神经网络供下一时刻使用;
S86、当下一时刻到来时,即下一时刻作为当前时刻时,判定该时刻是否到达时刻T;若否,则返回步骤S82;若是,则表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络均完成一次训练,进入步骤S87;
S87、判断决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络从步骤S82所述的初始神经网络开始进行再学习时至当前的训练次数X是否超过定值x;在本实施例中定值x为100。
若否,则将到来的下一时刻重设为初始时刻,然后返回步骤S82,开始决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的下一次训练;
若是,则计算出决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的x次训练时通过步骤S83所计算得到的奖励信号值的标准差,并且判断其是否小于第一阈值,若是,则决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络学习结束;若否,则将到来的下一时刻重设为初始时刻,然后返回步骤S82。
本实施例在应用阶段:首先获取水下机器人当前时刻的状态以及下一时刻的目标状态,然后输入步骤S87中最终学习到的决策神经网络,通过该决策神经网络计算出当前时刻需要输出至水下机器人的推进力。
本实施例中步骤S85针对于当前决策神经网络、当前辅助决策神经网络、当前评价神经网络和当前辅助评价神经网络的神经网络参数的更新过程和实施例1中步骤S5的一样。
本实施例中步骤S87中计算决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的x次训练时计算得到的奖励信号值的标准差为:
其中:
其中表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中当前时刻t的状态,表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中当前时刻t的目标状态,其中表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中上一时刻t-1的推进力;表示第j次训练过程中上一时刻t-1的奖励信号值;为决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成第Y-y至第Y总共最近的y次训练时得到的所有奖励信号值的均值;ε为第一阈值,在本实施例中第一阈值设置为0.015。
本实施例还公开了一种用于实现本实施例上述方法的基于水下机器人轨迹控制系统,其与实施例1中公开的基于水下机器人轨迹控制系统的区别仅在于,如图2所示,本实施例基于水下机器人轨迹控制系统还包括:第二数据采集模块、第二奖励计算模块、第二经验数据缓冲区、第二决策模块;其中:
第二数据采集模块,用于在学习阶段的各时刻,通过通讯模块采集水下机器人当前时刻的状态、当前时刻的推进力以及下一时刻的目标状态;
第二奖励计算模块,用于根据第二数据采集模块获取的水下机器人上一时刻的推进力、当前时刻的状态以及当前时刻的目标状态计算上一时刻的奖励信号值;
第二经验数据缓冲区,用于在当前时刻,接收水下机器人上一时刻的状态、上一时刻的奖励信号值以及当前时刻的目标状态所组成的经验,并进行存储;
第二决策模块:
用于在第一决策模块结束对决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的学习之后,将第一决策模块最终学习得到的决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络作为初始神经网络,然后进行再次学习;
用于在学习阶段的各时刻,当第二经验数据缓冲区存储进水下机器人上一时刻的状态、上一时刻的奖励信号值以及当前时刻的目标状态所组成的经验后,判断第二经验数据缓冲区当前存储的数据量是否大于指定阈值,若是,则从第二经验数据缓冲区中随机选取出N个经验,通过这N个经验实现对当前决策神经网络、当前辅助决策神经网络、当前评价神经网络和当前辅助评价神经网络的神经网络参数更新;用于在决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络当前训练次数超过X时,计算出决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的x次训练时所计算得到的奖励信号值的标准差,当该标准差小于第一阈值时,结束决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的学习,将得到的决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络作为学习阶段学习完成的神经网络,输入至第一决策模块,供第一决策模块在应用阶段时使用。
实施例3
本实施例公开了一种基于深度强化学习的水下机器人轨迹控制方法,其特征在于,包括学习阶段和应用阶段;在学习阶段,具体步骤如下:
S1、首先建立四个神经网络,分别作为决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络,并且针对四个神经网络的神经网络参数进行初始化;其中神经网络的参数指的是神经网络中各层神经元的连接权重;同时建立一个经验数据缓冲区,并进行初始化;然后针对上述初始化后的四个神经网络,从初始时刻开始,进入步骤S2开始学习;
S2、判断当前时刻是否为初始时刻;
若是,则采集水下机器人在当前时刻的推进力以及下一时刻的目标状态,然后进入步骤S4;
若否,则进入步骤S3;
S3、采集水下机器人当前时刻的状态、当前时刻的推进力以及下一时刻的目标状态;并且获取水下机器人上一时刻的推进力;根据水下机器人上一时刻的推进力、当前时刻的状态以及当前时刻的目标状态计算上一时刻的奖励信号值;然后将水下机器人上一时刻的状态、上一时刻的奖励信号值以及当前时刻的目标状态组成一个经验后存储进经验数据缓冲区;
S4、判断经验数据缓冲区当前存储的数据量是否大于指定阈值,若是,则从经验数据缓冲区中随机选取出N个经验,然后执行步骤S5,否则执行步骤S6;在本实施例中上述指定阈值去128,N为64。
S5、更新当前决策神经网络、当前辅助决策神经网络、当前评价神经网络和当前辅助评价神经网络的神经网络参数,具体为:
S51、针对于步骤S4中选取出的N个经验中的每个经验进行以下处理:将每个经验中的某时刻状态、某时刻的下一时刻的目标状态输入至当前决策神经网络,通过当前决策神经网络输出某时刻的推进力;同时将每个经验中的某时刻状态、某时刻下一时刻的目标状态输入至当前辅助决策神经网络,通过当前辅助决策神经网络输出某时刻的推进力;然后将每个经验中的某时刻的状态和上述当前决策神经网络输出的某时刻的推进力输入至当前评价神经网络中,将当前评价神经网络的输出均作为当前评价神经网络的评价值;同时将每个经验中的某时刻状态和当前辅助决策神经网络获取输出的某时刻的推进力输入至当前辅助评价神经网络中,将当前辅助评价神经网络的输出均作为当前辅助评价神经网络的评价值;根据当前评价神经网络和当前辅助评价神经网络输出的评价值,利用评价神经网络的损失函数计算出当前评价神经网络的梯度;然后根据当前评价神经网络的梯度对当前评价神经网络的神经网络参数进行更新,得到更新后的评价神经网络,再根据更新后的评价神经网络对当前辅助评价神经网络的神经网络参数进行更新,得到更新后的辅助评价神经网络;
本步骤中利用评价神经网络的损失函数计算出当前评价神经网络的梯度为:
yi=ri+γQ'(si,μ'(sit')|ωt');
其中Loss为评价神经网络的损失函数,Loss为:
其中μ(sit)是指选取出的N个经验中第i个经验的某时刻的状态si和某时刻的下一时刻的目标状态输入至当前决策神经网络时通过当前决策神经网络输出的某时刻的推进力;Q(si,μ(sit)|ωt)是选取出的N个经验中第i个经验的某时刻的状态si以及上述当前决策神经网络输出的某时刻的推进力μ(sit)作为当前评价神经网络的输入时得到的当前评价神经网络的输出;θt为当前决策神经网络的神经网络参数,ωt为当前评价神经网络的神经网络参数;其中μ'(sit')是指选取出的N个经验中第i个经验的某时刻的状态si和某时刻的下一时刻的目标状态输入至当前辅助决策神经网络时通过当前辅助决策神经网络输出的某时刻的推进力;Q'(si,μ'(sit')|ωt')是选取出的N个经验中第i个经验的某时刻的状态si以及上述当前辅助决策神经网络输出的某时刻的推进力μ'(sit')作为当前辅助评价神经网络的输入时得到的当前辅助评价神经网络的输出;θt'为当前辅助决策神经网络的神经网络参数,ωt'为当前辅助评价神经网络的神经网络参数;ri是选取出的N个经验中第i个经验中某时刻的奖励信号值,γ是折扣系数,取值范围在0和1之间;
本步骤中根据当前评价神经网络的梯度对当前评价神经网络的神经网络参数进行更新,得到:
其中ωt为当前评价神经网络的神经网络参数;ωt+1为当前评价神经网络的神经网络参数更新后的值,对应为更新后的评价神经网络的神经网络参数;α为评价神经网络的神经网络参数学习率,取值范围在0和1之间,在本实施例中α取0.05;
本步骤中根据更新后的评价神经网络对当前辅助评价神经网络的神经网络参数进行更新,得到:
ω't+1=ρωt+1+(1-ρ)ω't
其中ωt'为当前辅助评价神经网络的神经网络参数;ω't+1为当前辅助评价神经网络的神经网络参数更新后的值,对应为更新后的辅助评价神经网络的神经网络参数;ρ是辅助决策神经网络和辅助评价神经网络的神经网参数的学习率,取值范围在0和1之间,在本实施例中ρ取0.01;
S52、根据当前评价神经网络的评价值,利用决策神经网络的损失函数计算当前决策神经网络的梯度,然后根据当前决策神经网络的梯度对当前决策神经网络的神经网络参数进行更新,得到更新后的决策神经网络,同时根据更新后的决策神经网络的神经网络参数针对辅助决策神经网络的神经网络参数进行更新,得到更新后的辅助决策神经网络,然后进入步骤S6;所述更新后的决策神经网络和更新后的辅助决策神经网络供下一时刻使用;
本步骤中根据当前评价神经网络的评价值,利用决策神经网络的损失函数计算当前决策神经网络的梯度为:
其中J为决策神经网络的损失函数,J为:
J=Q(si,μ(sit)|ωt);
本步骤中根据当前决策神经网络的梯度对当前决策神经网络的神经网络参数进行更新,得到:
其中θt为当前决策神经网络的神经网络参数;θt+1为当前决策神经网络的神经网络参数更新后的值,对应为更新后的决策神经网络的神经网络参数;β为决策神经网络的神经网络参数学习率,取值范围在0和1之间,在本实施例中β取0.05;
本步骤中根据更新后的决策神经网络的神经网络参数针对辅助决策神经网络的神经网络参数进行更新,得到:
θ't+1=ρθt+1+(1-ρ)θ't
其中θ't为当前辅助决策神经网络的神经网络参数;θ't+1为当前辅助决策神经网络的神经网络参数更新后的值,对应为更新后的辅助决策神经网络的神经网络参数。
S6、当下一时刻到来时,即下一时刻作为当前时刻时,判定该时刻是否到达时刻T;若否,则返回步骤S2;若是,则表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络均完成一次训练,进入步骤S7;
S7、判断决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络当前的训练次数Y是否超过定值y;在本实施例中定值y为100。
若否,则将到来的下一时刻重设为初始时刻,然后返回步骤S2,开始决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的下一次训练;
若是,则计算决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的y次训练时计算得到的奖励信号值的标准差,并且判断其是否小于第一阈值,若是,则决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络学习结束;若否,则将到来的下一时刻重设为初始时刻,然后返回步骤S2;
本步骤S7中计算决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的y次训练时计算得到的奖励信号值的标准差为:
其中:
其中表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中当前时刻t的状态,表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中当前时刻t的目标状态,其中表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中上一时刻t-1的推进力;表示第j次训练过程中上一时刻t-1的奖励信号值;为决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成第Y-y至第Y总共最近的y次训练时得到的所有奖励信号值的均值,ε为第一阈值,在本实施例中第一阈值设置为0.015。
在所述应用阶段:首先获取水下机器人当前时刻的状态以及下一时刻的目标状态,然后由上述学习阶段学习完成的决策神经网络根据水下机器人当前时刻的状态以及下一时刻的目标状态计算出当前时刻需要输出至水下机器人的推进力。
在本实施例中所采用的决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络4个神经网络具有相同的网络结构,包括3个隐藏的全连接层,每一个隐藏层有100个神经元,隐藏层之间的激活函数为Relu函数,输出层和隐藏层之间的激活函数设置为Tanh。
本实施例还公开了一种用于实现上述方法的基于深度强化学习的水下机器人轨迹控制系统,如图3所示,包括数据采集模块、奖励计算模块、经验数据缓冲区、决策模块和通讯模块;
数据采集模块,用于在学习阶段的各时刻,通过通讯模块采集水下机器人当前时刻的状态、当前时刻的推进力以及下一时刻的目标状态;用于在应用阶段的各时刻,采集水下机器人当前时刻的状态和下一时刻的目标状态;
奖励计算模块,用于根据数据采集模块获取的水下机器人上一时刻的推进力、当前时刻的状态以及当前时刻的目标状态计算上一时刻的奖励信号值;其中本实施例中所采用的上一时刻的奖励信号值的计算公式如下:
其中Ft-1为上一时刻t-1的推进力;st为当前时刻t的状态;为当前时刻t的目标状态;rt-1为下一时刻t-1的奖励信号值,其反应的是将上一时刻t-1的推进力Ft-1实施至水下机器人上时,在当前时刻t根据实际状态和目标状态来判断实施的上一时刻t-1的推进力Ft-1的合适程度。
经验数据缓冲区,用于在当前时刻,接收水下机器人上一时刻的状态、上一时刻的奖励信号值以及当前时刻的目标状态所组成的经验,并进行存储;
所述决策模块:
用于在学习阶段建立决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络;
用于在学习阶段的各时刻,当经验数据缓冲区存储进水下机器人上一时刻的状态、上一时刻的奖励信号值以及当前时刻的目标状态所组成的经验后,判断经验数据缓冲区当前存储的数据量是否大于指定阈值,若是,则从经验数据缓冲区中随机选取出N个经验,通过这N个经验实现对当前决策神经网络、当前辅助决策神经网络、当前评价神经网络和当前辅助评价神经网络的神经网络参数的一次更新,当到来的下一时刻达到T时刻时,完成一次训练;
用于在决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络当前训练次数超过Y时,获取到决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的y次训练时奖励计算模块所计算得到的奖励信号值,从而计算出决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的y次训练时奖励信号值的标准差,当该奖励信号值的标准差小于第一阈值时,结束决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的学习;
用于在应用阶段从数据采集模块中获取水下机器人当前时刻的状态以及下一时刻的目标状态,然后将其输入至学习阶段学习完成的决策神经网络,通过学习阶段学习完成的决策神经网络计算出水下机器人当前时刻需要的推进力。
通讯模块,用于实现数据采集模块和决策模块与水下机器人控制系统之间的通讯,将决策模块在应用阶段计算出的水下机器人当前时刻需要的推进力发送至水下机器人控制系统;用于将在学习阶段各时刻,将水下机器人当前时刻的状态、当前时刻的推进力以及下一时刻的目标状态传送至数据采集模块;用于在应用阶段的各时刻,将水下机器人当前时刻的状态和下一时刻的目标状态发送至数据采集模块。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (10)

1.一种基于深度强化学习的水下机器人轨迹控制方法,其特征在于,包括学习阶段和应用阶段;在所述学习阶段,通过仿真器模拟水下机器人的运作过程,并且采集仿真器所模拟的正在运作的水下机器人的数据,根据这些数据针对决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络进行学习;具体步骤如下:
S1、首先建立四个神经网络,分别作为决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络,并且针对四个神经网络的神经网络参数进行初始化;其中神经网络的参数指的是神经网络中各层神经元的连接权重;同时建立一个经验数据缓冲区,并进行初始化;然后针对上述初始化后的四个神经网络,从初始时刻开始,进入步骤S2开始学习;
S2、实时采集仿真器所模拟的正在运作的水下机器人在当前时刻的状态;然后根据当前时刻的状态和下一时刻的目标状态,利用当前决策神经网络计算当前时刻需要的推进力;在获取到当前时刻需要的推进力后,将当前时刻需要的推进力实施至仿真器所模拟的正在运作的水下机器人上;然后采用水下机器人的动力学模型计算出水下机器人下一时刻的状态;并且根据当前时刻需要的推进力、下一时刻的状态以及下一时刻的目标状态计算出的当前时刻的奖励信号值;
S3、将步骤S2中获取到的当前时刻的状态、当前时刻的奖励信号值以及下一时刻的目标状态组成一个经验存入经验数据缓冲区;
S4、判断经验数据缓冲区当前存储的数据量是否大于指定阈值,若是,则从经验数据缓冲区中随机选取出N个经验,然后执行步骤S5,否则执行步骤S6;
S5、更新当前决策神经网络、当前辅助决策神经网络、当前评价神经网络和当前辅助评价神经网络的神经网络参数,具体为:
S51、针对于步骤S4中选取出的N个经验中的每个经验进行以下处理:将每个经验中的某时刻状态、某时刻的下一时刻的目标状态输入至当前决策神经网络,通过当前决策神经网络输出某时刻的推进力;同时将每个经验中的某时刻状态、某时刻下一时刻的目标状态输入至当前辅助决策神经网络,通过当前辅助决策神经网络输出某时刻的推进力;然后将每个经验中的某时刻的状态和上述当前决策神经网络输出的某时刻的推进力输入至当前评价神经网络中,将当前评价神经网络的输出均作为当前评价神经网络的评价值;同时将每个经验中的某时刻状态和当前辅助决策神经网络获取输出的某时刻的推进力输入至当前辅助评价神经网络中,将当前辅助评价神经网络的输出均作为当前辅助评价神经网络的评价值;根据当前评价神经网络和当前辅助评价神经网络输出的评价值,利用评价神经网络的损失函数计算出当前评价神经网络的梯度;然后根据当前评价神经网络的梯度对当前评价神经网络的神经网络参数进行更新,得到更新后的评价神经网络,再根据更新后的评价神经网络对当前辅助评价神经网络的神经网络参数进行更新,得到更新后的辅助评价神经网络;
S52、根据当前评价神经网络的评价值,利用决策神经网络的损失函数计算当前决策神经网络的梯度,然后根据当前决策神经网络的梯度对当前决策神经网络的神经网络参数进行更新,得到更新后的决策神经网络,同时根据更新后的决策神经网络的神经网络参数针对辅助决策神经网络的神经网络参数进行更新,得到更新后的辅助决策神经网络,然后进入步骤S6;所述更新后的决策神经网络和更新后的辅助决策神经网络供下一时刻使用;
S6、当下一时刻到来时,即下一时刻为当前时刻时,判定该时刻是否到达时刻T;若否,则返回步骤S2;若是,则表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络均完成一次训练,进入步骤S7;
S7、判断决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络当前的训练次数定值M是否超过定值m;
若否,则将到来的下一时刻重设为初始时刻,然后返回步骤S2,开始决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的下一次训练;
若是,则计算决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的m次训练时通过步骤S2所计算得到的奖励信号值的标准差,并且判断其是否小于第一阈值,若是,则决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络学习结束;若否,则将到来的下一时刻重设为初始时刻,然后返回步骤S2;
在所述应用阶段:首先获取水下机器人当前时刻的状态以及下一时刻的目标状态,然后由上述学习阶段学习完成的决策神经网络根据水下机器人当前时刻的状态以及下一时刻的目标状态计算出当前时刻需要输出至水下机器人的推进力。
2.根据权利要求1所述的基于深度强化学习的水下机器人轨迹控制方法,其特征在于,所述学习阶段还包括如下步骤:S8、在水下机器人的运行过程中实时采集各个时刻的数据,针对于步骤S7中学习完成的决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络,进行以下再学习,具体为:
S81、首先初始化经验数据缓冲区;将步骤S7中学习完成的决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络分别作为初始神经网络;然后针对上述初始神经网络,从初始时刻开始,进入步骤S82开始学习;
S82、判断当前时刻是否为初始时刻;
若是,则采集水下机器人在当前时刻的推进力以及下一时刻的目标状态,然后进入步骤S84;
若否,则进入步骤S83;
S83、采集水下机器人当前时刻的状态、当前时刻的推进力以及下一时刻的目标状态;并且获取水下机器人上一时刻的推进力;根据水下机器人上一时刻的推进力、当前时刻的状态以及当前时刻的目标状态计算上一时刻的奖励信号值;然后将上一时刻的状态、上一时刻的奖励信号值以及当前时刻的目标状态组成一个经验后存储进经验数据缓冲区;
S84、判断经验数据缓冲区当前存储的数据量是否大于指定阈值,若是,则从经验数据缓冲区中随机选取出N个经验,然后执行步骤S85,否则执行步骤S86;
S85、更新当前决策神经网络、当前辅助决策神经网络、当前评价神经网络和当前辅助评价神经网络的神经网络参数,具体为:
S851、针对于步骤S84中选取出的N个经验中的每个经验进行以下处理:将每个经验中的某时刻状态、某时刻的下一时刻的目标状态输入至当前决策神经网络,通过当前决策神经网络输出某时刻的推进力;同时将每个经验中的某时刻状态、某时刻下一时刻的目标状态输入至当前辅助决策神经网络,通过当前辅助决策神经网络输出某时刻的推进力;然后将每个经验中的某时刻的状态和上述当前决策神经网络输出的某时刻的推进力输入至当前评价神经网络中,将当前评价神经网络的输出均作为当前评价神经网络的评价值;同时将每个经验中的某时刻状态和当前辅助决策神经网络获取输出的某时刻的推进力输入至当前辅助评价神经网络中,将当前辅助评价神经网络的输出均作为当前辅助评价神经网络的评价值;根据当前评价神经网络和当前辅助评价神经网络输出的评价值,利用评价神经网络的损失函数计算出当前评价神经网络的梯度;然后根据当前评价神经网络的梯度对当前评价神经网络的神经网络参数进行更新,得到更新后的评价神经网络,再根据更新后的评价神经网络对当前辅助评价神经网络的神经网络参数进行更新,得到更新后的辅助评价神经网络;
S852、根据当前评价神经网络的评价值,利用决策神经网络的损失函数计算当前决策神经网络的梯度,然后根据当前决策神经网络的梯度对当前决策神经网络的神经网络参数进行更新,得到更新后的决策神经网络,同时根据更新后的决策神经网络的神经网络参数针对辅助决策神经网络的神经网络参数进行更新,得到更新后的辅助决策神经网络,然后进入步骤S86;所述更新后的决策神经网络和更新后的辅助决策神经网络供下一时刻使用;
S86、当下一时刻到来时,即下一时刻作为当前时刻时,判定该时刻是否到达时刻T;若否,则返回步骤S82;若是,则表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络均完成一次训练,进入步骤S87;
S87、判断决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络从步骤S82所述的初始神经网络开始进行再学习时至当前的训练次数X是否超过定值x;
若否,则将到来的下一时刻重设为初始时刻,然后返回步骤S82,开始决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的下一次训练;
若是,则计算出决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的x次训练时通过步骤S83所计算得到的奖励信号值的标准差,并且判断其是否小于第一阈值,若是,则决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络学习结束;若否,则将到来的下一时刻重设为初始时刻,然后返回步骤S82。
3.根据权利要求2所述的基于深度强化学习的水下机器人轨迹控制方法,其特征在于,所述步骤S51和步骤S851中,利用评价神经网络的损失函数计算出当前评价神经网络的梯度为:
<mrow> <msub> <mo>&amp;dtri;</mo> <mi>&amp;omega;</mi> </msub> <mi>L</mi> <mi>o</mi> <mi>s</mi> <mi>s</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mi>N</mi> </mfrac> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <mrow> <mo>(</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <mo>-</mo> <mi>Q</mi> <mo>(</mo> <mrow> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>,</mo> <mi>&amp;mu;</mi> <mrow> <mo>(</mo> <mrow> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>&amp;theta;</mi> <mi>t</mi> </msub> </mrow> <mo>)</mo> </mrow> <mo>|</mo> <msub> <mi>&amp;omega;</mi> <mi>t</mi> </msub> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mfrac> <mrow> <mo>&amp;part;</mo> <mi>Q</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>,</mo> <mi>&amp;mu;</mi> <mo>(</mo> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>&amp;theta;</mi> <mi>t</mi> </msub> <mo>)</mo> </mrow> <mo>|</mo> <msub> <mi>&amp;omega;</mi> <mi>t</mi> </msub> <mo>)</mo> </mrow> <mrow> <mo>&amp;part;</mo> <msub> <mi>&amp;omega;</mi> <mi>t</mi> </msub> </mrow> </mfrac> <mo>;</mo> </mrow>
yi=ri+γQ'(si,μ'(sit')|ωt');
其中Loss为评价神经网络的损失函数,Loss为:
<mrow> <mi>L</mi> <mi>o</mi> <mi>s</mi> <mi>s</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mi>N</mi> </mfrac> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msup> <mrow> <mo>(</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <mo>-</mo> <mi>Q</mi> <mo>(</mo> <mrow> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>,</mo> <mi>&amp;mu;</mi> <mrow> <mo>(</mo> <mrow> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>&amp;theta;</mi> <mi>t</mi> </msub> </mrow> <mo>)</mo> </mrow> <mo>|</mo> <msub> <mi>&amp;omega;</mi> <mi>t</mi> </msub> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>;</mo> </mrow>
其中μ(sit)是指选取出的N个经验中第i个经验的某时刻的状态si和某时刻的下一时刻的目标状态输入至当前决策神经网络时通过当前决策神经网络输出的某时刻的推进力;Q(si,μ(sit)|ωt)是选取出的N个经验中第i个经验的某时刻的状态si以及上述当前决策神经网络输出的某时刻的推进力μ(sit)作为当前评价神经网络的输入时得到的当前评价神经网络的输出;θt为当前决策神经网络的神经网络参数,ωt为当前评价神经网络的神经网络参数;
其中μ'(sit')是指选取出的N个经验中第i个经验的某时刻的状态si和某时刻的下一时刻的目标状态输入至当前辅助决策神经网络时通过当前辅助决策神经网络输出的某时刻的推进力;Q'(si,μ'(sit')|ωt')是选取出的N个经验中第i个经验的某时刻的状态si以及上述当前辅助决策神经网络输出的某时刻的推进力μ'(sit')作为当前辅助评价神经网络的输入时得到的当前辅助评价神经网络的输出;θt'为当前辅助决策神经网络的神经网络参数,ωt'为当前辅助评价神经网络的神经网络参数;
ri是选取出的N个经验中第i个经验中某时刻的奖励信号值,γ是折扣系数,取值范围在0和1之间;
所述步骤S51和步骤S851中根据当前评价神经网络的梯度对当前评价神经网络的神经网络参数进行更新,得到:
<mrow> <msub> <mi>&amp;omega;</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>=</mo> <msub> <mi>&amp;omega;</mi> <mi>t</mi> </msub> <mo>+</mo> <mi>&amp;alpha;</mi> <msub> <mo>&amp;dtri;</mo> <mi>&amp;omega;</mi> </msub> <mi>L</mi> <mi>o</mi> <mi>s</mi> <mi>s</mi> <mo>;</mo> </mrow>
其中ωt为当前评价神经网络的神经网络参数;ωt+1为当前评价神经网络的神经网络参数更新后的值,对应为更新后的评价神经网络的神经网络参数;α为评价神经网络的神经网络参数学习率,取值范围在0和1之间;
所述步骤S51和步骤S851中根据更新后的评价神经网络对当前辅助评价神经网络的神经网络参数进行更新,得到:
ω't+1=ρωt+1+(1-ρ)ω't
其中ωt'为当前辅助评价神经网络的神经网络参数;ω't+1为当前辅助评价神经网络的神经网络参数更新后的值,对应为更新后的辅助评价神经网络的神经网络参数;ρ是辅助决策神经网络和辅助评价神经网络的神经网参数的学习率,取值范围在0和1之间;
所述步骤S52和步骤S852中根据当前评价神经网络的评价值,利用决策神经网络的损失函数计算当前决策神经网络的梯度为:
<mrow> <msub> <mo>&amp;dtri;</mo> <mi>&amp;theta;</mi> </msub> <mi>J</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mi>N</mi> </mfrac> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <mfrac> <mrow> <mo>&amp;part;</mo> <mi>Q</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>,</mo> <mi>&amp;mu;</mi> <mo>(</mo> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>&amp;theta;</mi> <mi>t</mi> </msub> <mo>)</mo> </mrow> <mo>|</mo> <msub> <mi>&amp;omega;</mi> <mi>t</mi> </msub> <mo>)</mo> </mrow> <mrow> <mo>&amp;part;</mo> <mi>&amp;mu;</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>&amp;theta;</mi> <mi>t</mi> </msub> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>&amp;CenterDot;</mo> <mfrac> <mrow> <mo>&amp;part;</mo> <mi>&amp;mu;</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>&amp;theta;</mi> <mi>t</mi> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <mo>&amp;part;</mo> <msub> <mi>&amp;theta;</mi> <mi>t</mi> </msub> </mrow> </mfrac> <mo>;</mo> </mrow>
其中J为决策神经网络的损失函数,J为:
J=Q(si,μ(sit)|ωt);
所述步骤S52和步骤S852中根据当前决策神经网络的梯度对当前决策神经网络的神经网络参数进行更新,得到:
<mrow> <msub> <mi>&amp;theta;</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>=</mo> <msub> <mi>&amp;theta;</mi> <mi>t</mi> </msub> <mo>+</mo> <mi>&amp;beta;</mi> <msub> <mo>&amp;dtri;</mo> <mi>&amp;theta;</mi> </msub> <mi>J</mi> <mo>;</mo> </mrow>
其中θt为当前决策神经网络的神经网络参数;θt+1为当前决策神经网络的神经网络参数更新后的值,对应为更新后的决策神经网络的神经网络参数;β为决策神经网络的神经网络参数学习率,取值范围在0和1之间;
所述步骤S52和步骤S852根据更新后的决策神经网络的神经网络参数针对辅助决策神经网络的神经网络参数进行更新,得到:
θ't+1=ρθt+1+(1-ρ)θ't
其中θ't为当前辅助决策神经网络的神经网络参数;θ't+1为当前辅助决策神经网络的神经网络参数更新后的值,对应为更新后的辅助决策神经网络的神经网络参数。
4.根据权利要求2所述的基于深度强化学习的水下机器人轨迹控制方法,其特征在于,所述步骤S7中计算决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的m次训练时计算得到的奖励信号值的标准差为:
<mrow> <msqrt> <mfrac> <mrow> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mi>M</mi> <mo>-</mo> <mi>m</mi> </mrow> <mi>M</mi> </munderover> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>t</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>T</mi> </munderover> <msup> <mrow> <mo>(</mo> <msubsup> <mi>r</mi> <mi>t</mi> <mi>j</mi> </msubsup> <mo>-</mo> <mover> <mi>r</mi> <mo>&amp;OverBar;</mo> </mover> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> <mrow> <mi>m</mi> <mi>T</mi> </mrow> </mfrac> </msqrt> <mo>&lt;</mo> <mi>&amp;epsiv;</mi> <mo>;</mo> </mrow>
其中:
<mrow> <mover> <mi>r</mi> <mo>&amp;OverBar;</mo> </mover> <mo>=</mo> <mfrac> <mrow> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mi>M</mi> <mo>-</mo> <mi>m</mi> </mrow> <mi>M</mi> </munderover> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>t</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>T</mi> </munderover> <msubsup> <mi>r</mi> <mi>t</mi> <mi>j</mi> </msubsup> </mrow> <mrow> <mi>m</mi> <mi>T</mi> </mrow> </mfrac> <mo>;</mo> </mrow>
<mrow> <msubsup> <mi>r</mi> <mi>t</mi> <mi>j</mi> </msubsup> <mo>=</mo> <mo>-</mo> <msup> <mrow> <mo>(</mo> <msubsup> <mi>s</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> <mi>j</mi> </msubsup> <mo>-</mo> <msubsup> <mover> <mi>s</mi> <mo>^</mo> </mover> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> <mi>j</mi> </msubsup> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <mn>0.1</mn> <msup> <msub> <mi>F</mi> <mi>t</mi> </msub> <mrow> <mi>j</mi> <mn>2</mn> </mrow> </msup> <mo>;</mo> </mrow>
其中表示第j次训练过程中当前时刻t的奖励信号值;表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中下一时刻t+1的状态,表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中下一时刻t+1的目标状态,其中表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中计算出的当前时刻t需要的推进力;是决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成第定值M-定值m至第m次总共最近的m次训练时计算得到的所有奖励信号值的均值;ε为第一阈值;t=1即为初始时刻;
所述步骤S87中计算决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的x次训练时计算得到的奖励信号值的标准差为:
<mrow> <msqrt> <mfrac> <mrow> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mi>X</mi> <mo>-</mo> <mi>x</mi> </mrow> <mi>X</mi> </munderover> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>t</mi> <mo>=</mo> <mn>2</mn> </mrow> <mi>T</mi> </munderover> <msup> <mrow> <mo>(</mo> <msubsup> <mi>r</mi> <mrow> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> <mi>j</mi> </msubsup> <mo>-</mo> <mover> <msup> <mi>r</mi> <mo>&amp;prime;</mo> </msup> <mo>&amp;OverBar;</mo> </mover> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> <mrow> <mi>x</mi> <mi>T</mi> </mrow> </mfrac> </msqrt> <mo>&lt;</mo> <mi>&amp;epsiv;</mi> <mo>;</mo> </mrow>
其中:
<mrow> <mover> <msup> <mi>r</mi> <mo>&amp;prime;</mo> </msup> <mo>&amp;OverBar;</mo> </mover> <mo>=</mo> <mfrac> <mrow> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mi>X</mi> <mo>-</mo> <mi>x</mi> </mrow> <mi>X</mi> </munderover> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>t</mi> <mo>=</mo> <mn>2</mn> </mrow> <mi>T</mi> </munderover> <msubsup> <mi>r</mi> <mrow> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> <mi>j</mi> </msubsup> </mrow> <mrow> <mi>x</mi> <mi>T</mi> </mrow> </mfrac> <mo>;</mo> </mrow>
<mrow> <msubsup> <mi>r</mi> <mrow> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> <mi>j</mi> </msubsup> <mo>=</mo> <mo>-</mo> <msup> <mrow> <mo>(</mo> <msubsup> <mi>s</mi> <mi>t</mi> <mi>j</mi> </msubsup> <mo>-</mo> <msubsup> <mover> <mi>s</mi> <mo>^</mo> </mover> <mi>t</mi> <mi>j</mi> </msubsup> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <mn>0.1</mn> <msup> <msubsup> <mi>F</mi> <mrow> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> <mi>j</mi> </msubsup> <mn>2</mn> </msup> <mo>;</mo> </mrow>
其中表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中当前时刻t的状态,表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中当前时刻t的目标状态,其中表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中采集的上一时刻t-1的推进力;表示第j次训练过程中计算出的上一时刻t-1的奖励信号值;为决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成第X-x至第X总共最近的x次训练时得到的所有奖励信号值的均值。
5.一种用于实现权利要求1所述的基于深度强化学习的水下机器人轨迹控制方法的基于深度强化学习的水下机器人轨迹控制系统,其特征在于,包括仿真器、第一数据采集模块、第一奖励计算模块、第一经验数据缓冲区、第一决策模块和通讯模块;
所述仿真器,用于模拟水下机器人的运作过程,用于接收决策模块发送的水下机器人当前时刻需要的推进力,并且将该推进力实施至所模拟的正在运行的水下机器人上,然后采用水下机器人的动力学模型计算出水下机器人下一时刻的状态;
所述第一数据采集模块,用于学习阶段的各时刻,通过通讯模块实时采集仿真器所模拟的正在运作的水下机器人在当前时刻的状态和下一时刻的目标状态,并且传送至决策模块,同时采集仿真器采用水下机器人的动力学模型计算出的水下机器人下一时刻的状态;用于在应用阶段的各时刻,通过通讯模块实时采集水下机器人在当前时刻的状态和下一时刻的目标状态;
所述第一奖励计算模块,用于根据仿真器所模拟的正在运行的水下机器人当前时刻需要的推进力、下一时刻的状态以及下一时刻的目标状态计算出的当前时刻的奖励信号值;
所述第一经验数据缓冲区,用于在各时刻接收仿真器所模拟的正在运行的水下机器人当前时刻的状态、当前时刻的奖励信号值以及下一时刻的目标状态所组成的经验,并进行存储;
所述第一决策模块:用于在学习阶段建立决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络;用于在学习阶段获取到仿真器所模拟的正在运行的水下机器人在当前时刻的状态和下一时刻的状态后,通过当前决策神经网络计算出水下机器人当前时刻需要的推进力,然后发送至仿真器;用于在学习阶段的各时刻,当第一经验数据缓冲区存储进仿真器所模拟的正在运行的水下机器人当前时刻的状态、当前时刻的奖励信号值以及下一时刻的目标状态所组成的经验后,判断第一经验数据缓冲区当前存储的数据量是否大于指定阈值,若是,则从第一经验数据缓冲区中随机选取出N个经验,通过这N个经验实现对当前决策神经网络、当前辅助决策神经网络、当前评价神经网络和当前辅助评价神经网络的神经网络参数更新;用于在决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络当前训练次数超过定值M时,计算出决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的m次训练时所计算得到的奖励信号值的标准差,当该标准差小于第一阈值时,结束决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的学习;
用于在应用阶段获取第一数据采集模块所采集的水下机器人当前时刻的状态以及下一时刻的目标状态,然后将其输入至学习阶段学习完成的决策神经网络,通过学习阶段学习完成的决策神经网络计算出水下机器人当前时刻需要的推进力;
所述通讯模块,用于实现第一数据采集模块、第一决策模块与水下机器人控制系统之间的通讯;用于将第一决策模块在应用阶段得到的水下机器人当前时刻需要的推进力发送至水下机器人控制系统;用于在应用阶段的各时刻,将水下机器人当前时刻的状态和下一时刻的目标状态发送至第一数据采集模块。
6.根据权利要求5所述的基于深度强化学习的水下机器人轨迹控制系统,其特征在于,还包括第二数据采集模块、第二奖励计算模块、第二经验数据缓冲区、第二决策模块;
所述第二数据采集模块,用于在学习阶段的各时刻,通过通讯模块采集水下机器人当前时刻的状态、当前时刻的推进力以及下一时刻的目标状态;
所述第二奖励计算模块,用于根据第二数据采集模块获取的水下机器人上一时刻的推进力、当前时刻的状态以及当前时刻的目标状态计算上一时刻的奖励信号值;
所述第二经验数据缓冲区,用于在各时刻接收水下机器人上一时刻的状态、上一时刻的奖励信号值以及当前时刻的目标状态所组成的经验,并进行存储;
所述第二决策模块:
用于在第一决策模块结束对决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的学习之后,将第一决策模块最终学习得到的决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络作为初始神经网络,然后进行再次学习;
用于在学习阶段的各时刻,当第二经验数据缓冲区存储进水下机器人上一时刻的状态、上一时刻的奖励信号值以及当前时刻的目标状态所组成的经验后,判断第而经验数据缓冲区当前存储的数据量是否大于指定阈值,若是,则从第二经验数据缓冲区中随机选取出N个经验,通过这N个经验实现对当前决策神经网络、当前辅助决策神经网络、当前评价神经网络和当前辅助评价神经网络的神经网络参数更新;用于在决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络当前训练次数超过X时,计算出决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的x次训练时所计算得到的奖励信号值的标准差,当该标准差小于第一阈值时,结束决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的学习,将得到的决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络作为学习阶段学习完成的神经网络,输入至第一决策模块,供第一决策模块在应用阶段时使用。
7.一种基于深度强化学习的水下机器人轨迹控制方法,其特征在于,包括学习阶段和应用阶段;在所述学习阶段,具体步骤如下:
S1、首先建立四个神经网络,分别作为决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络,并且针对四个神经网络的神经网络参数进行初始化;其中神经网络的参数指的是神经网络中各层神经元的连接权重;同时建立一个经验数据缓冲区,并进行初始化;然后针对上述初始化后的四个神经网络,从初始时刻开始,进入步骤S2开始学习;
S2、判断当前时刻是否为初始时刻;
若是,则采集水下机器人在当前时刻的推进力以及下一时刻的目标状态,然后进入步骤S4;
若否,则进入步骤S3;
S3、采集水下机器人当前时刻的状态、当前时刻的推进力以及下一时刻的目标状态;并且获取水下机器人上一时刻的推进力;根据水下机器人上一时刻的推进力、当前时刻的状态以及当前时刻的目标状态计算上一时刻的奖励信号值;然后将水下机器人上一时刻的状态、上一时刻的奖励信号值以及当前时刻的目标状态组成一个经验后存储进经验数据缓冲区;
S4、判断经验数据缓冲区当前存储的数据量是否大于指定阈值,若是,则从经验数据缓冲区中随机选取出N个经验,然后执行步骤S5,否则执行步骤S6;
S5、更新当前决策神经网络、当前辅助决策神经网络、当前评价神经网络和当前辅助评价神经网络的神经网络参数,具体为:
S51、针对于步骤S4中选取出的N个经验中的每个经验进行以下处理:将每个经验中的某时刻状态、某时刻的下一时刻的目标状态输入至当前决策神经网络,通过当前决策神经网络输出某时刻的推进力;同时将每个经验中的某时刻状态、某时刻下一时刻的目标状态输入至当前辅助决策神经网络,通过当前辅助决策神经网络输出某时刻的推进力;然后将每个经验中的某时刻的状态和上述当前决策神经网络输出的某时刻的推进力输入至当前评价神经网络中,将当前评价神经网络的输出均作为当前评价神经网络的评价值;同时将每个经验中的某时刻状态和当前辅助决策神经网络获取输出的某时刻的推进力输入至当前辅助评价神经网络中,将当前辅助评价神经网络的输出均作为当前辅助评价神经网络的评价值;根据当前评价神经网络和当前辅助评价神经网络输出的评价值,利用评价神经网络的损失函数计算出当前评价神经网络的梯度;然后根据当前评价神经网络的梯度对当前评价神经网络的神经网络参数进行更新,得到更新后的评价神经网络,再根据更新后的评价神经网络对当前辅助评价神经网络的神经网络参数进行更新,得到更新后的辅助评价神经网络;
S52、根据当前评价神经网络的评价值,利用决策神经网络的损失函数计算当前决策神经网络的梯度,然后根据当前决策神经网络的梯度对当前决策神经网络的神经网络参数进行更新,得到更新后的决策神经网络,同时根据更新后的决策神经网络的神经网络参数针对辅助决策神经网络的神经网络参数进行更新,得到更新后的辅助决策神经网络,然后进入步骤S6;所述更新后的决策神经网络和更新后的辅助决策神经网络供下一时刻使用;
S6、当下一时刻到来时,即下一时刻作为当前时刻时,判定该时刻是否到达时刻T;若否,则返回步骤S2;若是,则表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络均完成一次训练,进入步骤S7;
S7、判断决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络当前的训练次数Y是否超过定值y;
若否,则将到来的下一时刻重设为初始时刻,然后返回步骤S2,开始决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的下一次训练;
若是,则计算决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的y次训练时计算得到的奖励信号值的标准差,并且判断其是否小于第一阈值,若是,则决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络学习结束;若否,则将到来的下一时刻重设为初始时刻,然后返回步骤S2;
在所述应用阶段:首先获取水下机器人当前时刻的状态以及下一时刻的目标状态,然后由上述学习阶段学习完成的决策神经网络根据水下机器人当前时刻的状态以及下一时刻的目标状态计算出当前时刻需要输出至水下机器人的推进力。
8.根据权利要求7所述的基于深度强化学习的水下机器人轨迹控制方法,其特征在于,所述步骤S51,利用评价神经网络的损失函数计算出当前评价神经网络的梯度为:
<mrow> <msub> <mo>&amp;dtri;</mo> <mi>&amp;omega;</mi> </msub> <mi>L</mi> <mi>o</mi> <mi>s</mi> <mi>s</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mi>N</mi> </mfrac> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <mrow> <mo>(</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <mo>-</mo> <mi>Q</mi> <mo>(</mo> <mrow> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>,</mo> <mi>&amp;mu;</mi> <mrow> <mo>(</mo> <mrow> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>&amp;theta;</mi> <mi>t</mi> </msub> </mrow> <mo>)</mo> </mrow> <mo>|</mo> <msub> <mi>&amp;omega;</mi> <mi>t</mi> </msub> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mfrac> <mrow> <mo>&amp;part;</mo> <mi>Q</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>,</mo> <mi>&amp;mu;</mi> <mo>(</mo> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>&amp;theta;</mi> <mi>t</mi> </msub> <mo>)</mo> </mrow> <mo>|</mo> <msub> <mi>&amp;omega;</mi> <mi>t</mi> </msub> <mo>)</mo> </mrow> <mrow> <mo>&amp;part;</mo> <msub> <mi>&amp;omega;</mi> <mi>t</mi> </msub> </mrow> </mfrac> <mo>;</mo> </mrow>
yi=ri+γQ'(si,μ'(sit')|ωt');
其中Loss为评价神经网络的损失函数,Loss为:
<mrow> <mi>L</mi> <mi>o</mi> <mi>s</mi> <mi>s</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mi>N</mi> </mfrac> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msup> <mrow> <mo>(</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <mo>-</mo> <mi>Q</mi> <mo>(</mo> <mrow> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>,</mo> <mi>&amp;mu;</mi> <mrow> <mo>(</mo> <mrow> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>&amp;theta;</mi> <mi>t</mi> </msub> </mrow> <mo>)</mo> </mrow> <mo>|</mo> <msub> <mi>&amp;omega;</mi> <mi>t</mi> </msub> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>;</mo> </mrow>
其中μ(sit)是指选取出的N个经验中第i个经验的某时刻的状态si和某时刻的下一时刻的目标状态输入至当前决策神经网络时通过当前决策神经网络输出的某时刻的推进力;Q(si,μ(sit)|ωt)是选取出的N个经验中第i个经验的某时刻的状态si以及上述当前决策神经网络输出的某时刻的推进力μ(sit)作为当前评价神经网络的输入时得到的当前评价神经网络的输出;θt为当前决策神经网络的神经网络参数,ωt为当前评价神经网络的神经网络参数;
其中μ'(sit')是指选取出的N个经验中第i个经验的某时刻的状态si和某时刻的下一时刻的目标状态输入至当前辅助决策神经网络时通过当前辅助决策神经网络输出的某时刻的推进力;Q'(si,μ'(sit')|ωt')是选取出的N个经验中第i个经验的某时刻的状态si以及上述当前辅助决策神经网络输出的某时刻的推进力μ'(sit')作为当前辅助评价神经网络的输入时得到的当前辅助评价神经网络的输出;θt'为当前辅助决策神经网络的神经网络参数,ωt'为当前辅助评价神经网络的神经网络参数;
ri是选取出的N个经验中第i个经验中某时刻的奖励信号值,γ是折扣系数,取值范围在0和1之间;
所述步骤S51中根据当前评价神经网络的梯度对当前评价神经网络的神经网络参数进行更新,得到:
<mrow> <msub> <mi>&amp;omega;</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>=</mo> <msub> <mi>&amp;omega;</mi> <mi>t</mi> </msub> <mo>+</mo> <mi>&amp;alpha;</mi> <msub> <mo>&amp;dtri;</mo> <mi>&amp;omega;</mi> </msub> <mi>L</mi> <mi>o</mi> <mi>s</mi> <mi>s</mi> <mo>;</mo> </mrow>
其中ωt为当前评价神经网络的神经网络参数;ωt+1为当前评价神经网络的神经网络参数更新后的值,对应为更新后的评价神经网络的神经网络参数;α为评价神经网络的神经网络参数学习率,取值范围在0和1之间;
所述步骤S51中根据更新后的评价神经网络对当前辅助评价神经网络的神经网络参数进行更新,得到:
ω't+1=ρωt+1+(1-ρ)ω't
其中ωt'为当前辅助评价神经网络的神经网络参数;ω't+1为当前辅助评价神经网络的神经网络参数更新后的值,对应为更新后的辅助评价神经网络的神经网络参数;ρ是辅助决策神经网络和辅助评价神经网络的神经网参数的学习率,取值范围在0和1之间;
所述步骤S52中根据当前评价神经网络的评价值,利用决策神经网络的损失函数计算当前决策神经网络的梯度为:
<mrow> <msub> <mo>&amp;dtri;</mo> <mi>&amp;theta;</mi> </msub> <mi>J</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mi>N</mi> </mfrac> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <mfrac> <mrow> <mo>&amp;part;</mo> <mi>Q</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>,</mo> <mi>&amp;mu;</mi> <mo>(</mo> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>&amp;theta;</mi> <mi>t</mi> </msub> <mo>)</mo> </mrow> <mo>|</mo> <msub> <mi>&amp;omega;</mi> <mi>t</mi> </msub> <mo>)</mo> </mrow> <mrow> <mo>&amp;part;</mo> <mi>&amp;mu;</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>&amp;theta;</mi> <mi>t</mi> </msub> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>&amp;CenterDot;</mo> <mfrac> <mrow> <mo>&amp;part;</mo> <mi>&amp;mu;</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>&amp;theta;</mi> <mi>t</mi> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <mo>&amp;part;</mo> <msub> <mi>&amp;theta;</mi> <mi>t</mi> </msub> </mrow> </mfrac> <mo>;</mo> </mrow>
其中J为决策神经网络的损失函数,J为:
J=Q(si,μ(sit)|ωt);
所述步骤S52中根据当前决策神经网络的梯度对当前决策神经网络的神经网络参数进行更新,得到:
<mrow> <msub> <mi>&amp;theta;</mi> <mrow> <mi>t</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>=</mo> <msub> <mi>&amp;theta;</mi> <mi>t</mi> </msub> <mo>+</mo> <mi>&amp;beta;</mi> <msub> <mo>&amp;dtri;</mo> <mi>&amp;theta;</mi> </msub> <mi>J</mi> <mo>;</mo> </mrow> 9
其中θt为当前决策神经网络的神经网络参数;θt+1为当前决策神经网络的神经网络参数更新后的值,对应为更新后的决策神经网络的神经网络参数;β为决策神经网络的神经网络参数学习率,取值范围在0和1之间;
所述步骤S52根据更新后的决策神经网络的神经网络参数针对辅助决策神经网络的神经网络参数进行更新,得到:
θ't+1=ρθt+1+(1-ρ)θ't
其中θ't为当前辅助决策神经网络的神经网络参数;θ't+1为当前辅助决策神经网络的神经网络参数更新后的值,对应为更新后的辅助决策神经网络的神经网络参数。
9.根据权利要求7所述的基于深度强化学习的水下机器人轨迹控制方法,其特征在于,所述步骤S7中计算决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的y次训练时计算得到的奖励信号值的标准差为:
<mrow> <msqrt> <mfrac> <mrow> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mi>Y</mi> <mo>-</mo> <mi>y</mi> </mrow> <mi>y</mi> </munderover> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>t</mi> <mo>=</mo> <mn>2</mn> </mrow> <mi>T</mi> </munderover> <msup> <mrow> <mo>(</mo> <msubsup> <mi>r</mi> <mrow> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> <mi>j</mi> </msubsup> <mo>-</mo> <mover> <msup> <mi>r</mi> <mo>&amp;prime;</mo> </msup> <mo>&amp;OverBar;</mo> </mover> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> <mrow> <mi>y</mi> <mi>T</mi> </mrow> </mfrac> </msqrt> <mo>&lt;</mo> <mi>&amp;epsiv;</mi> </mrow>
其中:
<mrow> <mover> <msup> <mi>r</mi> <mo>&amp;prime;</mo> </msup> <mo>&amp;OverBar;</mo> </mover> <mo>=</mo> <mfrac> <mrow> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mi>Y</mi> <mo>-</mo> <mi>y</mi> </mrow> <mi>Y</mi> </munderover> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>t</mi> <mo>=</mo> <mn>2</mn> </mrow> <mi>T</mi> </munderover> <msubsup> <mi>r</mi> <mrow> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> <mi>j</mi> </msubsup> </mrow> <mrow> <mi>y</mi> <mi>T</mi> </mrow> </mfrac> <mo>;</mo> </mrow>
<mrow> <msubsup> <mi>r</mi> <mrow> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> <mi>j</mi> </msubsup> <mo>=</mo> <mo>-</mo> <msup> <mrow> <mo>(</mo> <msubsup> <mi>s</mi> <mi>t</mi> <mi>j</mi> </msubsup> <mo>-</mo> <msubsup> <mover> <mi>s</mi> <mo>^</mo> </mover> <mi>t</mi> <mi>j</mi> </msubsup> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <mn>0.1</mn> <msup> <msubsup> <mi>F</mi> <mrow> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> <mi>j</mi> </msubsup> <mn>2</mn> </msup> <mo>;</mo> </mrow>
其中表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中当前时刻t的状态,表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中当前时刻t的目标状态,其中表示决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络在第j次训练过程中上一时刻t-1的推进力;表示第j次训练过程中上一时刻t-1的奖励信号值;为决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成第Y-y至第Y总共最近的y次训练时得到的所有奖励信号值的均值;ε为第一阈值。
10.一种用于实现权利要求7所述的基于深度强化学习的水下机器人轨迹控制方法的基于深度强化学习的水下机器人轨迹控制系统,其特征在于,包括数据采集模块、奖励计算模块、经验数据缓冲区、决策模块和通讯模块;
所述数据采集模块,用于在学习阶段的各时刻,通过通讯模块采集水下机器人当前时刻的状态、当前时刻的推进力以及下一时刻的目标状态;用于在应用阶段的各时刻,采集水下机器人当前时刻的状态和下一时刻的目标状态;
所述奖励计算模块,用于根据数据采集模块获取的水下机器人上一时刻的推进力、当前时刻的状态以及当前时刻的目标状态计算上一时刻的奖励信号值;
所述经验数据缓冲区,用于在各时刻接收水下机器人上一时刻的状态、上一时刻的奖励信号值以及当前时刻的目标状态所组成的经验,并进行存储;
所述决策模块:
用于在学习阶段建立决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络;
用于在学习阶段的各时刻,当经验数据缓冲区存储进水下机器人上一时刻的状态、上一时刻的奖励信号值以及当前时刻的目标状态所组成的经验后,判断经验数据缓冲区当前存储的数据量是否大于指定阈值,若是,则从经验数据缓冲区中随机选取出N个经验,通过这N个经验实现对当前决策神经网络、当前辅助决策神经网络、当前评价神经网络和当前辅助评价神经网络的神经网络参数的一次更新,当到来的下一时刻达到T时刻时,完成一次训练;
用于在决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络当前训练次数超过Y时,获取到决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的y次训练时奖励计算模块所计算得到的奖励信号值,从而计算出决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络完成最近的y次训练时奖励信号值的标准差,当该奖励信号值的标准差小于第一阈值时,结束决策神经网络、辅助决策神经网络、评价神经网络和辅助评价神经网络的学习;
用于在应用阶段从数据采集模块中获取水下机器人当前时刻的状态以及下一时刻的目标状态,然后将其输入至学习阶段学习完成的决策神经网络,通过学习阶段学习完成的决策神经网络计算出水下机器人当前时刻需要的推进力;
所述通讯模块,用于实现数据采集模块和决策模块与水下机器人控制系统之间的通讯,将决策模块在应用阶段计算出的水下机器人当前时刻需要的推进力发送至水下机器人控制系统;用于将在学习阶段各时刻,将水下机器人当前时刻的状态、当前时刻的推进力以及下一时刻的目标状态传送至数据采集模块;用于在应用阶段的各时刻,将水下机器人当前时刻的状态和下一时刻的目标状态发送至数据采集模块。
CN201710479333.0A 2017-06-22 2017-06-22 基于深度强化学习的水下机器人轨迹控制方法及控制系统 Expired - Fee Related CN107102644B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710479333.0A CN107102644B (zh) 2017-06-22 2017-06-22 基于深度强化学习的水下机器人轨迹控制方法及控制系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710479333.0A CN107102644B (zh) 2017-06-22 2017-06-22 基于深度强化学习的水下机器人轨迹控制方法及控制系统

Publications (2)

Publication Number Publication Date
CN107102644A true CN107102644A (zh) 2017-08-29
CN107102644B CN107102644B (zh) 2019-12-10

Family

ID=59663148

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710479333.0A Expired - Fee Related CN107102644B (zh) 2017-06-22 2017-06-22 基于深度强化学习的水下机器人轨迹控制方法及控制系统

Country Status (1)

Country Link
CN (1) CN107102644B (zh)

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107450593A (zh) * 2017-08-30 2017-12-08 清华大学 一种无人机自主导航方法和系统
CN107729953A (zh) * 2017-09-18 2018-02-23 清华大学 基于连续状态行为域强化学习的机器人羽状流追踪方法
CN107748566A (zh) * 2017-09-20 2018-03-02 清华大学 一种基于强化学习的水下自主机器人固定深度控制方法
CN108444481A (zh) * 2018-03-25 2018-08-24 哈尔滨工程大学 一种基于辅助决策系统的水下潜器路径规划方法
CN108563112A (zh) * 2018-03-30 2018-09-21 南京邮电大学 用于仿真足球机器人控球的控制方法
CN108803321A (zh) * 2018-05-30 2018-11-13 清华大学 基于深度强化学习的自主水下航行器轨迹跟踪控制方法
CN109344969A (zh) * 2018-11-01 2019-02-15 石家庄创天电子科技有限公司 神经网络系统及其训练方法以及计算机可读介质
CN109407682A (zh) * 2018-09-29 2019-03-01 大连海洋大学 基于图像特征深度强化学习的auv管道循管方法
CN109739090A (zh) * 2019-01-15 2019-05-10 哈尔滨工程大学 一种自主式水下机器人神经网络强化学习控制方法
CN109882996A (zh) * 2019-01-25 2019-06-14 珠海格力电器股份有限公司 一种控制的方法及设备
CN110286677A (zh) * 2019-06-13 2019-09-27 北京理工大学 一种用于数据采集的无人车控制方法和系统
CN110333739A (zh) * 2019-08-21 2019-10-15 哈尔滨工程大学 一种基于强化学习的auv行为规划及动作控制方法
CN110606178A (zh) * 2019-10-28 2019-12-24 南京工程学院 一种基于三目视觉的海底观测水下机器人及其控制方法
CN110659755A (zh) * 2018-06-28 2020-01-07 比亚迪股份有限公司 用于预测电机温度的建模方法、装置和存储介质
CN110673615A (zh) * 2019-08-28 2020-01-10 浙江工业大学 一种自主水下无人航行器控制系统
CN110764415A (zh) * 2019-10-31 2020-02-07 清华大学深圳国际研究生院 一种四足机器人腿部运动的步态规划方法
CN110806759A (zh) * 2019-11-12 2020-02-18 清华大学 一种基于深度强化学习的飞行器航线跟踪方法
CN110879595A (zh) * 2019-11-29 2020-03-13 江苏徐工工程机械研究院有限公司 一种基于深度强化学习的无人矿卡循迹控制系统及方法
CN110888104A (zh) * 2019-11-04 2020-03-17 浙江大学 一种接近信标轨迹下的水下机器人定位方法
CN110926470A (zh) * 2019-09-25 2020-03-27 吉林大学珠海学院 一种agv导航控制方法及系统
CN111195906A (zh) * 2018-11-20 2020-05-26 西门子工业软件有限公司 用于预测机器人的运动轨迹的方法和系统
CN111381233A (zh) * 2018-12-28 2020-07-07 中国船舶重工集团公司第七一九研究所 一种水下对抗态势显控方法及系统
CN111417964A (zh) * 2018-02-05 2020-07-14 渊慧科技有限公司 使用异策略行动者-评价者强化学习进行分布式训练
CN112100834A (zh) * 2020-09-06 2020-12-18 西北工业大学 一种基于深度强化学习的水下滑翔机姿态控制方法
CN112179367A (zh) * 2020-09-25 2021-01-05 广东海洋大学 一种基于深度强化学习的智能体自主导航方法
CN112241176A (zh) * 2020-10-16 2021-01-19 哈尔滨工程大学 一种水下自主航行器在大尺度连续性障碍物环境中路径规划避障控制方法
CN112595326A (zh) * 2020-12-25 2021-04-02 湖北汽车工业学院 一种融合先验知识的改进Q-learning路径规划算法
CN113784410A (zh) * 2021-09-24 2021-12-10 吉林大学 基于强化学习td3算法的异构无线网络垂直切换方法
CN114721408A (zh) * 2022-04-18 2022-07-08 哈尔滨理工大学 一种基于强化学习的水下机器人路径跟踪方法
CN115657683A (zh) * 2022-11-14 2023-01-31 中国电子科技集团公司第十研究所 一种可用于巡检作业任务的无人无缆潜水器实时避障方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102298326A (zh) * 2011-06-30 2011-12-28 哈尔滨工程大学 欠驱动auv自适应轨迹跟踪控制装置及控制方法
CN102402712A (zh) * 2011-08-31 2012-04-04 山东大学 基于神经网络的机器人强化学习初始化方法
CA2732697A1 (en) * 2011-02-21 2012-08-21 Jhonattan Didier Jdrf Rueda Florez Unmanned robotic delta weapon platform
KR20150059191A (ko) * 2013-11-21 2015-06-01 한국해양과학기술원 소나 영상의 실시간 영상처리를 이용한 수중물체의 인식 및 추적방법
CN106355248A (zh) * 2016-08-26 2017-01-25 深圳先进技术研究院 一种深度卷积神经网络训练方法及装置
CN106873585A (zh) * 2017-01-18 2017-06-20 无锡辰星机器人科技有限公司 一种导航寻路方法、机器人及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2732697A1 (en) * 2011-02-21 2012-08-21 Jhonattan Didier Jdrf Rueda Florez Unmanned robotic delta weapon platform
CN102298326A (zh) * 2011-06-30 2011-12-28 哈尔滨工程大学 欠驱动auv自适应轨迹跟踪控制装置及控制方法
CN102402712A (zh) * 2011-08-31 2012-04-04 山东大学 基于神经网络的机器人强化学习初始化方法
KR20150059191A (ko) * 2013-11-21 2015-06-01 한국해양과학기술원 소나 영상의 실시간 영상처리를 이용한 수중물체의 인식 및 추적방법
CN106355248A (zh) * 2016-08-26 2017-01-25 深圳先进技术研究院 一种深度卷积神经网络训练方法及装置
CN106873585A (zh) * 2017-01-18 2017-06-20 无锡辰星机器人科技有限公司 一种导航寻路方法、机器人及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
马琼雄 等: "基于深度强化学习的水下机器人最优轨迹控制", 《华南师范大学学报》 *
马静: "无人飞行器轨迹跟踪控制设计与仿真", 《中国优秀硕士学位论文全文数据库 工程科技辑》 *

Cited By (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107450593A (zh) * 2017-08-30 2017-12-08 清华大学 一种无人机自主导航方法和系统
CN107450593B (zh) * 2017-08-30 2020-06-12 清华大学 一种无人机自主导航方法和系统
CN107729953B (zh) * 2017-09-18 2019-09-27 清华大学 基于连续状态行为域强化学习的机器人羽状流追踪方法
CN107729953A (zh) * 2017-09-18 2018-02-23 清华大学 基于连续状态行为域强化学习的机器人羽状流追踪方法
CN107748566A (zh) * 2017-09-20 2018-03-02 清华大学 一种基于强化学习的水下自主机器人固定深度控制方法
CN107748566B (zh) * 2017-09-20 2020-04-24 清华大学 一种基于强化学习的水下自主机器人固定深度控制方法
CN111417964A (zh) * 2018-02-05 2020-07-14 渊慧科技有限公司 使用异策略行动者-评价者强化学习进行分布式训练
CN111417964B (zh) * 2018-02-05 2024-04-19 渊慧科技有限公司 异策略行动者-评价者强化学习方法和系统
CN108444481A (zh) * 2018-03-25 2018-08-24 哈尔滨工程大学 一种基于辅助决策系统的水下潜器路径规划方法
CN108563112A (zh) * 2018-03-30 2018-09-21 南京邮电大学 用于仿真足球机器人控球的控制方法
CN108803321B (zh) * 2018-05-30 2020-07-10 清华大学 基于深度强化学习的自主水下航行器轨迹跟踪控制方法
CN108803321A (zh) * 2018-05-30 2018-11-13 清华大学 基于深度强化学习的自主水下航行器轨迹跟踪控制方法
CN110659755B (zh) * 2018-06-28 2024-03-05 比亚迪股份有限公司 用于预测电机温度的建模方法、装置和存储介质
CN110659755A (zh) * 2018-06-28 2020-01-07 比亚迪股份有限公司 用于预测电机温度的建模方法、装置和存储介质
CN109407682B (zh) * 2018-09-29 2021-06-15 大连海洋大学 基于图像特征深度强化学习的auv管道循管方法
CN109407682A (zh) * 2018-09-29 2019-03-01 大连海洋大学 基于图像特征深度强化学习的auv管道循管方法
CN109344969B (zh) * 2018-11-01 2022-04-08 石家庄创天电子科技有限公司 神经网络系统及其训练方法以及计算机可读介质
CN109344969A (zh) * 2018-11-01 2019-02-15 石家庄创天电子科技有限公司 神经网络系统及其训练方法以及计算机可读介质
CN111195906A (zh) * 2018-11-20 2020-05-26 西门子工业软件有限公司 用于预测机器人的运动轨迹的方法和系统
CN111195906B (zh) * 2018-11-20 2023-11-28 西门子工业软件有限公司 用于预测机器人的运动轨迹的方法和系统
CN111381233A (zh) * 2018-12-28 2020-07-07 中国船舶重工集团公司第七一九研究所 一种水下对抗态势显控方法及系统
CN109739090A (zh) * 2019-01-15 2019-05-10 哈尔滨工程大学 一种自主式水下机器人神经网络强化学习控制方法
CN109882996A (zh) * 2019-01-25 2019-06-14 珠海格力电器股份有限公司 一种控制的方法及设备
CN110286677A (zh) * 2019-06-13 2019-09-27 北京理工大学 一种用于数据采集的无人车控制方法和系统
CN110286677B (zh) * 2019-06-13 2021-03-16 北京理工大学 一种用于数据采集的无人车控制方法和系统
CN110333739A (zh) * 2019-08-21 2019-10-15 哈尔滨工程大学 一种基于强化学习的auv行为规划及动作控制方法
CN110673615A (zh) * 2019-08-28 2020-01-10 浙江工业大学 一种自主水下无人航行器控制系统
CN110926470A (zh) * 2019-09-25 2020-03-27 吉林大学珠海学院 一种agv导航控制方法及系统
CN110606178A (zh) * 2019-10-28 2019-12-24 南京工程学院 一种基于三目视觉的海底观测水下机器人及其控制方法
CN110606178B (zh) * 2019-10-28 2024-04-23 南京工程学院 一种基于三目视觉的海底观测水下机器人及其控制方法
CN110764415A (zh) * 2019-10-31 2020-02-07 清华大学深圳国际研究生院 一种四足机器人腿部运动的步态规划方法
CN110764415B (zh) * 2019-10-31 2022-04-15 清华大学深圳国际研究生院 一种四足机器人腿部运动的步态规划方法
CN110888104B (zh) * 2019-11-04 2022-03-22 浙江大学 一种接近信标轨迹下的水下机器人定位方法
CN110888104A (zh) * 2019-11-04 2020-03-17 浙江大学 一种接近信标轨迹下的水下机器人定位方法
CN110806759A (zh) * 2019-11-12 2020-02-18 清华大学 一种基于深度强化学习的飞行器航线跟踪方法
CN110879595A (zh) * 2019-11-29 2020-03-13 江苏徐工工程机械研究院有限公司 一种基于深度强化学习的无人矿卡循迹控制系统及方法
CN112100834A (zh) * 2020-09-06 2020-12-18 西北工业大学 一种基于深度强化学习的水下滑翔机姿态控制方法
CN112179367A (zh) * 2020-09-25 2021-01-05 广东海洋大学 一种基于深度强化学习的智能体自主导航方法
CN112179367B (zh) * 2020-09-25 2023-07-04 广东海洋大学 一种基于深度强化学习的智能体自主导航方法
CN112241176A (zh) * 2020-10-16 2021-01-19 哈尔滨工程大学 一种水下自主航行器在大尺度连续性障碍物环境中路径规划避障控制方法
CN112241176B (zh) * 2020-10-16 2022-10-28 哈尔滨工程大学 一种水下自主航行器在大尺度连续性障碍物环境中路径规划避障控制方法
CN112595326A (zh) * 2020-12-25 2021-04-02 湖北汽车工业学院 一种融合先验知识的改进Q-learning路径规划算法
CN113784410A (zh) * 2021-09-24 2021-12-10 吉林大学 基于强化学习td3算法的异构无线网络垂直切换方法
CN114721408A (zh) * 2022-04-18 2022-07-08 哈尔滨理工大学 一种基于强化学习的水下机器人路径跟踪方法
CN115657683A (zh) * 2022-11-14 2023-01-31 中国电子科技集团公司第十研究所 一种可用于巡检作业任务的无人无缆潜水器实时避障方法

Also Published As

Publication number Publication date
CN107102644B (zh) 2019-12-10

Similar Documents

Publication Publication Date Title
CN107102644A (zh) 基于深度强化学习的水下机器人轨迹控制方法及控制系统
CN107748566A (zh) 一种基于强化学习的水下自主机器人固定深度控制方法
CN106406235B (zh) 机床、模拟装置以及机械学习器
CN108161934A (zh) 一种利用深度强化学习实现机器人多轴孔装配的方法
CN109388073A (zh) 一种车辆动态模拟的方法和装置
CN112232490B (zh) 一种基于视觉的深度模仿强化学习驾驶策略训练方法
CN110238839B (zh) 一种利用环境预测优化非模型机器人多轴孔装配控制方法
CN109733415A (zh) 一种基于深度强化学习的拟人化自动驾驶跟驰模型
CN104924313B (zh) 具有模仿学习机制的手把手示教机械臂系统及方法
CN105319987B (zh) 一种作业型rov训练模拟器的运动控制仿真系统
CN109492763A (zh) 一种基于强化学习网络训练的自动泊车方法
CN109483530A (zh) 一种基于深度强化学习的足式机器人运动控制方法及系统
CN109523029A (zh) 用于训练智能体的自适应双自驱动深度确定性策略梯度强化学习方法
CN108319293A (zh) 一种基于lstm网络的uuv实时避碰规划方法
CN110000795A (zh) 一种视觉伺服控制的方法、系统及设备
CN109739218A (zh) 一种基于gru网络的仿优秀驾驶员换道模型建立方法
CN105094124A (zh) 基于操作条件反射进行自主路径探索的方法及模型
CN109765916A (zh) 一种水面无人艇路径跟踪控制器设计方法
CN112034711A (zh) 一种基于深度强化学习的无人艇抗海浪干扰控制方法
CN113821045A (zh) 一种腿足机器人强化学习动作生成系统
CN110525428A (zh) 一种基于模糊深度强化学习的自动泊车方法
CN106446424A (zh) 一种非定常气动力模型参数预测方法
CN109828467A (zh) 一种数据驱动的无人船强化学习控制器结构及设计方法
CN108267952A (zh) 一种水下机器人自适应有限时间控制方法
CN107633105A (zh) 一种基于改进混合蛙跳算法的四旋翼无人机参数辨识方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20191210