1.本发明涉及机器人控制技术领域,特别是涉及一种基于混合脉冲强化学习网络结构的机器人控制方法及系统。
背景技术:2.强化学习(rl)是目前最有效的解决机器人连续控制问题的算法之一,其在处理高维的观测信息,以及对高维动作空间进行行为决策方面有着其他方法无法比拟的优势。深度强化学习(drl)在rl基础上,结合了深度神经网络(dnn),以此提出了一系列策略梯度算法来解决更为复杂的控制决策任务。目前主流的drl算法都已经在各个领域取得一定程度的成功。然而,其中的dnn也带来了高能耗问题,使得在实际落地算法中,往往遇到不小的阻碍。脉冲神经网络(snn)有着更为生物可行性的神经元,其中的计算方式也与大脑更为相似。与人工神经网络(ann)相比,snn的二进制脉冲计算机制有着事件驱动,异步性计算等特点。因此,通过与神经形态芯片的结合,它也有着卓越的能耗优势。于是,近年来,也涌现出了大量将snn运用于rl算法中的方法。
3.如何有效的结合snn和dnn的优势成了一个研究的关键点,演员批评家架构(actor-critic)是一种包含了两个网络的架构,它把两个深度神经网络分别作为行为的执行者和行为的判断者,执行者-演员网络在动作空间选择动作进行执行,而判断者-批评家网络则通过环境的反馈信息,对该动作选择进行评判,以此得出网络的梯度更新方向以及影响后续的动作选择。通过分离的网络结构设计,该架构很好的解决了复杂任务中的网络收敛问题,并成为了广泛解决问题的通用架构。为了利用该计算范式的优越性,把snn作为演员网络,dnn作为批评家网络的方法被提出。这种方法能利用dnn在接受奖励后计算出的准确的行为判断的优点,同时也利用了snn在做行为决策时的高效能优点。该种结构展现出了在处理连续控制问题时的强大的能力,一些研究已经成功将其运用于真实的移动机器人的控制上面。然而,该方法中使用频率编码来将环境信息转化为脉冲信息,该编码方式限制了算法的通用性,在使用该种编码时,往往需要谨慎考虑信息转化的设计规则以避免脉冲信息被转化到无效的动作空间上。群体编码的方式被提出来以克服这个问题,它使用群体神经元对不同维度的信息进行对应的编解码,提高了算法的通用性。它成功解决了一系列连续控制问题并且达到了与目前最优秀的drl算法相同的水准。在该工作中,作者以泄露整合神经元(lif)作为snn的神经元模型。尽管该神经元是在构建多层snn中最为广泛使用的生物神经元,它忽略了在电流累积中的电阻的变化,而动态的电阻变化在其他工作中被证明在提取时空信息有效性方面有着重要的作用。
技术实现要素:4.基于上述问题,本发明的目的是提供一种基于混合脉冲强化学习网络结构的机器人控制方法及系统。
5.为实现上述目的,本发明提供了如下方案:
6.一种基于混合脉冲强化学习网络结构的机器人控制方法,包括:
7.获取机器人在环境中的状态信息;
8.构建混合脉冲强化学习网络结构;所述混合脉冲强化学习网络结构包括演员网络和批评家网络;所述演员网络包括群体编码器、动态电阻脉冲神经网络以及解码器;
9.将所述状态信息输入至训练好的混合脉冲强化学习网络结构中,得到机器人的下一步动作指令;
10.根据下一步动作指令对机器人进行控制。
11.可选地,所述混合脉冲强化学习网络结构的训练过程包括:
12.将所述状态信息输入至所述演员网络,得到动作值;
13.基于实验环境确定所述动作值的奖励值;
14.基于所述奖励值、所述动作值以及当前环境状态观察值,通过所述批评家网络计算损失值;
15.根据所述损失值,通过梯度误差反传更新所述演员网络的权值。
16.可选地,将所述状态信息输入至所述演员网络,得到动作值,具体包括:
17.通过所述群体编码器对所述状态信息进行编码,得到脉冲序列;
18.将所述脉冲序列输入至所述动态电阻脉冲神经网络中,得到脉冲输出;
19.通过所述解码器对所述脉冲输出进行解码,得到动作值。
20.可选地,所述状态信息包括机器人的关节角度和速度。
21.可选地,所述批评家网络采用深度神经网络。
22.本发明还提供了一种基于混合脉冲强化学习网络结构的机器人控制系统,包括:
23.状态信息获取模块,用于获取机器人在环境中的状态信息;
24.混合脉冲强化学习网络结构构建模块,用于构建混合脉冲强化学习网络结构;所述混合脉冲强化学习网络结构包括演员网络和批评家网络;所述演员网络包括群体编码器、动态电阻脉冲神经网络以及解码器;
25.下一步动作指令确定模块,用于将所述状态信息输入至训练好的混合脉冲强化学习网络结构中,得到机器人的下一步动作指令;
26.控制模块,用于根据下一步动作指令对机器人进行控制。
27.可选地,还包括:训练模块,用于对所述混合脉冲强化学习网络结构进行训练;所述训练模块具体包括:
28.动作值确定单元,用于将所述状态信息输入至所述演员网络,得到动作值;
29.奖励值确定单元,用于基于实验环境确定所述动作值的奖励值;
30.损失值计算单元,用于基于所述奖励值、所述动作值以及当前环境状态观察值,通过所述批评家网络计算损失值;
31.权值更新单元,用于根据所述损失值,通过梯度误差反传更新所述演员网络的权值。
32.可选地,所述动作值确定单元具体包括:
33.编码子单元,用于通过所述群体编码器对所述状态信息进行编码,得到脉冲序列;
34.脉冲输出确定子单元,用于将所述脉冲序列输入至所述动态电阻脉冲神经网络中,得到脉冲输出;
35.解码子单元,用于通过所述解码器对所述脉冲输出进行解码,得到动作值。
36.根据本发明提供的具体实施例,本发明公开了以下技术效果:
37.本发明构建了基于脉冲神经网络和深度神经网络的混合网络结构,通过该结构,使得本发明能够利用到脉冲神经网络的计算高能效和人工神经网络的计算准确性,同时,本发明的脉冲神经网络利用到了带有动态电阻的lif(leaky integrate-and-fire,泄漏集成发放)模型,使得本发明有着超越同类方法的性能,能够有效地完成对机器人的连续性控制的动作学习任务。
附图说明
38.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
39.图1为本发明实施例基于混合脉冲强化学习网络结构的机器人控制方法的流程。
40.图2为本发明实施例混合脉冲强化学习网络架构图;
41.图3为近似梯度函数曲线图
42.图4为连续性控制任务平均奖励回报图
具体实施方式
43.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
44.本发明的目的是提出将带有动态电阻的lif神经元用于构建演员网络,以此提高snn的捕捉时空信息的能力,并且同时能通过演员批评家网络利用混合强化学习架构的优势,在强化学习的连续性动作学习任务上取得了优秀的表现。
45.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
46.如图1所示,本发明提供的基于混合脉冲强化学习网络结构的机器人控制方法,包括一下步骤:
47.步骤101:获取机器人在环境中的状态信息;所述状态信息包括机器人的关节角度和速度。
48.步骤102:构建混合脉冲强化学习网络结构;所述混合脉冲强化学习网络结构包括演员网络和批评家网络;所述演员网络包括群体编码器、动态电阻脉冲神经网络以及解码器;所述批评家网络采用深度神经网络。混合脉冲强化学习网络结构的构架图如图2所示。
49.步骤103:将所述状态信息输入至训练好的混合脉冲强化学习网络结构中,得到机器人的下一步动作指令。
50.步骤104:根据下一步动作指令对机器人进行控制。
51.其中,混合脉冲强化学习网络结构的训练过程包括:
52.将所述状态信息输入至所述演员网络,得到动作值;
53.基于实验环境确定所述动作值的奖励值;
54.基于所述奖励值、所述动作值以及当前环境状态观察值,通过所述批评家网络计算损失值;
55.根据所述损失值,通过梯度误差反传更新所述演员网络的权值。
56.下面对上述方法的工作过程进行详细解释:
57.步骤1:在机器人的连续动作控制任务中,混合脉冲强化学习网络结构接收机器人在环境中的状态信息作为输入,详细内容包括机器人的关节角度以及速度信息等。动态电阻脉冲神经网络以脉冲序列为信息载体,所以在接收机器人的信息前,需要有编码模块对这些实数值的信息进行转化成脉冲序列。群体编码器被用来将环境信息转化为脉冲信息。对于每一维度的状态信息,一个神经群体被用来将状态信息编码成脉冲序列。在编码过程中分为两步:首先,高斯接收域(μ,σ)将会被均匀的初始化,不同的神经群体中不同的神经元都会有均匀且不同的初始化值,以此保证群体神经元能对输入信息都能广泛且平滑的进行感知。然后,转换后的模拟信号将会通过一个伯努利过程进行生成脉冲。对于在一个群体中第i个神经元的刺激强度pi通过以下公式进行生成:
58.pi=exp(-1/2
·
((s-μ)/σ)2)
ꢀꢀ
(1)
59.其中,μ和σ被设置为可训练的参数,在梯度反传中随整个网络的梯度一起更新。由此,群体编码器将具有动态可训练性。在高斯分布生成输出值后,通过下式的伯努利过程进行生成脉冲:
[0060][0061]
其中ii∈{0,1}表示第i个神经元的脉冲输出,i表示在群体中的神经元的编号,t表示时间窗的数值。由于脉冲序列不仅仅是一个单一数值而是一个连续的序列。将输入值在不同时间窗编码成脉冲,由此形成脉冲序列作为输入。
[0062]
步骤2:在得到机器人以及环境的脉冲信息后,混合脉冲强化学习网络结构将会进行计算得出机器人下一步的动作指令,将步骤1中的编码器编码得到的脉冲信息作为动态电阻脉冲神经网络的输入,在多层脉冲神经网络中,进行前馈计算。
[0063]
具体网络神经元计算步骤如下:
[0064]
步骤2.1:脉冲信息在单个动态电阻神经元的计算如下:
[0065][0066][0067][0068][0069]
其中有:
[0070][0071]
其中t代表在脉冲计算中的时间步,c(t)代表t时刻的电流累积,u(t)代表t时刻的电压,o(t)代表t时刻的脉冲序列即步骤1中的i(t)。r(t)表示在时间t时的动态电阻的值。v
th
为膜电压的阈值。r0是电阻初始的时间常数值。α是一个影响因子,它决定了上一步的电压值u(t-1)和r0之间的关系。这个表达式描述了在每个时间步中,电阻受电压影响而发生变化的过程。由此,在膜电压的累积过程中,电阻也能够利用到时空信息进行更新。γc和γu是两个常数参数,用来控制膜电压和电流的衰减率,以此提高神经元的动态性。由此,便得到了一个新的迭代的r-lif神经元,并且能够运用于构建全新的深度snn网络。
[0072]
步骤2.2:当多个动态电阻脉冲神经元组成多层snn网络时,我们使用近似梯度对每一层的神经元计算进行梯度近似,近似梯度函数曲线图如图3所示。
[0073]
当脉冲神经元膜电压达到指定的值时,就认为此时的梯度为设置的一个默认值,由此当控制机器人在环境中做出动作选择时,如果动作指令带来了不好的反馈,例如没能正确使机器人往前行动或者使机器人走向错误的方向等,模型会接收环境的反馈奖励值,根据损失函数和梯度对神经网络进行权值更新,从而使模型能够学习到正确的动作控制方法。
[0074]
步骤3:在步骤2得到脉冲神经网络的脉冲输出后,使用解码器将脉冲转化为实际动作指令输入,snn的输出被分离到各个动作空间维度上去。
[0075]
对于每一个维度的脉冲输出,求出其在时间窗t上的频率,然后,通过解码器的简单感知机网络计算得到对应维度的动作值,如下式:
[0076]
fr(i)=sum(i)/t
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0077]
a(i)=w
decoder(i)·
fr(i)+b
decoder(i)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0078]
其中,sum(i)表示在时间窗t中的所有脉冲的求和,fr(i)表示第i维动作空间的频率值,a(i)表示第i维的动作值输出。由此,将产生机器人的动作控制指令,在环境中的机器人执行完一个动作过后,实验环境将会根据机器人运动效果得出的动作价值评估,即奖励信号,例如,机器人成功向前移动了1cm,便可以设置奖励信号为1。然后,整个环境的观察状态值将会作为下一次动作的网络输入值s。
[0079]
步骤4:在步骤3结束后,完成了一个机器人的控制回合,训练模型更新是以动作回合为一个更新步长,所以在得到步骤3环境的奖励信号后,需要对网络的权值进行更新。如图2所示在混合脉冲强化学习网络结构架构中,动态电阻的脉冲神经网络作为演员网络部分进行动作的计算选择,而另一个批评家网络则负责对动作进行优劣判断给出更新的梯度的方向,这里批评家网络使用一般的深度神经网络,在批评家网络和演员网络之间,梯度更新策略选择了经典twin delayed deep deterministic policy gradient(td3)算法进行梯度更新,其核心损失函数如下公式:
[0080]
y=r+γmin
i=1,2
qi(s',a)
ꢀꢀꢀꢀꢀ
(9)
[0081]
其中r为步骤3中输出的奖励值,s'表示当前回合的环境状态观察值,a为步骤3中网络输出的动作值,qi表示两个目标演员网络对步骤3中的输出动作的价值评估,td3算法采用两个估计值中的最小值作为演员网络的损失值,由此从批评家网络得到演员网络的损失值,通过梯度误差反传便可以对演员网络进行权值更新。
[0082]
由此整个网络结构可以在强化学习的连续动作学习环境中作为智能主体,进行动作探索,策略更新以及动作学习的过程。
[0083]
实验验证:
[0084]
在openai的四个连续控制任务中进行算法性能的测试。以试验混合脉冲强化学习网络结构在复杂的连续控制任务中的表现,同时对比了采用类似混合脉冲架构的算法popsan以及采用普通深度学习网络的算法td3。
[0085]
在不同的对比模型实验中,保持同样的批评家网络作为基准。而演员网络则是按照前文所述进行构建。将模型在每个任务上都训练一百万步,同时每一万步都进行以此性能评估。每次性能评估中,模型将会取10个交互过程的平均奖励值作为评价结果。而每一次交互过程交互步数设置1000步作为上限。为了限制不同初始化值对性能的影响。用十个不同的随机种子对模型进行初始化并训练得到10个不同的训练结果。在保持超参数一致的情况下,得到训练奖励回报曲线如图4所示。
[0086]
除了在任务训练中的平均表现外,还对训练模型的最优表现进行了统计分析如下表:
[0087]
表1:十个不同随机种子的最大平均奖励值
[0088][0089]
当对比模型的最优表现时,最高奖励得分是一个模型的性能上限。如表1所示,在10个不同的随机种子中,模型能得到最高的奖励得分。因此,在处理复杂的连续控制任务中,无论是模型的训练稳定性以及最优性能,基于动态电阻的模型都能够表现出最优的能力。实验的结果也能证明动态的电阻能够赋予模型在处理连续信息上更好的能力。
[0090]
本发明还提供了一种基于混合脉冲强化学习网络结构的机器人控制系统,包括:
[0091]
状态信息获取模块,用于获取机器人在环境中的状态信息;
[0092]
混合脉冲强化学习网络结构构建模块,用于构建混合脉冲强化学习网络结构;所述混合脉冲强化学习网络结构包括演员网络和批评家网络;所述演员网络包括群体编码器、动态电阻脉冲神经网络以及解码器;
[0093]
下一步动作指令确定模块,用于将所述状态信息输入至训练好的混合脉冲强化学习网络结构中,得到机器人的下一步动作指令;
[0094]
控制模块,用于根据下一步动作指令对机器人进行控制。
[0095]
还包括:训练模块,用于对所述混合脉冲强化学习网络结构进行训练;所述训练模块具体包括:
[0096]
动作值确定单元,用于将所述状态信息输入至所述演员网络,得到动作值;
[0097]
奖励值确定单元,用于基于实验环境确定所述动作值的奖励值;
[0098]
损失值计算单元,用于基于所述奖励值、所述动作值以及当前环境状态观察值,通过所述批评家网络计算损失值;
[0099]
权值更新单元,用于根据所述损失值,通过梯度误差反传更新所述演员网络的权
值。
[0100]
其中,所述动作值确定单元具体包括:
[0101]
编码子单元,用于通过所述群体编码器对所述状态信息进行编码,得到脉冲序列;
[0102]
脉冲输出确定子单元,用于将所述脉冲序列输入至所述动态电阻脉冲神经网络中,得到脉冲输出;
[0103]
解码子单元,用于通过所述解码器对所述脉冲输出进行解码,得到动作值。
[0104]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0105]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。