Spike-Driven Transformer

Eric Zhang Lv3

1.注意力机制(Attention)

1.1 自注意力机制 (Self-Attention)

为了处理序列数据,自注意力采取的策略是,吃一整个序列,再根据输入的向量(一段序列)决定输出一个向量,再进入传统的FC,换言之,是考虑了整个序列之后输出一个结果。Self-Attention也可以与FC交替做很多次:

那Self-Attention如何运作?

Self-Attention块的输入可以是一开始的输入层,也可以是中间的某个hidden layer的输出。考虑了所有的输入,输出与输入长度相等的一系列向量。例如考虑了

以上图为例,怎么产生这个输出呢?

有两种方法,其中Method 1是如今Transformer架构中用到的,也是注意力机制的主流架构,通过点积计算两向量的关联度。

应用中,把一个向量当作query(问询值),其余的所有当作key(键),进行关联度计算,得到Attention Score,再经过Softmax层进行归一化,得到最终的attention-score矩阵。(其实也不一定要softmax,只是前人试出来的)

根据Attention score, 再将每一个向量乘上矩阵得到

看起来,每一个向量都要产生一个, 那么我们完全可以用矩阵拼接的想法,将一连串的输入向量看作一个大矩阵, 像下面这样简记为:

得到Q,K,V,如何去得到attention score呢?像下面展示的一样,A(attention score的信息矩阵)=

整个的Self-Attention运作的过程中,唯一需要学的三个参数就是

在此基础上,对原始Attention架构更改,得到Multihead Self-Attention:

1.2 Self-Attention的不足之处

  • 标题: Spike-Driven Transformer
  • 作者: Eric Zhang
  • 创建于 : 2024-01-04 13:14:09
  • 更新于 : 2024-01-06 14:01:20
  • 链接: https://ericzhang1412.github.io/2024/01/04/Spike-Driven-Transformer/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论