CNN结构设计转换为SNN

发布时间:2021-02-15  栏目:人工智能, 图像处理, 机器视觉, 深度学习, 脉冲神经网络  评论:0 Comments

将CNN转换为SNN有两种方法,第一种就是直接训练类似CNN结构的SNN,尽管存在一些像STDP的脉冲学习规则以一种自组织、无监督的方式训练SNN,在这方面的研究目前还处于起步阶段,并且还不清楚如何高效训练SNN来实现更高层次的功能;第二个方法就是训练原始的CNN,然后将学习到的权重应用到和训练的CNN结构类似的SNN中。主要的挑战就是在将CNN转换为SNN时分类任务有不可接受的精度损失。事实上,我们观察到转换Fig. 1所示的CNN结构时有精度损失,损失主要来源于一下几个方面:

  • – CNN层的负输出值在SNN中很难精确的表示,负值主要来源于下面的CNN计算:
    a. tanh()的输出范围为-1到1;
    b. 在每个卷积层,每个输出feature map的值都是输入和权重的乘加和再加上偏置的结果,这有可能是个负值;
    c. 预处理后的网络输入也有可能是负的;
  • – 不像在CNN中,在脉冲网络中没有什么好办法表示偏置,每个卷积层的偏置可以是正也可以是负,这在SNN中不容易表示;
  • – Max-pooling需要两层脉冲网络,在CNN中,空间上的最大池化就是在一个区域内求最大值,在SNN中,我们需要两层网络来实现它,横向抑制后紧跟着小区域的池化操作,这个方法需要更多的神经元,而且由于额外的复杂度造成了精度损失(?没明白);

 

参考:

Spiking Deep Convolutional Neural Networks for Energy-Efficient Object Recognition

留下评论

You must be logged in to post a comment.

相册集

pix pix pix pix pix pix

关于自己

杨文龙,微软Principal Engineering Manager, 曾在各家公司担任影像技术资深总监、数据科学团队资深经理、ADAS算法总监、资深深度学习工程师等职位,热爱创新发明,专注于人工智能、深度学习、图像处理、机器学习、算法、自然语言处理及软件等领域,目前发明有国际专利19篇,中国专利28篇。

联系我

个人技术笔记

welonshen@gmail.com

2015 in Shanghai