NeurlPS 2023 | 纯加法Transformer!

点击蓝字

0a354b93ee8a2bbb2aacc86b0bbceb22.jpeg

关注我们

AI TIME欢迎每一位AI爱好者的加入!

以下文章来自中国科学院自动化研究所李国齐课题组:

0b80171164efd3533b5315d86becadce.jpeg

论文地址:https://arxiv.org/abs/2307.01694

代码地址:https://github.com/BICLab/Spike-Driven-Transformer

受益于基于二进制脉冲信号的事件驱动(Spike-based event-driven,Spike-driven)计算特性,脉冲神经网络(Spiking Neural Network,SNN)提供了一种低能耗的深度学习选项 [1]。本文提出一种Spike-driven Transformer模型,首次将spike-driven计算范式融入Transformer。整个网络中只有稀疏加法运算。具体地,所提出的Spike-driven Transformer具有四个独特性质:

  • 事件驱动(Event-driven)。网络输入为0时,不会触发计算。

  • 二进制脉冲通信(Binary spike communication)。所有与脉冲张量相关的矩阵乘法都可以转化为稀疏加法。

  • 脉冲驱动自注意力(Spike-Driven Self-Attention,SDSA)算子。脉冲形式Q,K,V矩阵之间运算为掩码(mask)和加法。

  • 线性注意力(Linear attention)。SDSA算子的计算复杂度与token和channel都为线性关系。

本文所提出的SDSA算子能耗比原始self-attention的能耗低87.2倍。所提出的Spike-driven Transformer在ImageNet-1K上取得了77.1%的SNN领域内SOTA结果。

背景

当前SNN模型的任务性能较低,难以满足实际任务场景中的精度要求。如何结合Transformer模型的高性能和SNN的低能耗,是目前SNN域内的研究热点。现有的spiking Transformer模型可以简单地被认为是异构计算模型,也就是将SNN中的脉冲神经元和Transformer模型中的一些计算单元(例如:dot-product, softmax, scale)相结合,既有乘加运算(Multiply-and-ACcumulate,MAC),也有加法运算(ACcumulate,AC)。虽然能保持较好的任务精度,但不能完全发挥出SNN的低能耗优势。

近期的一项工作,SpikFormer[2],展示了在spiking self-attention中,softmax操作是可以去掉的。然而,SpikFormer中保留了spiking self-attention中的scale操作。原因在于,脉冲形式Q,K,V矩阵之间运算会导致输出中会包含一些数值较大的整数,为避免梯度消失,SpikFormer保留了scale操作(乘法)。另一方面,SpikFormer采用Spike-Element-Wise(SEW)[3]的残差连接,也就是,在不同层的脉冲神经元输出之间建立shortcut。这导致与权重矩阵进行乘法操作的脉冲张量实际上是多bit脉冲(整数)。因此,严格来说,SpikFormer是一种整数驱动Transformer(Integer-driven Transformer),而不是脉冲驱动Transformer。

方法

本文提出了Spike-driven Transformer,如下图所示,以SpikFormer[2]中的模型为基础,做出两点关键改进:

  • 提出一种脉冲驱动自注意力(SDSA)算子。目前SNN领域中仅有Spike-driven Conv和spike-driven MLP两类算子。本文所提出的Spike-driven Self-attention算子,为SNN领域提供了一类新算子。

  • 调整shortcut。将网络中的SEW全部调整为Membrane Shortcut(MS)[4,5],也就是在不同层的脉冲神经元膜电势之间建立残差连接。

5c05057ab668c39f9e7845a3889452b7.jpeg

SDSA算子。ANN中的原始自注意力(Vanilla Self-Attention,VSA)机制的表达式为:

31f9af6e93572632f139108e9e55dbf2.png√d是scale因子。VSA的计算复杂度为O(N²D),N为token个数,D为channel个数。本文所提出的SDSA算子的表达式为:

3eacf5a5df1ab97dc3ac38712d63b6ee.png

其中07e77551151ddff0253bd78be9ee8998.png 是脉冲形式的 Q,K,V 矩阵,6bb8072d8421723579a82273a9dafcf5.png为哈达玛积。SDSA算子的计算复杂度为O(N D).如下图所示:

A(�,�,�)=��⊗��(SUMc(��⊗��)),

90e8fc61b8ed7e7a73d3111cb84d8a54.jpeg

总体来说,SDSA算子有两个特点:

1.使用哈达玛积替换了94337cd97b4997fb69d67abf72f7aa60.png之间的矩阵乘法。

2.逐列求和aa4fe9002015b124ffb64b20dcb8e597.png以及一个额外的脉冲神经元层db3ebbfafa3940127a02efd62360e297.png代替了softmax和scale操作。

SDSA算子本身几乎不消耗能量。首先,由于9615a7d6241e8db82aef3007b1aeff26.png都为二进制脉冲矩阵,它们之间的哈达玛1df925561b96da3d63d27886c6d7a09e.png积可以看作是mask操作。其次,整个公式(2)中只有0517b463a7eb756dd5c0e1517bcf9f4e.png带来的稀疏加法,根据统计,d922e8aa7f72d8bce4e692780dd6f869.png后的非零值比例约为0.02,因此这部分加法的能耗几乎可以忽略不计。

