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
2ef067af
Commit
2ef067af
authored
Oct 09, 2020
by
zengxin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
10 12 index去重
parent
11c814da
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
4 行增加
和
4 行删除
+4
-4
Chapter10/chapter10.tex
+3
-3
Chapter12/chapter12.tex
+1
-1
没有找到文件。
Chapter10/chapter10.tex
查看文件 @
2ef067af
...
...
@@ -459,9 +459,9 @@ NMT & 21.7 & 18.7 & -13.7 \\
\vspace
{
-0.5em
}
\begin{itemize}
\vspace
{
0.5em
}
\item
如何对
$
\seq
{{
x
}}$
和
$
\seq
{{
y
}}_{
<j
}$
进行分布式表示,即
{
\small\sffamily\bfseries
{
词嵌入
}}
\index
{
词嵌入
}
(Word Embedding)
\index
{
Word Embedding
}
。首先,将由one-hot向量表示的源语言单词,即由0和1构成的离散化向量表示,转化为实数向量。可以把这个过程记为
$
\textrm
{
e
}_
x
(
\cdot
)
$
。类似的,可以把目标语言序列
$
\seq
{{
y
}}_{
<j
}$
中的每个单词用同样的方式进行表示,记为
$
\textrm
{
e
}_
y
(
\cdot
)
$
。
\item
如何对
$
\seq
{{
x
}}$
和
$
\seq
{{
y
}}_{
<j
}$
进行分布式表示,即
{
\small\sffamily\bfseries
{
词嵌入
}}
(Word Embedding)
。首先,将由one-hot向量表示的源语言单词,即由0和1构成的离散化向量表示,转化为实数向量。可以把这个过程记为
$
\textrm
{
e
}_
x
(
\cdot
)
$
。类似的,可以把目标语言序列
$
\seq
{{
y
}}_{
<j
}$
中的每个单词用同样的方式进行表示,记为
$
\textrm
{
e
}_
y
(
\cdot
)
$
。
\vspace
{
0.5em
}
\item
如何在词嵌入的基础上获取整个序列的表示,即句子的
{
\small\sffamily\bfseries
{
表示学习
}}
\index
{
表示学习
}
(Representation Learning)
\index
{
Representation Learning
}
。可以把词嵌入的序列作为循环神经网络的输入,循环神经网络最后一个时刻的输出向量便是整个句子的表示结果。如图
\ref
{
fig:10-11
}
中,编码器最后一个循环单元的输出
$
\vectorn
{
\emph
{
h
}}_
m
$
被看作是一种包含了源语言句子信息的表示结果,记为
$
\vectorn
{
\emph
{
C
}}$
。
\item
如何在词嵌入的基础上获取整个序列的表示,即句子的
{
\small\sffamily\bfseries
{
表示学习
}}
(Representation Learning)
。可以把词嵌入的序列作为循环神经网络的输入,循环神经网络最后一个时刻的输出向量便是整个句子的表示结果。如图
\ref
{
fig:10-11
}
中,编码器最后一个循环单元的输出
$
\vectorn
{
\emph
{
h
}}_
m
$
被看作是一种包含了源语言句子信息的表示结果,记为
$
\vectorn
{
\emph
{
C
}}$
。
\vspace
{
0.5em
}
\item
如何得到每个目标语言单词的概率,即译文单词的
{
\small\sffamily\bfseries
{
生成
}}
\index
{
生成
}
(Generation)
\index
{
Generation
}
。与神经语言模型一样,可以用一个Softmax输出层来获取当前时刻所有单词的分布,即利用Softmax 函数计算目标语言词表中每个单词的概率。令目标语言序列
$
j
$
时刻的循环神经网络的输出向量(或状态)为
$
\vectorn
{
\emph
{
s
}}_
j
$
。根据循环神经网络的性质,
$
y
_
j
$
的生成只依赖前一个状态
$
\vectorn
{
\emph
{
s
}}_{
j
-
1
}$
和当前时刻的输入(即词嵌入
$
\textrm
{
e
}_
y
(
y
_{
j
-
1
}
)
$
)。同时考虑源语言信息
$
\vectorn
{
\emph
{
C
}}$
,
$
\funp
{
P
}
(
y
_
j |
\seq
{{
y
}}_{
<j
}
,
\seq
{{
x
}}
)
$
可以被重新定义为:
\begin{eqnarray}
...
...
@@ -1081,7 +1081,7 @@ L(\vectorn{\emph{Y}},\widehat{\vectorn{\emph{Y}}}) = \sum_{j=1}^n L_{\textrm{ce}
\begin{itemize}
\vspace
{
0.5em
}
\item
{
\small\bfnew
{
数据并行
}}
\index
{
数据并行
}
。如果一台设备能完整放下一个神经机器翻译模型,那么数据并行可以把一个大批次均匀切分成
$
n
$
个小批次,然后分发到
$
n
$
个设备上并行计算,最后把结果汇总,相当于把运算时间变为原来的
${
1
}
/
{
n
}$
,数据并行的过程如图
\ref
{
fig:10-30
}
所示。不过,需要注意的是,多设备并行需要对数据在不同设备间传输,特别是多个GPU的情况,设备间传输的带宽十分有限,设备间传输数据往往会造成额外的时间消耗
\upcite
{
xiao2017fast
}
。通常,数据并行的训练速度无法随着设备数量增加呈线性增长。不过这个问题也有很多优秀的解决方案,比如采用多个设备的异步训练,但是这些内容已经超出本章的内容,因此这里不做过多讨论。
\item
{
\small\bfnew
{
数据并行
}}
。如果一台设备能完整放下一个神经机器翻译模型,那么数据并行可以把一个大批次均匀切分成
$
n
$
个小批次,然后分发到
$
n
$
个设备上并行计算,最后把结果汇总,相当于把运算时间变为原来的
${
1
}
/
{
n
}$
,数据并行的过程如图
\ref
{
fig:10-30
}
所示。不过,需要注意的是,多设备并行需要对数据在不同设备间传输,特别是多个GPU的情况,设备间传输的带宽十分有限,设备间传输数据往往会造成额外的时间消耗
\upcite
{
xiao2017fast
}
。通常,数据并行的训练速度无法随着设备数量增加呈线性增长。不过这个问题也有很多优秀的解决方案,比如采用多个设备的异步训练,但是这些内容已经超出本章的内容,因此这里不做过多讨论。
%----------------------------------------------
\begin{figure}
[htp]
...
...
Chapter12/chapter12.tex
查看文件 @
2ef067af
...
...
@@ -163,7 +163,7 @@
\vspace
{
0.5em
}
\item
{
\small\sffamily\bfseries
{
残差连接
}}
\index
{
残差连接
}
(Residual Connection,标记为“Add”)
\index
{
Residual Connection
}
:对于自注意力子层和前馈神经网络子层,都有一个从输入直接到输出的额外连接,也就是一个跨子层的直连。残差连接可以使深层网络的信息传递更为有效;
\vspace
{
0.5em
}
\item
{
\small\sffamily\bfseries
{
层正则化
}}
\index
{
层正则化
}
(Layer Normalization)
\index
{
Layer Normalization
}
:自注意力子层和前馈神经网络子层进行最终输出之前,会对输出的向量进行层正则化,规范结果向量取值范围,这样易于后面进一步的处理。
\item
{
\small\sffamily\bfseries
{
层正则化
}}
\index
{
层正则化
}
(Layer Normalization):自注意力子层和前馈神经网络子层进行最终输出之前,会对输出的向量进行层正则化,规范结果向量取值范围,这样易于后面进一步的处理。
\vspace
{
0.5em
}
\end{itemize}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论