提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
1. Transformer是什么
transformer是一种基于注意力机制的sequence-to-sequence深度学习模型框架
2. 传统模型
传统的sequence-to-sequence模型采用递归和卷积的方式,transformer采用注意力机制提升了模型的质量,提升了并行化的程度,缩短了模型训练的时间
3. 组件介绍
3.1 Encoder-Decoder架构
3.1.1 架构说明
Encoder-Decoder架构通常用于序列转换问题(机器翻译等),Encoder用于接收一个长度可变的序列,并将其转换为一个定长的状态向量,Decoder用于将定长的状态向量映射为长度可变的序列,transformer本身就是基于Encoder-Decoder架构的深度学习框架;
3.1.2 Encoder
假设输入序列是一句话
x
1
,
x
2
,
.
.
.
,
x
t
x_1, x_2, ... , x_t
x1,x2,...,xt,那么其中的
x
t
x_t
xt就是一个词元(token),针对该token需要将输入特征向量
x
t
,
h
t
−
1
x_t, h_{t-1}
xt,ht−1, 转换为
h
t
h_t
ht(当前时间t的隐状态),使用
f
f
f函数进行该转换,
h
t
=
f
(
x
t
,
h
t
−
1
)
h_t=f(x_t, h_{t-1})
ht=f(xt,ht−1),之后再用q函数将所有的时间步长的隐状态转换为定长状态向量
c
c
c,
c
=
q
(
h
1
,
.
.
.
,
h
t
−
1
,
h
t
)
c=q(h_1,...,h_{t-1},h_t)
c=q(h1,...,ht−1,ht);
3.1.3 Decoder
使用函数
g
g
g来表示Decoder的隐藏层变换,
s
t
=
g
(
y
t
−
1
,
c
,
s
t
−
1
)
s_t=g(y_{t-1},c,s_{t-1})
st=g(yt−1,c,st−1),获得隐藏层状态后,使用
s
o
f
t
m
a
x
softmax
softmax来获取
y
t
′
y'_{t}
yt′在
t
t
t时间的概率分布,
y
t
′
y'_{t}
yt′为Decoder的输出,
y
1
,
.
.
.
,
y
t
−
1
y_1,...,y_{t-1}
y1,...,yt−1为Decoder的训练集输入,
y
t
′
y'_{t}
yt′的输出概率分布取决于
P
(
y
t
′
∣
y
1
,
.
.
.
,
y
t
−
1
,
c
)
P(y'_{t}|y_1,...,y_{t-1},c)
P(yt′∣y1,...,yt−1,c);
3.2 自注意力机制
3.2.1 作用
随着模型处理输入序列的每个单词,自注意力会关注整个输入序列的所有单词,有助于模型基于该序列对输入单词更好的编码,处理过程中自注意力机制会将正在处理单词融入相关的单词;
3.2.2 应用场景
3.2.2.1 序列建模
可以用于序列数据的建模,捕捉序列中不同的位置的依赖关系,可以更好的理解上下文
3.2.2.2 并行计算
自注意力可以并行计算,这意味着可以有效地在现代硬件上进行加速
3.2.2.3 长距离依赖捕获
自注意力可以更好地处理长距离依赖关系,因为它不需要按顺序处理输入序列