一种硬件感知的液体状态机网络生成方法及系统与流程

文档序号:23857471发布日期:2021-02-05 15:32阅读:434来源:国知局
一种硬件感知的液体状态机网络生成方法及系统与流程

[0001]
本发明涉及液体状态机(liquid state machine,lsm)的自动生成技术,具体涉及一种硬件感知的液体状态机网络生成方法及系统。


背景技术:

[0002]
液体状态机模型(liquid state machine,简称lsm网络)是一种带回环的脉冲神经网络(spiking neural network,snn),由于其强大的计算能力,生物学上的合理性,简单的结构和较低的训练复杂性而吸引了许多研究者的兴趣。相比较于其他神经网络,它能够以很小的开销来进行图片分类、语音识别等。lsm的结构如图1所示,它主要由三部分组成:输入层、液体层和输出层。输入层负责离散的脉冲输入,其神经元和液体层中的神经元相连。液体层由脉冲神经元递归连接组成,突触连接的方向和权值大小都是随机的。输出层由输出神经元组成,主要是负责提取液体层的结果。输出层的神经元和液体层中的而每个神经元都相连。它的工作原理如下:输入层将输入脉冲序列输入到水库中,水库层的神经元相应的会产生一些脉冲,经过一段时间的统计,输出层会统计水库层中神经元发射的脉冲的数量。水库就形成了一个状态向量,然后输出底层的分类器就会对这个状态向量进行分类。
[0003]
lsm的液体层中神经元数量巨大,通常神经元排列成x*y*z的长方体结构,其中的神经元为lif神经元,两两神经元之间的连接是在液体层刚刚生成的时候随机确定的,而且确定后不再改变,也就是说,两两神经元之间的连接权值是不需要训练改变的,这是它和一般的神经网络的第一个最大的不同点。
[0004]
lsm网络的lsm神经元之间有无连接的概率通过以下方程确定:
[0005][0006]
上式中,p
i,j
表示两两神经元之间有无连接的概率。d(i,j)表示在长方体结构中两个神经元之间的欧式距离,λ、c为控制参数。c随着两两神经元之间是兴奋型还是抑制型而不同。
[0007]
类脑处理器(neuromorphic processor)是一种用数字电路或模拟电路来模拟大脑中的神经元结构的硬件,它们通常包括许多核,每个核可以模拟多个神经元,核与核之间通过片上网络(noc)互相连接,核与核之间通过片上网络连接进行通信。类脑处理器中的通信可以分为两个层面:核内的通信以及核间的通信。在核内是通过crossbar进行通信。核间是通过片上网络(noc)进行通信。类脑处理器可以用来运行lsm。在类脑处理器中运行lsm时,为了减少其中的通信量进而降低通信销,目前通常采用映射算法,将随机初始化的lsm映射到类脑处理器中的各个核中,目标是使得类脑处理器中的noc所消耗的开销尽可能地小。但是,现有技术的这种映射方法仅仅减少了少量的通信量,没有从根本上将lsm网络结构与类脑处理器的结构结合起来。lsm中的神经元之间是有距离的属性的,距离越远,之间连接的概率越小。


技术实现要素:

