9-6学习日记

一、transform架构

在这里插入图片描述
用一句话来说,Transform 是一种将输入的词向量通过编码器进行处理,然后将其生成的隐藏表示传递给解码器,最后输出新的词向量或序列,这些词向量符合我们所需的任务目标(如翻译、生成文本等)

二、编码器

编码器由八个叠加的enconder组成,每一个encoding都由一个自注意力层和一个前馈神经网络组成。每一个组件之间都有一个残差网络和归一化。
在这里插入图片描述
我们看这里,
1.当x1和x2输入后先得到词向量(独热编码或word2vec等等),
2.再叠加位置编码得到新的x1和x2,然后经过自注意力的计算,这里是x1与全部的词向量做计算,这样得到的z1就有了位置特征、句法特征和语义特征。这里的q是x1的词向量,k、v是全部的词向量。
3.再经过残差网络,其作用是避免梯度消失。何为梯度消失?例如w3(w2(w1x+b1)+b2)+b3,当w1、w2、w3特别小的时候,求梯度x可以认为直接没了,这时残差网络会w3(w2(w1x+b1)+b2)+b3+x,这样就保证了x还在,即在原始网络上额外加了一个 x 的跳跃连接。
4.再经过LayerNorm完成归一化
5.经过feed forward,之前的每一步都是在做线性变换,只是在平移和伸缩操作。这里会先通过Relu做一次非线性变换,这样就可以模拟空间中的任意一种状态了

整理一下,在 Transformer 编码器中,每个层包含两个主要部分:
1.自注意力层(Self-Attention Layer):
(1)经过自注意力机制的输出与输入进行加法操作(残差连接)。
(2)对加法后的结果进行层归一化。
2.前馈神经网络层(Feedforward Neural Network Layer):
(1)经过前馈神经网络的输出与输入进行加法操作(残差连接)。
(2)对加法后的结果进行层归一化。

三、解码器

在这里插入图片描述
可以看到,编码器的结果输出到解码器的encoder-decoder attention层,这里有几个点:
1.解码器的输入是已生成的词语,当初始状态时,模型使用特殊的 标记,这个标记会被嵌入成一个词向量,并作为解码器的第一个输入,送入解码器层
2.可以看到解码器多出了一个encoder-decoder attention 层,经过这一层的计算,解码器就能处理两个来源的信息:
(1)解码器自己的输入(已经生成的词):解码器需要根据已经生成的词预测下一个词。
(2)编码器的输出(原始输入句子的编码表示):解码器还需要依赖原始输入句子的语义信息,以生成与输入句子相关的输出序列。
这里的q是解码器自己的输入,包含了解码器已生成的词的信息和当前上下文,k、v是编码器的输出
3.编码器用的就是普通的自注意力机制,因为编码器的任务是处理整个输入序列,并让每个词都能“看到”其他所有词。因为编码器在处理输入时,已经拥有完整的句子,因此它不需要对某些位置进行屏蔽。而解码器使用掩码自注意力机制,以确保每一步只能够看到已经生成的词,而不能看到未来的词。这是因为解码器在序列生成任务中,每一步只能基于已经生成的词来预测下一个词,不能提前知道未来的词。
4.解码器输入后也需要先做位置编码

最后解码器输出了经过处理的、包含整个生成序列中所有词的词向量,这个词向量经过linear层转换为整个词表的维度。说一下Transformer 模型有一个预定义的词汇表,包含了模型可以识别和生成的所有单词。这个词汇表可能包含成千上万个词,甚至更多。再经过softmax层得到一个概率最大的词

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值