基于连续状态行为域强化学习的机器人羽状流追踪方法转让专利

申请号 : CN201710840331.X

文献号 : CN107729953B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 宋士吉牛绿茵

申请人 : 清华大学

摘要 :

本发明提出的基于连续状态行为域强化学习的机器人羽状流追踪方法,属于水下机器人路径规划领域。该方法对水下机器人进行羽状流热液喷口搜索的路径规划进行训练;机器人在每次羽状流追踪中通过生成状态向量输入当前决策神经网络,神经网络输出该时刻机器人前进方向,机器人匀速运行一段时间后,更新在新时刻的状态向量并判断单次羽状流追踪是否达到终止条件:当满足终止条件时,则单次羽状流追踪结束,机器人重新生成新的初始位置;若不满足,则机器人下一时刻继续前进;在此过程中,利用强化学习算法在每个时刻对决策神经网络进行更新,直到算法收敛。本发明学习速度快,收敛好,能够提高机器人追踪羽状流热液喷口的灵活性,降低搜索成本。

权利要求 :

1.一种基于连续状态行为域强化学习的机器人羽状流追踪方法,其特征在于,包括以下步骤:

1)设定参数;

设定水下机器人以v=1.0m/s的速度匀速前进,每次前进时间间隔为τ=10s,每次前进后机器人重新判断前进方向;

设定机器人在单次羽状流追踪中最大时间为6000s;设定机器人进行羽状流追踪的总次数为1000次,机器人的探索概率为∈=0.2;

建立一个记忆空间RB数组,初始化为空,RB数组的最大容量为10000;

2)分别构建决策神经网络和价值神经网络;具体步骤如下:

2-1)构建决策神经网络;

决策神经网络的函数表达式为μθ:s→a,其中决策神经网络的输入s表示当前的机器人状态向量,决策神经网络的输出a表示机器人前进方向与当前位置流场方向构成的夹角;以流场方向为基准方向:若a为正,则代表机器人前进方向位于流场方向的逆时针方向;若a为负,则代表机器人前进方向位于流场方向的顺时针方向;

μθ表示状态向量s与a之间的映射,即已知状态向量为s,决策函数为μθ,得到前进方向与当前位置流场方向构成的夹角为a=μθ(s);μθ中的向量θ为决策神经网络中的参数,θ的初始值为0;

所述机器人状态向量s表达式为 其中,φflow指当前机器人所在位置的流场流速; 表示最近一次检测到羽状流细丝信号的时刻与当前时刻的时间差:若当前时刻能检测到羽状流细丝信号,则 如果当前时刻没有检测到羽状流细丝信号,则 为一个大于0的值; 表示最近一次检测到羽状流细丝信号时的机器人位置xlast与当前机器人位置x所组成的向量与当前位置流场方向构成的夹角,以流场方向为基准方向:若向量位于流场方向的逆时针方向,则该夹角为正;若向量位于流场方向的顺时针方向则该夹角为负;alast指的是最近一次检测到羽状流细丝信号时候水下机器人的前进方向与当前位置流场方向构成的夹角;

2-2)构建价值神经网络;

价值神经网络的函数表达式为 其中价值神经网络的输入为s和a,输出为价值评分Q;设定价值神经网络中权重参数为ω向量,ω的初始值为0;

3)生成机器人单次羽状流追踪的初始状态;

将水下机器人放入喷口海域,当机器人第一次检测到羽状流细丝信号时,此时记为t=

0时刻,记录机器人当前位置x0和该时刻机器人当前位置的流场流速φ0;

在t=0时刻,φflow=φ0, alast=0,生成机器人状态向量s0=(φ0,0,0,0)作为机器人此次羽状流追踪的初始状态;

4)在初始状态下,计算机器人的前进方向与当前位置流场方向构成的夹角a0;

随机生成(0,1)之间的随机数rand并进行判定:

4-1)如果rand大于等于探索概率,即rand≥ε,则机器人不进行探索,机器人按照当前决策神经网络输出的结果得到前进方向与当前位置流场方向构成的夹角;将状态向量s0=(φ0,0,0,0)输入决策神经网络中,决策神经网络输出机器人t=0时刻的前进方向与当前位置流场方向构成的夹角a0=μθ(s0);

4-2)如果rand小于探索概率,即rand<∈,则机器人执行探索,机器人在角度区间之间随机选择一个角度作为t=0时刻的前进方向与当前位置流场方向构成的夹角a0;

5)更新最近一次检测到羽状流细丝信号的时刻的信息;

设定t=0时刻为最近一次检测到羽状流细丝信号的时刻,并记录下最近一次检测到羽状流细丝信号的信息,包括:时间、机器人位置、前进方向与当前位置流场方向构成的夹角,表达式如下:tlast=0,xlast=x0,alast=a0;其中位置x为机器人的坐标;

6)机器人利用步骤4)生成的a0以速度v前进时间τ后,此时为t=1时刻,机器人到达新的位置,利用奖励函数计算计算t=0时刻的奖励r0,奖励reward计算表达式如下:

7)记录t=1时刻机器人当前位置的流场速度φ1,机器人当前位置x1,并利用状态表达式 与以下规则生成t=1时刻的状态向量s1:

7-1)如果此时机器人检测到羽状流细丝信号,则当前的状态向量为其中,0表示当该位置此时能检测到信号时 alast=a0;

7-2)如果此时机器人未检测到羽状流细丝信号,则在未检测到信号浓度的时间上加1,则当前状态向量为

8)构建t=0时刻的元胞(s0,a0,s1,r0)存入到记忆空间RB中;

9)利用记忆空间RB中存储的元胞作为训练样本集,更新决策神经网络,具体步骤如下:

9-1)从记忆空间RB中随机选取N个元胞(si,ai,nsi,ri),i=1,...,N,组成训练样本集,其中nsi表示状态si的下一个状态;当记忆空间RB中存储的元胞数量小于N时,则N为RB中全部元胞的数量;

9-2)利用时间差分更新价值神经网络;具体步骤如下:

