Direct Training for Spiking Neural Networks: Faster, Larger, Better
摘要
我们提出一种神经元正则化技术去调整神经元分立,而且发展了一种直接的训练算法对于深层SNN.
通过缩小速率编码窗口和转换LIF模型到精确的迭代版本,我们提出了基于pytorch版本的手段去训练深度SNN,提高了数十倍的速度。
准确的LIF迭代模型
原来的LIF模型是这样的变化模式
其中uuu是膜电压,ttt代表时间,III代表外部输入,uresetu_{reset}ureset代表重置电压。
更换成迭代模式变成如下图
其中,ot,n+1o^{t,n+1}ot,n+1是t+1t+1t+1步的输入,ot+1,n+1o^{t+1,n+1}ot+1,n+1是输出
最终,输出的是ut+1,n+1u^{t+1,n+1}ut+1,n+1,也就是膜电压。和ot+1,n+1o^{t+1,n+1}ot+1,n+1也就是是否有脉冲。
正则化
随着网络层数的加深,目的是为了避免脉冲消退或者爆炸。
整体训练部署
我们定义一个损失函数L表示在平均投票结果和标签向量Y之间的均方误差。在给定的时间窗口T中,
这里ot,No^{t,N}ot,N代表最后一层在时间步t的时候的投票结果。M代表常量投票矩阵。
从这个精确的迭代LIF模型中,我们可以看到这个脉冲信号不仅仅通过层与层之间时域的传播,而且通过时域影响神经元的状态。因此,当计算梯度需要考虑两个域。
实验
从两个方面:
1.训练加速,
2.应用准确性
网络结构
表1和表2提供加速分析和准确度评估。
pytorch能够提供数十倍的训练加速,在所有3个数据集上。这个性能可能是由于在pytorch上卷积操作的优化。另一方面,当前这些优化没有能够很好的支持大多数存在的SNN平台。.
为此,我们比较了不同网络规模下的精度,如图4所示。随着尺寸的增大,snn的精度有明显提高的趋势,这与ann是一致的。
模拟长度
SNN 需要足够模拟步数才能够模拟神经元动态变化和编码信息。给定模拟步数T,这意味着我们需要重复推理过程T次来计算脉冲发放速率。所以网络功耗可以表示为O(T)O(T)O(T),对于深层的SNN,前期的工作需要100甚至1000个step,也就是步长来达到比较好的准确度。 (Sengupta et al. 2018),这就带来了巨大的功耗,与原先的目的背道而驰。幸运的是,通过本文提出的编码框架,模拟步长可以大幅缩短,而准确率没有降低。
下图是我们不同模拟步数的一个准确率表示:
只需要很少的步数(4-8)步,就能够达到比较理想的效果。尤其值得注意的是,甚至在只有1步的时候,它依然可以实现一个不太坏的性能,但是反应速度和功耗却大大降低了。它保证了在响应时间和能量消耗方面有极端限制的应用场景。譬如说,火星车,太阳能电池支持的卫星等等。
结论
在这篇文章中,我们展现了一个直接训练SNN的算法。我们提出了神经元正则化方法。还有,我们优化了速率编码,从编码和解码两个层面,而且转换原始的连续的LIF模型为一个精确迭代的模型。最后,通过数十倍训练加速和更大的网络规模,我们实验了最好的准确率再神经态的数据集和相当精准的准确率,在ANN。就我们所知,这是第一时间报告如此高性能的直接训练SNN模型的方法。在主流机器学习框架上的实现可以促进SNN的发展
Direct Training for Spiking Neural Networks: Faster, Larger, Better相关推荐
- 论文略读1《Direct training for spiking neural networks:faster,larger,better》
发布时间2019-07-17,AAAI 文章链接Direct Training for Spiking Neural Networks: Faster, Larger, Better | Procee ...
- Spatio-Temporal Backpropagation for Training High-performance Spiking Neural Networks笔记
<Spatio-Temporal Backpropagation for Training High-performance Spiking Neural Networks>笔记 ABST ...
- 【阅读】A Comprehensive Survey on Distributed Training of Graph Neural Networks——翻译
转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] (本文中,涉及到公式部分的翻译不准确,请看对应原文.) 另一篇:[阅读]Distributed Graph Neural Networ ...
- Paper:Xavier参数初始化之《Understanding the difficulty of training deep feedforward neural networks》的翻译与解读
Paper:Xavier参数初始化之<Understanding the difficulty of training deep feedforward neural networks>的 ...
- Mapping Spiking Neural Networks的论文汇总以及思考
首先感谢CSDN平台,发现不是我一个人在SNN Mapping方面纠结着.去年看了Mapping方面的内容后感觉想创新还是有点难度的,毕竟优化就是生物进化算法类似的套路,可是你会发现自己实现的结果就是 ...
- Spiking neural networks 2017 进展
The Brain as an Efficient and Robust Adaptive Learner Training Spiking Neural Networks for Cognit ...
- 论文精翻《Progressive Tandem Learning for Pattern Recognition With Deep Spiking Neural Networks》
目录 0 摘要/Abstract 1 简介/Introduction 2 相关工作/Related Work 3 重新思考ANN-to-SNN的转换/Rethinking ANN-to-SNN Con ...
- 二值网络训练--Training Competitive Binary Neural Networks from Scratch
Training Competitive Binary Neural Networks from Scratch https://github.com/hpi-xnor/BMXNet-v2 MXNet ...
- Paper之DL之BP:《Understanding the difficulty of training deep feedforward neural networks》
Paper之DL之BP:<Understanding the difficulty of training deep feedforward neural networks> 目录 原文解 ...
最新文章
- 搭建ngrok服务器之扩展
- 在redhat9上安装firefox
- 【学术技巧】让你的 GitHub 秒变高大上!
- spring配置详解-复杂类型注入
- CodeForces - 1288C Two Arrays(组合数学)
- CRM呼叫中心inbox的调试步骤
- html隐藏块元素过度动画,CSS3实现DIV图层隐藏到显示的过渡效果
- eureka server配置_springcloud项目搭建第三节:eureka集群
- 如何查看windows xp系统的位数?
- 如何删除Mac OS X上隐藏的文件?
- [Liferay6.2]Liferay Dynamic Query API示例
- [转载] C#面向对象设计模式纵横谈——11. Facede外观模式
- sparksql优化_Spark SQL | 目前Spark社区最活跃的组件之一
- 建行u盾弹不出来_建行网银不自动跳出网页 建行u盾不能弹出快捷登录
- xp无法访问win7计算机提示无权限,解决WinXP无法访问Win7文件问题
- Java tif转jpg代码实现
- wps右下角弹窗广告(WPS购物或叫WPS热点)彻底关闭
- 从html到pug模板,html 模板 pug
- 【转载】Java并发编程:volatile关键字解析 by 海子
- 每周分享第 36 期