Transform:Attention--VIT--Swin_T

目录

reference:建议看李沐大神b站视频

1、attention

点积式的attention机制

多头注意力机制

2、transform模型里面怎么使用注意力机制

编码器的输入的注意力

解码器的注意力

解码器的另一个注意力

3、feed forward

4、embedding

5、positional encoding

6、Norm

reference:建议看李沐大神b站视频

1、attention

点积式的attention机制

假设Q是(n,dk)维度的,K是(m,dk)维度的,点积后经过scale变换后,放到softmax中得到输出query对于key的结果(n,m);出来的结果与V(m,dv)点积,得到一个(n,dv)的结果,每一行就是需要的一个输出。

scale是因为,dk比较大时,某两个值之间相对差距太大,其他值大部分都靠近0。不利于梯度计算

mask:是为了mask掉t时间后的k的值,具体操作是在t后面的数都换成很大的负数。

多头注意力机制

简单就是将q、k、v利用线形层投影到某一低维度,之后再concat通过linear保证维度不变,这是因为dot-procuct可学习的参数很少,但是投影层linear可以学习。

2、transform模型里面怎么使用注意力机制

编码器的输入的注意力

编码器的input,得到相同的K、Q、V,这就是自注意力

这个注意力机制,输出就是加权和,权重就是向量之间的相似矩阵

解码器的注意力

masked注意力机制,t时刻后的设置为0 

解码器的另一个注意力

query是解码器里上一个attention的输出,k和v来自编码器的输出。

这个注意力的输出,就是来自value的加权和,权重取决于q和k的相似度。

3、feed forward

feed forward本质上是一个MLP,三层的。

attention+feed forward  与 rnn,如何传递序列信息。

4、embedding

输入token变换成一个向量,d是512。编码器、解码器和softmax前的embedding权重是一样的。

embedding 层权重有一个scale,乘以\sqrt{d_{model}},long固定住

5、positional encoding

因为attention本身没有时序,sin、cos得到512维度的向量表达位置信息,加入embedding

6、Norm

layer_norm针对是batch做的归一化,相较于BN是针对feature做的归一化

layer_norm对每个样本做均值方差,对于梯度的李普希兹常数。

 

为什么self-attention

原文从计算效率角度出发的

正则化

res-dropout

label_smoothing

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值