Rewiew: Unsupervised Learning of Digit Recognition Using Spike-Timing-Dependent Plasticity(IEEE)

版权声明:感谢这个分享知识的社会,喜欢我写的欢迎转载哦! https://blog.csdn.net/xiaoqu001/article/details/78798543

阅读时间:2017年12月
更新时间:2018年6月,合并了在《Frontiers in computational neuroscience》上发表的同名文章

文章信息

  • 题目:基于STDP非监督学习的数字识别
    刊物:IEEE Transactions on Neural Networks and Learning Systems;Frontiers in Computational Neuroscience
    年份:2015
    作者:Peter U. Diehl and Matthew Cook
    机构: the Institute of Neuroinformatics, ETH Zurich and University Zurich

文章内容

背景

  1. the recent development of neuromorphic hardware and rely on mechanisms commonly implemented on neuromorphic hardware;
  2. 因为是仿生物神经网络的,SNN在低功耗智能应用上具有广阔的前景(unmatched pattern recognition performance given a power consumption of 10-20 Watts),尤其是当应用的学习阶段功耗占主要部分时,以及应用需要不断学习已适应或提高性能时。
  3. the task of designing SNN-based pattern recognition system is still challenging; large scale function systems.
  4. 理解并运用在生物神经网络中发现的神经元、突触等生物结构,以及认知运作的机理

简介

  • neuromorphic hardware可以实现低功耗神经网络,比如发送一个Spike只需要pJ~nJ,一个突触的功耗是几个pW(接近生物的功耗)。
  • SNN在算法上还不足以应对机器学习应用。
  • SNN的两种实现路径:spike-based learning,学习方法主要是STDP,和rate-based learning,学习方法主要是BP。
  • 本文设计了一种基于能够在neuromorphic chips 上部署的生物神经系统的结构和机制(LIF神经元,电导突触,指数型动态特性,横向抑制,可调节发射阈值)的STDP无监督学习SNN神经网络算法,6400个神经元实现对MNIST数据集95%的分类精度。

主要工作及特点:

设计了一种基于STDP的SNN无监督学习算法,特点:unsupervised, neuromorphic hardware compatibility, scalability, state-of-art accuracy, and no domain specific knowledge
- 强调所设计的SNN是有可实现的硬件基础的,或者说是 relies on mechanisms commonly used by neruromorphic hardware,例如LIF神经元,电导突触,指数型动态特性,横向抑制(lateral inhibition),可调节发射阈值(adaptive threshold)。
- 非监督学习,学习时不需要标签,训练结束后对神经元归类即可,不需要SVM或者线性层。
- 良好的规模伸缩性,scalability,网络的准确度是可以随规模增大提升的(但是有一定上限),100/400/1600/6400个激活型神经元对应的预测精度分别为82.9%/87.0%/91.9%/95.0%。
- - 不需要对输入数据做预处理(除了从像素点到尖峰序列的转化)
- 所提出的学习机制与k-means和competitive learning algorithm有相似之处,每个神经元会学习到输入的一小部分模式(pattern)
- 在非监督和没有领域知识的情况下取得了很好的准确度95%,具有发掘通用智能的潜力。

实验结果

6400个神经元可以实现95%的手写字符识别率。