9-2-1)对于训练样本集中的每个训练样本(si,ai,nsi,ri),i=1,...,N,利用当前决策神经网络得到每个状态向量nsi对应的机器人前进方向与当前位置流场方向构成的夹角,表达式如下:nai=μθ(nsi)

9-2-2)对于每个训练样本,计算时间差分项:

其中,γ是一个折扣常量, 表示状态向量nsi选择nai的价值,即输入为nsi,nai时当前价值神经网络的输出; 表示状态si选择ai的价值,即输入为si,ai时当前价值神经网络的输出;

9-2-3)对于每个训练样本,更新价值神经网络权重参数ω,表达式如下:其中, 表示 对于ω的梯度,α是价值神经网络的学习速率,初始值

0.001;

9-2-4)对于每个训练样本,计算 即 对于ai的梯度;

9-3)利用确定性策略梯度方法更新决策神经网络:

对于每个训练样本,利用求得的 利用随机梯度方法,更新参数θ,表达式如下:

其中, 表示μθ(si)关于参数θ的导数;β是决策神经网络的学习速率,初始值设为0.0001;更新后的决策神经网络为新的当前决策神经网络;

10)判断该次羽状流追踪是否终止:

10-1)单次羽状流追踪的终止条件包括三个,任意满足其中一个条件则单次羽状流追踪终止;具体如下:

10-1-1)如果机器人当前位置距离羽状流热液喷口不足两米,则表明机器人找到喷口,单次羽状流追踪终止,进入步骤17);

10-1-2)如果机器人当前状态向量中 表明机器人在该次羽状流追踪中未检测到羽状流细丝信号长达70个时间间隔,则单次羽状流追踪终止,进入步骤17);

10-1-3)如果机器人在单次羽状流追踪中所用时间超过6000秒,则单次羽状流追踪终止,进入步骤17);

10-2)如果未达到终止条件,则本次羽状流追踪仍然在继续,进入步骤11);

11)记当前时刻为t时刻,机器人当前状态向量为st,选择机器人新的前进方向与当前位置流场方向构成的夹角;具体如下:随机生成(0,1)之间的随机数rand并判定:

11-1)如果rand大于等于探索概率,即rand≥ε,则机器人不进行探索,机器人按照当前决策神经网络输出的结果得到t时刻的前进方向与当前位置流场方向构成的夹角,at=μθ(st);

11-2)如果rand小于探索概率,即rand<∈,则表明机器人执行探索,机器人按以下规则选择t时刻的前进方向与当前位置流场方向构成的夹角:

11-2-1)若机器人t时刻在羽状流中,即当前位置机器人检测到羽状流细丝信号,则机器人在 区间内随机选择一个角度at作为机器人t时刻的前进方向与当前位置流场方向构成的夹角;

11-2-2)若机器人t时刻不在羽状流中,即当前位置机器人没有检测到羽状流细丝信号,则水下机器人在 区间内随机选择一个角度at作为机器人t时刻的前进方向与当前位置流场方向构成的夹角;

12)如果t时刻机器人检测到羽状流细丝信号,则更新当前时刻为最近一次检测到羽状流细丝信号的时刻,并更新最近一次检测到羽状流细丝信号的信息,:tlast=t,xlast=xt,alast=at;如果t时刻机器人未检测到羽状流细丝信号,则保持t-1时刻记录的最近一次检测到羽状流细丝信号的的信息不变;

13)水下机器人利用步骤11)生成的at以速度v前进时间τ后,当前时刻为t+1时刻,机器人到达新的当前位置,利用奖励函数计算t时刻的奖励rt,记录下新的当前位置上的流场速度φt+1,机器人新的当前位置xt+1,并定义新的当前的状态为其中,t-tlast表示的是t+1时刻距离最近一次检测到羽状流细丝信号时刻的时间差;

表示的是新的当前位置与最近一次检测到羽状流细丝信号位置之间的连线与当前流场方向之间的夹角;

14)构建t时刻的元胞(st,at,st+1,rt),并存入到记忆空间RB中;

15)重复步骤9),利用记忆空间RB中存储的元胞作为训练样本集,更新决策神经网络;

16)重复步骤10),判断该次羽状流追踪是否终止:

17)对羽状流追踪次数利用下列条件依次进行判定:

17-1)若机器人连续10次均成功找到羽状流喷口,则决策神经网络和价值神经网络的参数学习接近收敛状态,更新探索概率ε=0.9*ε,更新学习速率α=0.1*α,β=0.1*β,重新返回步骤3)开始新一次的羽状流追踪;

17-2)若机器人连续30次均成功找到羽状流喷口,则判定决策神经网络和价值神经网络收敛,训练结束,生成最终决策神经网络;将状态向量输入到最终决策神经网络中,该网络输出前进方向与当前位置流场方向构成的夹角作为机器人羽状流追踪的前进方向与当前位置流场方向构成的夹角;

17-3)若机器人羽状流追踪次数超过1000次,则表明决策神经网络和价值神经网络仍未收敛,重新返回步骤1),对参数进行重新初始化,机器人重新开始新的羽状流追踪训练;

17-4)若如步骤17-1)至17-3)所示的三种条件均不满足,则重新返回步骤3),机器人开始新一次的羽状流追踪。

说明书 :

基于连续状态行为域强化学习的机器人羽状流追踪方法

技术领域

[0001] 本发明属于水下机器人路径规划领域,特别涉及一种基于连续状态行为域强化学习的机器人羽状流追踪方法。

背景技术

