之前因为一些emmmm俗事,很久没看论文了,现在因为要做项目,又久违看起了论文,这次是浙大普适与智能实验室AAAI 2020的论文《基于脉冲神经网络的事件表示的物体分类方法》
事件相机是一种神经拟态视觉传感器,通过模拟人类的视网膜机制来记录场景。与传统相机不同,事件相机没有 “帧” 的概念。当它捕捉到视野中任意位置发生了一定程度的光线变化时,就会产生一些像素级的输出(即事件)。一个事件中包括三个信息:事件在2D空间的像素坐标,事件的时间戳,以及事件的极性(1和-1,表示是由光线变亮或变暗触发的)。由于事件相机关注的是场景中的光线变化,因此它只会记录场景中的动态信息,忽略不变的静态冗余信息,从而能显著减少内存使用和能源消耗。
这种基于事件的数据形式与脉冲神经网络(Spiking Neural Network,SNN)不谋而合。脉冲神经网络通过脉冲传递信息,而脉冲也具有事件的属性。相比传统人工神经网络,脉冲神经网络更具有生物解释性,在处理时空数据的能力上也有更大的潜力。
然而,将这种新的事件表示与SNN相结合来进行物体分类,还存在着若干挑战。首先,与传统相机的视频流数据形式相比,事件相机产生的事件流是不稳定的。由于事件相机对视觉感受域内的动态信息非常敏感,在场景记录过程中,除了与目标的相关的事件被记录下来,相机抖动和环境光的变化等因素也会产生大量的噪声事件,影响SNN网络中神经元响应的可靠性和网络学习性能。其次,事件相机输出的事件流记录了一段时间内的信息,我们希望SNN的响应能够足够快,以便在提供的测试信息还不完整的情况下,仍达到具有竞争力的准确性水平。
最近,我们发表在AAAI2020的论文《Effective AER Object Classification Using Segmented Probability-Maximization Learning in Spiking Neural Networks》就针对事件表示的物体提出了一个分类模型,在这个模型中,我们提出了一个新的脉冲神经网络学习算法——分段概率最大化算法(Segmented Probability-MAximization,SPA)。SPA基于脉冲神经元之间的相对响应定义了一个响应概率,利用梯度更新来迭代增加响应正确的概率,从而提高神经元响应的可靠性。同时我们根据神经元的电压将事件流的处理过程动态分段,以便能充分利用一段时长内的大量事件,增加信息的利用率,提高网络的学习的性能。
分段概率最大化算法
SPA算法是一个电压驱动的脉冲神经网络监督学习算法。首先,该算法定义了一个脉冲神经元响应与其电压的关系,电压越高,其响应就越积极。在监督学习算法中,每个神经元会对应一个物体类别,并对属于其代表类的样本敏感。因此,SPA算法的训练目标是使得样本对应类的脉冲神经元响应最积极。基于此目的,我们定义了一个响应概率,即样本对应类的脉冲神经元响应占总神经元响应比例。这个比例越高,说明样本对应类的脉冲神经元的相对响应越积极,样本被分到正确类的概率就越高,结果越可靠。为了优化这个概率,SPA算法使用交叉熵定义损失函数,并使用梯度更新迭代优化网络的权重。
事件表示这种新的数据表达形式是通过一时间段内的事件流来描绘物体的,那如何充分利用期间的信息呢?在这里,我们提出了分段峰值检测(Peak Detection)机制:从tS=0开始,首先划出一较长的固定时间段tR, 然后在此时间段中检测各神经元的电压峰值,将此峰值带入上述权重更新过程中。更新后,将起始时间tS更新为各神经元峰值中的最大值所对应的时间点,再划出时间段tR,重复上述寻找峰值和权重更新过程。神经元的电压峰值是积累的结果,是由一串激发的输入脉冲触发的,表明神经元在电压峰值时已经接收了大量的信息。因此,通过分段峰值检测算法可以将整个事件流时间窗内的峰值信息有效利用起来进行网络训练。
实验结果与分析
我们在若干公开发布的事件表示的物体数据集上评估模型的效果。首先,我们将本文提出的分类模型的结果与其它的事件表示的物体分类框架(特别是基于脉冲的物体分类框架)的结果比较。由表1可以看到,本文提出的分类模型在四个公开数据集都表现较好。
接下来,我们通过更细致的实验来进一步验证模型的效果。首先,我们研究了事件流时长对算法结果的影响。事件流的长度代表了信息量,事件流越长即提供的信息越丰富。我们在MNIST-DVS数据集四种不同事件流长度上进行实验,并选择了表1中在该数据集上表现较好的Zhao的模型与我们的方法进行比较。如表2所示,我们看到:1)事件流时长逐渐增加,两种方法的准确性都会提高,这也印证了较长的事件流提供了更多的信息;2)在MNIST-DVS的各个时长上,本模型的效果都优于Zhao的方法,甚至在时间长度为100ms的事件流上,本模型就超过了Zhao的方法在全长事件流上实现的精度。这一结果表明在相同甚至更少的信息下,我们的模型可以达到更好的分类效果。
接着我们验证模型不完整信息推理的能力,即模型在测试过程中,当描述对象的信息不完整时,是否仍然能够保持一定的识别精度。我们同样在MNIST-DVS数据集上进行验证,使用500ms的事件流进行训练,并在测试时观察前300ms三种不同分类算法的性能(本文的SPA学习算法,Zhao的方法中使用的Tempotron学习算法,和非时序分类器SVM)。如图2所示,随着事件流的流入,三种算法模型的分类精度都不断提高。SPA模型是所有方法中性能最好的,特别是在输入信息极其不完整的前100ms时。这是因为SPA在训练模型时,每个训练样本都会由于峰值检测机制基于片段中的峰值被多次训练,继而增加了训练样本的多样性。因此,我们的模型具有较好的泛化能力,即使在信息不完整的情况下,也可以在早期推断出结果。
结论和讨论
综上,我们提出了一种有效的事件表示的物体分类模型,该模型提出了一种新的脉冲神经网络学习算法——SPA算法。SPA学习算法通过迭代增加神经元响应正确的概率这一方式提高神经元响应的可靠性。同时,通过SPA算法中的峰值检测机制提高事件流时长内信息的学习利用率。实验结果验证了本模型的性能,以及模型所具有信息利用效率高、泛化能力强等优点。