特不靠谱的论文总结机+十级废话bb机

日常焦虑ing

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

SNN_文献阅读_Spiking Deep Convolutional Neural Networks for Energy-Efficient Object Recognition

两种方法将CNN转化成为SNN:

  • 直接训练一个类似CNN架构的SNN「虽然有类似于STDP等无监督方法,但是处于起步状态」
  • 训练初始的CNN,将训练得到的权重直接应用于类似于CNN架构的SNN「将CNN转化为SNN的时候,训练的准确性可能无法保证」

准确性损失的原因:

  • CNN中的负值在SNN中无法准确表示,原因是:a.sigmoid函数tanh()的输出值介于-1.0和1.0之间;b.在每个卷积层中,每个输出特征映射的值都是输入加上偏差的加权和,权重和偏差都可能为负,导致输出值为负;c.预处理的输出值(例如颜色变换和空间标准化)可能会产生负值。「虽然抑制性神经元可以表示负值,但是需要增加很多的神经元,会增加计算成本。」
  • 不同于CNN,SNN不能表示误差。每个卷积层中的误差可能是正的也可能是负的,在SNN中不能表示。
  • 最大池化需要两层SNN。在CNN中,空间最大池化被限制在输入中一个小的图像邻域上获取最大输出值,在SNN中需要两层神经网络,第一层用来侧向抑制,第二层用来在小图像区域上进行聚集,这种方法需要更多的神经元,并且可能损失复杂性。

改进:

  • 使所有层的输出值变为正值。a.在预处理后面加一个abs()函数,使得所有的值变为正值;b.将sigmoid函数从tanh()改成HalfRect(x),定义为HalfRect(x)=max(x,0),有很多优点,比如在训练的时候收敛的快,而且在x>0的时候是线性的,将转化的误差降到了最低。
  • 消除所有卷积层和全联接层的误差。在每次训练迭代后将所有的误差值置0。
  • 不用空间最大池化,而用空间线性子采样。空间线性子采样采用一个单一形式的权重核,将所有像素添加到一个小图像邻域上。空间线性子采样函数可以很容易地转换为脉冲域。

采用上述三条改进,可以将CNN转化为定制CNN。

integrate-and-fire neuron model模型进行更新:

V(t)=V(t1)+L+X(t)

V(t)θV(t)=0

V(t)<VminV(t)=Vmin

L是常数,为泄漏参数;X(t)是连接的神经元的所有突触在时间t的总输入。当神经元电压V(t)超过阈值θ的时候,神经元会激发一个脉冲,并且其膜电位V(t)置0。膜电位不能低于静止状态Vmin

i层的神经元(i,j)可以定义为:

Xi,j(t)=p,q=33Ap+i,q+j(t)Kpq

其中Ap+i,q+j是来自前一层的输入脉冲(0或者1),Kpq是大小为7×7的卷积核权重,由同一映射中的神经元共享。

ANN2SNN不仅局限于使用integrate-and-fire neuronmodel模型,还可以使用其他模型进行训练。

脉冲生成层的定义:Iijk是输入到脉冲生成层的图像匹配。在时间t内,如果满足rand()<cIijk,第k层图像匹配的神经元(i,j)发射一个脉冲。其中,rand()(0.0,1.0)之间的随机数生成器,c是一个常数,用来缩放生成脉冲的频率。

实验结果

Neovision2 Tower Dataset:

CIFAR-10 Dataset:

硬件:

Total energy=(5×105+2×107)]α2×107α Joules/chip

P=2×107αJoules/chip×30frame/s×5chips/ram=3×109αJoules/s=3×109αWatts

image
image
image
image

posted on   橙汁不吃糖  阅读(352)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示