[0002] 深海热液活动及其生命现象,是20世纪海洋科学界的重大发现之一。由于深海热液喷口与海底扩张、多金属硫化物成矿有着十分紧密的关系,且涉及热液环境中生物群落的演化过程、热液活动对全球气候变化的影响等前沿科学问题,因此,对深海热液的研究已经成为如今海洋研究的一大热点问题。
[0003] 为了进一步研究深海热液,需要探索深海未知热液喷口的位置。研究学者发现,深海热液喷口会喷发出热液物质,这些热液物质会因为海流和自身布朗运动的作用,形成热液羽状流。羽状流追踪技术,就是让水下机器人通过分析深海中的热液羽状流的信息,找到喷口的技术。然而,现有的羽状流追踪方法很难适应各种深海的复杂环境,导致了现有的水下机器人存在着需要多次下潜回收才能找到目标喷口的问题,这些问题延长了作业时间并增加了作业成本。因此,设计出一种能够适应多种深海环境的羽状流跟踪方法,对于深海热液异常区的研究具有十分重要的意义。
[0004] 受细菌“趋药性”行为的启发,一些寻找释放化学物质源头的方法考虑用浓度梯度法。在搜索过程中,通过测量不同位置的浓度,找到浓度梯度上升的方向作为搜索方向。有很多学者提出了不同的测量浓度梯度的方法,Connelly等提出让机器人做规定半径的圆周运动,采集圆周上点的浓度,计算出梯度下降的方向;而Burian等提出的是通过机器人在某点做往复运动,确定梯度大致下降的范围。这些方法最大的问题是为了得到浓度梯度,需要花费许多多余的轨迹。另外,随着对羽状流模型本身的了解加深,人们发现由于流场存在湍流,导致了羽状流的浓度并不是依照与喷口的距离递减的,有些烟羽细丝可能被湍流卷在一起,形成瞬时的高浓度,另一些烟羽细丝则可能被水流冲走,导致即使在羽状流的内部也有可能没有热液信号。因此,瞬时浓度梯度方法的有效性受到质疑。
[0005] 虽然羽状流受到湍流的作用是不连续且时变的,但仍旧有一些动物可以通过食物的气味和雌性身上的信息素成功找到食物和同伴。因此,学者们开始研究龙虾、飞蛾的找寻过程,提出了仿生学的搜索策略。Hayes等人提出了逆风搜索和外螺旋搜索相结合的方法。在羽状流中,逆风方向比浓度梯度方向更能有效表示喷口的方向,因此,逆风搜索能让水下机器人尽快的到达热液喷口。但羽状流在湍流作用下是不连续,或者羽状流的中心线与流场方向不平行,会导致机器人在逆风搜索的过程中丢失热液信号。此时,则通过外螺旋运动的方法,逐步扩大机器人搜索半径,直到机器人重新检测到热液信号。Wei等人提出的搜索策略也包含逆风搜索步骤和重获信号搜索步骤。但在逆风搜索步骤中,考虑到烟羽细丝分布的不连续性导致的传感器即使身处羽状流中也可能检测不到热液信号的情况,该方法在刚检测不到热液的较短时间内,依旧逆风搜索,而不是直接进入重获热液的过程。为了防止此时逆风搜索导致热液丢失,会根据当前流场和当前位置与最后一次能检测到热液的位置的关系,为逆风方向增加一个固定的偏角。重获信号搜索步骤,则采用的是固定的三叶草搜索的方法,并通过实验数据,确定三叶草的大小。
[0006] 这些方法相比于浓度梯度法,更多考虑羽状流的特性,有针对的设计策略,并还有重新找回措施,实验中效果较好,但依旧存在一定的问题。首先,判断情况少,仅仅针对是否检测到浓度,丢失信号的时间做出相应的动作,没有利用其它可利用信息,例如流场的大小、方向、丢失位置以及丢失时自身动作等,考虑不够周全。其次,机器人在羽状流中的动作比较单一,简单的逆流方向或者与逆流场偏转固定角度的方向,在窄长直的羽状流中,效果很好,但难以应对深海复杂的羽状流。最后,热液找回机制都是固定的一套寻找动作,搜索范围是事先人工给定,不能自适应当前的环境,导致成本较大。

发明内容