设计细节

  1. 神经元和突触模型
    神经元模型:integrated -and-fire model
    τ d V d t = ( E r e s t V ) + g i n h ( E i n h V ) + g e x c ( E e x c V )

    V 是薄膜电压, v r e s t 是神经元的resting potential(应该是一种静息电压) τ 是激活/抑制型神经元薄膜的时间常数, g e g i 分别是激活型和抑制型突触的电导, E e x c E i n h 分别是激活型和抑制型突触的等效电势。当薄膜电压超过了阈值 v t h r e s 神经元就向外发射尖峰脉冲信号,然后薄膜电压会复位到 v r e s e t
    突触模型:通过电导的改变来模拟,如果有前神经元的尖峰信号到达突触,突触的电导就瞬间增强至权值,如果没有就呈指数方式衰减,如果前神经元是激活型的,突触电导的更新公式如下。
    τ g e d g e d t = g e

    如果前神经元是抑制型的,就将相应的常数换成抑制型的。
    τ g i d g i d t = g i

    模型中运用的全部参数都是来自于生物神经元,除了激活型神经元薄膜的时间常数从10-20ms增加到100ms,这样可以提高精度。具体的原因是作者对输入的编码是一种像素强度-尖峰频率的poisson分布,而且频率控制在生物神经元的发射频率范围内(~60Hz),如果时间常数太短则接收的的信息很小,而且容易受到噪声的影响。
  2. 网络结构
    输入层和激活层前向全连接,激活层和抑制层一对一前向连接,抑制层与激活层反向全连接(recurrent)(除了与已经前向连接的激活单元)
    这里写图片描述
  3. 学习机制
    突触除了存储权值还记录一个Spike Trace值 x t r a ,一个presynaptic spike到了之后 x t r a 就加1,同时 x t r a 还遵循一个指数衰减规律。
    τ x p r e d x p r e d t = x p r e

    τ x p r e 是衰减的时间常数。另外, x p r e 在每次前神经元信号到达后加1。
    当postsynaptic spike产生后,权值启动更新计算,更新的数值依赖于两个部分,一个部分是当前权值与最大权值的差,另外一部分是 x t r a x t a r (猜测是后期确定的一个参变量)的差,具体计算公式如下:
    δ w = η ( x p r e x t a r ) ( w m a x w ) μ
  4. 学习平衡(homoeostasis)
    输入信号的不均匀性以及lateral inhibition的加强会导致少数神经元一直占据着某个pattern,从而抑制了其他神经元,降低了学习效率。为了充分发挥每个神经元的学习能力(学习到不同的pattern),在训练过程中需要保持神经元发射频率的平衡(homoeostasis)。Homoeostasis helps to give each neuron a fair chance to compete。具体的方法是动态阈值调整,调高发射频率高的神经元的阈值(由于薄膜电压是通过电导型突触连接的,薄膜电压达到激活型神经元的等效电压后就将一直不可能激活),从而让它的发射频率不至于过高。动态阈值调整的计算方法如下:
    τ θ d θ d t = θ

    同样, τ θ 是衰减的时间常数。
  5. 输入编码
    从像素值到Poisson编码,Spike的频率正比于像素的灰度值,一个输入也是一个像素点的spike序列的时间是350ms,频率范围是0到63.75。
    另外,有一个细节处理,就是如果某个输入没有使得激活型神经元产生足够的spike信号(少于5个,注意这个在作者设计中网络规模增大标准也还是5个),那么增加发射信号的最大频率32Hz至95.75。
  6. 150ms的恢复时间,除了权值和阈值都decay到resting value。
  7. 训练和预测
    数据集是MNIST手写字符集,含有6万训练集和1万测试集。在本文的训练中,整个训练集进行了6次迭代,也就是36万张图片,训练结束后学习虑被置为零,动态阈值被锁定。最后还用一轮训练集对训练好的模型进行标签分类,方法是把每一类手写字符图片输入网络中,记录每一个神经元激活的次数,取每个神经元激活次数最多对应的输入分类作为该神经元的标签。
    测试时输入一张图片,然后观测每一个神经元的发射频率,取发射频率最高的神经元的标签作为该张图片的预测分类,最后对所有的预测(10轮测试集)取平均值。

讨论

  1. 与相关工作的对比(comparison)
    分类准确率高;神经元和突触的数量较多;使用的模型和学习机制更利于硬件实现也更具有生物性,包括用指数型电导突触代替电流突触、用指数型STDP时间窗口代替矩形时间窗口、以及抑制型神经元是通过指数型电导发挥作用而不是一段固定的抑制时间(作者批判这种做法不实际且对硬件不友好)。
  2. 关于抑制型神经元(inhibition)
    作者提出的结构中抑制型神经元与激活型神经元是一对一前向连接,然后反向全连接(除了已经建立的前向连接),除了这种连接方式还可以反向非全连接,只连接一部分,但是这种方式在神经元数量少时可能不利于homoeostasis。
  3. 基于尖峰信号的学习的优势(spike-based learning)
    基于尖峰信号的学习相比于基于频率的学习更高效,尤其对于训练耗费大的情况;基于尖峰信号的学习动态调整能力比较强。
  4. 竞争学习(competitive learning)
    作者分析了所提出结构的学习机理,认为其中蕴涵竞争学习的原理,类似于K-means方法,也即当一个神经元的权值pattern与输入很接近时它就会被触发,权值也会得到修正从而更加接近这个pattern,而其他神经元会被抑制不能根据当前pattern修正。这样就会使得不同的神经元可以学习各不相同的pattern。

其他

这篇文章还有一篇姊妹篇,发表在《Frontier in Computational Neuroscience》上,两篇文章的中心工作是基本相同的,不同的是问题的背景阐述和应对挑战的侧重点不同。发表在Neuroscience上这篇强调用生物相近的机制来建立学习方法(学习机制既具有生物属性,也能被有效组合形成可用的功能系统),以对生物神经系统的工作机理进行深入的理解。模型评估得到的结论是该设计识别功能对神经元的数量不敏感,而且对不同的学习机制的组合具有很好的鲁棒性,展现了建立异构神经网络的能力。
在这篇姊妹篇中作者对比了ANN和SNN的区别,有以下三点:
1. ANN用多位(8bit-64bit)二进制数字传递信息,SNN中利用尖峰信号传递
2. ANN中的神经元是完美的积分器 (perfect integrator),SNN中的是带会泄漏的积分器(leaky integrator)。
3. ANN用反向传播学习(back propagation),SNN用局部的STDP学习,不需要neuron-specific修正信号。关于这一点作者补充说,基于STDP的学习机制可以用全局的奖励信号(reward signal)调制,因此可以用于强化学习(reinforcement learning)。
4. ANN要求计算精确

猜你喜欢

转载自blog.csdn.net/xiaoqu001/article/details/78798543