脉冲神经网络(1):概述和图像分类

白话脉冲神经网络(1):概述和图像分类 - 知乎 (zhihu.com)

本文参考了上面文章

概述

SNN(Spiking Neural Network)也就是脉冲神经网络,也就是通过模拟神经元放电过程进行训练和推理的神经网络。由于近年来深度学习遇到一定的瓶颈,如推理过程需要大量运算资源、模型表现提升遇到天花板等,人们把希望寄托在脉冲神经网络这一新类型模型之上。因此,脉冲神经网络也被称为第三代神经网络。

对于一般视觉问题而言,脉冲神经网络首先会对图像进行编码,这里的编码方式包括直接编码泊松编码等方式,将输入的图像/特征图映射为一系类序列值。之后,将编码后的序列输入脉冲神经网络,通过BPTT等方式进行训练。模型的输出也是一个序列,通过特定的损失计算形式来将误差传播。

对于输出的序列,你可以使用时序分析处理,也可以解码为特征图由卷积神经网络作后续处理。总的来说,脉冲神经网络是一种脑启发神经网络,从编码、序列处理到解码无不显示人脑视觉通路的影子。

脉冲神经网络的主要模块和功能包括:

  • 编码器:将输入编码为脉冲序列(Spike Train)
  • 神经元模型:模仿神经元脉冲激活的模式,处理输入脉冲序列,输出处理后的脉冲序列
  • 解码器:将脉冲序列转化为卷积神经网络能处理的特征图

下面将逐个讲解不同的模块的细节。

编码器

SNN中的编码要求将一张图像映射到一个序列。常见的编码策略包括直接编码和泊松编码。

泊松编码

泊松过程是一种累计随机事件发生次数的最基本的独立增量过程。例如随着时间增长累计某电话交换台收到的呼唤次数,就构成一个泊松过程。若我们有生成一个脉冲序列的概率,使用泊松过程对脉冲序列建模比较合适。根据泊松过程的性质,我们也可以从一个服从泊松分布的序列估计参数。

多说一嘴,脉冲神经网络使用泊松过程编码有生物学上的原理,和视觉系统有关。不过这能不能有效,还是值得商榷的。

泊松编码首先需要对特征图进行归一化(Normalization),目的是把不同batch/channel/layer等的信息综合,防止过拟合。

在这里,我们将特征图归一化后上的每一个像素值的倒数作为泊松过程的缩放系数(也被翻译为抵达率等)λ

让我们回顾一下概率论中泊松过程的定义,在区间 [t,t+τ] 内发生事件(脉冲)的数目的概率分布为:

Pr[(N(t+τ)−N(t))=k]=e−λτ(λτ)kk!,t=0,1,...

其中 λ 是一个正数,是固定的参数,通常称为抵达率(arrival rate)或强度(intensity)。所以,如果给定在时间区间[t,t+τ]之中事件发生的数目,则随机变数N(t+τ)−N(t)呈现泊松分布,其参数为λτ

更一般地来说,一个泊松过程是在每个有界的时间区间或在某个空间(例如:一个欧几里得平面或三维的欧几里得空间)中的每一个有界的区域,赋予一个随机的事件数,使得在一个时间区间或空间区域内的事件数,和另一个互斥(不重叠)的时间区间或空间区域内的事件数,这两个随机变数是独立的。

在每一个时间区间或空间区域内的事件数是一个随机变数,遵循泊松分布。(技术上而言,更精确地来说,每一个具有有限测度的集合,都被赋予一个泊松分布的随机变数。)

泊松过程是莱维过程(Lévy process)中最有名的过程之一。时间齐次的泊松过程也是时间齐次的连续时间Markov过程的例子。一个时间齐次、一维的泊松过程是一个纯出生过程,是一个出生-死亡过程的最简单例子。

为了计算上的方便,我们假设序列服从泊松过程,每一个时刻产生一个脉冲的概率为

其中 t 是小于总脉冲长度 T 的时刻,这里脉冲只有0或1的取值。为了保证泊松过程 λ>0 的条件,我们在归一化操作后可以过一下 ReLU 层激活。值得一提的是,由于现有神经网络优化时要求可微,所以使用类似Sigmoid函数来生成脉冲。

神经元模型

神经元模型是一个很广阔的概念,一般来说是一种带有激活机制的动力学模型。描述脉冲序列如何被计算的。常见的神经元模型如HH模型等。在实现上,类似LSTM,我们需要定义每一个Cell的更新方式。这也是为什么SNN常被诟病为魔改RNN的原因。

在我之前的一篇文章介绍了清华的天机芯所使用的脉冲神经元模型的实现,详情请见

解码器

解码器的作用是将脉冲序列转化为可以被卷积神经网络理解或计算的形式。最简单粗暴的方式是将整个序列相加。虽然这种解码方式比较粗暴,但是有一定原理。

给定一个泊松过程生成的序列 {s1,...,sn} ,其到达率 λ 由以下公式估计

恰好和泊松编码对应,而且也是一个加和的形式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值