脉冲神经网络(Spiking Neural Network, SNN)[1]被称为第三代神经网络[2], 是目前最具有仿生性的人工神经网络。脑科学的研究结果表明, 在生物系统中, 信息是以突触直接的动作电位来进行处理和传递的。受这一研究的启发, 脉冲神经网络将信息编码成脉冲序列进行处理, 其结构更接近于生物神经元, 而且网络的计算能力强于传统人工神经网络[3]。由于其优秀的性能, 引发了诸多学者的关注, 如英国帝国理工大学的GOODMAN研发了脉冲神经网络的仿真平台Brian[4-5], 奥地利的MAASS对脉冲神经元模型、网络拓扑结构和相关应用进行了研究[6-7], 日本东京大学KUBOTA等人将SNN应用到助力机器人以及行走机器人上[8], 瑞士联邦学院GERSTNER等人对脉冲神经元模型和脉冲时间独立可塑性学习规则等理论进行了研究[9]。国内也有学者对此进行了研究, 如文献[10]对基于脉冲时间网络的图像分割应用进行了研究, 而且提出了累加和累积合成核机制进行网络的训练[11], 文献[12]将自组织网络与STDP相结合对算法进行研究, 也有学者提出了基于脉冲神经网络的片上网络路由器动态优先级仲裁策略[13]。
研究人员对脉冲神经元模型进行深入研究, 目前学界比较公认的学习算法有脉冲时间依赖可塑性(Spike-Timing-Dependent-Plasticity, STDP)[14]、Tempotron[15]、ReSuMe(Remote Supervised Method)[16]和SpikeProp[17]等, STDP算法由Hebb规则[18]延伸而得到, 是目前比较流行的无监督算法[19], 能够较好地解释神经网络的依赖性。
本文研究基于无监督的脉冲神经网络, 采用STDP学习算法进行基于脉冲数目的无监督训练, 通过改进传统的分类方法, 提出一种投票竞争机制提高网络的分类准确率, 并在MNIST数据集上进行实验验证。
1 脉冲神经网络结构 1.1 脉冲神经元模型脉冲神经元是构成脉冲神经网络的基本单元, 其状态主要由膜电势以及阈值所决定, 膜电势主要由来自上一层所有连接的突触后电势决定, 其中EPSP(Excitatory Post-Synaptic Potential)能够提高神经元的膜电势, IPSP(Inhibitory Post-Synaptic Potential)能够降低神经元的模电势[20]。本文网络的脉冲神经元模型采用LIF模型进行研究[21], 其模型描述如下:
$ \left\{ {\begin{array}{*{20}{l}} {{\tau _m}\frac{{{\rm{d}}V}}{{{\rm{d}}t}} = \left( {{V_r} - V} \right) + {g_e}\left( {{V_e} - V} \right) + {g_i}\left( {{V_i} - V} \right)}\\ {{\tau _{{g_e}}}\frac{{{\rm{d}}{g_e}}}{{{\rm{d}}t}} = - {g_e}}\\ {{\tau _{{g_i}}}\frac{{{\rm{d}}{g_i}}}{{{\rm{d}}t}} = - {g_i}} \end{array}} \right. $ | (1) |
其中, v(t)表示在t时刻神经元的模电压, Vr表示静息膜电位, Ve和ge表示兴奋性突触的平衡电压和电导, Vi和gi表示抑制性突触的平衡电压和电导, τm表示神经元的膜电位时间常数由τ=RC所决定, R表示膜电阻, C表示膜电容, τge和τgi分别表示激励性神经元和抑制性神经元的膜电位时间常数。
当突触后神经元接收到突触前神经元传输的电流I时, 膜电势会升高, 当其逐渐升高超过阈值时, 就会释放脉冲, 随后电势会低于之前的静息电位, 在复位后的几毫秒内, 神经元处于不应期, 不能再次出现脉冲。其电位变化方式如图 1所示。
![]() |
Download:
|
图 1 神经元输入电流膜电压变化过程 Fig. 1 Process of neuron input current membrane voltage change |
上述过程被称为神经元的动作电位, 也就是神经元产生了一个脉冲。从图 1可以看出, 第1次输入电流较小时, 膜电压Vm升高, 但是没有超过阈值VT, 因此又恢复到静息电压VR, 第2次输入电流时, Vm超过了VT, 因此产生了一次完整的动作电位, 向突触后神经元释放了脉冲。
1.2 STDP算法脉冲时间依赖可塑性(STDP)是调节大脑中神经元之间的连接强度的生物学过程, 该过程根据特定神经元输入脉冲的相对时序调整连接强度[22]。其学习机制可以表达为:
$ \Delta w = \sum\limits_{{t_{{\rm{pre}}}}} {\sum\limits_{{t_{{\rm{post}}}}} {W\left( {{t_{{\rm{post}}}} - {t_{{\rm{pre}}}}} \right)} } $ | (2) |
其中, tpost表示突触后神经元产生脉冲的时间, tpre表示突触前神经元产生脉冲的时间, 表明了突触权重的变化由所有突触前神经元的脉冲发放时间和突触后的脉冲发放时间所影响, 常规的STDP时间函数如下:
$ W\left( {\Delta t} \right) = \left\{ {\begin{array}{*{20}{c}} {{A_ + }\exp \left( {\frac{{\Delta t}}{{{\tau _ + }}}} \right), \Delta t \ge 0}\\ {{A_ - }\exp \left( {\frac{{\Delta t}}{{{\tau _ - }}}} \right), \Delta t < 0} \end{array}} \right. $ | (3) |
其中, Δt表示突触后神经元产生脉冲的时间tpost和突触前神经元产生脉冲时间tpre之差, A+和A-代表权重调整的范围, τ+和τ-表示不同神经元模型的常量。由式(3)还可以看出, 当突触后神经元在突触前神经元之前产生脉冲时, 则减少两者之间的权重, 反之如果突触后神经元在突触前神经元之后产生脉冲, 则增加两者之间的权重。
1.3 网络结构脉冲神经网络结构如图 2所示, 脉冲神经元网络结构的主体是输入层和STDP层, 转换层的作用是简单地进行图像样本的处理, 抑制层是抑制STDP层不活跃的神经元释放脉冲, 而分类层是将STDP层所产生的信号根据算法进行分类。
![]() |
Download:
|
图 2 脉冲神经网络结构 Fig. 2 Structure of spikeing neural network |
图像的像素先经过转换层转换为脉冲频率, 脉冲频率与图像的像素强度成正比, 比例系数为β, 将对应的频率传输到输入层。由于本文将采用基于STDP学习规则, Poisson序列的编码可以更好地提高效率[23], 因此输入层采用m个Poisson神经元构成, 作用是可以将脉冲频率转换为Poisson序列, 其神经元激发概率公式为:
$ {P_T}\left[ n \right] = \frac{{{{\left( {rt} \right)}^n}}}{{n!}}{{\rm{e}}^{ - rT}} $ | (4) |
其中, PT[n]表示神经元产生脉冲的概率, n表示神经元数目, r表示样本数据, 即脉冲频率, T表示一次训练的周期。
输入层的神经元与STDP层以及抑制层的神经元是一一连接的, 区别在于, 与STDP层连接的权重wmn是由STDP学习规则进行更新的, 而与抑制层的神经元的连接是固定权重, 这样方便调整抑制层的抑制程度。
由于网络结构采用的是无监督学习规则进行学习, 因此引入抑制层进行竞争, 这样可以使获胜神经元的权重增加, 而其他神经元的权重减少, 有效降低了训练过程中的噪声, 得到了更好的训练效果。
对于网络的STDP层以及抑制层在训练过程中都是无监督的, 在训练结束之后会收敛, 这样的网络并没有表现出任何特定的功能。在这里需要添加分类层去识别STDP层在训练过程中所发送的信息, 以达到分类的目的。
2 投票竞争机制分类层的算法对于网络最后的表现至关重要, 具有生物意义的常规方法是将STDP层在训练时产生的脉冲表现转换为每一个神经元表现的分类, 然后通过加权的方式进行分类。这类方式准确率相对较低, 本文针对此方法进行了改进, 提出一种符合生物竞争的策略, 增加了投票竞争机制, 增加了分类的准确率。由于会使用到数据的标签, 但是数据不会再向前传输也不会改变训练好的权重, 因此本文算法为半监督类型的算法。
对于一个训练样本数量为a的m个像素的k分类问题, 输入神经元个数为m个, STDP神经元数目为n个, 抑制层神经元数目为l个, 且定义:
$ {a_1} + {a_2} + \cdots + {a_k} = a $ | (5) |
其中, a1表示k1类别的样本数量有a1个。在第1次训练过程结束后, 得到一个STDP层的每个神经元的脉冲计数, 是一个a行n列的矩阵, 用SCan1表示。其中SCin1表示第i次输入数据后, 激励层神经元产生的脉冲个数, 1≤i≤a。SCaj1表示第j个神经元在a次样本训练中每次产生的脉冲数, 1≤j≤n。对于第b次训练结束后得到的STDP层的神经元脉冲计数SCajb(b < k), 求出STDP层每个神经元脉冲表现的类别assb, 流程如下:
1) 当ak类输入时, 求出所有神经元的输出脉冲之和并进行标准处理, 可以得到平均输入一次样本时神经元的脉冲产生情况:
$ {\mathit{\boldsymbol{r}}_k} = \frac{{\sum\limits_{i = 1}^{{A_k}} {SC_{in}^b} }}{{{a_k}}} $ | (6) |
2) 对于得到的k个行向量rk, 定义rkn表示输入类别为ak时, 第n个神经元产生的脉冲数, 可以拼接成如下的矩阵:
$ {\mathit{\boldsymbol{R}}_{kn}} = \left[ {\begin{array}{*{20}{c}} {{\mathit{\boldsymbol{r}}_1}}\\ {{\mathit{\boldsymbol{r}}_2}}\\ \vdots \\ {{\mathit{\boldsymbol{r}}_k}} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{r_{11}}}&{{r_{12}}}& \cdots &{{r_{1n}}}\\ {{r_{21}}}&{{r_{22}}}& \cdots &{{r_{2n}}}\\ \vdots & \vdots &{}& \vdots \\ {{r_{k1}}}&{{r_{k2}}}& \cdots &{{r_{kn}}} \end{array}} \right] $ | (7) |
3) 对Rkn的每一列取其最大值的行标号, 作为此神经元的表现类别, 可以得到:
$ {\rm{as}}{{\rm{s}}^b} = \left( {{s_1}, {s_2}, \cdots , {s_n}} \right) $ | (8) |
其中, s1, s2, …, sn表示对应神经元表现的类别。
4) 将前面得到的ass通过投票竞争机制进行筛选, 即:
$ {\rm{as}}{{\rm{s}}^{\rm{*}}} = f\left( {{\rm{as}}{{\rm{s}}^1}, {\rm{as}}{{\rm{s}}^2}, \cdots , {\rm{as}}{{\rm{s}}^b}} \right) $ | (9) |
其中, f(·)为投票竞争机制。规则如下:assi*是由assi1, assi2, …, assib投票选出, 即assi*的类别为b次训练中第i个神经元表示次数最多的类别, 如果无重复值, 则按照第一次训练的竞争力最强, 取assi*=assi1。其算法描述如下:
for i =1 to n :
for j =1 to b :
将第i个神经元在b次训练中出现类别最多的次数赋给assi*
If在b次训练中无法重复值:
assi*=assi1
end
end
投票竞争策略如图 3所示, s1由s1, s2, …, sn投票得出, 为其中出现次数最多的类别, 即对于最后的神经元表现, 由前面b次训练过程中得到的神经元表示进行投票, 若神经元表示类别为k的次数最多则最终结果定为k, 这样得到的表现类别优于之前得到的单一表现, 可以使得此算法收敛到一个更优的值。
![]() |
Download:
|
图 3 投票竞争策略示意图 Fig. 3 Schematic diagram of voting competition strategy |
为验证投票竞争机制的可靠性与有效性, 本文以配有16 GB内存、处理器为IntelⓇ CoreTM i7-4720HQ, 并装有Ubuntu16.0的操作系统的笔记本电脑为测试平台, 以python3.6为编程环境, 使用BRIAN2作为仿真库使用, 在MNIST数据集上进行了验证实验。
为表明网络结构的生物意义的合理性, 本文模拟时采用的参数均为在生物学的合理范围之内, 包括膜的时间常数、突触模型和训练周期等[24], 除了提高激励性神经元的时间常数到100 ms, 相较与生物神经元中的时间常数10 ms~20 ms, 该网络结构可以降低噪声的影响。例如, 如果输入脉冲在126 Hz的最大速率下持续输入20 ms, 则神经元平均产生2.52个脉冲, 这意味着单个噪声尖峰会产生很大的影响, 而增加到100 ms时, 神经元平均可以积累12.6个脉冲, 从而减少了噪声的影响。
在算法设计上, 为保证算法的有效性不会因为随机的参数起点不一致而导致误差, 本文在同等网络结构下均采用相同初始条件。
MNIST手写数字数据库, 其训练集包含了60 000张28×28的图片, 测试集包含了10 000张28×28的图片, 因此网络的输入层神经元个数为28×28=784个。对于STDP层和抑制层的神经元数目在实验中发现两者相等时表现最佳, 因此本次实验过程中均选取一致的数目, 测试的准确率为测试集的准确率。
为研究不同投票次数对准确率的影响, 设置了一组在STDP层神经元数量不变时, 训练次数为2次~9次的验证性实验, 实验结果如图 4所示。
![]() |
Download:
|
图 4 训练次数对准确率的影响 Fig. 4 Impact of training times on accuracy |
从图 4可以看出, 随着训练次数的增加, 准确率的提升逐渐收敛, 当训练次数为4次时, 测试集准确率已经稳定, 这是由于本文算法的机制所表现, 因为逐步增加投票的样本, 并不会很大程度地改变主神经元组的表现, 因此可以看出, 本文方法是有效的。为进一步验证算法的有效性, 本文设计了4次不同神经元数量下的对比实验, 实验结果如图 5所示。其中, 在不同神经元数量中, 最右的深色为本文采用的投票竞争机制算法, 其余为进行投票的样本。
![]() |
Download:
|
图 5 不同神经元数目下MNIST的准确率对比 Fig. 5 Comparison of accuracy of MNIST under different numbers of neurons |
当神经元数目为200时, 未采用投票竞争机制的平均准确率只有85.55%, 当采用本文方法后提升至92.23%, 提高了6.68%, 在其他神经元规模下, 本文方法准确率均有较大提升, 说明了本文方法可以提高脉冲神经网络结构的分类表现。
为进一步研究准确率的提升, 在神经元数目为400时, 2种不同方法STDP测试集表现的混淆矩阵如图 6所示。
![]() |
Download:
|
图 6 两种方法标准化的混淆矩阵 Fig. 6 Confusion matrix standardized by two methods |
从图 6可以看出, 图 6(b)相对于图 6(a)提高了数字4和9的误分类情况, 数字9的识别率提高了6.0%, 整体准确率提升了3.69%, 说明本文方法是有效的。
同时为了更加严谨地分析算法性能, 对于算法的运行时间进行了实验分析。本文算法增加时间复杂度主要有2个因素:1)增加了竞争投票算法, 由算法描述可知, 此算法的时间复杂度为O(nb), 受到神经元个数以及训练次数的影响, 将神经元的类别ass采用矩阵形式的存储方式, 运算效率高, 时间复杂度可以降低为O(b), 因此该因素对于整体的影响不大; 2)增加了训练次数, 不可避免地会增加脉冲训练时间。脉冲训练时间影响主要来源为:不同数目的神经元网络构建时间不同, 即网络结构创建耗时; 超过指定的脉冲响应周期(接受脉冲时间和不应期时间)的额外仿真耗时。实验结果如图 7所示。
![]() |
Download:
|
图 7 脉冲时间网络创建与训练耗时分析 Fig. 7 Pulse time network creation and training time-consuming analysis |
由实验结果可以看出, 网络创建时间和单次额外仿真耗时(取训练同样的前1 000个样本时间然后取均值)均随神经元数目的增加而增加, 此处的神经元数目均指STDP层神经元数目, 其余神经元数目保持不变。观察图中的网络创建时间对于算法的效率影响不是很大, 主要的时间影响因素来自单次额外仿真时间。对于本文算法来说, 训练4次左右提升效果最为明显, 以200个神经元训练时长为例, 单次训练需要25.60 ms, 采用本文算法则相当于需要102.4 ms, 单次仿真时间比700个神经元所需的单次额外仿真时间要低1.33 ms, 而两者准确率仅相差0.34%。这说明本文算法在不增加训练时间的情况下, 可以取得与更加复杂的网络结构一样的训练结果, 表明本文算法对于性能有限的机器有很大的帮助。将本文算法与其他脉冲神经网络算法在MNIST测试集上的分类效果进行对比, 如表 1所示。
![]() |
下载CSV 表 1 脉冲神经网络在MNIST测试集上的比较 Table 1 Comparison of spikeing neural network on MNIST test set |
从表 1对比结果可以看出, 本文算法网络结构的效果更好。
4 结束语本文提出一种投票竞争机制, 该机制优化了基于无监督学习的脉冲神经网络机构在图像分类问题的表现。采用脉冲神经网络模型, 并基于STDP学习规则进行数据训练, 对输出的脉冲表现采用投票竞争的学习机制, 提高了神经元的表现。实验结果表明, 在网络结构一致的情况下, 本文方法在训练次数较少时即可以达到收敛, 与传统的网络结构相比准确率提升明显。下一步将考虑输入网络数据来增加预处理的过程, 以降低网络的复杂度。
[1] |
PAUGAM-MOISY H, BOHTE S.Computing with spiking neuron networks[C]//Proceedings of HNC'12.Berlin, Germany: Springer, 2012: 335-376.
|
[2] |
MAASS W. Networks of spiking neurons:the third generation of neural network models[J]. Neural Networks, 1997, 10(9): 1659-1671. DOI:10.1016/S0893-6080(97)00011-7 |
[3] |
MAAS W. Noisy spiking neurons with temporal coding have more computational power than sigmoidal neurons[J]. Advances in Neural Information Processing Systems, 1997, 9: 211-217. |
[4] |
GOODMAN D F, BRETTE R. Brian:a simulator for spiking neural networks in python[J]. Frontiers in Neuroinformatics, 2008, 2: 5-10. |
[5] |
GOODMAN D F, BRETTE R. The brian simulator[J]. Frontiers in Neuroscience, 2009, 3: 26-31. DOI:10.3389/neuro.01.026.2009 |
[6] |
MAASS W, NATSCHLÄGER T, MARKRAM H. Real-time computing without stable states:a new framework for neural computation based on perturbations[J]. Neural Computation, 2002, 14(11): 2531-2560. DOI:10.1162/089976602760407955 |
[7] |
BUONOMANO D V, MAASS W. State-dependent computations:spatiotemporal processing in cortical networks[J]. Nature Reviews Neuroscience, 2009, 10(2): 113. DOI:10.1038/nrn2558 |
[8] |
MASUTA H, KUBOTA N.The perception for partner robot using spiking neural network in dynamic environment[C]//Proceedings of SICE'08.Washington D.C., USA: IEEE Press, 2008: 2001-2006.
|
[9] |
GERSTNER W, KISTLER W M. Spiking neuron models:single neurons, populations, plasticity[M]. Cambridge, UK: Cambridge University Press, 2002.
|
[10] |
LIN Xianghong, ZHANG Ning, CUI Wenbo, et al. Image segmentation method of spiking neural network based on TTFS coding[J]. Computer Engineering, 2015, 41(8): 227-232. (in Chinese) 蔺想红, 张宁, 崔文博, 等. 基于TTFS编码的脉冲神经网络图像分割方法[J]. 计算机工程, 2015, 41(8): 227-232. |
[11] |
LIN Xianghong, LI Dan, WANG Xiangwen, et al. Online supervised learning algorithm for spiking neuron based on spiking sequence composite kernel[J]. Computer Engineering, 2017, 43(12): 197-202. (in Chinese) 蔺想红, 李丹, 王向文, 等. 基于脉冲序列合成核的脉冲神经元在线监督学习算法[J]. 计算机工程, 2017, 43(12): 197-202. |
[12] |
WANG Lei, WANG Lianming. An improved self-organizing map spiking neural networks based on STDP rule[J]. Journal of Northeast Normal University(Natural Science Edition), 2017, 49(3): 52-56. (in Chinese) 王蕾, 王连明. 一种改进的基于STDP规则的SOM脉冲神经网络[J]. 东北师大学报(自然科学版), 2017, 49(3): 52-56. DOI:10.16163/j.cnki.22-1123/n.2017.03.012 |
[13] |
LIU Junxiu, HUANG Xingyue, LUO Yuling, et al. Dynamicpriority arbitration strategy for interconnections of hardware spiking neural networks[J]. Acta Electronica Sinica, 2018, 46(8): 1898-1905. (in Chinese) 刘俊秀, 黄星月, 罗玉玲, 等. 脉冲神经网络硬件互连系统的动态优先级仲裁策略[J]. 电子学报, 2018, 46(8): 1898-1905. DOI:10.3969/j.issn.0372-2112.2018.08.014 |
[14] |
MARKRAM H, LÜBKE J, FROTSCHER M, et al. Regulation of synaptic efficacy by coincidence of postsynaptic APs and EPSPs[J]. Science, 1997, 275(5297): 213-215. DOI:10.1126/science.275.5297.213 |
[15] |
KRAUSE T U.Rate coding and temporal coding in a neural network[EB/OL].[2019-05-20].http://www.ini.rub.de/PEOPLE/rolf/.
|
[16] |
PONULAK F, KASINSKI A. Supervised learning in spiking neural networks with ReSuMe:sequence learning, classification, and spike shifting[J]. Neural Computation, 2010, 22(2): 467-510. DOI:10.1162/neco.2009.11-08-901 |
[17] |
BOHTE S M, KOK J N, LA POUTRÉ J A.SpikeProp: backpropagation for networks of spiking neurons[C]//Proceedings of ESANN'00.Bruges, Belgium: [s.n.], 2000: 17-37.
|
[18] |
KEMPTER R, GERSTNER W, VAN HEMMEN J L. Hebbian learning and spiking neurons[J]. Physical Review E, 1999, 59(4): 4498. DOI:10.1103/PhysRevE.59.4498 |
[19] |
CHENG Long, LIU Yang. Spiking neural networks:model, learning algorithms and applications[J]. Control and Decision, 2018, 33(5): 923-937. (in Chinese) 程龙, 刘洋. 脉冲神经网络:模型、学习算法与应用[J]. 控制与决策, 2018, 33(5): 923-937. DOI:10.13195/j.kzyjc.2017.1444 |
[20] |
MAASS W.Analog computations on networks of spiking neurons[C]//Proceedings of Italian Workshop on Neural Nets.[S.1.]: World Scientific Publishing, 1996: 99-111.
|
[21] |
FENG J, BROWN D. Integrate-and-fire models with nonlinear leakage[J]. Bulletin of Mathematical Biology, 2000, 62(3): 467-481. DOI:10.1006/bulm.1999.0162 |
[22] |
XU Yan, YANG Jing. Research on affect factors of spiking neuron sequence learning method[J]. Computer Engineering, 2015, 41(11): 194-201. (in Chinese) 徐彦, 杨静. 脉冲神经元序列学习方法的影响因素研究[J]. 计算机工程, 2015, 41(11): 194-201. |
[23] |
GILSON M, MASQUELIER T, HUGUES E. STDP allows fast rate-modulated coding with poisson-like spike trains[J]. PLoS Computational Biology, 2011, 7(10): 100-111. |
[24] |
JUG F.On competition and learning in cortical structures[D].Zurich, Switzerland: ETH Zurich, 2012.
|
[25] |
HUSSAIN S, LIU S C, BASU A.Improved margin multi-class classification using dendritic neurons with morphological learning[C]//Proceedings of 2014 IEEE International Symposium on Circuits and Systems.Washington D.C., USA: IEEE Press, 2014: 2640-2643.
|
[26] |
O'CONNOR P, NEIL D, LIU S C, et al. Real-time classification and sensor fusion with a spiking deep belief network[J]. Frontiers in Neuroscience, 2013, 7: 178-188. |
[27] |
ZHAO B, DING R, CHEN S, et al. Feedforward categorization on AER motion events using cortex-like features in a spiking neural network[J]. IEEE Transactions on Neural Networks and Learning Systems, 2014, 26(9): 1963-1978. |
[28] |
DIEHL P U, COOK M. Unsupervised learning of digit recognition using spike-timing-dependent plasticity[J]. Frontiers in Computational Neuroscience, 2015, 9: 23-35. |