[发明专利]一种基于集成学习的脉冲神经网络模式识别方法及系统有效
申请号: | 202010148406.X | 申请日: | 2020-03-05 |
公开(公告)号: | CN111460906B | 公开(公告)日: | 2023-05-26 |
发明(设计)人: | 周喜川;林英撑;梁松红 | 申请(专利权)人: | 重庆大学 |
主分类号: | G06V10/82 | 分类号: | G06V10/82;G06V10/94;G06V10/764;G06V20/17;G06V20/50;G06N3/0464;G06N3/049;G06N3/048;G06N3/084;G06N20/20 |
代理公司: | 北京同恒源知识产权代理有限公司 11275 | 代理人: | 赵荣之 |
地址: | 400044 重*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 集成 学习 脉冲 神经网络 模式识别 方法 系统 | ||
1.一种基于集成学习的脉冲神经网络模式识别方法,其特征在于:该方法包括以下步骤:
S1:建立二元SNN算法模型;
S2:基于Bagging的ESNN算法模型;
S3:设计基于ESNN的系统;
所述步骤S1为:
将DNN模型的权重和激活值进行二值脉冲化,采用的脉冲化函数为:
其中xb是二值的网络权重或激活;
对权重和激活进行二元脉冲处理,降低内存占用;
利用α尺度因子使二值卷积逼近实值卷积;
假设I是某层的实值输入,W是某层的一个实值卷积核权重,B∈{-1,+1}是W的二值量化权重,是该卷积核对应的尺度因子;用≈αB使B去逼近W,利用L2范数,转化为求以下最优化目标函数:
J(B,α)=||W-αB||2
经过最优化求解过程求得最优解B*=Sign(W),即最优二值权重是实值权重的符号位,最优缩放因子是实值权重W的每个元素的绝对值之和的均值;经过这个最优化过程完成对权重的脉冲化,脉冲函数为Sign符号函数;对输入的脉冲化也是相同的过程,得到相同的最优解和输入脉冲函数;经过二元脉冲化的神经网络,若干个前神经元的输入和权重都是二元的脉冲信号,前神经元的计算结果经过聚合后形成后神经元的膜电位,通过阈值比较后输出脉冲信号,作为下一级的输入脉冲;
所述步骤S2为:
利用Bagging算法同时训练多个相互独立的二元SNN模型,然后推理时聚合所有的模型输出以表决出最后结果,实现基于Bagging集成学习技术的二元SNN模型算法框架;
利用多模型集成的方法使多个二值卷积核逼近于一个实值卷积核:
Bagging算法的流程为以下步骤:
集进行m次自举采样bootstrap,即有放回的随机采样,得到一个包含m个样本的采样集;重复T次上诉操作得到T个采样集;
步骤2:对于步骤1得到的T个采样集,用每个采样集训练一个模型,共训练得到T个独立的同质模型;
步骤3:将T个模型对同一个测试样本的输出通过表决器来判定最后结果,对于分类任务通常选取投票数最多的类别作为最后结果,而回归任务则采用简单平均法;
所述步骤S3中,基于ESNN的电路包括输入输出缓存与控制部分、片上存储器、脉冲神经网络流水线和Bagging计算单元;
输入输出缓存与控制部分用于对来自外部IO外设或总线的输入数据进行缓存和复用,解决跨时钟域的数据处理问题;
脉冲神经网络流水线包括多个级联的计算阵列,每个计算阵列用于计算相应位置的网络宏层,计算阵列包括多个并行的计算单元,分别实现不同卷积核的运算;
片上存储器用于存储SNN模型的参数和中间计算结果,采用数据流式的计算架构,通过数据复用和计算单元的复用来实现宽度较深的网络计算;
Bagging计算单元用于实现对并行流水线的输出结果进行聚合然后表决出最后结果;
所述系统采用基于数据流的全流水近存计算架构,输入数据经流所有的脉冲神经网络流水线,所有内存访问发生在片内且参数读取与数据严格同步;
每个计算阵列用于SNN模型中一个宏层的计算,包括二元脉冲卷积层、批量归一化层、非线性激活层以及池化层;
计算阵列中还包括并行的计算单元PE;
计算单元由脉冲信号缓存模块、脉冲卷积模块、存储器以及控制器组成;
脉冲信号缓存模块由K×Ni×Ri的寄存器阵列组成,用来缓存输入的脉冲信号;若卷积核大小为K×K,每个行数据块长度为Ri,当K个行数据块缓存完成后,便能每个时钟从中提取出一次脉冲卷积运算所需的滑动窗口的数据;Ni是计算单元一次计算的数据通道数;脉冲卷积单元实现二元脉冲信号的卷积运算,移位器实现多个有权二元脉冲神经元的组合运算,累加器进行多次复用计算后的结果累加;阈值计算与池化单元负责进行批量归一化Batch normalization、非线性阈值激活Activation和池化Pooling运算;
采用归一化和激活函数结合的方式,将归一化层的参数和神经元的偏置合并为神经元的阈值电压,利用一个加法器实现神经元输出电压的阈值比较并根据输出电压的符号产生脉冲信号,最后根据模型的需要进行池化运算。
2.基于权利要求1所述识别方法的基于集成学习的脉冲神经网络模式识别系统,其特征在于:包括输入输出缓存与控制部分、片上存储器、脉冲神经网络流水线和Bagging计算单元;
所述识别系统采用基于数据流的全流水近存计算架构,输入数据经流所有的脉冲神经网络流水线,所有内存访问发生在片内且参数读取与数据严格同步;
所述输入输出缓存与控制部分用于对来自外部IO外设或总线的输入数据进行缓存和复用,解决跨时钟域的数据处理问题;
脉冲神经网络流水线包括多个级联的计算阵列,每个计算阵列用于计算相应位置的网络宏层,计算阵列包括多个并行的计算单元,分别实现不同卷积核的运算;
片上存储器用于存储SNN模型的参数和中间计算结果,采用数据流式的计算架构,通过数据复用和计算单元的复用来实现宽度较深的网络计算;
Bagging计算单元用于实现对并行流水线的输出结果进行聚合然后表决出最后结果;
所述计算阵列用于SNN模型中一个宏层的计算,包括二元脉冲卷积层、批量归一化层、非线性激活层以及池化层;
所述计算阵列中还包括并行的计算单元PE;
计算单元PE包括脉冲信号缓存模块、脉冲卷积模块、存储器以及控制器;
所述脉冲信号缓存模块由K×Ni×Ri的寄存器阵列组成,用来缓存输入的脉冲信号;若卷积核大小为K×K,每个行数据块长度为Ri,当K个行数据块缓存完成后,每个时钟从中提取出一次脉冲卷积运算所需的滑动窗口的数据;Ni是计算单元一次计算的数据通道数;
脉冲卷积单元实现二元脉冲信号的卷积运算,移位器实现多个有权二元脉冲神经元的组合运算,累加器进行多次复用计算后的结果累加;
阈值计算与池化单元负责进行批量归一化Batch normalization、非线性阈值激活Activation和池化Pooling运算;
采用归一化和激活函数结合的方式,将归一化层的参数和神经元的偏置合并为神经元的阈值电压,利用一个加法器实现神经元输出电压的阈值比较并根据输出电压的符号产生脉冲信号,最后根据模型的需要进行池化运算。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆大学,未经重庆大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010148406.X/1.html,转载请声明来源钻瓜专利网。