面向功耗的混合粒子群脉冲神经网络映射方法与流程

文档序号:11251479阅读:878来源:国知局
面向功耗的混合粒子群脉冲神经网络映射方法与流程

本发明涉及智能优化领域,尤其涉及一种面向功耗的混合粒子群脉冲神经网络映射方法。



背景技术:

脉冲神经网络(spikingneuronnetworks,snn)的研究日益成为计算智能领域中的一个研究热点。脉冲神经网络采用基于时间脉冲序列的编码方式,更接近于脑科学对生物神经系统的认识。相对于传统的神经网络,脉冲神经网络表现出了更强的仿生特性和计算能力。

作为迄今最具生物真实性的人工神经网络模型,脉冲神经网络的全部神经元具有和生物神经元类似的电位脉冲触发机制,这种机制使得脉冲神经网络与基于脉冲频率编码信息的传统人工神经网络相比,具有更强的计算能力,同时可以对各种神经信号和连续函数进行模拟,十分适合对复杂时空信息及大脑神经信号进行处理,如模式识别、数据预测等。

基于其良好的生物学特性和强大的计算能力,希望能够建立模拟哺乳动物大脑关键信息处理机制的类脑硬件系统。但是哺乳类动物的大脑神经元数量超过1010个,脉冲神经网络规模必然十分巨大,而现有的方法并不能有效地提供百万数量级的神经元/突触之间的相互连接。采用常规软件计算的方式来模拟脉冲神经网络,例如基于传统计算机的纯软件模拟,并不能充分体现发挥脉冲神经网络的并行性优势,而且其执行速度过慢,以至于无法实时不能模拟对大规模脉冲神经网络进行运算,并且系统的可扩展性较差。但是常见硬件实现方式,例如并行gpu,则存在功耗高等缺点。因此,为了克服现有软件或硬件方式在实现脉冲神经网络过程中出现的问题,需要研究一种新的全定制硬件架构是非常必要的。

片上网络(network-on-chip,noc)技术上的研究成果,为实现大规模脉冲神经网络硬件互联提供了较好的思路和机制。片上网络作为一种独特的片上通信方式,在多个领域有着广泛的应用,得到了较好的发展。其包括计算和通信子系统。计算子系统由大量的计算单元(processingelement,pe)组成,负责完成广义的计算任务。通信子系统由路由器及其连接的通信链路组成,负责计算单元的通信互连,能够实现数据资源的高速交互。近年来,片上网络技术用于实现脉冲神经网络的大规模互连,其中神经元和突触映射到片上网络的计算单元模块、脉冲神经元的轴突由片上网络的通信路径来构成,而神经元间的连接结构则由片上网络的拓扑结构来模拟。基于这一方法,使得大规模脉冲神经网络的硬件互连成为可能。

采用noc架构的硬件系统实现脉冲神经网络的过程中,功耗是影响系统性能的重要因素,高温将使系统性能受到影响,甚至使系统功能受损,所以脉冲神经网络硬件系统功耗问题成为系统设计的焦点之一。



技术实现要素:

针对现有技术的不足,本发明解决的技术问题是在采用noc架构的硬件系统实现脉冲神经网络的过程中,有效地对脉冲神经网络硬件系统的功耗进行优化,降低因映射问题带来的硬件系统功耗,提高系统性能。

为解决上述技术问题,本发明提供的技术方案是一种面向功耗的混合粒子群脉冲神经网络映射方法,通过将粒子群算法与遗传算法的结合的神经元节点映射方式,得到神经元节点映射到硬件系统中的最佳映射结果,映射方法主体采用粒子群算法,在粒子群算法运行的过程中结合遗传算法的突变操作,对基本粒子群算法进行改进,循环算法至满足终止条件,包含以下步骤:

第1步:初始化:设置粒子群中粒子数量np、最大迭代次数i、突变阈值tm,按照粒子表示方式随机生成初始粒子群、当神经元的数量小于noc系统中pe的数量时,对神经元数量进行修正;

突变阈值的范围tm∈(0,1);

每一个粒子的表示方式及含义如下:

x=(x1,x2,x3,…,xd)

x1,x2,x3,…,xd表示神经元的编号1,2,…,d的一种全排列,而d表示神经元的数量。每个神经元编号的位置代表神经元在noc系统中放置的位置。例如,粒子(2,3,4,5,1)表示编号为2的神经元被放置在noc系统中编号为1的pe上,编号为3的神经元被放置在noc系统中编号为2的pe上,以此类推;

