Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
M
mtbookv2
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
NiuTrans
mtbookv2
Commits
5d55a774
Commit
5d55a774
authored
Dec 26, 2020
by
zengxin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
12 公式引用风格统一
parent
7fe72bba
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
7 行增加
和
7 行删除
+7
-7
Chapter12/chapter12.tex
+7
-7
没有找到文件。
Chapter12/chapter12.tex
查看文件 @
5d55a774
...
...
@@ -56,7 +56,7 @@
\end{figure}
%----------------------------------------------
\parinterval
自注意力机制也可以被看作是一个序列表示模型。比如,对于每个目标位置
$
j
$
,都生成一个与之对应的源语言句子表示,它的形式如
公式
\eqref
{
eq:12-1
}
所示
:
\parinterval
自注意力机制也可以被看作是一个序列表示模型。比如,对于每个目标位置
$
j
$
,都生成一个与之对应的源语言句子表示,它的形式如
下
:
\begin{eqnarray}
\mathbi
{
C
}_
j
&
=
&
\sum
_
i
\alpha
_{
i,j
}
\mathbi
{
h
}_
i
\label
{
eq:12-1
}
...
...
@@ -73,7 +73,7 @@
\end{figure}
%----------------------------------------------
\parinterval
举个例子,如图
\ref
{
fig:12-3
}
所示,一个汉语句子包含5个词。这里,用
$
h
$
(他)表示“他”当前的表示结果,其中
$
h
(
\cdot
)
$
是一个函数,用于返回输入单词所在位置对应的表示结果(向量)。如果把“他”看作目标,这时
$
\mathrm
{
query
}$
就是
$
h
$
(他),
$
\mathrm
{
key
}$
和
$
\mathrm
{
value
}$
是图中所有位置的表示,即:
{$
h
$
(他)、
$
h
$
(什么)、
$
h
$
(也)、
$
h
$
(没)、
$
h
$
(学)
}
。在自注意力模型中,首先计算
$
\mathrm
{
query
}$
和
$
\mathrm
{
key
}$
的相关度,这里用
$
\alpha
_
i
$
表示
$
h
$
(他)和位置
$
i
$
的表示之间的相关性。然后,把
$
\alpha
_
i
$
作为权重,对不同位置上的
$
\mathrm
{
value
}$
进行加权求和。最终,得到新的表示结果
$
\tilde
{
h
}$
(他),其具体计算如
公式
\eqref
{
eq:12-2
}
所示
:
\parinterval
举个例子,如图
\ref
{
fig:12-3
}
所示,一个汉语句子包含5个词。这里,用
$
h
$
(他)表示“他”当前的表示结果,其中
$
h
(
\cdot
)
$
是一个函数,用于返回输入单词所在位置对应的表示结果(向量)。如果把“他”看作目标,这时
$
\mathrm
{
query
}$
就是
$
h
$
(他),
$
\mathrm
{
key
}$
和
$
\mathrm
{
value
}$
是图中所有位置的表示,即:
{$
h
$
(他)、
$
h
$
(什么)、
$
h
$
(也)、
$
h
$
(没)、
$
h
$
(学)
}
。在自注意力模型中,首先计算
$
\mathrm
{
query
}$
和
$
\mathrm
{
key
}$
的相关度,这里用
$
\alpha
_
i
$
表示
$
h
$
(他)和位置
$
i
$
的表示之间的相关性。然后,把
$
\alpha
_
i
$
作为权重,对不同位置上的
$
\mathrm
{
value
}$
进行加权求和。最终,得到新的表示结果
$
\tilde
{
h
}$
(他),其具体计算如
下
:
\begin{eqnarray}
\tilde
{
h
}
(
\textrm
{
他
}
)
&
=
&
\alpha
_
1
{
h
}
(
\textrm
{
他
}
) +
\alpha
_
2
{
h
}
(
\textrm
{
什么
}
) +
\alpha
_
3
{
h
}
(
\textrm
{
也
}
) +
\nonumber
\\
...
...
@@ -279,7 +279,7 @@
\parinterval
在自注意力机制中,
$
\mathbi
{
Q
}$
、
$
\mathbi
{
K
}$
、
$
\mathbi
{
V
}$
都是相同的,对应着源语言或目标语言序列的表示。而在编码-解码注意力机制中,由于要对双语之间的信息进行建模,因此,将目标语言每个位置的表示视为编码-解码注意力机制的
$
\mathbi
{
Q
}$
,源语言句子的表示视为
$
\mathbi
{
K
}$
和
$
\mathbi
{
V
}$
。
\parinterval
在得到
$
\mathbi
{
Q
}$
,
$
\mathbi
{
K
}$
和
$
\mathbi
{
V
}$
后,便可以进行注意力的运算,这个过程可以被形式化为
公式
\eqref
{
eq:12-9
}
:
\parinterval
在得到
$
\mathbi
{
Q
}$
,
$
\mathbi
{
K
}$
和
$
\mathbi
{
V
}$
后,便可以进行注意力的运算,这个过程可以被形式化为:
\begin{eqnarray}
\textrm
{
Attention
}
(
\mathbi
{
Q
}
,
\mathbi
{
K
}
,
\mathbi
{
V
}
)
&
=
&
\textrm
{
Softmax
}
(
\frac
{
\mathbi
{
Q
}
\mathbi
{
K
}^{
\textrm
{
T
}}}
{
\sqrt
{
d
_
k
}}
+
\mathbi
{
Mask
}
)
\mathbi
{
V
}
...
...
@@ -414,14 +414,14 @@
\end{figure}
%----------------------------------------------
\parinterval
在Transformer的训练过程中,由于引入了残差操作,将前面所有层的输出加到一起,如
公式
\eqref
{
eq:12-12
}
所示
:
\parinterval
在Transformer的训练过程中,由于引入了残差操作,将前面所有层的输出加到一起,如
下
:
\begin{eqnarray}
%x_{l+1} = x_l + F (x_l)
\mathbi
{
x
}^{
l+1
}
&
=
&
F (
\mathbi
{
x
}^
l) +
\mathbi
{
x
}^
l
\label
{
eq:12-12
}
\end{eqnarray}
\noindent
其中
$
\mathbi
{
x
}^
l
$
表示第
$
l
$
层网络的输入向量,
$
F
(
\mathbi
{
x
}^
l
)
$
是子层运算,这样会导致不同层(或子层)的结果之间的差异性很大,造成训练过程不稳定、训练时间较长。为了避免这种情况,在每层中加入了层标准化操作
\upcite
{
Ba2016LayerN
}
。图
\ref
{
fig:12-14
}
中的红色方框展示了Transformer中残差和层标准化的位置。层标准化的计算如
公式
\eqref
{
eq:12-13
}
所示
:
\noindent
其中
$
\mathbi
{
x
}^
l
$
表示第
$
l
$
层网络的输入向量,
$
F
(
\mathbi
{
x
}^
l
)
$
是子层运算,这样会导致不同层(或子层)的结果之间的差异性很大,造成训练过程不稳定、训练时间较长。为了避免这种情况,在每层中加入了层标准化操作
\upcite
{
Ba2016LayerN
}
。图
\ref
{
fig:12-14
}
中的红色方框展示了Transformer中残差和层标准化的位置。层标准化的计算如
下
:
\begin{eqnarray}
\textrm
{
LN
}
(
\mathbi
{
x
}
)
&
=
&
g
\cdot
\frac
{
\mathbi
{
x
}
-
\mu
}
{
\sigma
}
+ b
\label
{
eq:12-13
}
...
...
@@ -457,7 +457,7 @@
\end{figure}
%----------------------------------------------
\parinterval
Transformer使用了全连接网络。全连接网络的作用主要体现在将经过注意力操作之后的表示映射到新的空间中,新的空间会有利于接下来的非线性变换等操作。实验证明,去掉全连接网络会对模型的性能造成很大影响。Transformer的全连接前馈神经网络包含两次线性变换和一次非线性变换(ReLU激活函数:ReLU
$
(
\mathbi
{
x
}
)=
\textrm
{
max
}
(
0
,
\mathbi
{
x
}
)
$
),每层的前馈神经网络参数不共享,具体计算如
公式
\eqref
{
eq:12-14
}
:
\parinterval
Transformer使用了全连接网络。全连接网络的作用主要体现在将经过注意力操作之后的表示映射到新的空间中,新的空间会有利于接下来的非线性变换等操作。实验证明,去掉全连接网络会对模型的性能造成很大影响。Transformer的全连接前馈神经网络包含两次线性变换和一次非线性变换(ReLU激活函数:ReLU
$
(
\mathbi
{
x
}
)=
\textrm
{
max
}
(
0
,
\mathbi
{
x
}
)
$
),每层的前馈神经网络参数不共享,具体计算如
下
:
\begin{eqnarray}
\textrm
{
FFN
}
(
\mathbi
{
x
}
)
&
=
&
\textrm
{
max
}
(0,
\mathbi
{
x
}
\mathbi
{
W
}_
1 +
\mathbi
{
b
}_
1)
\mathbi
{
W
}_
2 +
\mathbi
{
b
}_
2
\label
{
eq:12-14
}
...
...
@@ -487,7 +487,7 @@
\begin{itemize}
\vspace
{
0.5em
}
\item
Transformer使用Adam优化器优化参数,并设置
$
\beta
_
1
=
0
.
9
$
,
$
\beta
_
2
=
0
.
98
$
,
$
\epsilon
=
10
^{
-
9
}$
。
\item
Transformer在学习率中同样应用了学习率
{
\small\bfnew
{
预热
}}
\index
{
预热
}
(Warmup)
\index
{
Warmup
}
策略,其计算如
公式
\eqref
{
eq:12-15
}
所示
:
\item
Transformer在学习率中同样应用了学习率
{
\small\bfnew
{
预热
}}
\index
{
预热
}
(Warmup)
\index
{
Warmup
}
策略,其计算如
下
:
\begin{eqnarray}
lrate
&
=
&
d
_{
\textrm
{
model
}}^{
-0.5
}
\cdot
\textrm
{
min
}
(
\textrm
{
step
}^{
-0.5
}
,
\textrm
{
step
}
\cdot
\textrm
{
warmup
\_
steps
}^{
-1.5
}
)
\label
{
eq:12-15
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论