1.Transformer:Attention Is All You Need

学习视频:Transformer论文逐段精读【论文精读】_哔哩哔哩_bilibili

(看了一个小时,后面的positional embedding没看)

Transformer可以用在图像、视频、文本。。。。。

编码器与解码器

编码器encoder:将输入转换为网络可以辨识的向量(每次可以看到完整的输入)

解码器encoder:使用了自回归,一个一个生成文字。即对于一组输入文字,比如(我爱你),可以通过(我爱),生成(你)。即过去时刻的输出,可以当作当前时刻的输入。(每次只能看到前面时刻的输入,不能看到后面的文字)

为什么要用LayerNorm而不用BatchNorm?

BN:每列就是特征,每次让每个mini_batch里面每一列的特征的均值为0,方差为1。在训练时就是算每一个minibatch的均值和方差,然后减去这个均值本身,让其均值最后为0,再除以方差本身,这样方差就为1。\lambda \beta都是可学习参数,它们两可以尽量保证均值为0,方差为1。

LN:每行就是样本,让每行(每个样本)对特征的均值为0,方差为1

在NLP,每个样本的长度会变换(语句长度不一样):

BN在样本变化比较大时,每个minibatch的均值和方差的变化也大。而实际预测时,若遇到一个非常长的、训练集没遇到过的样本,则其均值和方差会不好算。

LN就是算每个样本的均值和方差。实际预测的时候也就是在每个样本里面算均值方差,稳定性会更好。

解码器:

解码器有个Mask,因为解码器每次只能看到t时刻前面的输入,不能看到t时刻后面的文字,所以要用mask把t时刻以后的输入遮住。

Attention

Scaled Dot-Product Attention:

q=k=dk,v=dv

  • 计算时就是让每个qurey和value作内积(向量内积),若两个向量长度相等,则内积值越大,说明两个向量相似度越高。
  • 向量长度long=(q\times k)\div \sqrt{dk}
  • 权重=softmax(long),得到n个非负、和为1的权重
  • 将权重加权到value上,得到输出

其实就是通过两次向量内积得到输出,实际使用时,qkv都是序列

Multi-Head Attention:

其实类似于CNN的输出通道,是可以有多个的

并行地执行注意力函数,产生dv-dimensional输出值。这些被连接并再次投影,产生最终值

Applications of Attention in our Model:

对于self-attention:q、k、v其实是一个东西,就是该序列本身。所以相似度求取时,和自己本身对应的那个序列肯定是1。

Position-wise Feed-Forward Networks(MLP):

其实就是两层线性层:W1把512投影成2048,因为有残差,W2又把2048投影成512

Transformer的大致流程:

attention把序列的特征抓取出来,作汇聚,而MLP可以把它映射成我们想要的语义空间。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值