[0008]
本发明要解决的技术问题:针对现有技术的上述问题,提供一种硬件感知的液体状态机网络生成方法及系统,本发明通过初始化生成lsm网络结构时就可以加入距离信息,使得神经元之间的通信尽量保持在核内,这种方法极大地降低了核间的通信开销,而且采用启发式算法搜索不同的lsm网络结构,生成的lsm网络既能够极大降低noc中通信开销,同时还能够保证很好的分类精度。
[0009]
为了解决上述技术问题,本发明采用的技术方案为:
[0010]
一种硬件感知的液体状态机网络生成方法,包括:
[0011]
1)在类脑处理器的每个核的lsm神经元不超过预设阈值的前提下,将一组无连接的lsm神经元随机映射到类脑处理器的每个核中;根据lsm神经元在类脑处理器中分配的核的位置计算任意两个lsm神经元之间的距离,形成距离矩阵;
[0012]
2)通过迭代调整lsm网络的控制参数λ、c的参数值指导产生新的lsm网络结构,并通过新的lsm网络结构针对输入的距离矩阵进行计算lsm网络的任意两个lsm神经元之间有无连接的概率,从而得到由lsm神经元之间有无连接的概率构成的连接矩阵,采用启发式算法重复上述迭代调整lsm网络过程直至达到预设的终止条件;
[0013]
3)将最优的lsm网络结构输出。
[0014]
可选地,步骤1)中计算任意两个lsm神经元之间的距离的函数表达式为:
[0015]
d(i,j)=|x
i-x
j
|+|y
i-y
j
|
[0016]
上式中,d(i,j)表示两个lsm神经元i和j之间的距离,x
i
表示lsm神经元i的x坐标,x
j
表示lsm神经元j的x坐标,y
i
表示lsm神经元i的y坐标,y
j
表示lsm神经元j的y坐标。
[0017]
可选地,步骤2)中终止条件是指迭代调整lsm网络的次数达到指定次数。
[0018]
可选地,步骤2)中终止条件是指新的lsm网络结构的分类精度达到预设阈值。
[0019]
可选地,步骤2)包括:
[0020]
2.1)确定控制参数λ、c的搜索空间,将控制参数λ、c作为粒子群算法的粒子,在控制参数λ、c的搜索空间内初始化粒子群;
[0021]
2.2)通过当前粒子群中的控制参数λ、c的参数值指导产生新的lsm网络结构,并通过新的lsm网络结构针对输入的距离矩阵进行计算lsm网络的任意两个lsm神经元之间有无连接的概率,从而得到由lsm神经元之间有无连接的概率构成的连接矩阵;
[0022]
2.3)计算每一个粒子的适应度,且该适应度是指lsm网络结构的分类精度;
[0023]
2.4)根据适应度值更新粒子群算法的参数、粒子的速度和位置;
[0024]
2.5)判断是否达到预设的终止条件,若达到预设的终止条件,则跳转执行步骤3);否则,跳转执行步骤2.2)。
[0025]
可选地,所述lsm网络中的lsm神经元包含三种突触:兴奋-兴奋型突触、兴奋-抑制型突触、抑制-兴奋型突触,所述控制参数c包括兴奋-兴奋型突触、兴奋-抑制型突触、抑制-兴奋型突触三种突触对应的控制参数cee,cei,cie。
[0026]
可选地,通过新的lsm网络结构针对输入的距离矩阵进行计算lsm网络的任意两个lsm神经元之间有无连接的概率的函数表达式为:
[0027]
[0028]
上式中,p
i,j
表示两个lsm神经元i和j之间有无连接的概率,d(i,j)表示两个lsm神经元i和j之间的距离,λ、c为控制参数。
[0029]
可选地,步骤3)之后还包括对得到的最优的lsm网络结构采用rtl级的noc模拟器进行硬件仿真,然后计算包括运行时间、吞吐率、传输延迟、数据包数量中的至少一项在内的通信性能指标的步骤。
[0030]
此外,本发明还提供一种硬件感知的液体状态机网络生成系统,包括计算机设备,该计算机设备至少包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行所述硬件感知的液体状态机网络生成方法的步骤,或者该存储器中存储有被编程或配置以执行所述硬件感知的液体状态机网络生成方法的计算机程序。
[0031]
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述硬件感知的液体状态机网络生成方法的计算机程序。
[0032]
和现有技术相比,本发明具有下述优点:
[0033]
1、本发明根据lsm神经元在类脑处理器中分配的核的位置计算任意两个lsm神经元之间的距离形成距离矩阵,在迭代调整lsm网络的控制参数λ、c的参数值时通过新的lsm网络结构针对输入的距离矩阵进行计算lsm网络的任意两个lsm神经元之间有无连接的概率,从而得到由lsm神经元之间有无连接的概率构成的连接矩阵,由于初始化生成lsm网络结构时就可以加入距离信息,实现了对类脑处理器的硬件感知,使得神经元之间的通信尽量保持在核内,这种方法极大地降低了核间的通信开销。
[0034]
2、本发明采用启发式算法搜索不同的lsm网络结构,生成的lsm网络既能够极大降低noc中通信开销,同时还能够保证很好的分类精度。
附图说明
[0035]
图1为现有lsm网络的结构示意图。
[0036]
图2为本发明实施例方法的基本步骤示意图。
[0037]
图3为本发明实施例中初始化阶段的原理示意图。
[0038]
图4为本发明实施例中产生水库层的一个实例。
[0039]
图5为本发明实施例中粒子群算法的执行流程图。
[0040]
图6为本发明实施例中硬件仿真的流程示意图。
具体实施方式
[0041]
如图2所示,本实施例硬件感知的液体状态机网络生成方法包括:
[0042]
1)初始化阶段:在类脑处理器的每个核的lsm神经元不超过预设阈值的前提下,将一组无连接的lsm神经元随机映射到类脑处理器的每个核中;根据lsm神经元在类脑处理器中分配的核的位置计算任意两个lsm神经元之间的距离,形成距离矩阵;参见图2,其中任意两个lsm神经元之间的距离记为d
i,j
,形成距离矩阵记为distance martrix(d);
[0043]
2)lsm参数搜索阶段:通过迭代调整lsm网络的控制参数λ、c的参数值指导产生新的lsm网络结构,并通过新的lsm网络结构针对输入的距离矩阵进行计算lsm网络的任意两个lsm神经元之间有无连接的概率,从而得到由lsm神经元之间有无连接的概率构成的连接矩阵,采用启发式算法重复上述迭代调整lsm网络过程直至达到预设的终止条件;参见图2,
其中lsm网络的任意两个lsm神经元之间有无连接的概率记为p
i,j
,形成距离矩阵记为connection martrix(p);
[0044]
3)输出阶段:将最优的lsm网络结构输出。
[0045]
在初始化阶段,由于类脑处理器的每个核所能承载的神经元的数量的固定的,因此将一组无连接的lsm神经元随机映射到类脑处理器的每个核中时,要保证每个核内的神经元数量不能超过所能容忍的上限。例如本实施例中测试的神经元数量为1000,采用类脑处理器的每个核所容纳的神经元上限为64。为了更清楚说明,以如4所示情形为例:共有三个孤立的神经元n1,n2,n3(在第一个方块中)。首先,这三个神经元被映射到了不同的核里面(第二个方框中),神经元n1的位置为1,神经元n2的位置为5,神经元n3的位置为9。然后就可以计算神经元之间的距离。最终我们就得到了距离矩阵distance matrix(第三个方块中)。需要说明的是,任意两个lsm神经元之间的距离可以有多种不同的计算方式,作为一种可选的实施方式,本实施例步骤1)中计算任意两个lsm神经元之间的距离的函数表达式为:
[0046]
d(i,j)=|x
i-x
j
|+|y
i-y
j
|
[0047]
上式中,d(i,j)表示两个lsm神经元i和j之间的距离,x
i
表示lsm神经元i的x坐标,x
j
表示lsm神经元j的x坐标,y
i
表示lsm神经元i的y坐标,y
j
表示lsm神经元j的y坐标。
[0048]
在lsm参数搜索阶段,根据每个神经元在noc中的位置产生合适的lsm结构。参见图2,本实施例中采用lsm生成器(lsmgenerator)作为执行主体来产生lsm中的水库层,且采用了粒子群算法(pso算法)用来搜索lsm的参数。
[0049]
作为一种可选的实施方式,步骤2)中终止条件是指迭代调整lsm网络的次数达到指定次数。作为另一种可选的实施方式,步骤2)中终止条件是指新的lsm网络结构的分类精度达到预设阈值。上述两种方式可以根据需要进行选择。
[0050]
lsm生成器(lsmgenerator)的作用是根据(c,lam)产生一个lsm中的水库层。这个模块的输入包括三部分:c、lam、以及position[n]。c和lam是控制参数,n为水库层中神经元的数量。position指的是每个神经元在类脑处理器的哪个核内,如图3中,神经元n2的位置就是5。模块的输出为连接矩阵(connection matrix)。lsm生成器(lsmgenerator)工作流程的一个例子如图4所示:首先,根据在初始化阶段产生的距离矩阵(distance matrix),lsm生成器(lsmgenerator)计算得到相应的连接矩阵(connection matrix)。如果连接矩阵(connection matrix)中的第i行j列元素c(i,j)=1,则神经元i与神经元j之间有一条连接。这个连接矩阵(connection matrix)就是对应了水库层的神经元的连接结构。
[0051]
不同的控制参数λ、c生成的lsm水库层结构是不同的,而不同lsm网络分类能力也不同。针对不同的分类任务,我们需要有针对性地找到具有最好分类能力的lsm结构。因此,我们需要对这些参数进行探索。但是手动调整非常耗费时间。因此,本实施例中采用pso算法(粒子群算法)来进行搜索。如图5所示,本实施例中步骤2)包括:
[0052]
2.1)确定控制参数λ、c的搜索空间,将控制参数λ、c作为粒子群算法的粒子,在控制参数λ、c的搜索空间内初始化粒子群;
[0053]
2.2)通过当前粒子群中的控制参数λ、c的参数值指导产生新的lsm网络结构,并通过新的lsm网络结构针对输入的距离矩阵进行计算lsm网络的任意两个lsm神经元之间有无连接的概率,从而得到由lsm神经元之间有无连接的概率构成的连接矩阵;
[0054]
2.3)计算每一个粒子的适应度,且该适应度是指lsm网络结构的分类精度acc;
[0055]
2.4)根据适应度值更新粒子群算法的参数(pbest、gbest)、粒子的速度和位置;需要说明的是,粒子群算法为公知算法,粒子群算法的参数(pbest、gbest)、粒子的速度和位置均为公知的更新操作,故其具体细节在此不再赘述。
[0056]
2.5)判断是否达到预设的终止条件,若达到预设的终止条件,则跳转执行步骤3);否则,跳转执行步骤2.2)。
[0057]
作为一种可选的实施方式,本实施例中lsm网络中的lsm神经元包含三种突触:兴奋-兴奋型突触、兴奋-抑制型突触、抑制-兴奋型突触,所述控制参数c包括兴奋-兴奋型突触、兴奋-抑制型突触、抑制-兴奋型突触三种突触对应的控制参数cee,cei,cie。将[cee,cei,cie,lam]设为搜索空间,将分类准确性设为适应度。经过多轮搜索,具有最高适应度的粒子的坐标即为我们想要的参数值。按照这套参数值即可构建lsm的水库层。
[0058]
本实施例中,通过新的lsm网络结构针对输入的距离矩阵进行计算lsm网络的任意两个lsm神经元之间有无连接的概率的函数表达式为:
[0059][0060]
上式中,p
i,j
表示两个lsm神经元i和j之间有无连接的概率,d(i,j)表示两个lsm神经元i和j之间的距离,λ、c为控制参数。控制参数c可以为兴奋-兴奋型突触、兴奋-抑制型突触、抑制-兴奋型突触三种突触对应的控制参数cee,cei,cie中的某一种。
[0061]
参见图2,本实施例中步骤3)之后还包括对得到的最优的lsm网络结构采用rtl级的noc模拟器进行硬件仿真,然后计算包括运行时间、吞吐率、传输延迟、数据包数量中的至少一项在内的通信性能指标的步骤。
[0062]
硬件仿真的目标是分析生成的lsm网络在类脑处理器中运行时的通信性能。在lsm分类的过程中,它的神经元行为会被记录到日志文件(log文件)中。本实施例中通过跟踪生成器(tracegenerator)根据日志文件产生供noc读取的跟踪文件(trace)。硬件仿真流程如图6所示,其中左侧顶部的四边形为rtl级的noc模拟器,其下部的四边形为跟踪生成器(tracegenerator)根据日志文件产生的跟踪文件(trace)。模拟器在将所trace传输完毕后会统计通信性能,包括:运行时间、吞吐率、传输延迟、数据包的数量。
[0063]
此外,本实施例还提供一种硬件感知的液体状态机网络生成系统,包括计算机设备,该计算机设备至少包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行所述硬件感知的液体状态机网络生成方法的步骤,或者该存储器中存储有被编程或配置以执行所述硬件感知的液体状态机网络生成方法的计算机程序。
[0064]
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述硬件感知的液体状态机网络生成方法的计算机程序。
[0065]
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其
他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0066]
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1