资讯专栏INFORMATION COLUMN

深度学习self-attention流程详解(qkv)

BDEEFE / 1647人阅读

摘要:第二次卷积也是,数目为。两次卷积后得到的和的相同,更新,进行上述循环,循环自定义次数,进入解码部分。所以需要进行一次。多次更新将最新的,输入到单层神经网络中,输出层维度为译文有效单词总数更新备注借鉴出处

一.从InputEmbedding和PositionalEnocding说起
1.将原文的所有单词汇总统计频率,删除低频词汇(比如出现次数小于20次的统一
定义为’’);此时总共选出了假设10000个单词,则用数字编号为0~9999,一一对应,定义该对应表为word2num;然后用xaviers方法生成随机矩阵Matrix :10000行N列(10000行是确定的,对应10000个单词,N列自定义,常用N= 512,但训练会非常耗资源,亲测128足够了),我们定义为矩阵matX

2.这样,我们针对InputEmbedding,每句话就是一个对应的矩阵,该矩阵指定长度,例如‘中国人有中国梦’,对应矩阵!(这里定义矩阵行数为10,100可以理解为结束符,不足的在后面补0)图片描述
3.PositionEncoding
这里的PositionEncoding主要是为了保留句子的位置信息。其矩阵shape和Inputembedding一样。对于矩阵matPosition的每一行,第0,2,4,6,...等偶数列上的值用sin()函数激 活,第1,3,5,。。。等奇数列的值用cos()函数激活,将此矩阵定义为mapX。

4.这里,将两个矩阵相加,得到matEnc=matP+matX。然后matEnc进入模型编码部分的循环,即Figure1中左边红色框内部分,每个循环单元又分为4个小部分:multi-head attention, add&norm, feedForward, add&norm;
二.Encoder

1.Multi-head attention
(1)由三个输入,分别为V,K,Q,此处V=K=Q=matEnc(后面会经过变化变的不一样)
(2)首先分别对V,K,Q三者分别进行线性变换,即将三者分别输入到三个单层神经网络层,激活函数选择relu,输出新的V,K,Q(三者shape都和原来shape相同,即经过线性变换时输出维度和输入维度相同);
(3)然后将Q在最后一维上进行切分为num_heads(假设为8,必须可以被matENC整除)段,然后对切分完的矩阵在axis=0维上进行concat链接起来;对V和K都进行和Q一样的操作;操作后的矩阵记为Q_,K_,V_;如图
(4)之后将Q_,K_.T进行想乘和Scale,得到的output为[8.10,10],执行output = softmax(output),然后将更新后的output想乘V_,得到再次更新后的output矩阵[8,10,64],然后将得到的output在0维上切分为8段,在2维上合并为[10,512]原始shape样式。
2.add&norm
add实际上是为了避免梯度消失,也就是曾经的残差网络解决办法:output=output+Q;
norm是标准化矫正一次,在output对最后一维计算均值和方差,用output减去均值除以方差+spsilon得值更新为output,然后变量gamma*output+变量beta

3.feed forward
(1)对output进行两次卷积,第一次卷积荷11,数目为词对应向量的维度。第二次卷积也是11,数目为N。
(2)两次卷积后得到的output和matEnc 的shape相同,更新matEnc = output,进行上述循环,循环自定义次数,进入解码部分。
三.decoder
1.InputEmbedding和Positionembedding相同。
2.进入解码循环,这里的Masked multi-head attention: 和编码部分的multi-head attention类似,但是多了一 次masked,因为在解码部分,解码的时候时从左到右依次解码的,当解出第一个字的时候,第一个字只能与第一个字计算相关性,当解出第二个字的时候,只能计算出第二个字与第一个字和第二个字的相关性,。。。;所以需要linalg.LinearOperatorLowerTriangular进行一次mask。

3.在解码中,add&norm,Feed forward和编码相同,其中multi-head attention:同编码部分,但是Q和K,V不再相同,Q=outputs,K=V=matEnc。
4.多次更新
5.Linear: 将最新的outputs,输入到单层神经网络中,输出层维度为“译文”有效单词总数;更新outputs

备注:借鉴出处https://zhuanlan.zhihu.com/p/...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/45043.html

相关文章

  • 深度学习之图像分类(二十一)-- MLP-Mixer网络详解

    摘要:深度学习之图像分类二十一网络详解目录深度学习之图像分类二十一网络详解前言网络结构总结代码继之后,我们开启了一个新篇章,即无关卷积和注意力机制的最原始形态,全连接网络。我们将每个展平就能成为个维的向量。 ...

    ZweiZhao 评论0 收藏0
  • 一文读懂深度学习:从神经元到BERT

    摘要:今天,蚂蚁金服财富对话算法团队整理对比了深度学习模型在自然语言处理领域的发展历程。深度学习网络相对于浅层网络结构,有两层三层及以上隐藏层的我们就可以称为深度网络。 阿里妹导读:自然语言处理领域的殿堂标志 BERT 并非横空出世,背后有它的发展原理。今天,蚂蚁金服财富对话算法团队整理对比了深度学习模型在自然语言处理领域的发展历程。从简易的神经元到当前最复杂的BERT模型,深入浅出地介绍了...

    xialong 评论0 收藏0
  • 一文读懂深度学习:从神经元到BERT

    摘要:今天,蚂蚁金服财富对话算法团队整理对比了深度学习模型在自然语言处理领域的发展历程。深度学习网络相对于浅层网络结构,有两层三层及以上隐藏层的我们就可以称为深度网络。 阿里妹导读:自然语言处理领域的殿堂标志 BERT 并非横空出世,背后有它的发展原理。今天,蚂蚁金服财富对话算法团队整理对比了深度学习模型在自然语言处理领域的发展历程。从简易的神经元到当前最复杂的BERT模型,深入浅出地介绍了...

    Ryan_Li 评论0 收藏0
  • Ian Goodfellow提出自注意力GAN,ImageNet图像合成获最优结果

    摘要:在这项工作中,我们提出了自注意力生成对抗网络,它将自注意力机制引入到卷积中。越高,表示图像质量越好。表将所提出的与较先进模型进行比较,任务是上的类别条件图像生成。 图像合成(Image synthesis)是计算机视觉中的一个重要问题。随着生成对抗网络(GAN)的出现,这个方向取得了显著进展。基于深度卷积网络的GAN尤其成功。但是,通过仔细检查这些模型生成的样本,可以观察到,在ImageNe...

    Harpsichord1207 评论0 收藏0
  • 图像恢复 SWinIR : 彻底理解论文和源代码 (注释详尽)

    摘要:浅层特征提取浅层特征提取只使用一层卷积进行提取。图像重建模块图像重建模块其实就是卷积上采样的组合,在这块论文提出种结构。主要代码理解关于中涉及的部分代码非常简单,就不在此单独列出,这里主要注释一下其中有关的实现代码。将维图像转变成维。 ...

    RiverLi 评论0 收藏0

发表评论

0条评论

BDEEFE

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<