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
4 years ago
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]
...
...
This diff is collapsed.
Click to expand it.
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}
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论