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
34080625
Commit
34080625
authored
Nov 29, 2020
by
zengxin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
10 11 appendenix
parent
88515850
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
8 行增加
和
7 行删除
+8
-7
Chapter10/chapter10.tex
+4
-4
Chapter11/Figures/figure-single-glu.tex
+3
-2
Chapter11/chapter11.tex
+1
-1
ChapterAppend/chapterappend.tex
+0
-0
bibliography.bib
+0
-0
没有找到文件。
Chapter10/chapter10.tex
查看文件 @
34080625
...
...
@@ -925,14 +925,14 @@ a (\mathbi{s},\mathbi{h}) = \left\{ \begin{array}{ll}
%----------------------------------------------------------------------------------------
\subsection
{
训练
}
\parinterval
在基于梯度的方法中,模型参数可以通过损失函数
$
L
$
对
于
参数的梯度进行不断更新。对于第
$
\textrm
{
step
}$
步参数更新,首先进行神经网络的前向计算,之后进行反向计算,并得到所有参数的梯度信息,再使用下面的规则进行参数更新:
\parinterval
在基于梯度的方法中,模型参数可以通过损失函数
$
L
$
对参数的梯度进行不断更新。对于第
$
\textrm
{
step
}$
步参数更新,首先进行神经网络的前向计算,之后进行反向计算,并得到所有参数的梯度信息,再使用下面的规则进行参数更新:
\begin{eqnarray}
\mathbi
{
w
}_{
\textrm
{
step
}
+1
}
=
\mathbi
{
w
}_{
\textrm
{
step
}}
-
\alpha
\cdot
\frac
{
\partial
L(
\mathbi
{
w
}_{
\textrm
{
step
}}
)
}
{
\partial
\mathbi
{
w
}_{
\textrm
{
step
}}
}
\label
{
eq:10-30
}
\end{eqnarray}
\noindent
其中,
$
\mathbi
{
w
}_{
\textrm
{
step
}}$
表示更新前的模型参数,
$
\mathbi
{
w
}_{
\textrm
{
step
}
+
1
}$
表示更新后的模型参数,
$
L
(
\mathbi
{
w
}_{
\textrm
{
step
}}
)
$
表示模型相对于
$
\mathbi
{
w
}_{
\textrm
{
step
}}$
的损失,
$
\frac
{
\partial
L
(
\mathbi
{
w
}_{
\textrm
{
step
}}
)
}
{
\partial
\mathbi
{
w
}_{
\textrm
{
step
}}
}$
表示损失函数的梯度,
$
\alpha
$
是更新的步
进值
。也就是说,给定一定量的训练数据,不断执行公式
\eqref
{
eq:10-30
}
的过程。反复使用训练数据,直至模型参数达到收敛或者损失函数不再变化。通常,把公式的一次执行称为“一步”更新/训练,把访问完所有样本的训练称为“一轮”训练。
\noindent
其中,
$
\mathbi
{
w
}_{
\textrm
{
step
}}$
表示更新前的模型参数,
$
\mathbi
{
w
}_{
\textrm
{
step
}
+
1
}$
表示更新后的模型参数,
$
L
(
\mathbi
{
w
}_{
\textrm
{
step
}}
)
$
表示模型相对于
$
\mathbi
{
w
}_{
\textrm
{
step
}}$
的损失,
$
\frac
{
\partial
L
(
\mathbi
{
w
}_{
\textrm
{
step
}}
)
}
{
\partial
\mathbi
{
w
}_{
\textrm
{
step
}}
}$
表示损失函数的梯度,
$
\alpha
$
是更新的步
长
。也就是说,给定一定量的训练数据,不断执行公式
\eqref
{
eq:10-30
}
的过程。反复使用训练数据,直至模型参数达到收敛或者损失函数不再变化。通常,把公式的一次执行称为“一步”更新/训练,把访问完所有样本的训练称为“一轮”训练。
\parinterval
将公式
\eqref
{
eq:10-30
}
应用于神经机器翻译有几个基本问题需要考虑:1)损失函数的选择;2)参数初始化的策略,也就是如何设置
$
\mathbi
{
w
}_
0
$
;3)优化策略和学习率调整策略;4)训练加速。下面对这些问题进行讨论。
...
...
@@ -1190,7 +1190,7 @@ L(\mathbi{Y},\widehat{\mathbi{Y}}) = \sum_{j=1}^n L_{\textrm{ce}}(\mathbi{y}_j,\
\subsubsection
{
2. 束搜索
}
\vspace
{
0.5em
}
\parinterval
束搜索是一种启发式图搜索算法。相比于全搜索,它可以减少搜索所占用的空间和时间,在每一步扩展的时候,剪掉一些质量比较差的结点,保留下一些质量较高的结点。具体到机器翻译任务,对于每一个目标语言位置,束搜索选择了概率最大的前
$
K
$
个单词进行扩展(其中
$
k
$
叫做束宽度,或简称为束宽)。如图
\ref
{
fig:10-34
}
所示,假设
\{
$
y
_
1
, y
_
2
,..., y
_
n
$
\}
表示生成的目标语言序列,且
$
k
=
3
$
,则束搜索的具体过程为:在预测第一个位置时,可以通过模型得到
$
y
_
1
$
的概率分布,选取概率最大的前3个单词作为候选结果(假设分别为“have”, “has”, “it”)。在预测第二个位置的单词时,模型针对已经得到的三个候选结果(“have”, “has”, “it”)计算第二个单词的概率分布。因为
$
y
_
2
$
对应
$
|V|
$
种可能,总共可以得到
$
3
\times
|V|
$
种结果。然后从中选取使序列概率
$
\funp
{
P
}
(
y
_
2
,y
_
1
|
\seq
{{
x
}}
)
$
最大的前三个
$
y
_
2
$
作为新的输出结果,这样便得到了前两个位置的top-3译文。在预测其他位置时也是如此,不断重复此过程直到推断结束。可以看到,束搜索的搜索空间大小与束宽度有关,也就是:束宽度越大,搜索空间越大,更有可能搜索到质量更高的译文,但同时搜索会更慢。束宽度等于3,意味着每次只考虑三个最有可能的结果,贪婪搜索实际上便是束宽度为1的情况。在神经机器翻译系统实现中,一般束宽度设置在4~8之间。
\parinterval
束搜索是一种启发式图搜索算法。相比于全搜索,它可以减少搜索所占用的空间和时间,在每一步扩展的时候,剪掉一些质量比较差的结点,保留下一些质量较高的结点。具体到机器翻译任务,对于每一个目标语言位置,束搜索选择了概率最大的前
$
k
$
个单词进行扩展(其中
$
k
$
叫做束宽度,或简称为束宽)。如图
\ref
{
fig:10-34
}
所示,假设
\{
$
y
_
1
, y
_
2
,..., y
_
n
$
\}
表示生成的目标语言序列,且
$
k
=
3
$
,则束搜索的具体过程为:在预测第一个位置时,可以通过模型得到
$
y
_
1
$
的概率分布,选取概率最大的前3个单词作为候选结果(假设分别为“have”, “has”, “it”)。在预测第二个位置的单词时,模型针对已经得到的三个候选结果(“have”, “has”, “it”)计算第二个单词的概率分布。因为
$
y
_
2
$
对应
$
|V|
$
种可能,总共可以得到
$
3
\times
|V|
$
种结果。然后从中选取使序列概率
$
\funp
{
P
}
(
y
_
2
,y
_
1
|
\seq
{{
x
}}
)
$
最大的前三个
$
y
_
2
$
作为新的输出结果,这样便得到了前两个位置的top-3译文。在预测其他位置时也是如此,不断重复此过程直到推断结束。可以看到,束搜索的搜索空间大小与束宽度有关,也就是:束宽度越大,搜索空间越大,更有可能搜索到质量更高的译文,但同时搜索会更慢。束宽度等于3,意味着每次只考虑三个最有可能的结果,贪婪搜索实际上便是束宽度为1的情况。在神经机器翻译系统实现中,一般束宽度设置在4~8之间。
%----------------------------------------------
\begin{figure}
[htp]
...
...
@@ -1245,7 +1245,7 @@ L(\mathbi{Y},\widehat{\mathbi{Y}}) = \sum_{j=1}^n L_{\textrm{ce}}(\mathbi{y}_j,\
% NEW SECTION
%----------------------------------------------------------------------------------------
\sectionnewpage
\section
{
小
节
及拓展阅读
}
\section
{
小
结
及拓展阅读
}
\parinterval
神经机器翻译是近几年的热门方向。无论是前沿性的技术探索,还是面向应用落地的系统研发,神经机器翻译已经成为当下最好的选择之一。研究人员对神经机器翻译的热情使得这个领域得到了快速的发展。本章作为神经机器翻译的入门章节,对神经机器翻译的建模思想和基础框架进行了描述。同时,对常用的神经机器翻译架构
\ \dash
\
循环神经网络进行了讨论与分析。
...
...
Chapter11/Figures/figure-single-glu.tex
查看文件 @
34080625
...
...
@@ -64,8 +64,8 @@ $\otimes$: & 按位乘运算 \\
\draw
[-latex,thick]
(c2.east) -- ([xshift=0.4cm]c2.east);
\node
[inner sep=0pt, font=\tiny]
at (0.75cm, -0.4cm)
{$
\mathbi
{
x
}$}
;
\node
[inner sep=0pt, font=\tiny]
at ([yshift=-0.8cm]a.south)
{$
\mathbi
{
B
}
=
\mathbi
{
x
}
*
\mathbi
{
V
}
+
\mathbi
{
b
}_{
\mathbi
{
W
}}$}
;
\node
[inner sep=0pt, font=\tiny]
at ([yshift=-0.8cm]b.south)
{$
\mathbi
{
A
}
=
\mathbi
{
x
}
*
\mathbi
{
W
}
+
\mathbi
{
b
}_{
\mathbi
{
V
}}$}
;
\node
[inner sep=0pt, font=\tiny]
at ([yshift=-0.8cm]a.south)
{$
\mathbi
{
A
}
=
\mathbi
{
x
}
*
\mathbi
{
W
}
+
\mathbi
{
b
}_{
\mathbi
{
W
}}$}
;
\node
[inner sep=0pt, font=\tiny]
at ([yshift=-0.8cm]b.south)
{$
\mathbi
{
B
}
=
\mathbi
{
x
}
*
\mathbi
{
V
}
+
\mathbi
{
b
}_{
\mathbi
{
V
}}$}
;
\node
[inner sep=0pt, font=\tiny]
at (8.2cm, -0.4cm)
{$
\mathbi
{
y
}
=
\mathbi
{
A
}
\otimes
\sigma
(
\mathbi
{
B
}
)
$}
;
\end{tikzpicture}
\ No newline at end of file
Chapter11/chapter11.tex
查看文件 @
34080625
...
...
@@ -579,7 +579,7 @@
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\section
{
小
节
及拓展阅读
}
\section
{
小
结
及拓展阅读
}
\parinterval
卷积是一种高效的神经网络结构,在图像、语音处理等领域取得了令人瞩目的成绩。本章介绍了卷积的概念及其特性,并对池化、填充等操作进行了讨论。本章介绍了具有高并行计算能力的机器翻译范式,即基于卷积神经网络的编码器-解码器框架。其在机器翻译任务上表现出色,并大幅度缩短了模型的训练周期。除了基础部分,本章还针对卷积计算进行了延伸,内容涉及逐通道卷积、逐点卷积、轻量卷积和动态卷积等。除了上述提及的内容,卷积神经网络及其变种在文本分类、命名实体识别、关系分类、事件抽取等其他自然语言处理任务上也有许多应用
\upcite
{
Kim2014ConvolutionalNN,2011Natural,DBLP:conf/cncl/ZhouZXQBX17,DBLP:conf/acl/ChenXLZ015,DBLP:conf/coling/ZengLLZZ14
}
。
...
...
ChapterAppend/chapterappend.tex
查看文件 @
34080625
差异被折叠。
点击展开。
bibliography.bib
查看文件 @
34080625
差异被折叠。
点击展开。
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论