Hello
Transformer原理
优势:
1、并行计算
2、全局视野
3、灵活的堆叠能力
并行计算和全局视野是multi-head结构所赋予的优势
灵活的堆叠能力是transform的block的优势
1、并行计算
针对RNN,RNN中的计算完全是线性顺序进行,很难并行计算
2、全局视野
针对CNN,CNN中的感受野只有卷积核那么大,无法获得全局的视野
CNN只能通过增加网络深度来获得更大的视野
3、灵活的堆叠能力
其encoder和decoder模块可以“无限”堆叠,也不会出现梯度消失和梯度爆炸的问题
Transformer结构
输入
1、时序序列
需要将输入转换为一个时序序列
语句:使用word2vec这类的方法,将每一个字转换为等长向量的形式,并排列为时序序列
图片:将图像分割,将每一个小块转换为等长向量的形式,并按一定顺序排列
2、位置编码
需要将输入信息的位置进行编码,使得训练时能够关注到数据的先后顺序
位置编码细节之后介绍
3、相加
将时序序列与位置编码concat(相加),得到一个新的序列作为模型的输入
如下图所示,每个词都由一个等长序列表示,x1,x2,x3,它们共同组成输入
Self-Attention
模型参数 Wq, Wk, Wv,三个权重矩阵
Q:Query 查询,询问
K:Key键值,关键词
V:Value价值,数值
1、Q与K会进行一个相似度计算,通过softmax返回一个0与1之间的数值,代表相似度
Q与K的转置计算出一个数字之后还需要对维度求平均,公式中用k的维度开根号来做被除数
q1*k1 即 查询1与键值1的相似度
2、计算出相似度之后,将相似度与value相乘
x1Wq1 = q1
x2Wq2 = q2
x3*Wq3 = q3
x1Wk1 = k1
x2Wk2 = k2
x3*Wk3 = k3
q1k1 q1k2 q1k3
q2k1 q2k2 q2k3
q3k1 q3k2 q3*k3
以上运算可以进行批量运算,如下所示:
这就是transformer的并行计算的能力
MultiHead Attention
多头attention,即有多个Wq,Wk,Wv
重复上述Self Attention的操作,最后将多次的结果concat到一起
Transformer-Block