[0007] 本发明的目的是为克服已有技术的不足之处,提出了一种基于连续状态行为域强化学习的机器人羽状流追踪方法。本发明首次将状态行为域连续的强化学习方法引入到羽状流追踪方法中,学习速度快,收敛好,能够提高水下机器人追踪羽状流热液喷口的灵活性,降低搜索成本。
[0008] 本发明提出的基于连续状态行为域强化学习的机器人羽状流追踪方法,其特征在于,包括以下步骤:
[0009] 1)设定参数;
[0010] 设定水下机器人以v=1.0m/s的速度匀速前进,每次前进时间间隔为τ=10s,每次前进后机器人重新判断前进方向;
[0011] 设定机器人在单次羽状流追踪中最大时间为6000s;设定机器人进行羽状流追踪的总次数为1000次,机器人的探索概率为∈=0.2;
[0012] 建立一个记忆空间RB数组,初始化为空,RB数组的最大容量为10000;
[0013] 2)分别构建决策神经网络和价值神经网络;具体步骤如下:
[0014] 2-1)构建决策神经网络;
[0015] 决策神经网络的函数表达式为μθ:s→a,其中决策神经网络的输入s表示当前的机器人状态向量,决策神经网络的输出a表示机器人前进方向与当前位置流场方向构成的夹角;以流场方向为基准方向:若a为正,则代表机器人前进方向位于流场方向的逆时针方向;若a为负,则代表机器人前进方向位于流场方向的顺时针方向;
[0016] μθ表示状态向量s与机器人前进方向a之间的映射,即已知状态向量为s,决策函数为μθ,得到前进方向为a=μθ(s);μθ中的向量θ为决策神经网络中的参数,θ的初始值为0;
[0017] 所述机器人状态向量s表达式为 其中,φflow指当前机器人所在位置的流场流速; 表示最近一次检测到羽状流细丝信号的时刻与当前时刻的时间差:若当前时刻能检测到羽状流细丝信号,则 如果当前时刻没有检测到羽状流细丝信号,则 为一个大于0的值; 表示最近一次检测到羽状流细丝信号时的机器人位置Xlast与当前机器人位置x所组成的向量与当前位置流场方向构成的夹角,以流场方向为基准方向:若向量位于流场方向的逆时针方向,则该夹角为正;若向量位于流场方向的顺时针方向则该夹角为负;alast指的是最近一次检测到羽状流细丝信号时候水下机器人的前进方向与当前位置流场方向构成的夹角;
[0018] 2-2)构建价值神经网络;
[0019] 价值神经网络的函数表达式为 其中价值神经网络的输入为机器人状态向量s和机器人前进方向a,输出为价值评分Q;设定价值神经网络中权重参数为ω向量,ω的初始值为0;
[0020] 3)生成机器人单次羽状流追踪的初始状态;
[0021] 将水下机器人放入喷口海域,当机器人第一次检测到羽状流细丝信号时,此时记为t=0时刻,记录机器人当前位置x0和该时刻机器人当前位置的流场流速φ0;
[0022] 在t=0时刻,φflow=φ0, αlast=0,生成机器人状态向量s0=(φ0,0,0,0)作为机器人此次羽状流追踪的初始状态;
[0023] 4)在初始状态下,计算机器人的前进方向a0;
[0024] 随机生成(0,1)之间的随机数rand并进行判定:
[0025] 4-1)如果rand大于等于探索概率,即rand≥ε,则机器人不进行探索,机器人按照当前决策神经网络输出的结果得到前进方向;将状态向量s0=(φ0,0,0,0)输入决策神经网络中,决策神经网络输出机器人t=0时刻的前进方向a0=μθ(s0);
[0026] 4-2)如果rand小于探索概率,即rand<∈,则机器人执行探索,机器人在角度区间之间随机选择一个角度作为t=0时刻的前进方向a0;
[0027] 5)更新最近一次检测到羽状流细丝信号的时刻的信息;
[0028] 设定t=0时刻为最近一次检测到羽状流细丝信号的时刻,并记录下最近一次检测到羽状流细丝信号的信息,包括:时间、机器人位置与前进方向,表达式如下:tlast=0,xlast=x0,alast=a0;其中位置x为机器人的坐标;
[0029] 6)机器人利用步骤4)生成的前进方向a0以速度v前进时间τ后,此时为t=1时刻,机器人到达新的位置,利用奖励函数计算计算t=0时刻的奖励r0,奖励reward计算表达式如下:
[0030]
[0031] 7)记录t=1时刻机器人当前位置的流场速度φ1,机器人当前位置x1,并利用状态表达式 与以下规则生成t=1时刻的状态向量s1:
[0032] 7-1)如果此时机器人检测到羽状流细丝信号,则当前的状态向量为其中,0表示当该位置此时能检测到信号时 alast=a0;
[0033] 7-2)如果此时机器人未检测到羽状流细丝信号,则在未检测到信号浓度的时间上加1,则当前状态向量为
[0034] 8)构建t=0时刻的元胞(s0,a0,s1,r0)存入到记忆空间RB中;
[0035] 9)利用记忆空间RB中存储的元胞作为训练样本集,更新决策神经网络,具体步骤如下:
[0036] 9-1)从记忆空间RB中随机选取N个元胞(si,ai,nsi,ri),i,...,N,组成训练样本集,其中nsi表示状态si的下一个状态;当记忆空间RB中存储的元胞数量小于N时,则N为RB中全部元胞的数量;
[0037] 9-2)利用时间差分更新价值神经网络;具体步骤如下:
[0038] 9-2-1)对于训练样本集中的每个训练样本(si,ai,nsi,ri),i=1,...,N,利用当前决策神经网络得到每个状态向量nsi对应的机器人前进方向,表达式如下:
[0039] nai=μθ(nsi)
[0040] 9-2-2)对于每个训练样本,计算时间差分项:
[0041]
[0042] 其中,γ是一个折扣常量, 表示状态向量nsi选择前进方向nai的价值,即输入为nsi,nai时当前价值神经网络的输出; 表示状态si选择前进方向ai的价值,即输入为si,ai时当前价值神经网络的输出;
[0043] 9-2-3)对于每个训练样本,更新价值神经网络权重参数ω,表达式如下:
[0044]
[0045] 其中, 表示 对于ω的梯度,α是价值神经网络的学习速率,初始值0.001;
[0046] 9-2-4)对于每个训练样本,计算 即 对于ai的梯度;
[0047] 9-3)利用确定性策略梯度方法更新决策神经网络:
[0048] 对于每个训练样本,利用求得的 利用随机梯度方法,更新参数θ,表达式如下:
[0049]
[0050] 其中, 表示μθ(si)关于参数θ的导数;β是决策神经网络的学习速率,初始值设为0.0001;更新后的决策神经网络为新的当前决策神经网络;
[0051] 10)判断该次羽状流追踪是否终止:
[0052] 10-1)单次羽状流追踪的终止条件包括三个,任意满足其中一个条件则单次羽状流追踪终止;具体如下:
[0053] 10-1-1)如果机器人当前位置距离羽状流热液喷口不足两米,则表明机器人找到喷口,单次羽状流追踪终止,进入步骤17);
[0054] 10-1-2)如果机器人当前状态向量中Δtime>70,表明机器人在该次羽状流追踪中未检测到羽状流细丝信号长达70个时间间隔,则单次羽状流追踪终止,进入步骤17);
[0055] 10-1-3)如果机器人在单次羽状流追踪中所用时间超过6000秒,则单次羽状流追踪终止,进入步骤17);
[0056] 10-2)如果未达到终止条件,则本次羽状流追踪仍然在继续,进入步骤11);
[0057] 11)记当前时刻为t时刻,机器人当前状态向量为st,选择机器人新的前进方向;具体如下:
[0058] 随机生成(0,1)之间的随机数rand并判定:
[0059] 11-1)如果rand大于等于探索概率,即rand≥ε,则机器人不进行探索,机器人按照当前决策神经网络输出的结果得到t时刻的前进方向,at=μθ(st);
[0060] 11-2)如果rand小于探索概率,即rand<∈,则表明机器人执行探索,机器人按以下规则选择t时刻的前进方向::
[0061] 11-2-1)若机器人t时刻在羽状流中,即当前位置机器人检测到羽状流细丝信号,则机器人在 区间内随机选择一个角度at作为机器人t时刻的前进方向;
[0062] 11-2-2)若机器人t时刻不在羽状流中,即当前位置机器人没有检测到羽状流细丝信号,则水下机器人在 区间内随机选择一个角度at作为机器人t时刻的前进方向;
[0063] 12)如果t时刻机器人检测到羽状流细丝信号,则更新当前时刻为最近一次检测到羽状流细丝信号的时刻,并更新最近一次检测到羽状流细丝信号的信息,:tlast=t,xlast=xt,alast=at;如果t时刻机器人未检测到羽状流细丝信号,则保持t-1时刻记录的最近一次检测到羽状流细丝信号的的信息不变;
[0064] 13)水下机器人利用步骤11)生成的前进方向at以速度v前进时间τ后,当前时刻为t+1时刻,机器人到达新的当前位置,利用奖励函数计算t时刻的奖励rt,记录下新的当前位置上的流场速度φt+1,机器人新的当前位置xt+1,并定义新的当前的状态为其中,t-tlast表示的是t+1时刻距离最近一次检测到羽状
流细丝信号时刻的时间差; 表示的是新的当前位置与最近一次检测到羽状流细丝信号位置之间的连线与当前流场方向之间的夹角;
[0065] 14)构建t时刻的元胞(st,at,st+1,rt),并存入到记忆空间RB中;
[0066] 15)重复步骤9),利用记忆空间RB中存储的元胞作为训练样本集,更新决策神经网络;
[0067] 16)重复步骤10),判断该次羽状流追踪是否终止:
[0068] 17)对羽状流追踪次数利用下列条件依次进行判定:
[0069] 17-1)若机器人连续10次均成功找到羽状流喷口,则决策神经网络和价值神经网络的参数学习接近收敛状态,更新探索概率ε=0.9*ε,更新学习速率α=0.1*α,β=0.1*β,重新返回步骤3)开始新一次的羽状流追踪;
[0070] 17-2)若机器人连续30次均成功找到羽状流喷口,则判定决策神经网络和价值神经网络收敛,训练结束,生成最终决策神经网络;将状态向量输入到最终决策神经网络中,该网络输出前进方向作为机器人羽状流追踪的前进方向;
[0071] 17-3)若机器人羽状流追踪次数超过1000次,则表明决策神经网络和价值神经网络仍未收敛,重新返回步骤1),对参数进行重新初始化,机器人重新开始新的羽状流追踪训练;
[0072] 17-4)若如步骤17-1)至17-3)所示的三种条件均不满足,则重新返回步骤3),机器人开始新一次的羽状流追踪。
[0073] 本发明所提出的基于连续状态行为域强化学习的机器人羽状流追踪方法,其优点如下:
[0074] (1)本发明利用强化学习可以在没有任何数据和人工知识的情况下,通过水下机器人与深海环境交互,即可学习出羽状流追踪的决策神经网络,且神经网络可以在不断的交互过程中得以动态提升;本发明方法利用函数拟合时间差分的方法,训练价值神经网络;利用确定性策略梯度方法,更新决策神经网络,并设计相关算法能够让神经网络学习速度快、收敛好,最终收敛得到的羽状流追踪决策神经网络的输出指导机器人的前进方向;
[0075] (2)本发明使用在连续的状态域中,水下机器人在与深海环境交互时遇到的每一种情况都被包含在该方法中,可以应对深海中的各种复杂情况;
[0076] (3)本发明使用在连续的行为域中,使水下机器人的行动不再局限于固定的偏置角度,行动更加灵活。机器人在不断的向着喷口的方向前进的同时,能考虑到各种情况灵活地摆动偏角,以防止由于复杂流场导致的丢失羽状流的现象,降低由于羽状流丢失带来的搜索成本;
[0077] (4)本发明采用了一系列的学习加速机制,能确保水下机器人在一定的尝试次数后就可以学习到具有较高价值的决策神经网络,减少前期的学习成本。