当神经元的数量小于noc系统中pe的数量时,对神经元数量进行修正的方法是:采用插入虚拟神经元的方法使神经元的数量与noc系统中pe的数量相等,而虚拟神经元与虚拟神经元之间、虚拟神经元与真实神经元之间无通信。

第2步:根据适应度函数计算粒子群中各个粒子的适应度值;适应度函数如下:

这里wij为计算单元vi到计算单元vj之间的通讯数据量,hij计算单元vi到计算单元vj之间的跳距;

第3步:根据粒子群中各个粒子的适应度值及目标函数找出当前粒子群中全局最佳粒子;目标函数如下:

第4步:根据当前粒子群中全局最佳粒子,采取“跳变”的方式对粒子群中全局最佳粒子除外的每一个粒子进行更新;每个粒子的更新并未为采用标准粒子群的更新公式:

而是采用“跳变”的方式对粒子进行更新,“跳变”的含义为:对于一个多维粒子,在每次粒子更新时,使得粒子自身的至少其中一维的值与全局最佳粒子其中一维的值相同;

第5步:粒子群更新完成后,计算粒子群的群体相似度;粒子群的群体相似度根据如下公式计算:

其中表示单个粒子的粒子个体相似度,表示第i个粒子具有与全局最佳粒子相同位置的维数量,td表示单个粒子的总维数,sps表示粒子群体相似度,n表示粒子总量;

第6步:将粒子群的群体相似度与设定的突变阈值进行比较,如果群体相似度大于突变阈值,则进行第7步;否则,进行第8步;

第7步:对粒子群中全局最佳粒子除外的每一个粒子进行突变操作,然后进行第6步;突变操作是指在一个粒子中随机挑选出两维,进行对调操作,生成新粒子的过程。

第8步:判断当前迭代次数是否达到设定的最大迭代次数,如果达到则进行第9步;否则,进行第2步;

第9步:输出全局最佳粒子即最佳映射方案及全局最佳粒子的适应度值。

采用本发明的技术方案具有以下有益效果:

1、通过遗传算法的突变操作对基本粒子群算法进行改进,克服了基本粒子群算法性能的缺陷,既能够发挥粒子群算法原有的搜索能力,也能够克服基本粒子群算法过早收敛,容易陷入局部最优节的缺点,使算法能够搜索到全局最优解。

2、通过分析功耗与硬件系统之间的关系,建立的基于noc系统的功耗模型,建立了本发明的目标函数,有效地降低了系统功耗,增强了映射方案的应用性。

附图说明

图1为脉冲神经网络映射过程;

图2为脉冲神经网络映射方法流程图;

图3为粒子跳变示意图;

图4为粒子突变示意图;

图5为脉冲神经网络实例;

图6为noc系统实例;

图7为noc系统中node路由器路由伪码;

图8为noc系统中tile路由器路由伪码;

图9为适应度值变化情况;

图10为群体相似度变化情况。

具体实施方式

下面结合附图和实施例对本发明实施方式做进一步的阐述,但不是对本发明的限定。

图1示出了脉冲神经网络映射过程,脉冲神经网络映射是根据某些优化规则将神经元一一对应地分配给noc系统中的pe即每个神经元的功能只能由一个pe完成,以实现特定应用,并将目标成本(如能耗或延迟)降至最低。图中snn的映射问题被抽象为snn通信任务图(snncommunicationgraph,snncg)和noc结构图(nocarchitecturegraph,nocag)之间的映射问题。

实施例:

如图2至图4所示,一种面向功耗的混合粒子群脉冲神经网络映射方法,通过将粒子群算法与遗传算法的结合的神经元节点映射方式,得到神经元节点映射到硬件系统中的最佳映射结果,映射方法主体采用粒子群算法,在粒子群算法运行的过程中结合遗传算法的突变操作,对基本粒子群算法进行改进,循环算法至满足终止条件,包含以下步骤:

第一步:初始化:设置粒子群中粒子数量np、最大迭代次数i、突变阈值tm,按照粒子表示方式随机生成初始粒子群,每一个粒子的表示方式为x=(x1,x2,x3,…,xd),其中,x1,x2,x3,…,xd表示神经元的编号1,2,…,d的一种全排列,而d表示神经元的数量。每个神经元编号的位置代表神经元在noc系统中放置的位置。同时,当神经元的数量小于noc系统中pe的数量时,对神经元数量进行修正的方法是:采用插入虚拟神经元的方法使神经元的数量与noc系统中pe的数量相等。

第二步:根据适应度函数计算粒子群中各个粒子的适应度值。

适应度函数如下:

