1.本发明属于忆阻器技术领域,具体涉及一种基于忆阻器的强化学习硬件加速方法。
背景技术:
2.随着现在科技的不断发展,基于忆阻器的内存计算是一种更高效且低功耗的架构,能够利用“物理计算”的方式实现矩阵向量乘法(mvm),在机器学习中实现加速作用降低训练功耗,近年来,基于忆阻器的强化学习已经得到广泛的研究,但报道的工作大多只是利用忆阻器完成mvm工作,主要计算迭代过程仍然在cpu中进行,在强化学习试错探索的过程中,价值迭代的计算资源占比最大,如何利用忆阻器阵列的矩阵乘积运算来硬件加速强化学习算法的收敛,是硬件实现强化学习系统必须要解决的问题。
技术实现要素:
3.针对现有技术的不足,本发明的目的在于提供一种基于忆阻器的强化学习硬件加速方法,解决了现有技术利用忆阻器阵列的矩阵乘积运算来硬件加速强化学习算法的收敛效果不好的技术问题。
4.本发明的目的可以通过以下技术方案实现:一种基于忆阻器的强化学习硬件加速方法,方法包括以下步骤:
5.获取32条回合路径,并输出带有动作信息的回合路径,推理映射到忆阻器阵列形成策略图谱,按列输入32
×
32大小的忆阻器硬件阵列;
6.将生成的策略图谱中的每个动作对应的奖励值作为读电压输入忆阻器硬件阵列,按阵列得到对应的回合价值,将每一列回合价值经过wta赢者通吃电路进行比较,输出32个回合中最大的回合价值;
7.将比较得到的最大的回合价值与之前得到的最大的回合价值进行比较,保留更大的回合价值,反复迭代直到收敛,利用并行计算来减少迭代次数。
8.优选地,所述忆阻器形成的策略图谱是利用忆阻器的物理衰减函数来自然的代替算法sarsa(λ)中的需要进行大量指数衰减运算的衰减因子λ。
9.优选地,所述回合路径包含状态动作对的信息。
10.优选地,所述忆阻器阵列利用不同的电导值来代表不同的状态动作。
11.优选地,所述忆阻器硬件阵列的读电压用来代表每个状态动作对的奖励信息,按照算法价值更新公式,按列输出的电流值即为回合价值。
12.优选地,所述算法价值更新公式为:
[0013][0014]
其中,t代表每个回合有t步,a为第k步的动作信息,在忆阻器阵列中表示为电导
值,r为对应步的奖励值,通过忆阻器本身具有的矩阵成家运算进行价值的求解,将忆阻器读电压设置为r
t-k+1
,阵列上的电导值为ak,将每一个回合的所有动作信息按列输入阵列,然后按行输入读电压,根据阵列的乘加定律和基尔霍夫电流定律读出每一列的电流和即为回合价值。
[0015]
优选地,利用忆阻器阵列并行计算的功能,同时进行32列运算,输出32个价值,然后使用wta赢者通吃电路进行比较,输出最大的回合价值。
[0016]
优选地,根据sarsa(λ)算法的每个batch生成32个回合的路径,通过打印每个回合中包含上下左右四个动作的动作信息,将四个不同的动作对应忆阻器的四个电导态,然后映射到tio2忆阻器阵列中形成特征图谱。
[0017]
优选地,一种设备,包括:
[0018]
一个或多个处理器;
[0019]
存储器,用于存储一个或多个程序;
[0020]
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的一种基于忆阻器的强化学习硬件加速方法。
[0021]
优选地,一种包含获取机可执行指令的存储介质,所述获取机可执行指令在由获取机处理器执行时用于执行如上所述的一种基于忆阻器的强化学习硬件加速方法。
[0022]
本发明的有益效果:
[0023]
本发明在使用的过程中,通过获取32条回合路径,并输出带有动作信息的回合路径,推理映射到忆阻器阵列形成策略图谱,按列输入32
×
32大小的忆阻器硬件阵列;然后将生成的策略图谱中的每个动作对应的奖励值作为读电压输入忆阻器硬件阵列,按阵列得到对应的回合价值,将每一列回合价值经过wta赢者通吃电路进行比较,输出此批32个回合中最大的回合价值;再将比较得到的最大的回合价值与之前得到的最大的回合价值进行比较,保留更大的回合价值,反复迭代直到收敛,利用并行计算来减少迭代次数;上述方法能够使用忆阻器阵列乘加的方式减少强化学习算法的迭代,将硬件忆阻器阵列电路作为评估系统,利用其并行的矩阵乘加功能来加速算法的策略迭代速度,并提高软硬件加速系统契合度。
附图说明
[0024]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0025]
图1为本发明实施例提供的基于忆阻器的强化学习算法硬件实现方法流程示意图;
[0026]
图2为本发明实施例所述基于忆阻器的强化学习硬件加速系统的实现原理图;
[0027]
图3为本发明实施例所述pt/tio2/ti忆阻器测量的衰减曲线及其对应的函数拟合图。
具体实施方式
[0028]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0029]
如图1所示为本发明实施例提供的基于忆阻器的强化学习算法硬件实现方法流程示意图,方法包括以下步骤:
[0030]
获取32条回合路径,并输出带有动作信息的回合路径,推理映射到忆阻器阵列形成策略图谱,按列输入32
×
32大小的忆阻器硬件阵列;
[0031]
需要进一步进行说明的是,在具体实施过程中,首先由sarsa(λ)算法每个batch生成32个回合的路径,通过打印每个回合中包含上下左右四个动作的动作信息,我们将四个不同的动作对应忆阻器的四个电导态,然后映射到tio2忆阻器阵列中形成特征图谱,在tio2忆阻器阵列中,由于氧扩散引起的氧空位分布变化导致电导漂移。即器件固有衰减因子,我们首先经过测量忆阻器电导衰减,如图3所示,然后对其进行函数拟合,其中灰色的四条曲线为在1.2v~1.5v电压下测试所得,黑色曲线为函数拟合所得数据曲线。经过拟合之后的衰减函数为g=g0t-θ
,其中,g0为初始电导,t为时间,θ≈0.084为漂移系数。因此,我们可以将sarsa(λ)算法生成带有λ衰减的动作状态信息利用忆阻器物理衰减函数来代替,形成策略图谱,来提高软件算法的硬件化契合度。
[0032]
将生成的策略图谱中的每个动作对应的奖励值作为读电压输入忆阻器硬件阵列,按阵列得到对应的回合价值,将每一列回合价值经过wta赢者通吃电路进行比较,输出32个回合中最大的回合价值;
[0033]
需要进一步进行说明的是,在具体实施过程中,结合此硬件加速系统,算法sarsa(λ)价值更新公式其中,t代表每个回合有t步,a为第k步的动作信息,在忆阻器阵列中表示为电导值,r为对应步的奖励值,可以通过忆阻器本身具有的矩阵成家运算进行上述价值的求解,即将忆阻器读电压设置为r
t-k+1
,阵列上的电导值为ak,将每一个回合的所有动作信息按列输入阵列,然后按行输入读电压,根据阵列的乘加定律和基尔霍夫电流定律读出每一列的电流和即为该回合价值,在输出端加以wta赢者通吃电路,即能输出电压最大的那个。
[0034]
其中忆阻器阵列是用单个交叉杆忆阻器进行行列堆叠制造而成,阵列之上每个交叉点均有一个忆阻器,每个忆阻器中具有可调节的电导值。当对忆阻器阵列输入读电压时,每一个忆阻器能通过输入电压乘以该忆阻器电导得到该点的电流值,对阵列进行多行输入时,对每一列来说,由基尔霍夫电流定律,每一列输出该列所有忆阻器电流值之和,达到矩阵乘加的目的。在此,我们使用的忆阻器阵列为1t1r结构,即一个晶体管一个忆阻器,将晶体管漏极连接到忆阻器上电极集成忆阻器阵列。通过栅极施压控制晶体管开关来抑制不同行列之间的电流串扰。减小读误差提高硬件系统的识别精度。
[0035]
将比较得到的最大的回合价值与之前得到的最大的回合价值进行比较,保留更大的回合价值,反复迭代直到收敛,利用并行计算来减少迭代次数。整个强化学习硬件加速系统如图2所示,本发明中,此系统主要利用忆阻器并行计算来减少迭代次数。另外为实现强化学习经典算法作为系统验证,我们制作了tio2忆阻器来利用其固有的衰减特性作为物理衰减函数,提取算法生成路径映射到具有自衰减的策略阵列中提高软硬件系统的契合度,
提取该策略图谱的回合路径信息后,输入到硬件忆阻器测试阵列中,经过反复迭代比较计算,直到收敛,能大幅度降低计算机的吞吐量和迭代次数,提高能源利用效率。
[0036]
上述公式均是去除量纲取其数值计算,公式是由采集大量数据进行软件模拟得到最接近真实情况的一个公式,公式中的预设参数和预设阈值由本领域的技术人员根据实际情况设定或者大量数据模拟获得。
[0037]
在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0038]
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内容。