![61b92fbb089c5f426630da228a7a9207.png](https://i-blog.csdnimg.cn/blog_migrate/f632e1942fc8a10e52cf30f58074c52f.jpeg)
脉冲神经网络简明教程 第一章:神经元的生物基础
序:脉冲神经网络会是超越深度学习的架构吗?
我们现在的深度学习,都是基于一个最重要的学习算法:反向传播,也就是求误差函数关于参数偏导,以此来更新权重。这个方法在近几年显示出了它的威力。不管是打败人类围棋大师的 Alpha Go,还是超越人类图像识别水平的 ImageNet 冠军,都是用反向传播来学习的。但是反向传播有个最大的弱点:它没有生物基础,我们在人脑里找不到任何反向传播的痕迹。神经网络是根据人脑的结构启发而发明的算法,但是并不是完全地模拟人脑。
我们现在的深度学习,其实是一种统计方法,它只会寻找数据之间相关性。当然,反向传播虽然没有生物基础,但不见得就是错误的方向,因为现在可以看到,基于反向传播的算法,在很多方面已经超过了人脑。只不过,这可能不是通向更通用的人工智能的方向。
那我们就没有模拟人脑神经元的算法吗?其实是有的,叫做脉冲神经网络(spiking neural network,简称 SNN),被称为反向传播和深度学习之后的第三代神经网络。其实 SNN 的概念很早就有了,甚至早于感知机,在二十世纪五十年代就被提出。但是为什么大家几乎没有听说过呢?主要是因为这个东西太冷门了,几乎只有纯学术研究(主要是神经计算学和生物计算机科学),目前在应用上根本无法跟深度学习抗衡。其中最大的原因是因为,我们还没有找到一个完美的训练这种神经网络的方法。
虽然如此,我个人认为,SNN 会是未来的一个非常重要的算法,因为它的生物基础决定了它的潜力:达到人类大脑的水平。
这个系列文章的主要内容来自于 Wulfram Gerstner 等人写的《Neuronal Dynamics》,作者将这本书无私地放到了网上,欢迎大家阅读原文(https://neuronaldynamics.epfl.ch/book.html)。
![fba0faae5cf331dc0a9aa37b06b6ec31.png](https://i-blog.csdnimg.cn/blog_migrate/fffed1186721d2aa37c3e15a37352729.jpeg)
本系列中每一章节都会分成两部分,分别给不同水平和需求的人阅读。第一部分是一个概况,将文章的主要内容用通俗的语言描述清楚,适合想了解这个领域的人;第二部分是将内容用数学公式严谨地表达,需要一定的数学基础。
在中文网络上,关于 SNN 的文章非常少,并且没有一个从零开始的系统教程。我读了《Neuronal Dynamics》之后,很想分享一下这方面的知识。但是本人水平有限,也并不是学这方面的专业的。如果有错误请谅解并且尽管指出。
第一部分:神经元的生物基础
人类的大脑里有极其大量的神经元,它们以一种复杂的方式互相连接。大脑的每一立方毫米,就能有超过一万个神经元和数公里的连接。
神经元可以被分成三大部分:树突(dendrite),神经细胞体(soma)和轴突(axon)。树突负责把从其他神经元送来的信息传输到神经细胞体,神经细胞体会累积这些输入,如果累积的输入达到了它的阈值,那么它就会产生一个输出信号,通过轴突传输给其他的神经元。
两个神经元之间的连接叫做突触 (synapse),发送信号的神经元叫做突触前神经元(presynaptic neuron),接收信号的叫突触后神经元(postsynaptic neuron)。脊椎动物的神经元经常会有多达上万个突触后神经元,并且最长会连接到几厘米外的大脑其他区域。
神经元内部和外部的电位差,被称为膜电位(membrane potential),当没有输入时,神经元处在静息电位(resting potential)。突触后神经元的膜电位会被输入信号改变,当电位达到突触后神经元的阈值时,会发射一个新的脉冲到下一个神经元。
脊椎动物的大脑中最常见的突触是化学突触。在化学突触中,轴突和树突之间靠的很近,但是中间有一条很小的缝隙。当动作电位到达时,一些化学物质从轴突被释放出来。当这些化学物质到达树突后,它们会被突触后神经元检测到,并且通过复杂的生物化学反应将信号转化为突触后细胞的电流反应。由输入脉冲导致突触后神经元膜电位变化被叫做突触后电位(postsynaptic potential)。
![9bdeb10e2bcad1e4dff5d18ce1160c30.png](https://i-blog.csdnimg.cn/blog_migrate/c100e214dd25ccda6c7ccc5f2967e527.jpeg)
神经元之间的信号是由电流脉冲(spike 或者 pulse)组成,也被称为动作电位(action potential)。这些脉冲的形状都几乎一样,所以脉冲的形状并不传递任何信息,重要的只是脉冲发射和到达的时间以及数量。
![3be2ee69d13f82c2f777cde221e11d81.png](https://i-blog.csdnimg.cn/blog_migrate/874136fc94ccd5f75f1dadbc1c728a1b.jpeg)
总结一下,一个神经元可以接受从多个神经元来的脉冲输入,当输入累计到一定程度,这个神经元就会发射一个新的脉冲,送到它之后的神经元去。
以上构成了一个最简单的脉冲神经元模型。可以看到,脉冲神经元和深度学习的神经元最大的区别是,脉冲神经元是关于时间的序列,每个神经元会接受多次输入,并且可以被激活多次;而深度学习每个神经元在单次计算中只会用到一次。这也是很多人认为脉冲神经元在处理时间序列上会比深度学习有优势的原因。
第二部分:脉冲神经元
我们用关于时间的函数
在神经元中,极化(polarization)是指偏离 0 电位差的状态。在没有输入时,神经元已经被负极化了约 65 mV(也就是静息电位)。此时,一个兴奋性突触的输入会减少极化,被称为去极化(depolarization),如果输入增加了极化,那么就被称为超极化(hyperpolarization)。
让我们将上述过程总结成公式:神经元
![f64ebf6cd6c46e12cd4799ba349c3360.png](https://i-blog.csdnimg.cn/blog_migrate/88e82023abc0d4a20463584b3b59e137.jpeg)
当突触后电位为正,就被称为兴奋性突触后电位(excitatory postsynaptic potential,简称 EPSP),反之被称为抑制性突触后电位(inhibitory postsynaptic potential,简称 IPSP)。
假设我们有一些突触前神经元
也就是说,突触后膜电位等于所有突触后电位函数的和加上静息电位,见图 4。不过这只是最简单的一种模型,并不完全符合真实的神经元的表现,后面的章节里我们会看到更精确的模型。
![04eb780a98d5b092f31f79cea1ac1e5d.png](https://i-blog.csdnimg.cn/blog_migrate/dcbe8f7ff2f94c950cc6af6839e6da5c.jpeg)
当神经元
![6cc05ede9f246cc1764429b6dd249c0e.png](https://i-blog.csdnimg.cn/blog_migrate/a87953d63d7926a318e5bbeb6d40a12b.jpeg)
下一章:
石在:脉冲神经网络简明教程 第二章:基于物理的神经元模型zhuanlan.zhihu.com![48b7077a1459748522d30f01801ab0c2.png](https://i-blog.csdnimg.cn/blog_migrate/766bd89243d5f6538f9bae14ebe1f010.jpeg)