脉冲神经网络(SNN)属于第三代神经网络模型,实现了更高级的生物神经模拟水平。除了神经元和突触状态之外,SNN 还将时间概念纳入了其操作之中。本文将简要介绍这种神秘的神经网络形式。
所有对目前机器学习有所了解的人都听说过这样一个事实:目前的人工神经网络是第二代神经网络。它们通常是全连接的,接收连续的值,输出连续的值。尽管当代神经网络已经让我们在很多领域中实现了突破,但它们在生物学上是不精确的,其实并不能模仿生物大脑神经元的运作机制。
第三代神经网络,脉冲神经网络(Spiking Neural Network,SNN),旨在弥合神经科学和机器学习之间的差距,使用最拟合生物神经元机制的模型来进行计算。脉冲神经网络与目前流行的神经网络和机器学习方法有着根本上的不同。SNN 使用脉冲——这是一种发生在时间点上的离散事件——而非常见的连续值。每个峰值由代表生物过程的微分方程表示出来,其中最重要的是神经元的膜电位。本质上,一旦神经元达到了某一电位,脉冲就会出现,随后达到电位的神经元会被重置。对此,最常见的模型是 Integrate-And-Fire(LIF)模型。此外,SNN 通常是稀疏连接的,并会利用特殊的网络拓扑。
LIF 模型中膜电位的微分方程
脉冲期间的膜电位形态
三神经元网络的脉冲训练
脉冲神经网络图示
乍一看,脉冲神经网络的方法像是一种倒退。我们从连续输出移动至二进制输出,这些脉冲训练的可解释性不强。但是,脉冲训练增强了我们处理时空数据(或者说真实世界感官数据)的能力。空间指神经元仅与附近的神经元连接,这样它们可以分别处理输入块(类似于 CNN 使用滤波器)。时间指脉冲训练随着时间而发生,这样我们在二进制编码中丢失的信息可以在脉冲的时间信息中重新获取。这允许我们自然地处理时间数据,无需 RNN 添加额外的复杂度。事实证明脉冲神经元是比传统人工神经元更强大的计算单元。
既然理论上 SNN 比第二代网络更强大,那么我们很自然会想到为什么它们没有得到广泛应用。主要问题在于 SNN 的训练。尽管我们有无监督生物学习方法,如赫布学习(Hebbian learning)和 STDP,但没有适合 SNN 的有效监督训练方法能够 i 通过提供优于第二代网络的性能。由于脉冲训练不可微,我们无法在不损失准确时间信息的前提下使用梯度下降来训练 SNN。因此,为了正确地使用 SNN 解决真实世界任务,我们需要开发一种高效的监督学习方法。这是一项艰巨的任务,因为它涉及到,给定这些网络的生物现实主义,确定人类大脑如何学习。
另一个问题是在正常硬件上模拟 SNN 需要耗费大量算力,因为它需要模拟微分方程。但是,神经形态硬件,如 IBM TrueNorth,旨在使用利用神经元脉冲行为的离散和稀疏本质的专门硬件模拟神经元,进而解决该问题。
今天看来,SNN 的未来依然不甚清晰。一方面,它们是我们当前神经网络的天然继承者;但是另一方面,对大多数任务来说它们还远不是实践工具。目前在实时图像和音频处理中有一些 SNN 实际应用,但相关文献仍然很少。绝大多数 SNN 论文或者是理论的,或者在一个简单的全连接第二代网络之中展示性能。然而,很多团队正致力于开发 SNN 监督式学习规则,并且我对 SNN 的未来充满乐观。
原文链接:https://towardsdatascience.com/spiking-neural-networks-the-next-generation-of-machine-learning-84e167f4eb2b