附图说明

[0078] 图1本发明方法的整体流程框图。
[0079] 图2是本发明实施例中奖励函数总和与探索次数的关系示意图。
[0080] 图3是本发明实施例中仿生方法与本发明方法的羽状流追踪路径的对比图。
[0081] 图4是本发明实施例中利用本发明方法得到的四个决策神经网络与仿生学方法的100次成功搜索中搜索步数分布对比图。

具体实施方式

[0082] 本发明提出的基于连续状态行为域强化学习的机器人羽状流追踪方法,下面结合附图和具体实施例进一步详细说明如下。
[0083] 本发明提出的基于连续状态行为域强化学习的机器人羽状流追踪方法,将机器人羽状流追踪过程利用序列决策描述。水下机器人在初始时刻会获得当前深海的环境信息,包括深海的海流流速和热液羽状流信号浓度等传感器可检测到的信号。将这些信号组成单步路径规划所需要依据的状态向量,将状态向量输入当前决策神经网络,决策神经网络输出机器人该时刻前进方向,机器人匀速运行一段时间后,更新在新时刻的状态向量并判断单次羽状流追踪是否达到终止条件:当满足终止条件时,则单次羽状流追踪结束,机器人重新生成新的初始位置;若不满足,则机器人下一时刻继续前进;在此过程中,利用强化学习算法在每个时刻对决策神经网络进行更新,直到算法收敛。该方法整体流程如图1所示,包括以下步骤:
[0084] 1)设定参数;
[0085] 设定水下机器人以v=1.0m/s的前进速度匀速前进,每次前进时间间隔为τ=10s,每次前进后机器人重新判断前进方向。
[0086] 设定机器人在单次羽状流追踪搜寻热液喷口过程中所需要用到最大时间为6000s,即如果将每个时间间隔下机器人的运动看作一步的话,机器人最多走600步。设定机器人进行羽状流追踪的总次数为1000次,即最多有1000个单次羽状流追踪搜寻热液喷口的过程。设定机器人的探索概率为∈=0.2;
[0087] 机器人每次更新前进方向这一事件需要被记录下来作为样本集使用,建立一个记忆空间RB数组,初始化为空,机器人每走一步,将当前事件存入记忆空间,RB数组的容量最大为10000,如果存满,则会抛弃最开始存入的事件。
[0088] 2)分别构建决策神经网络和价值神经网络;具体步骤如下:
[0089] 2-1)构建决策神经网络;
[0090] 决策神经网络的函数表达式为μθ:s→a,其中决策神经网络的输入s表示的是当前环境生成的机器人状态向量,决策神经网络的输出a表示计算得到的机器人的前进方向与当前位置流场方向构成的夹角,以流场方向为基准方向:若a为正,则代表机器人前进方向位于流场方向的逆时针方向;若a为负,则代表机器人前进方向位于流场方向的顺时针方向。
[0091] μθ表示状态向量s与机器人前进方向a之间的映射,即已知状态向量为s,决策函数为μθ,得到前进方向为a=μθ(s)。μθ中的向量θ为决策神经网络中的参数,由于最开始对θ无任何已知信息,故规定:令θ的初始值为0;
[0092] 所述机器人状态向量s表达式为 其中,φflow指的是当前机器人所在位置的流场流速; 指的是最近一次检测到羽状流细丝信号的时刻与当前时刻的时间差:若当前时刻能检测到羽状流细丝信号,则 如果当前时刻没有检测到羽状流细丝信号,则 将是一个大于0的值; 指的是最近一次检测到羽状流细丝信号时的机器人位置xlast与当前机器人位置x所组成的向量与当前位置流场方向构成的夹角,以流场方向为基准方向:若向量位于流场方向的逆时针方向,则该夹角为正;若向量位于流场方向的顺时针方向则该夹角为负;alast指的是最近一次检测到羽状流细丝信号时候水下机器人的前进方向与当前位置流场方向构成的夹角,以流场方向为基准方向:若alast为正,则代表机器人前进方向位于流场方向的逆时针方向;若alast为负,则代表机器人前进方向位于流场方向的顺时针方向。
[0093] 2-2)构建价值神经网络;
[0094] 价值神经网络的输入为机器人状态向量s和机器人前进方向a,输出为价值评分Q,Q为实数,即为从状态s和行为a组成的状态行为对到实数的一个映射 并设定价值神经网络中权重参数为ω向量,ω的初始值为0;
[0095] 3)生成机器人单次羽状流追踪的初始状态;
[0096] 将水下机器人放入喷口海域,机器人在水下进行大范围海域的热液羽状流信号搜索,当机器人第一次检测到羽状流细丝信号时,此时规定为t=0时刻,记录下机器人当前位置x0(x0为机器人t=0时刻的坐标)以及该时刻机器人当前位置的流场流速φ0;
[0097] 在t=0时刻,由于此刻检测到的流场流速为φ0,则φflow=φ0,由于此时可以检测到羽状流细丝信号,且不存在最近一次检测到信号的点,因此规定此时的alast=0,生成机器人状态向量s0=(φ0,0,0,0)作为水下机器人跟
踪热液羽状流的初始状态。
[0098] 4)在初始状态下,计算机器人的前进方向;
[0099] 随机生成(0,1)之间的随机数rand并进行判定:
[0100] 4-1)如果rand大于等于探索概率(探索概率表示机器人不按照决策神经网络输出的前进方向行走的概率),即rand≥ε,则机器人不进行探索,机器人按照当前决策神经网络输出的结果得到前进方向,利用当前的状态向量s0=(φ0,0,0,0)决策神经网络输出机器人t=0时刻的前进方向a0=μθ(s0);
[0101] 4-2)如果rand小于探索概率,即rand<∈,则表明机器人需要执行探索,水下机器人在角度区间 之间随机选择一个角度作为t=0时刻的前进方向a0。
[0102] 5)更新最近一次检测到羽状流细丝信号的时刻的信息;设定t=0时刻为最近一次检测到羽状流细丝信号的时刻,并记录下最近一次检测到羽状流细丝信号的信息,包括:时间、机器人位置与前进方向,表达式如下:tlast=0,xlast=x0,alast=a0;其中位置x为机器人的坐标;
[0103] 6)水下机器人利用步骤4)生成的前进方向a0以速度v前进时间τ后,此时当前时刻为t=1时刻,机器人到达新的位置,机器人通过该位置的传感器(本发明中机器人上应装载检测当前流场流速的传感器、检测羽状流细丝信号的传感器,以及摄像头,该摄像头在机器人距离热液羽状流喷口很近时可以观察到喷口情况)观测信息和历史信息计算出t=0时刻的奖励r0,利用奖励函数计算奖励reward如下:
[0104]
[0105] 7)记录t=1时刻机器人当前的位置上的流场速度φ1,机器人当前位置x1,并利用状态表达式 与以下规则生成t=1时刻的状态向量s1:
[0106] 7-1)如果此时机器人能够检测到羽状流细丝信号,则定义当前的状态向量为其中,φ1是当前t=1时刻机器人位置的流场流速,0表示当该位置此时能检测到信号时 表示的是初始位置(即最近一次检测到羽状流细丝信
号的位置)和新的当前位置这两个位置点之间的连线与流场方向之间的夹角。alast=a0即初始位置时刻的前进方向。
[0107] 7-2)如果此时机器人未能检测到羽状流细丝信号,则在未检测到信号浓度的时间上加1,其他定义类似5-1),则当前状态向量为
[0108] 8)将从步骤3)至7)采集到的信息整理成t=0时刻的元胞(s0,a0,s1,r0)存入到记忆空间RB中;
[0109] 9)利用记忆空间RB中存储的元胞作为训练样本集,更新决策神经网络,具体步骤如下:
[0110] 9-1)从记忆空间RB中随机选取N个元胞(si,ai,nsi,ri),i=1,...,N,组成训练样本集,其中nsi表示状态si的下一个状态,N一般取64,当记忆空间RB中存储的元胞数量小于N时,则N为RB中全部元胞的数量;
[0111] 9-2)利用时间差分更新价值神经网络;具体步骤如下:
[0112] 9-2-1)对于训练样本集中的每个训练样本(si,ai,nsi,ri),i=1,...,N,利用当前决策神经网络得到每个状态向量nsi对应的机器人前进方向,表达式如下:
[0113] nai=μθ(nsi)
[0114] 9-2-2)对于训练样本集中的每个训练样本(si,ai,nsi,ri),i=1,...,N,计算时间差分项:
[0115]
[0116] 其中,γ是一个折扣常量,取值范围为[0,1],本实施例取值为0.9; 表示状态向量nsi选择前进方向nai的价值,即输入为nsi,nai时当前价值神经网络的输出。表示状态si选择前进方向ai的价值,即输入为si,ai时当前价值神经网络的输出;
[0117] 9-2-3)对于训练样本集中的每个训练样本(si,ai,nsi,ri),i=1,...,N,对价值神经网络权重参数ω进行更新,表达式如下:
[0118]
[0119] 其中 表示 对于ω的梯度,α是价值神经网络的学习速率,初始值0.001。
[0120] 9-2-4)对于训练样本集中的每个训练样本(si,ai,nsi,ri),i=1,...,N,计算即 对于ai的梯度,将N个值全部记下,为之后训练决策函数的神经网络参数做准备。
[0121] 9-3)利用确定性策略梯度方法更新决策神经网络:
[0122] 对于训练样本集中的每个训练样本(si,ai,nsi,ri),i=1,...,N,利用价值神经网络求得的 利用随机梯度方法,更新参数θ,表达式如下:
[0123]
[0124] 其中, 表示μθ(si)关于参数θ的导数;β是决策神经网络的学习速率,初始值设为0.0001;参数θ更新后,得到新的决策神经网络,来指导之后机器人的前进方向。
[0125] 10)判断该次羽状流追踪是否终止:
[0126] 单次羽状流追踪的终止条件包括三个,任意满足其中一个条件则单次羽状流追踪终止;具体如下:
[0127] 10-1-1)如果机器人当前位置距离羽状流热液喷口不足两米,足以让水下机器人的摄像头捕捉到喷口,则表明机器人找到喷口,单次羽状流追踪终止,进入步骤17);
[0128] 10-1-2)如果机器人当前状态向量中Δtime>70,表明机器人在该次羽状流追踪中未检测到羽状流细丝信号长达70个时间间隔,则单次羽状流追踪终止,进入步骤17);
[0129] 10-1-3)如果机器人在单次羽状流追踪中所用时间超过6000秒,则单次羽状流追踪终止,进入步骤17);
[0130] 10-2)如果未达到终止条件,则本次羽状流追踪仍然在继续,进入步骤11);
[0131] 11)记当前为t时刻,机器人当前状态向量为st选择机器人新的前进方向;具体如下:
[0132] 记当前为t时刻,,随机生成(0,1)之间的随机数rand并判定:
[0133] 11-1)如果rand大于等于探索概率,即rand≥ε,则不进行探索,机器人按照当前决策神经网络输出的结果得到前进方向,at=μθ(st),水下机器人将at方向作为t时刻的前进方向;
[0134] 11-2)如果rand小于探索概率,即rand<∈,则表明机器人需要执行探索,机器人按以下规则选择t时刻的前进方向::
[0135] 11-2-1)若机器人t时刻在羽状流中,即当前位置机器人能够检测到羽状流细丝信号,则水下机器人在 区间内随机选择一个角度at作为机器人t时刻的前进方向;
[0136] 11-2-2)若机器人t时刻不在羽状流中,即当前位置机器人不能够检测到羽状流细丝信号,则水下机器人在 区间内随机选择一个角度at作为机器人t时刻的前进方向;
[0137] 12)如果t时刻机器人能够检测到羽状流细丝信号,则更新当前时刻为最近一次检测到羽状流细丝信号的时刻,并更新最近一次检测到羽状流细丝信号的信息,记录下当前的时间、位置与当前的决策行为:tlast=t,xlast=xt,alast=at;如果当前t时刻并未检测到羽状流细丝信号,则保持t-1时刻记录的最近一次检测到羽状流细丝信号的的信息不变;
[0138] 13)水下机器人利用步骤11)生成的前进方向at以速度v前进时间τ后,当前为t+1时刻,机器人到达新的当前位置,利用奖励函数计算t时刻的奖励rt,记录下新的当前位置上的流场速度φt+1,机器人新的当前位置xt+1,并定义新的当前的状态为其中,t-tlast表示的是t+1时刻距离最近一次检测到羽状
流细丝信号时刻的时间差; 表示的是新的当前位置与最近一次检测到羽状流细丝信号位置之间的连线与当前流场方向之间的夹角;alast是最近一次检测到羽状流细丝信号时的机器人前进方向。
[0139] 14)构建t时刻的元胞(st,at,st+1,rt),并存入到记忆空间RB中。
[0140] 15)重复步骤9),利用记忆空间RB中存储的元胞作为训练样本集,更新决策神经网络;
[0141] 16)判断该次羽状流追踪是否终止:
[0142] 16-1)单次羽状流追踪搜寻热液喷口过程的终止条件包括三个,任意满足其中一个则单次羽状流追踪搜寻热液喷口过程终止;具体如下:
[0143] 16-1-1)如果机器人当前位置距离喷口不足两米,足以让水下机器人的摄像头捕捉到喷口,则表明找到喷口,单次羽状流追踪搜寻热液喷口过程的终止,进入步骤17);
[0144] 16-1-2)如果机器人的状态变量中Δtime>70,表明机器人在该次搜索中未检测到羽状流细丝信号长达70个时间间隔,则单次羽状流追踪搜寻热液喷口过程终止,进入步骤17);
[0145] 16-1-3)如果机器人在单次羽状流追踪搜寻热液喷口过程中所用时间超过6000秒,则单次羽状流追踪搜寻热液喷口过程终止,进入步骤17);
[0146] 16-2)如果并达到终止条件,则本次探索仍然在继续,重新返回步骤11),令t=t+1,机器人在下一个时刻继续此次羽状流追踪;
[0147] 17)对羽状流追踪次数利用下述条件依次进行判定:
[0148] 17-1)若机器人连续10次均能成功找到羽状流喷口,则说明决策神经网络和价值神经网络的参数学习接近收敛状态,适当减少探索概率ε=0.9*ε,适当减少学习速率α=0.1*α,β=0.1*β,减缓参数学习速度,并重新返回步骤3)开始新一次的羽状流追踪;
[0149] 17-2)若机器人连续30次均能成功找到羽状流喷口,则认为决策神经网络和价值神经网络的参数学习收敛,训练结束,此时的当前决策神经网络即为最终可被实际应用的决策神经网络。在之后的羽状流追踪过程中,利用状态表达式将传感器采集到的环境信息整合成状态向量s,输入到该最终决策神经网络中,将该网络输出行为a作为机器人应执行的前进方向,实现机器人对羽状流的追踪。
[0150] 17-3)若机器人羽状流追踪次数超过1000次,(此时仍未满足机器人连续30次均能成功找到喷口),则表明决策神经网络和价值神经网络仍未收敛,重新返回步骤1),对参数进行重新初始化,机器人重新开始新的羽状流追踪训练。
[0151] 17-4)若以上三种条件均不满足,则重新返回步骤3),机器人开始新一次的羽状流追踪。
[0152] 在通过本发明方法得到可用的最终决策神经网络后,在实际机器人羽状流追踪搜索热液喷口的过程中,按照步骤1)设定的机器人以v=1.0m/s的前进速度匀速前进,每次前进时间为τ=10s,每次前进时机器人利用传感器采集到的流速、信号的当前信息和历史信息,结合状态表达式生成状态向量作为决策神经网络的输入,将决策神经网络的输出作为前进方向,前进10s后,重复上述决策神经网路使用过程,直到找到热液喷口。
[0153] 本发明方法可以通过python编程实现,涉及神经网络部分需要用到深度学习框架tensorflow以优化学习速度,加快收敛。
[0154] 本发明中利用监督学习提高神经网络学习的收敛速度。
[0155] 单纯利用水下机器人与环境的交来学习羽状流追踪技术,由于刚开始机器人无决策神经网络的参数赋值,羽状流追踪的在每个决策时刻前进方向近乎随机,会导致到达热液喷口的概率很低,从而网络的学习效率较低。考虑可以利用历史上可行方案的状态s行为a数据对,通过监督学习的方法,学习决策神经网络参数,增加强化学习过程中初始的搜索过程找到喷口的概率,加快学习速度。关于监督学习对学习过程中奖励函数总和的影响,如图2所示。该图表示的是在每次探索中奖励的总和,随探索次数之间的关系。当拟合机器人决策神经网络训练未收敛时,探索结果不稳定,探索过程中得到的奖励总和不稳定,而当机器人习得了稳定的决策神经网络,则探索中得到的奖励总和会稳定在较大值附近。其中,使用全零初始化决策神经网络的参数得到的结果用上方的图2a)曲线表示,使用监督学习初始化的参数得到的结果用下方的图2b)曲线表示。观察两个曲线可得:零初始化时,机器人在探索了500次后,习得了羽状流追踪的决策神经网络;利用监督学习初始化时,机器人在探索了300次左右就习得了稳定的羽状流追踪的决策神经网络。由此可以得出,利用监督学习的结果初始化参数的确能够提高水下机器人习得羽状流追踪的决策神经网络的收敛速度。
[0156] 本发明利用状态行为域连续的强化学习方法获得的热液羽状流追踪的决策神经网络在仿真中的性能如下所示:
[0157] 1在训练海域,与传统的飞蛾仿生学追踪方法对比。
[0158] 首先,两种方法在羽状流中的追踪路径如图3所示。位于图左下角的热液喷口喷射热液物质形成热液羽状流。其中图3a)表示的是使用仿生学追方法下,机器人从刚开始检测到羽状流物质到最终找到热液喷口的搜索路径;图3b)则是用本发明的追踪方法机器人的搜索路径。仿生学方法由于只简单的逆流行走,经常走出羽状流,例如图3a)中从A点到B点,需要一定的找回机制,即通过绕圈寻找到达C点,花费的路程较长,而图3b)使用强化学习习得的追踪决策神经网络,则可以使水下机器人一直保持在羽状流内部,即使偶尔跑出羽状流,例如点D,也可以以最短路径进入羽状流,快速找到热液喷口。
[0159] 在成功率上,通过本发明的强化学习训练出的四个羽状流追踪决策神经网络与仿生学方法找寻热液喷口的成功率见表1。在表1中,决策神经网络1,2,3,4为利用强化学习习得的四个决策神经网络,依旧用飞蛾仿生学方法作为对比。从结果中我们可以看出,强化学习方法相比于仿生学的方法,寻找热液喷口的成功率有所提升。
[0160] 表1利用本发明方法与仿生学方法找寻热液喷口成功率对比表
[0161]
[0162]
[0163] 在搜索成本上,图4表示四个习得的决策神经网络(rl1,rl2,rl3,rl4)与仿生学方法(hc)的100次成功搜索中,搜索步数分分布。四个强化学习习得的神经网络方法所花费的步数基本都小于仿生学方法所花费的步数。利用强化学习习得的神经网络方法对于羽状流追踪寻找热液喷口的问题所需花费的最短路径在80-100步之间,最长也不超过130步,但仿生学方法所花费的步长最大可达200步。由此可见,本发明所用的方法,由于机器人行为选择更灵活,找寻热液喷口时花费的成本更小。
[0164] 2不同海域,与仿生学方法对比。
[0165] 选择三种海域,第一种是流速平稳的海域,羽状流狭长平直,第二种羽状流尾部偏转方向与训练时羽状流方向相反,第三种是流速变化较快导致羽状流形状会变化较大。强化学习方法,与仿生学方法作对比结果见表2:
[0166] 表2本发明方法与仿生方法在不同海域寻找热液的性能对比表
[0167]
[0168] 海域1流场变化比较小,流速比较快,此时仿生的追踪方法成功率比较高,但所用的步数依然较多。海域2中流场变化大,但整体流场速度低,此时仿生学的追踪方法正确率明显下降,而强化学习方法成功率依然很高。海域3中流场变化大且流速快,此时仿生学的成功率和步长已经远不如强化学习方法。由此可以得出结论,海域环境越复杂,传统的仿生追踪方法的效果越差,但强化学习方法在各种海域的性能都较好,有一定的普适性。