1 前言
Transformer是一个很厉害的模型呀~
请阅读文章《Attention Is All You Need》
2 Transformer的两大特点
2.1 第一特点——全局感受野
2.2 第二特点——共识
3 Transformer的理解
3.1 Output是怎么编码的?
请参考B站教程《自然卷小蛮 —— 手推transformer》
4 Self-Attention (自注意力)
Note:这里的
W
q
W^q
Wq、
W
k
W^k
Wk和
W
v
W^v
Wv的权值是不共享的,也就是独立的;
(CNN中,所有loc的region都是使用的相同的卷积kernel,这样的特点给CNN带来了平移不变性的优点;
于是特征的数量主要由channel的维度来确定,也就是,channel数决定了特征的丰富程度)
4.1 Comparison between Convolution and Self-attention
最初感受到Convolution和Self-attention的不同是看到《Attention Is All You Need》中的复杂度对比的表格,
这里需要解释以下为什么Convolution中的复杂度是“
O
(
k
⋅
n
⋅
d
2
)
→
d
2
O(k \cdot n \cdot d^2) \rightarrow d^2
O(k⋅n⋅d2)→d2”,原因是Convolution在计算时会同时考虑所有的特征(channel),而不是只考虑当前层的feature-map,这一点跟Self-attention是不太一样的;不过这并不是说,convolution无法实现这样的操作,其中,深度可分离卷积通过设置groups = in_channels
来实现:在当前层feature-map上进行卷积,然后多个特征层再进行交互;