CN109635938B - 一种自主学习脉冲神经网络权值量化方法 - Google Patents
一种自主学习脉冲神经网络权值量化方法 Download PDFInfo
- Publication number
- CN109635938B CN109635938B CN201811652879.2A CN201811652879A CN109635938B CN 109635938 B CN109635938 B CN 109635938B CN 201811652879 A CN201811652879 A CN 201811652879A CN 109635938 B CN109635938 B CN 109635938B
- Authority
- CN
- China
- Prior art keywords
- weight
- post
- neural network
- pulse
- synaptic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明属于神经网络技术领域,涉及一种自主学习脉冲神经网络权值量化方法。本发明的方法可以对脉冲神经网络大量的权值参数进行量化,而且该神经网络还可以利用量化权值进行训练,且与使用原始权值训练的结果非常接近,在神经网络测试阶段,可以使用索引编码后的量化权值进行计算,这样可以节省存储资源,提高计算速度。尤其当需要实现SNN硬件化的时候,该方法可以减小RAM等片上资源消耗,降低运算复杂度,提高硬件计算速度和性能。
Description
技术领域
本发明属于神经网络技术领域,涉及一种自主学习脉冲神经网络权值量化方法。
背景技术
脉冲神经网络(Spiking Neural Network,SNN)被称为第三代神经网络,旨在弥补神经科学和机器学习之间的差距,它使用最拟合生物神经元机制的模型来进行计算。脉冲神经网络与目前流行的神经网络和机器学习方法有着根本上的不同。SNN使用脉冲(一种发生在时间点上的离散事件)而非常见的连续值。每个峰值由代表生物过程的微分方程表示出来,其中最重要的是神经元的膜电位。本质上,一旦神经元达到了某一电位,脉冲就会出现,随后达到电位的神经元会被重置。对此,最常见的模型是整合-发放脉冲模型。此外,SNN通常是稀疏连接的,并会利用特殊的网络拓扑。在用脉冲神经网络处理图片的过程中,由于每个神经元代表一张图片的一个像素点,每一层神经元网络将会有很多神经元,层与层之间的全连接将会产生大量的权值,巨大的权值参数量会占用大量的存储空间,降低运算速度,增大运算功耗。
发明内容
针对上述问题,本发明提出了一种自主学习脉冲神经网络权值量化方法。
本发明的技术方案为:
一种自主学习脉冲神经网络权值量化方法,所述脉冲神经网络包括输入层、兴奋层和抑制层,其中输入层和兴奋层之间使用正向全连接突触,具有延迟,而且权值是可以训练的;兴奋层和抑制层之间是双向突触,没有延迟,权值是固定值,输入采用泊松分布频率编码,输出根据兴奋层神经元的发放脉冲数来得到;所述权值量化方法是指输入层和兴奋层之间的权值量化,包括以下步骤:
S1、初始化脉冲神经网络参数,包括权值、阈值、电导、电压、延迟、学习率和最大频率;
S2、在一定闭区间内根据均匀分布随机赋予原始权值W初始值,原始权值用64位二进制定点数表示;
S3、输入图片的泊松编码:图片的每个像素点的RGB值用一个神经元表示,神经元根据该RGB值在设定的时间窗口内生成特定的脉冲序列,脉冲序列采用泊松分布频率编码;
S4、权值量化,生成权值的索引和量化之后权值Wq;
S5、使用量化权值Wq计算电导、电流、电压和脉冲发放;
S6、根据突触前脉冲和突触后脉冲并利用STDP规则更新原始权值W;
S7、检查训练是否达到规定的时间窗口,若未达到时间窗口便继续输入脉冲进行训练,若已经达到时间窗口便输入下一张图片的泊松编码。
本发明的有益效果为,本发明的方法可以对脉冲神经网络大量的权值参数进行量化,而且该神经网络还可以利用量化权值进行训练,且与使用原始权值训练的结果非常接近,在神经网络测试阶段,可以使用索引编码后的量化权值进行计算,这样可以节省存储资源,提高计算速度。尤其当需要实现SNN硬件化的时候,该方法可以减小RAM等片上资源消耗,降低运算复杂度,提高硬件计算速度和性能。
附图说明
图1是权值量化自主学习脉冲神经网络结构。
图2是权值量化自主学习脉冲神经网络整体计算框图。
图3是权值量化的实例示意图。
图4是权值变化过程框图。
图5是基于trace的STDP学习规则下权值关于时间的变化。
具体实施方式
下面结合附图对本发明进行详细描述,以便本领域的技术人员能够更好地理解本发明。
参阅图1,权值量化自主学习脉冲神经网络网络一共三层,包括输入层,兴奋层和抑制层,其中输入层和兴奋层之间使用正向全连接突触,具有延迟,而且权值是可以训练的;而兴奋层和抑制层之间是双向突触,没有延迟,权值是固定值,不可训练。输入采用泊松分布频率编码,输出根据兴奋层神经元的发放脉冲数来得到。所以量化权值只针对输入层和兴奋层之间的权值。
参阅图2,权值量化自主学习脉冲神经网络的训练流程如下:
S1:初始化脉冲神经网络参数,包括权值、阈值、电导、电压、延迟、学习率、最大频率等。
S2:在一定闭区间内根据均匀分布随机赋予原始权值W初始值,原始权值用64位二进制定点数表示。
S3:图片的每个像素点的RGB值用一个神经元表示,神经元根据该RGB值在规定的时间窗口(即自定义的一段时间)内生成特定的脉冲序列,脉冲序列采用泊松分布频率编码。
S4:(参阅图3)对权值进行量化,具体操作公式为:
Wx是量化后的权值,W是原始权值,n是量化之后权值的个数。
该操作是先将原始权值W乘以n-1,将乘积四舍五入取整后再除以n-1,便得到量化权值Wq,量化后的权值依次用二进制数编码,生成索引,以供最后测试神经网络时调用。例如(参阅图3),16个原始权值量化为5个权值0.00、0.25、0.50、0.75、1.00之后,则可以将这量化的5个权值依次编码为:000、001、010、011、100,这样就可以将原始权值的64位二进制表达为3位二进制,测试神经网络的时候使用该3位二进制索引码便可以调用量化权值。
S5:(参阅图4)使用量化权值Wq计算电导、电流、电压和脉冲发放等。
用传统的Integrate-and-Fire(IF)神经元,首先使用量化权值Wq更新电导,即若有脉冲传入,则原电导加上权值,若没有脉冲传入,则原电导不加权值;进而用电导更新神经元的兴奋电流和抑制电流,电流大小为电导乘以膜电压;然后用电流更新神经元的细胞膜电压,膜电压大小为原膜电压加上神经元的兴奋电流和抑制电流;最后根据细胞膜电压决定神经元的脉冲发放状态,若膜电压大于阈值电压,则发出一个脉冲,若膜电压小于阈值电压,则恢复到一个特定的电压,神经元进入一个不应期。
S6:进一步,(参阅图4)根据突触前脉冲和突触后脉冲到达的时间差利用STDP规则更新原始权值W。
根据量化权值进行前向计算,然后采用不同于传统STDP的一种等效的基于trace的STDP对SNN神经网络进行训练,并更新原始权值。其中传统的STDP规则如下:
其中,ΔW是原始权值的变化量,为所有脉冲时间差经过函数处理后的和,tpre是突触前脉冲发生的时间,tpost是突触后脉冲发生的时间,F是一个特定的函数,公式如下:
其中Apre和Apost为突触前神经元和突触后神经元自定义的常数。
直接用这个方程来实现STDP效率很低,因为要对所有的脉冲进行求和,而且还需要神经元记住所有之前的脉冲时间,这样需要耗费大量的资源,在硬件实现上是不明智的,所以引入了trace来模拟这个方程。
定义两个新的变量pre和post,分别表示突触前和突触后的trace,trace随时间指数变化:
τpre和τpost是突触前神经元和突触后神经元的时间常数。
当突触前神经元发生了一个脉冲,突触前trace和权值变化如下:
pre(t)=pre(t-1)+Apre (6)
w(t)=w(t-1)-post (7)
当突触后神经元发生了一个脉冲,突触后trace和权值变化如下:
post(t)=post(t-1)+Apost (8)
w(t)=w(t-1)+pre (9)
以上的基于trace的STDP学习规则得到的权值变化(参阅图5)和传统的STDP学习规则得到的权值变化非常接近。
S7:判断一个时间窗口内的脉冲是否全部进入神经网络进行训练,若完成一个时间窗口,便可以输入下一张图片进行训练。
Claims (1)
1.一种自主学习脉冲神经网络权值量化方法,所述脉冲神经网络包括输入层、兴奋层和抑制层,其中输入层和兴奋层之间使用正向全连接突触,具有延迟,而且权值是可以训练的;兴奋层和抑制层之间是双向突触,没有延迟,权值是固定值,输入采用泊松分布频率编码,输出根据兴奋层神经元的发放脉冲数来得到;所述权值量化方法是指输入层和兴奋层之间的权值量化,其特征在于,包括以下步骤:
S1、初始化脉冲神经网络参数,包括权值、阈值、电导、电压、延迟、学习率和最大频率;
S2、在一定闭区间内根据均匀分布随机赋予原始权值W初始值,原始权值用64位二进制定点数表示;
S3、输入图片的泊松编码:图片的每个像素点的RGB值用一个神经元表示,神经元根据该RGB值在设定的时间窗口内生成特定的脉冲序列,脉冲序列采用泊松分布频率编码;
S4、权值量化,生成权值的索引和量化之后权值Wq:
其中Wq是量化后的权值,W是原始权值,n是量化之后权值的个数;
量化后的权值依次用二进制数编码,生成索引;
S5、使用量化权值Wq计算电导、电流、电压和脉冲发放;
S6、根据突触前脉冲和突触后脉冲并利用STDP规则更新原始权值W;具体方法为:
定义变量pre和post,分别表示突触前和突触后的trace,trace随时间指数变化:
τpre和τpost是突触前神经元和突触后神经元的时间常数;
当突触前神经元发生了一个脉冲,突触前trace和权值变化如下:
pre(t)=pre(t-1)+Apre
w(t)=w(t-1)-pre(t)
当突触后神经元发生了一个脉冲,突触后trace和权值变化如下:
post(t)=post(t-1)+Apost
w(t)=w(t-1)+post(t)
Apre和Apost为突触前神经元和突触后神经元自定义的常数;
S7、检查训练是否达到规定的时间窗口,若未达到时间窗口便继续输入脉冲进行训练,若已经达到时间窗口便输入下一张图片的泊松编码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811652879.2A CN109635938B (zh) | 2018-12-29 | 2018-12-29 | 一种自主学习脉冲神经网络权值量化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811652879.2A CN109635938B (zh) | 2018-12-29 | 2018-12-29 | 一种自主学习脉冲神经网络权值量化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109635938A CN109635938A (zh) | 2019-04-16 |
CN109635938B true CN109635938B (zh) | 2022-05-17 |
Family
ID=66056313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811652879.2A Active CN109635938B (zh) | 2018-12-29 | 2018-12-29 | 一种自主学习脉冲神经网络权值量化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109635938B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110210563B (zh) * | 2019-06-04 | 2021-04-30 | 北京大学 | 基于Spike cube SNN的图像脉冲数据时空信息学习及识别方法 |
CN113408613B (zh) * | 2021-06-18 | 2022-07-19 | 电子科技大学 | 一种基于延迟机制的单层图像分类方法 |
KR20230066700A (ko) * | 2021-11-08 | 2023-05-16 | 한국전자기술연구원 | 딥러닝 가속장치를 위한 적응적 파라미터 생성 장치 및 방법 |
CN114092763B (zh) * | 2021-11-22 | 2023-08-25 | 南京铁道职业技术学院 | 一种脉冲神经网络模型构建方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102959566A (zh) * | 2010-07-07 | 2013-03-06 | 高通股份有限公司 | 用于具有离散级突触和概率性stdp的数字神经处理的方法和系统 |
CN107092959A (zh) * | 2017-04-07 | 2017-08-25 | 武汉大学 | 基于stdp非监督学习算法的硬件友好型脉冲神经网络模型 |
CN108304928A (zh) * | 2018-01-26 | 2018-07-20 | 西安理工大学 | 基于改进聚类的深度神经网络的压缩方法 |
CN108304767A (zh) * | 2017-12-12 | 2018-07-20 | 中国科学院自动化研究所 | 基于多脑区协同计算的人类动作意图识别训练方法 |
CN108717570A (zh) * | 2018-05-23 | 2018-10-30 | 电子科技大学 | 一种脉冲神经网络参数量化方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8892485B2 (en) * | 2010-07-08 | 2014-11-18 | Qualcomm Incorporated | Methods and systems for neural processor training by encouragement of correct output |
US9147156B2 (en) * | 2011-09-21 | 2015-09-29 | Qualcomm Technologies Inc. | Apparatus and methods for synaptic update in a pulse-coded network |
US8725662B2 (en) * | 2011-09-21 | 2014-05-13 | Brain Corporation | Apparatus and method for partial evaluation of synaptic updates based on system events |
US10671912B2 (en) * | 2016-09-13 | 2020-06-02 | Sap Se | Spatio-temporal spiking neural networks in neuromorphic hardware systems |
-
2018
- 2018-12-29 CN CN201811652879.2A patent/CN109635938B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102959566A (zh) * | 2010-07-07 | 2013-03-06 | 高通股份有限公司 | 用于具有离散级突触和概率性stdp的数字神经处理的方法和系统 |
CN107092959A (zh) * | 2017-04-07 | 2017-08-25 | 武汉大学 | 基于stdp非监督学习算法的硬件友好型脉冲神经网络模型 |
CN108304767A (zh) * | 2017-12-12 | 2018-07-20 | 中国科学院自动化研究所 | 基于多脑区协同计算的人类动作意图识别训练方法 |
CN108304928A (zh) * | 2018-01-26 | 2018-07-20 | 西安理工大学 | 基于改进聚类的深度神经网络的压缩方法 |
CN108717570A (zh) * | 2018-05-23 | 2018-10-30 | 电子科技大学 | 一种脉冲神经网络参数量化方法 |
Non-Patent Citations (4)
Title |
---|
A Neuromorphic-Hardware Oriented Bio-Plausible Online-Learning Spiking Neural Network Model;G. C. QIAO 等;《IEEE ACCESS》;20190612;71730-71740 * |
ASP: Learning to Forget with Adaptive Synaptic Plasticity in Spiking Neural Networks;Priyadarshini Panda 等;《arXiv》;20180608;1-13 * |
Neuromodulated Synaptic Plasticity on the SpiNNaker Neuromorphic System;Mantas Mikaitis 等;《Frontiers in Neuroscience》;20180227;1-13 * |
脉冲神经元脉冲序列学习方法综述;徐彦 等;《计算机应用》;20180610;第38卷(第6期);1527-1534,1541 * |
Also Published As
Publication number | Publication date |
---|---|
CN109635938A (zh) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109635938B (zh) | 一种自主学习脉冲神经网络权值量化方法 | |
CN107092959B (zh) | 基于stdp非监督学习算法的脉冲神经网络模型构建方法 | |
Bu et al. | Optimal ANN-SNN conversion for high-accuracy and ultra-low-latency spiking neural networks | |
Kim et al. | Rate coding or direct coding: Which one is better for accurate, robust, and energy-efficient spiking neural networks? | |
CN106897254B (zh) | 一种网络表示学习方法 | |
CN110659730A (zh) | 基于脉冲神经网络的端到端功能性脉冲模型的实现方法 | |
CN110659666B (zh) | 一种基于相互作用的多层脉冲神经网络的图像分类方法 | |
CN108304912B (zh) | 一种运用抑制信号实现脉冲神经网络监督学习的系统和方法 | |
CN112906828A (zh) | 一种基于时域编码和脉冲神经网络的图像分类方法 | |
CN114266351A (zh) | 基于无监督学习时间编码的脉冲神经网络训练方法及系统 | |
Zhang et al. | Efficient spiking neural networks with logarithmic temporal coding | |
CN111382840B (zh) | 一种面向自然语言处理的基于循环学习单元的htm设计方法 | |
CN115936070A (zh) | 一种低延时低功耗脉冲神经网络转换方法 | |
Allred et al. | Unsupervised incremental stdp learning using forced firing of dormant or idle neurons | |
Park et al. | Training energy-efficient deep spiking neural networks with time-to-first-spike coding | |
CN113435577B (zh) | 基于训练深度脉冲神经网络的梯度函数学习框架替换方法 | |
CN114118378A (zh) | 基于阈值自适应神经元的硬件友好stdp学习方法和系统 | |
CN112288078B (zh) | 一种基于脉冲神经网络的自学习、小样本学习和迁移学习的方法与系统 | |
Sun et al. | Deep spiking neural network with ternary spikes | |
Stromatias | Developing a supervised training algorithm for limited precision feed-forward spiking neural networks | |
US20230004351A1 (en) | Method and device for additive coding of signals in order to implement digital mac operations with dynamic precision | |
CN114239405A (zh) | 一种脉冲神经网络神经元膜电压计算方法 | |
Shao et al. | EICIL: Joint excitatory inhibitory cycle iteration learning for deep spiking neural networks | |
CN112232494A (zh) | 一种基于频率诱导的构建用于特征提取的脉冲神经网络的方法 | |
Dinh et al. | FBW-SNN: a fully binarized weights-spiking neural networks for edge-AI applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |