Transformer总结
文章目录
前言
该篇博客是笔者学习李宏毅老师课程后所写的学习笔记,如文中有错误,感谢大家指正
通过学习对比,李宏毅老师在Transformer模型的讲解上略逊色与李沫老师,这是学习李沫老师论文精讲的批注,共享在网盘上了
链接: https://pan.baidu.com/s/10wU6LFFlR_ir3ivOZDYufA?pwd=uwhw
提取码: uwhw
一、Sequence-to-Sequence模型
Sequence-to-Sequence是一种输入输出均为一个序列的模型,也被简称为Seq2seq模型,它的特点是模型的输出长度是不确定的,有可能比输入长,也可能比输入短,且输出的长度由模型自己决定。
应用场景:
(1)语音辨识:模型的输入声音讯号,输出语音辨识的结果,是一段文字
(2)机器翻译:输入一段文字,输出为翻译后的另一个语种的文字
(3)语音翻译 :输入为声音讯号,输出为翻译后的文字,在语言翻译中是直接将声音信号转换成不同 语种文字,没有声音到文字,文字再翻译的中间过程
在实际应用中,QA的问题(给定一段输入和问题,模型给出一个回答)都有机会用Seq2seq的模型来解,而为了让模型对特定的问题有更好的表现,通常会为该问题定制化一个模型而不是使用一个通用模型。
二、Transformer模型
Transformer模型通常由两部分组成,一部分是encoder,另一部分是decoder。需要先将输入送入到encoder部分中,encoder模块对输入进行处理后送入decoder部门进行解码输出,
1.encoder
在encoder部分,输入时一排向量,输出是一排与输入个数相同的向量,中间处理的核心就是多个self-attention叠加而成的block
但此处用到的self-attention是在其基础上做处理部分改动,更多的计算步骤使其能更好的找到序列间内部的联系
在这个改动后的self-attention计算单元中, b b b 计算方法和以前相同,但此处不再是直接将 b b b作为输出 ,而是
(1)先将对应的输出 a a a和 b b b相加组成一个residual块,
(2)然后对residual块进行layer normalization处理,其过程为先计算出入向量的均值 m m m和标准差 σ \sigma σ,然后对向量中的每个元素进行 x i ′ = x i − m σ