MS残差连接。目前SNN领域中一共有三种残差连接。一种是直接参考ResNet的Vanilla Shortcut [6],在不同层的膜电势和脉冲之间建立捷径;一种是SEW [3],在不同层的脉冲之间建立捷径;一种是MS [4],在不同层的膜电势之间建立捷径。MS连接之后会跟随一个脉冲神经元,这可以将膜电势之和转化为0/1,从而保证网络中所有脉冲张量与权重矩阵之间的乘法可以被转换为加法。因此,本文使用MS残差来保证spike-driven。

SNN中的算子及其能耗评估

Spike-driven的核心是,与脉冲矩阵相关的乘法运算都可以被转换为稀疏加法。当SNN运行在神经形态芯片上时,spike-driven计算范式能够发挥出低能耗优势。

Spike-driven Conv和Spike-driven MLP。脉冲驱动计算有两层含义:事件驱动和二进制脉冲通信。前者保证了输入为0时,不会触发计算;后者保证了有脉冲输入时,触发的计算为加法。当前SNN领域中,两类典型的算子是spike-driven Conv和spike-driven MLP。在进行矩阵乘法时,如果其中一个矩阵是脉冲形式,那么矩阵乘法可以通过寻址算法被转换为加法。

Spike-driven Self-Attention。SDSA中8a58926b683ce7c3ac64399621d5e30a.png之间的运算包含了三个脉冲矩阵之间的运算。那么就有两种可行的方式。第一,与spike-driven Conv和spike-driven MLP中一致,每两个脉冲矩阵之间的运算为乘法,然后被转换为加法,这也是[2]中采用的方法。第二,本文中所采用的方式,两个脉冲之间的运算为哈达玛积,因为脉冲矩阵中只有0或者1,所以这种操作相当于mask操作,可以被当前的神经形态芯片[7]所支持。

在理论评估SNN能耗时,可以简单的认为,SNN的能耗为:同等架构ANN的FLOPs ××脉冲发放率 × 单个加法操作的能耗 × 时间步。下图给出了ANN中的自注意力和SNN中的脉冲驱动自注意力部分之间的能耗对比。

a5b1174e2a9995d9a92b97b60fa7761f.jpeg

结果

Spike-driven Transformer在ImageNet上的结果如下所示。本文取得了SNN域的SOTA结果。

af149bd38fad98f2e7b1cceccfcb750d.jpeg

不同规模模型下,本文的SDSA与ANN中的VSA之间的能耗对比如下图所示(包含Q,K,V生成所需的能耗)。可以看出,由于SDSA是线性注意力,网络规模越大,SDSA的能效优势越突出。

2f652fa78f9db869cf913764d95fb9d3.jpeg

本文中关于SDSA和MS的消融实验。MS会带来性能提升,SDSA则会导致性能损失。总体来说,性能增益大于损失。

c7f6dc8f59fae0e0b32521b232d87c2b.jpeg

注意力图可视化如下。

528452fc55b2f3c904d07fa65c26f3d9.jpeg

全文到此结束,更多细节建议查看原文。本文所有代码和模型均已开源,欢迎关注我们的工作。


[1] Roy, Kaushik, Akhilesh Jaiswal, and Priyadarshini Panda. "Towards spike-based machine intelligence with neuromorphic computing."Nature (2019).

[2] Zhou, Zhaokun, Yuesheng Zhu, Chao He, Yaowei Wang, Shuicheng Yan, Yonghong Tian, and Li Yuan. "Spikformer: When spiking neural network meets transformer."ICLR (2023).

[3] Fang, Wei, Zhaofei Yu, Yanqi Chen, Tiejun Huang, Timothée Masquelier, and Yonghong Tian. "Deep residual learning in spiking neural networks."NeurIPS (2021).

[4] Hu, Yifan, Lei Deng, Yujie Wu, Man Yao, and Guoqi Li. "Advancing Spiking Neural Networks towards Deep Residual Learning."arXiv preprint arXiv:2112.08954 (2021).

[5] Yao, Man, Guangshe Zhao, Hengyu Zhang, Yifan Hu, Lei Deng, Yonghong Tian, Bo Xu, and Guoqi Li. "Attention spiking neural networks."IEEE T-PAMI (2023).

[6] Zheng, Hanle, Yujie Wu, Lei Deng, Yifan Hu, and Guoqi Li. "Going deeper with directly-trained larger spiking neural networks." AAAI (2021).

[7] Pei, Jing, Lei Deng, Sen Song, Mingguo Zhao, Youhui Zhang, Shuang Wu, Guanrui Wang, Guoqi Li et al. "Towards artificial general intelligence with hybrid Tianjic chip architecture."Nature (2019).

往期精彩文章推荐

38bf1d409f9c75cdafc2308cde08f497.jpeg

关注我们 记得星标

 关于AI TIME 

AI TIME源起于2019年,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法和场景应用的本质问题进行探索,加强思想碰撞,链接全球AI学者、行业专家和爱好者,希望以辩论的形式,探讨人工智能和人类未来之间的矛盾,探索人工智能领域的未来。

迄今为止,AI TIME已经邀请了1400多位海内外讲者,举办了逾600场活动,超600万人次观看。

7d8898481b38894f04623411fec07ba8.png

我知道你

在看

~

c86da9a0c8576903266fdb532e7f48c6.gif

点击 阅读原文 查看!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值