这里wij为计算单元vi到计算单元vj之间的通讯数据量,hij计算单元vi到计算单元vj之间的跳距。

第三步:根据第二步中结果及目标函数找出当前粒子群中全局最佳粒子。目标函数如下:

第四步:根据第三步中找出的全局的最佳粒子,采取“跳变”的方式对粒子群中每一个粒子(不包括全局最佳粒子本身)进行更新。如图3所示,跳变的含义为:对于一个多维粒子,在每次粒子更新时,使得粒子自身的至少其中一维的值与全局最佳粒子其中一维的值相同。

第五步:粒子群更新完成后,计算粒子群的群体相似度。

群体相似度计算公式为:

其中表示单个粒子的粒子个体相似度,表示第i个粒子具有与全局最佳粒子相同位置的维数量,td表示单个粒子的总维数,sps表示粒子群体相似度,n表示粒子总量。

第六步:将第五步中的群体相似度与第一步中设定的突变阈值进行比较,如果群体相似度大于突变阈值,则进行第七步;否则,进行第八步;

第七步:对粒子群中的每一个粒子(不包括全局最佳粒子本身)进行突变操作,然后进行第六步;如图4所示,突变操作的含义为:在一个粒子中随机挑选出两维,进行对调操作,生成新粒子的过程。

第八步:判断当前迭代次数是否达到第一步中设定的最大迭代次数,如果达到则进行第九步;否则,进行第二步。

第九步:输出全局最佳粒子即最佳映射方案及全局最佳粒子的适应度值。

图5至图10示出了本发明的有益效果,可通过以下仿真说明:

(一)仿真条件与内容:

分别采用本发明的面向功耗的脉冲神经网络映射方法与基本粒子群算法及随机映射方法进行验证比较。

在仿真中,脉冲神经网络属于前馈神经网络。如图5所示,在前馈神经网络中,神经元从输入层接收上一级输入数据,并将数据输入到中间层,直到从输出层输出数据,整个网络无反馈。并且脉冲神经网络采用全连接的方式,即第i层中的每一个神经元都连接到前一层即i+1层中的所有神经元(层编号为从输出层开始编号)。同时,在snn中以组播的形式发送数据,即,第k层中的神经元将数据发送到第k+1层中的所有神经元(层编号为从输入层开始编号)。

在仿真中,采用如图6所示的基于二维网格的星形子网noc系统(thestar-subnet-based-2dmesh,2d-ssbm)及其编号方式。2d-ssbmnoc系统分为两个层次。2d-ssbmnoc系统底层是星形子网,由pe及node路由器组成,通过星形拓扑实现互连。星型子网中的pe通过node路由器直接相互通信。2d-ssbmnoc系统顶层是二维网格结构,由tile路由器组成,负责不同星形子网之间的通信。

每个node路由器与相对应的tile路由器都直接相连。pe的编号方式为在从开始,编号在星形子网内部按照逆时针方式依次增大,编号在星形子网之间按照先从左到右,再从下到上的方式增大。

如图7所示,node路由器负责将数据在星形子网内部之间传递,或者当数据目的地址在星形子网外部时,node路由器负责将数据传递给相对应的tile路由器。如图8所示,当tile路由器接到node路由器传递的数据时,首先将数据传递给目的tile路由器,然后由目的tile路由器发送到相对应的node路由器,最后传递给目的pe。

在本实施例中,按照表1所示的映射方案信息设置各种参数,并随机生成初始粒子群。如表1所示,脉冲神经元数量为20,noc系统中pe数量为36,设定粒子数量np为30、最大迭代次数i为200、突变阈值tm为0.5,脉冲神经网络中共有100条通信路径,其中,由输入层神经元到中间层神经元的每条通信路径的通信量设定为1,由中间层神经元到输出层神经元的每条通信路径的通信量设定为9,最大迭代次数为200次。

表1映射方案信息

(二)仿真结果:

具体实验结果如表2所示:相比基本粒子群算法、随机映射,本发明本发明的面向功耗的脉冲神经网络映射方法具有最低的适应度值,说明根据本发明得到的映射方案的系统功耗更低。同时根据表2中群体相似度数据可以看出:基本粒子群算法收敛速度明显快于本发明的混合粒子群映射方法。

三种映射方法的适应度值、群体相似度具体变化情况如图9、图10所示。

表2实验结果

以上结合附图和实例对本发明的实施方式进行了详细说明,但本发明不限于所描述的实施方式,对本领域的技术人员而言,不脱离本发明的原理和精神情况下,对这些实施方式进行各种变化、修改、替换和变型仍落入本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1