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(t-1)+L+X(t)\)
\(如果V(t)\geq \theta,脉冲和复位V(t)=0\)
\(如果V(t)<V_{min},复位后V(t)=V_{min}\)
\(L\)是常数,为泄漏参数;\(X(t)\)是连接的神经元的所有突触在时间\(t\)的总输入。当神经元电压\(V(t)\)超过阈值\(\theta\)的时候,神经元会激发一个脉冲,并且其膜电位\(V(t)\)置0。膜电位不能低于静止状态\(V_{min}\)。
第\(i\)层的神经元\((i,j)\)可以定义为:
\(X_{i,j}(t)=\displaystyle\sum_{p,q=-3}^3A_{p+i,q+j}(t)K_{pq}\)
其中\(A_{p+i,q+j}\)是来自前一层的输入脉冲(0或者1),\(K_{pq}\)是大小为7$\times$7的卷积核权重,由同一映射中的神经元共享。
ANN2SNN不仅局限于使用integrate-and-fire neuronmodel模型,还可以使用其他模型进行训练。
脉冲生成层的定义:\(I_{ijk}\)是输入到脉冲生成层的图像匹配。在时间\(t\)内,如果满足\(rand()<cI_{ijk}\),第\(k\)层图像匹配的神经元\((i,j)\)发射一个脉冲。其中,\(rand()\)是\((0.0,1.0)\)之间的随机数生成器,\(c\)是一个常数,用来缩放生成脉冲的频率。
实验结果:
Neovision2 Tower Dataset:
CIFAR-10 Dataset:
硬件:
\(Total\ energy=(5\times 10^5+2\times 10^7)]\alpha\\\cong2\times 10^7\alpha\ Joules/chip\)
\(P=2\times 10^7\alpha Joules/chip\times 30frame/s\times 5chips/ram=3\times 10^9\alpha Joules/s=3\times 10^9\alpha Watts\)




SNN_文献阅读_Spiking Deep Convolutional Neural Networks for Energy-Efficient Object Recognition的更多相关文章
- ImageNet Classification with Deep Convolutional Neural Networks(译文)转载
ImageNet Classification with Deep Convolutional Neural Networks Alex Krizhevsky, Ilya Sutskever, Geo ...
- AlexNet论文翻译-ImageNet Classification with Deep Convolutional Neural Networks
ImageNet Classification with Deep Convolutional Neural Networks 深度卷积神经网络的ImageNet分类 Alex Krizhevsky ...
- Understanding the Effective Receptive Field in Deep Convolutional Neural Networks
Understanding the Effective Receptive Field in Deep Convolutional Neural Networks 理解深度卷积神经网络中的有效感受野 ...
- 【文献阅读】Augmenting Supervised Neural Networks with Unsupervised Objectives-ICML-2016
一.Abstract 从近期对unsupervised learning 的研究得到启发,在large-scale setting 上,本文把unsupervised learning 与superv ...
- Deep learning_CNN_Review:A Survey of the Recent Architectures of Deep Convolutional Neural Networks——2019
CNN综述文章 的翻译 [2019 CVPR] A Survey of the Recent Architectures of Deep Convolutional Neural Networks 翻 ...
- 《ImageNet Classification with Deep Convolutional Neural Networks》 剖析
<ImageNet Classification with Deep Convolutional Neural Networks> 剖析 CNN 领域的经典之作, 作者训练了一个面向数量为 ...
- Image Scaling using Deep Convolutional Neural Networks
Image Scaling using Deep Convolutional Neural Networks This past summer I interned at Flipboard in P ...
- 中文版 ImageNet Classification with Deep Convolutional Neural Networks
ImageNet Classification with Deep Convolutional Neural Networks 摘要 我们训练了一个大型深度卷积神经网络来将ImageNet LSVRC ...
- 深度卷积神经网络用于图像缩放Image Scaling using Deep Convolutional Neural Networks
This past summer I interned at Flipboard in Palo Alto, California. I worked on machine learning base ...
- [论文阅读] ImageNet Classification with Deep Convolutional Neural Networks(传说中的AlexNet)
这篇文章使用的AlexNet网络,在2012年的ImageNet(ILSVRC-2012)竞赛中获得第一名,top-5的测试误差为15.3%,相比于第二名26.2%的误差降低了不少. 本文的创新点: ...
随机推荐
- CSS:粘性定位 使正文标题置顶
案例效果 关键代码 代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- Linux 标准目录结构 FHS ——原文链接https://www.cnblogs.com/woider/p/6618295.html
因为利用 Linux 来开发产品或 distribution 的团队实在太多了,如果每个人都用自己的想法来配置文件放置的目录,那么将可能造成很多管理上的困扰.所以,后来就有了 Filesystem H ...
- 《深入理解Java虚拟机》读书笔记:判断对象是否存活
本节内容的概要如下; 对象已死吗? 一.判断对象是否存活的算法 1.引用计数器算法 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1:当引用失效时,计数器值就减1:任何时刻计数器为0 ...
- msvc++工程之vs版本升级及工程目录规范
为什么要升级msvc++工程版本 对msvc++工程进行vs版本升级,一方面是可以使用较新的C++标准及对64位更好的支持. 首先你需要对msvc++ project文件有一定的了解,主要是vcxpr ...
- [python]使用diagrams绘制架构图
简介 diagrams是python的一个第三方库,用于实现使用代码绘制架构图. 安装 依赖于 Graphviz,安装diagrams之前需要先安装 Graphviz(下载压缩包后,将bin目录添加到 ...
- Python实现输入三个整数x,y,z,请把这三个数由小到大输出;
num1=input('请输入第一个数,x:') num2=input('请输入第二个数,y:') num3=input('请输入第三个数,z:') if num1>num2: # if 语句判 ...
- VMware三种连接模式的区别
安装了vm软件后,该软件会虚拟出两张虚拟网卡vmnet1和vmnet8 网卡在控制面板->网络和internet->更改适配器设置 三种网络连接模式: 桥接模式:使用主机的无线网卡或者有线 ...
- 用了好几年的IDEA主题及配置,拿去吧不谢。
前言 最近这几年一直用一套IDEA的主题及配置,分享给各位,如果符合你的口味,可以下载了玩玩. 我个人是非常喜欢的,不管是观感还是敲代码都很爽的. 附上一张代码的主题色,大概就是这样子,我个人喜欢清爽 ...
- 【路由器】Breed 介绍、刷入和使用
目录 介绍 文件说明 刷入 Breed 通过 Breed 刷机 其他功能 参考资料 介绍 Breed 是国内个人 hackpascal 开发的闭源 Bootloader,也被称为"不死鸟&q ...
- 拓展kmp的应用
Smiling & Weeping ---- 我与月亮,进行了一次深夜谈话 它与我谈论太阳,而我与它谈论你. 题目链接:P3435 [POI2006] OKR-Periods of Words ...