一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种脉冲神经网络映射方法与流程

2022-02-20 03:11:20 来源:中国专利 TAG:


1.本发明涉及脉冲神经网络映射技术领域,具体是指一种脉冲神经网络映射方法。


背景技术:

2.采用神经形态计算架构的计算机进行仿真工作面临着的一个重要问题是如何将复杂的神经网络映射到节点网络中,即逻辑网络与物理网络的映射问题。逻辑网络,即问题网络、任务网络,尤其是需要对生物神经网络进行仿真时,其规模是巨大的,体现在两方面:一是神经元数目巨大,二是神经元之间的连接复杂。此外,逻辑网络针对不同的应用场景,其结构也是多种多样,不可能针对某种逻辑网络特别设计物理网络的拓扑结构。同时,物理网络的节点的容量有限,能够支持的神经元数量有限,路由单元的能力有限。从而,如何将逻辑网络与物理网络进行映射成为了系统设计的一个关键步骤。


技术实现要素:

3.本发明为了解决上述的各种问题,提供了改进的蚁群映射算法的一种脉冲神经网络映射方法。
4.为解决上述技术问题,本发明提供的技术方案为:一种脉冲神经网络映射方法,包括一种针对多对一拓扑映射场景下改进的蚁群算法,所述针对多对一拓扑映射场景下改进的蚁群算法定义映射算法为:
5.node
idx
=ω(neuron
idx
)
6.即,给定神经元的索引,经过映射算法,得出其部署的节点索引。优化的目标是平均跳数,目标函数如下:
[0007][0008]
其中,c(v)是神经元v发出的脉冲所需要的所有转发次数,需要注意的是由于通信模式选择为多播,因而如果多个目标节点在同一个转发方向时只需要一次转发即可,p(v)指的是神经元v产生脉冲占所有神经元脉冲的比例,在随机的情况下,可以认为所有神经元的比例相同。
[0009]
初始化,启发信息的定义如下:
[0010][0011]
即,神经元vi映射到节点rj的启发信息由神经元的重要程度和节点的中心程度决定,其中,神经元的重要程度importance(i)为与它连接的神经元个数。
[0012]
importance(i)=fanin(i) fanout(i)
[0013]
节点的中心程度由它与其余节点的曼哈顿距离决定。
[0014][0015]
节点的中心程度为它距离其他节点的曼哈顿距离之和,这一值反映节点的通信能力,曼哈顿距离之和越小,节点的中心程度越高,意味着节点的通信能力越强,从而在没有其他因素的情况下,神经元更应该部署在中心程度高的节点上,神经元的输出连接的神经元越多,说明神经元的通信压力越大,所以更应该将其放在中心程度高的节点上,所以,启发信息应当与神经元的重要程度呈正比,与其中心程度呈反比,这样使得通信压力大的神经元部署在通信能力强的节点上的可能性更大。
[0016]
解构建,在传统蚁群算法中,第t次迭代中,第k只蚂蚁将神经元vi映射到节点rj的概率为:
[0017][0018]
上式中,τ
i,j
(t)是第t次循环时,rj(t)是第t次循环时节点rj的占用率,神经元vi映射到节点rj的归一化信息素浓度,本文最上述决策概率进行了改进,
[0019][0020]
相对于传统的蚁群算法,在概率中增加了rj(t),代表第t次循环时节点rj的占用率,即更倾向于将神经元部署在占用率高的节点上,将不同的神经元部署在同一节点上直接避免了它们之间的通信量,当占用率为0时,rj(t)被置为与部署一个神经元相同。
[0021]
α和β是衡量两者的权重,α取值越大,则蚂蚁选择走信息素浓度高的路径的可能性就越大,即选择之前尝试过的路径的可能性越大,从而搜索的随机性降低了,β取值越大,蚁群更容易选择局部较短的路径,能够加快收敛速度,但是更容易陷入局部最优。
[0022]
allow是当前还可以进行神经元部署的节点集合,因为节点的容量有限,因而随着神经元的部署过程,部分节点会被装满,因而只能选择没有满的节点。
[0023]
信息素的更新规则如下:
[0024][0025]
其中,p是衰减因子,自然状态下,蚂蚁留下的信息素会随时间衰减,q是放大倍数,若将神经元vi映射到节点rj这一映射在本次迭代所有蚂蚁的最小成本映射方式中,则对应的信息素放大q倍。
[0026]
本发明与现有技术相比的优点在于:提出了改进的蚁群映射算法,此外,值得一提的是,本文提出的算法的应用场景更多的是单节点上可以部署多个神经元的情况,与此处
的vopd任务单节点只能部署一个不同,具有更广阔的应用空间。
附图说明
[0027]
图1是本发明改进蚁群算法映射成本随迭代次数的变化示意图。
[0028]
图2是本发明传统蚁群算法与改进蚁群算法对比示意图。
[0029]
图3是本发明蚁群算法和cnde映射成本随迭代次数的变化示意图。
[0030]
图4是本发明vopd通信核图。
具体实施方式
[0031]
下面结合附图和实施例对本发明做进一步的详细说明。
[0032]
结合附图1至附图4,一种脉冲神经网络映射方法,包括一种针对多对一拓扑映射场景下改进的蚁群算法,所述针对多对一拓扑映射场景下改进的蚁群算法定义映射算法为:
[0033]
node
idx
=ω(neuron
idx
)
[0034]
即,给定神经元的索引,经过映射算法,得出其部署的节点索引。优化的目标是平均跳数,目标函数如下:
[0035][0036]
其中,c(v)是神经元v发出的脉冲所需要的所有转发次数,需要注意的是由于通信模式选择为多播,因而如果多个目标节点在同一个转发方向时只需要一次转发即可,p(v)指的是神经元v产生脉冲占所有神经元脉冲的比例,在随机的情况下,可以认为所有神经元的比例相同。
[0037]
初始化,启发信息的定义如下:
[0038][0039]
即,神经元vi映射到节点rj的启发信息由神经元的重要程度和节点的中心程度决定,其中,神经元的重要程度importance(i)为与它连接的神经元个数。
[0040]
importance(i)=fanin(i) fanout(i)
[0041]
节点的中心程度由它与其余节点的曼哈顿距离决定。
[0042][0043]
节点的中心程度为它距离其他节点的曼哈顿距离之和,这一值反映节点的通信能力,曼哈顿距离之和越小,节点的中心程度越高,意味着节点的通信能力越强,从而在没有其他因素的情况下,神经元更应该部署在中心程度高的节点上,神经元的输出连接的神经元越多,说明神经元的通信压力越大,所以更应该将其放在中心程度高的节点上,所以,启发信息应当与神经元的重要程度呈正比,与其中心程度呈反比,这样使得通信压力大的神经元部署在通信能力强的节点上的可能性更大。
[0044]
解构建,在传统蚁群算法中,第t次迭代中,第k只蚂蚁将神经元vi映射到节点rj的
概率为:
[0045][0046]
上式中,τ
i,j
(t)是第t次循环时,rj(t)是第t次循环时节点rj的占用率,神经元vi映射到节点rj的归一化信息素浓度,本文最上述决策概率进行了改进,
[0047][0048]
相对于传统的蚁群算法,在概率中增加了rj(t),代表第t次循环时节点rj的占用率,即更倾向于将神经元部署在占用率高的节点上,将不同的神经元部署在同一节点上直接避免了它们之间的通信量,当占用率为0时,rj(t)被置为与部署一个神经元相同。
[0049]
α和β是衡量两者的权重,α取值越大,则蚂蚁选择走信息素浓度高的路径的可能性就越大,即选择之前尝试过的路径的可能性越大,从而搜索的随机性降低了,β取值越大,蚁群更容易选择局部较短的路径,能够加快收敛速度,但是更容易陷入局部最优。
[0050]
allow是当前还可以进行神经元部署的节点集合,因为节点的容量有限,因而随着神经元的部署过程,部分节点会被装满,因而只能选择没有满的节点。
[0051]
信息素的更新规则如下:
[0052][0053]
其中,p是衰减因子,自然状态下,蚂蚁留下的信息素会随时间衰减,q是放大倍数,若将神经元vi映射到节点rj这一映射在本次迭代所有蚂蚁的最小成本映射方式中,则对应的信息素放大q倍。
[0054]
基于以上公式等内容,即可得到基于蚁群算法的映射算法如下:
[0055]
[0056][0057]
首先,根据神经元的连接情况和节点的数量信息,计算神经元重要程度和节点中心程度,进一步的得到映射的启发信息。
[0058]
其次,初始化信息素信息。
[0059]
第三,在每次迭代中,所有的蚂蚁根据当前的信息素和启发信心共同决定的概率,生成一种映射方式,然后计算这些映射方式的成本,选出本次迭代的最小成本映射方式。
[0060]
再然后,根据本次迭代的最小成本映射方式和固有的衰减更新信息素。
[0061]
如果达到最大迭代次数或者成本达到要求则终止迭代,否则重复迭代过程。
[0062]
在生物神经系统中,神经元之间的连接是非常复杂、非常杂乱的,但是,神经元之间的连接具有一个基础特征,即神经元之间的连接概率随它们之间的距离的增加呈指数下降,距离越远的神经元之间存在连接的可能性越低。
[0063]
因此,基于此基本事实,本文随机生成了连接矩阵cm,连接矩阵中若cm[i][j]=1,则说明此神经网络中,存在神经元i到神经元j这样的一个连接。
[0064]
(1)逻辑网络生成算法
[0065]
[0066][0067]
首先在三维空间内随机生成神经元的坐标信息,基于此,两个神经元之间存在连接的概率为:
[0068][0069]
式中,d(i,j)表示神经元i与神经元j之间的欧氏距离,λ为超参数,λ越大,则神经元的平均连接数量越多。算法4.2中b(1,p)表示0-1分布。
[0070]
[0071][0072]
(2)超参数设置
[0073]
仿真需要设置的超参数有多个,包括:
[0074]
随机连接矩阵参数λ:λ决定了神经元的连接数量,λ越小,神经元的连接数量越少。
[0075]
蚁群算法相关参数:p=0.5,q=2,α=1,β=1,ant_num=100。
[0076]
(3)对照组设置
[0077]
由于仿真所采用的神经系统的连接是随机的,因而,仿真所采用的对照组为随机映射,即每个神经元依此随机映射到某个节点上,如果此节点没有部署满,则将其部署在这个节点上,否则重新选择节点,直到找到一个没有部署满的节点为止。
[0078]
本文对上述映射算法采用不同的参数进行了仿真,仿真结果如下表所示:
[0079]
表4.1蚁群算法仿真结果
[0080]
其中,当仿真神经元数量为1000时,λ取0.02的情况下,每个神经元的平均连接个数为12.1个,取0.1的情况下每个神经元的平均连接个数为100.6个。
[0081]
从仿真结果可以看出:
[0082]
(1)蚁群算法相对于随机映射能够带来显著提升,其中仿真编号5的性能提升达到了 64.20%。
[0083]
(2)对比仿真1和仿真2可以发现,当神经元的连接数增大时,蚁群算法带来的性能提升下降,这是因为更复杂的连接更难以通过合理的映射来减轻其跳数。
[0084]
(3)对比仿真编号3与5,当节点容量增加时,系统的平均跳数在随机映射中没有明显下降,但是基于蚁群算法和本文提出的改进,可以利用到节点容量增大带来的收益,平均跳数明显减少。
[0085]
(4)对比仿真编号1与5,仿真编号2与6,在相同的节点容量和相同的神经元数量的情况下,尽管传统蚁群算法能够得到一定的性能收益,但是理论上当节点数量增多时,系统的性能不会下降,传统蚁群算法在迭代中陷入局部最优,无法充分利用到节点增加带来的性能收益。与之相比,改进的蚁群算法更能够利用到此收益,8*8节点的平均跳数与4*4节点相仿。
[0086]
针对仿真编号1,图1展示的是在迭代过程中,各个蚂蚁的映射选择对应的成本随迭代次数的变化。
[0087]
图2展示了传统蚁群算法和改进的蚁群算法最小跳数和平均跳数随迭代次数的变化图,从图中可以看出,一方面改进的蚁群算法最终收敛结果要明显优于传统蚁群算法,另一方面,收敛速度也是改进的蚁群算法更快。
[0088]
本文复现了cnde算法,并进行了仿真对比。图3是采用cnde算法采用与前文仿真编号1 相同的参数设置下得到的成本随迭代次数的变化曲线。
[0089]
对比cnde算法与本文提出的映射算法,可以发现,cnde算法迭代次数远大于蚁群
算法,且最终收敛结果也是本文提出的蚁群算法更有优势。
[0090]
综上所述,本文给出的基于蚁群算法的映射算法,针对平均跳数这一优化指标能够给出显著的性能提升,达到了设计的预期要求。
[0091]
vopd是拓扑映射问题中的一个经典的问题图,其通信图如下图所示,共有16个核,类比本文的应用场景即为16个神经元。与前文仿真不同的是,此处神经元的脉冲发射频次不同,即通信核的信息传输量大小不一。
[0092]
利用提出的cnde算法对系统的总能耗进行了优化,略去的占比较小的部分,主要分析链路能耗和路由器能耗两部分。
[0093]
e=e
l
er[0094]
其中,链路能耗由系统中所有连接的距离和对应传输的比特数决定。
[0095][0096]
路由器能耗由节点发送和接收的信息量决定。
[0097][0098]
此问题背景与本文非常相似,区别只在于神经元的发送频次不同,因此,对本文提出的基于蚁群算法的映射算法对成本函数进行修改即可迁移到此问题下。
[0099][0100]
本文与cnde算法进行了对比,采用同样的问题背景,同样的迭代跳出条件,进行多次仿真平均之后,相对于随机映射两者针对能耗的提升如表4.2所示,cnde算法相对于随机映射性能提升50.71%,本文算法提升56.44%,有明显的性能提升。
[0101][0102]
此外,值得一提的是,本文提出的算法的应用场景更多的是单节点上可以部署多个神经元的情况,与此处的vopd任务单节点只能部署一个不同,具有更广阔的应用空间。
[0103]
以上对本发明及其实施方式进行了描述,这种描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。总而言之如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献