Encoder
输入b经过self-attention后得到向量a,运用残差连接,将a加上输入的b,得到最终输出,送入layer-normalization
layer-norm:计算输入向量的均值m和标准差
,运用上边的公式将对应的Xi转换,等式右边是Xi,不是,输出输出的结果送入fully-connection,同样运用残差连接,加和后的结果再次进行layer-norm,最后输出
Positional Encoding:加上位置信息
Add & Norm:residual + layer-norm
Decoder
decoder首先会接收一个special token:begin作为开始信号
最终的输出由vocabulary+概率决定,上图表格左侧是vocabulary里所有的字,比如语音识别,那么左侧就是所有的中文字,可能有一千个一万个,视具体的业务情况而定。表格右侧是每个字对应的概率,概率最大的那个就是最终的输出,上图机为0.8,其他的都很小,那么就输出机。
vocabulary最后添加一个token:end,代表结束了,decoder看到输入是end,就结束。什么时候输出end是由机器自己决定的,这就叫autoregressiive
所以decoder的输入,除了一开始的begin这个token,其它的都是上一时刻decoder自己输出的向量,此时如果上一个时刻输出了错误的向量,后续就会有问题
Masked Self-attention:计算b1时,只考虑a1,不考虑a2a3a4;计算a2时,只考虑a1a2,不考虑a3a4;计算a4时,考虑a1到a4。因为decoder的输入是顺序生成的,不是同时存在的,所以只能考虑已经存在的
encoder和decoder连接部分
Original: https://blog.csdn.net/weixin_43846919/article/details/123796652
Author: 究极菜购
Title: transformer
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/530149/
转载文章受原作者版权保护。转载请注明原作者出处!