算法——Transformer

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
x2
Wq2 = q2
x3*Wq3 = q3

x1Wk1 = k1
x2
Wk2 = k2
x3*Wk3 = k3

q1k1 q1k2 q1k3
q2
k1 q2k2 q2k3
q3k1 q3k2 q3*k3

以上运算可以进行批量运算,如下所示:
在这里插入图片描述
这就是transformer的并行计算的能力
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

MultiHead Attention
多头attention,即有多个Wq,Wk,Wv
重复上述Self Attention的操作,最后将多次的结果concat到一起

Transformer-Block

Bye

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值