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
b8b4ee7a
Commit
b8b4ee7a
authored
Dec 30, 2020
by
曹润柘
Browse files
Options
Browse Files
Download
Plain Diff
合并分支 'master' 到 'caorunzhe'
Master 查看合并请求
!746
parents
b9782609
59266612
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
82 行增加
和
78 行删除
+82
-78
Chapter13/chapter13.tex
+82
-78
没有找到文件。
Chapter13/chapter13.tex
查看文件 @
b8b4ee7a
...
...
@@ -329,6 +329,7 @@ R(\mathbf{w}) & = & (\big| |\mathbf{w}| {\big|}_2)^2 \\
\sectionnewpage
\section
{
对抗样本训练
}
\label
{
sec:adversarial-examples
}
\parinterval
同其它基于神经网络的方法一样,提高
{
\small\bfnew
{
健壮性
}}
\index
{
健壮性
}
(Robustness)
\index
{
Robustness
}
也是神经机器翻译研发中需要关注的。比如,大容量模型可以很好的拟合训练数据,但是当测试样本与训练样本差异较大时,会导致很糟糕的翻译结果
\upcite
{
JMLR:v15:srivastava14a,DBLP:conf/amta/MullerRS20
}
。另一方面,实践中也发现,有些情况下即使输入中有微小的扰动,神经网络模型的输出也会产生巨大变化。或者说,神经网络模型在输入样本上容易受到
{
\small\bfnew
{
攻击
}}
\index
{
攻击
}
(Attack)
\index
{
Attack
}
\upcite
{
DBLP:conf/sp/Carlini017,DBLP:conf/cvpr/Moosavi-Dezfooli16,DBLP:conf/acl/ChengJM19
}
。图
\ref
{
fig:13-19
}
展示了一个神经机器翻译系统的翻译结果,可以看到,把输入句子中的单词“他”换成“她”会得到完全不同的译文。这时神经机器翻译系统就存在健壮性问题。
...
...
@@ -436,9 +437,9 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
%----------------------------------------------------------------------------------------
\sectionnewpage
\section
{
高级模型训练技术
}
\section
{
学习策略
}
\parinterval
在神经机器翻译中,
经常会使用极大似然估计对模型进行训练。尽管这种方法取得了巨大的成功,但是极大似然估计并不是一种完美的目标函数,它也面临着许多问题。比如,由于极大似然估计并不是用来评价翻译系统性能的指标,这使得即使在极大似然估计中获得了更低的损失,但是在实际的性能评价指标上却不一定会产生更好的结果。针对极大似然估计的问题,研究人员提出了许多不同方法。下面章节我们首先会对极大似然估计的问题进行论述,然后介绍解决对应问题的多种
方法。
\parinterval
在神经机器翻译中,
极大似然估计是最常用的模型参数估计方法。尽管这种方法取得了巨大的成功,但仍然面临着许多问题。比如,似然函数并不是评价翻译系统性能的指标,这使得即使在训练数据上降低似然函数的值,但在应用模型时并不一定可以获得更好的翻译结果。针对极大似然估计的问题,研究人员提出了不同方法。本节首先会对极大似然估计的问题进行论述,然后介绍解决相关问题的不同
方法。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
...
...
@@ -446,11 +447,11 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\subsection
{
极大似然估计的问题
}
\label
{
subsec-15.3.1
}
\parinterval
近几十年来,极大似然估计已成为机器翻译训练中使用最广泛的目标函数。但是,用极大似然估计进行训练存在曝光偏置问题和训练解码评价指标不一致问题,这可能导致在解码阶段模型性能下降
:
\parinterval
极大似然估计已成为机器翻译乃至整个自然语言处理领域中使用最广泛的训练用目标函数。但是,使用极大似然估存在
{
\small\bfnew
{
曝光偏置
}}
\index
{
曝光偏置
}
(Exposure Bias
\index
{
Exposure Bias
}
)问题和训练解码评价指标不一致问题(
{
\color
{
red
}
参考文献!
}
),具体来说
:
\begin{itemize}
\vspace
{
0.5em
}
\item
曝光偏置问题:在训练过程中,模型使用
真实数据进行训练,因此模型在预测一个句子中的下一个单词时,解码器端的输入服从于真实数据的分布。但是在解码过程中,模型则会根据先前的预测结果来生成下一个词,此时模型输入所服从的分布在训练和解码中不一致,如图
\ref
{
fig:13-21
}
所示。由于在训练过程中暴露于真实数据,模型可能会偏向于仅在具有真实数据的情况下才能表现良好,这就是曝光偏置问题
\upcite
{
Bengio2015ScheduledSF,Ranzato2016SequenceLT
}
。
{
\red
(转录时,w改为y,并在图中补充:
$
y
_
1
,y
_
2
,y
_
3
,…, y
_
V
$
表示目标语言词表里的V个词)
}
\item
曝光偏置问题:在训练过程中,模型使用
标注数据进行训练,因此模型在预测下一个单词时,解码器的输入是正确的译文片段,也就是预测单词
$
y
_
j
$
时,系统使用了标准答案
$
\{\mathbi
{
y
}_
1
,...,
\mathbi
{
y
}_{
j
-
1
}
\}
$
作为历史信息。但是对新的句子进行翻译时,预测第
$
j
$
个单词使用的是模型自己生成的前
$
j
-
1
$
个单词,即
$
\{\hat
{
\mathbi
{
y
}}_
1
,...,
\hat
{
\mathbi
{
y
}}_{
j
-
1
}
\}
$
。这意味着,训练时使用的输入数据(目标语言端)与真实翻译时的情况不符,而且二者所对应的概率分布可能会存在较大差异,如图
\ref
{
fig:13-21
}
所示。由于在训练过程中暴露于标注数据,因此模型可能适应了标注数据,在推断阶段无法很好地适应模型自动生成的数据,这就是曝光偏置问题
\upcite
{
Bengio2015ScheduledSF,Ranzato2016SequenceLT
}
。
{
\red
(转录时,w改为y,并在图中补充:
$
y
_
1
,y
_
2
,y
_
3
,…, y
_
V
$
表示目标语言词表里的V 个词)
{
\color
{
blue
}
我上面用的是
$
\mathbi
{
y
}_
j
$
下面图里用的是
$
w
$
,这个没有问题,因为
$
w
$
是词典里的词,但是怎么表达这个事情
}
}
\vspace
{
0.5em
}
%----------------------------------------------
...
...
@@ -462,7 +463,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\end{figure}
%----------------------------------------------
\item
训练
解码评价指标不一致问题:在训练过程中,使用极大似然估计最大化训练集数据出现的概率,而在解码的时候,通常使用如BLEU等外部评价指标来评价模型的性能。理想的情况下,模型应该直接最大化模型性能评价指标,而不是训练集数据出现的概率。但是通常情况下,模型性能评价指标不可导,这使得我们无法直接利用反向传播来优化神经网络,因此在训练时我们只能使用概率作为实际评价指标的替代,这样就会导致训练解码评价指标不一致问题。在机器翻译任务中,这个问题的一个后果就是,更低的困惑度不一定能提高BLEU
。
\item
训练
目标函数与任务评价指标不一致问题:在训练过程中,在训练数据上进行极大似然估计,而在新数据上进行推断的时候,通常使用BLEU等外部评价指标来评价模型的性能。更加理想的情况是,模型应该直接最大化性能评价指标,而不是训练集数据上的似然函数。但是很多情况下,模型性能评价指标不可微分,这使得我们无法直接利用基于梯度的方法来优化模型。在机器翻译任务中,这个问题的一种体现是,训练数据上更低的困惑度不一定能带来BLEU的提升
。
\vspace
{
0.5em
}
\end{itemize}
...
...
@@ -470,9 +471,9 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection
{
非
t
eacher-forcing方法
}
\subsection
{
非
T
eacher-forcing方法
}
\parinterval
所谓
teacher-forcing,即要求模型生成的翻译和
{
\small\bfnew
{
标准答案
}}
\index
{
标准答案
}
(Ground Truth)
\index
{
Ground Truth
}
完全对应。teacher-forcing是一种网络训练方法,对开发机器翻译、文本摘要和图像字幕的深度学习语言模型以及许多其他应用程序至关重要。使用这种方法,模型在训练时每次不是使用上一个时刻的输出作为下一个时刻的输入,而是使用训练数据中的标准答案作为下一个时刻的输入。尽管这一方法可以强制约束模型的翻译结果,加快收敛。但是这也会导致在训练阶段和解码
{
\red
(推断?)
}
阶段中,模型的输入所服从的分布不一致,也就是曝光偏置问题。为了解决以上问题,研究人员提出非teacher-forcing方法,其中
主要包括调度采样和生成对抗网络。
\parinterval
所谓
Teacher-forcing,即要求模型预测的结果和标准答案完全对应。Teacher-forcing是一种深度学习训练策略,在序列处理任务上被广泛使用(
{
\color
{
red
}
参考文献!
}
)。以序列生成任务为例,Teacher-forcing要求模型在训练时不是使用上一个时刻的输出作为下一个时刻的输入,而是使用训练数据中的标准答案作为下一个时刻的输入。显然这会导致曝光偏置问题。为了解决这个问题,可以使用非Teacher-forcing方法,
主要包括调度采样和生成对抗网络。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
...
...
@@ -480,30 +481,30 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\subsubsection
{
1. 调度采样
}
\parinterval
对于曝光偏置问题,一般可以使用束搜索等启发式搜索方法来进行缓解。
但是即使使用束搜索,最终得到的有效序列数量仍然很小,仍然无法解决训练和解码不一致
问题。
\parinterval
对于曝光偏置问题,一般可以使用束搜索等启发式搜索方法来进行缓解。
也就是,训练过程可以模拟推断时的行为。但是即使使用束搜索,最终得到的有效序列数量很小,仍然无法完全解决训练和推断行为不一致的
问题。
\parinterval
对于一个目标序列
$
\seq
{
y
}
=
\{\mathbi
{
y
}_
1
,
\mathbi
{
y
}_
2
,
\ldots
,
\mathbi
{
y
}_
n
\}
$
,在预测第
$
t
$
个单词
$
\mathbi
{
y
}_
t
$
时,训练过程与解码过程之间的主要区别在于:训练过程中使用真实的先前单词
$
\mathbi
{
y
}_{
t
-
1
}$
,而解码过程使用的是来自模型本身的估计
$
\hat
{
\mathbi
{
y
}}_{
t
-
1
}$
。此时可以采取一种调度采样机制,在训练期间随机决定使用
$
\mathbi
{
y
}_{
t
-
1
}$
还是
$
\hat
{
\mathbi
{
y
}}_{
t
-
1
}$
。假设训练时使用的是基于小批量的随机梯度下降方法,对于每个预测训练算法的第
$
i
$
个小批量的
$
\mathbi
{
y
}_
t
$
,随机以概率
$
\epsilon
_
i
$
使用先前真实答案或以概率
${
(
1
-
\epsilon
_
i
)
}^
2
$
使用来自模型本身的估计。该模型的估计可以根据由
$
\funp
{
P
}
(
\mathbi
{
y
}_{
t
-
1
}
|
\mathbi
{
h
}_{
t
-
1
}
)
$
建模的概率分布对单词进行采样来获得,也可以选择模型认为出现概率最大的词
$
s
$
,即
$
\arg\max
_
s
\funp
{
P
}
(
\mathbi
{
y
}_{
t
-
1
}
=
s|
\mathbi
{
h
}_{
t
-
1
}
)
$
,此过程如图
\ref
{
fig:13-22
}
所示
。
\parinterval
对于一个目标序列
$
\seq
{
y
}
=
\{\mathbi
{
y
}_
1
,
\mathbi
{
y
}_
2
,
\ldots
,
\mathbi
{
y
}_
n
\}
$
,在预测第
$
j
$
个单词
$
\mathbi
{
y
}_
j
$
时,训练过程与推断过程之间的主要区别在于:训练过程中使用标注答案
$
\{\mathbi
{
y
}_{
1
}
,...,
\mathbi
{
y
}_{
j
-
1
}
\}
$
,而推断过程使用的是来自模型本身的预测结果
$
\{\hat
{
\mathbi
{
y
}}_{
1
}
,...,
\hat
{
\mathbi
{
y
}}_{
j
-
1
}
\}
$
。此时可以采取一种
{
\small\bfnew
{
调度采样
}}
\index
{
调度采样
}
(Scheduled Sampling
\index
{
Scheduled Sampling
}
)机制(
{
\color
{
red
}
参考文献!
}
),在训练中随机决定使用
$
\mathbi
{
y
}_{
j
-
1
}$
还是
$
\hat
{
\mathbi
{
y
}}_{
j
-
1
}$
。 假设训练时使用的是基于小批量的随机梯度下降方法,对于第
$
i
$
个批次中序列每一个位置的预测,以概率
$
\epsilon
_
i
$
使用标准答案或以概率
${
(
1
-
\epsilon
_
i
)
}^
2
$
使用来自模型本身的预测。具体到序列中的每一个位置
$
j
$
,可以根据模型预测
$
\hat
{
\mathbi
{
y
}}_{
t
-
1
}$
单词的概率进行采样。在得到若干个单词之后,同
$
\mathbi
{
y
}_{
j
-
1
}$
一起以
$
\epsilon
_
i
$
控制的调度策略随机送入位置
$
j
$
作为输入,此过程如图
\ref
{
fig:13-22
}
所示。这个过程与束搜索可以很好的融合
。
%----------------------------------------------
\begin{figure}
[htp]
\centering
\includegraphics
[scale=1]
{
./Chapter13/Figures/figure-of-scheduling-sampling-method.png
}
\caption
{
“调度采样”
方法的示意图
}
\caption
{
调度采样
方法的示意图
}
\label
{
fig:13-22
}
\end{figure}
%----------------------------------------------
\parinterval
当
$
\epsilon
_
i
=
1
$
时,模型的训练与以前完全相同,而当
$
\epsilon
_
i
=
0
$
时,模型的训练与
解码时使用的设置相同。在这里使用到了一种
{
\small\bfnew
{
课程学习
}}
\index
{
课程学习
}
(curriculum learning)
\index
{
curriculum learning
}
策略,该策略认为应从一种学习策略过渡到另一种学习策略:在训练开始时,由于模型训练不充分,因此如果从模型中随机采样,会导致收敛速度非常慢。因此,在模型训练的前期,通常会选择使用真实的先前单词
$
\mathbi
{
y
}_{
t
-
1
}$
。在模型训练的后期,
$
\epsilon
_
i
$
应该更倾向于使用来自模型本身的估计
$
\hat
{
\mathbi
{
y
}}_{
t
-
1
}$
,这种训练方式也是与真实的推理情况相对应的
。
\parinterval
当
$
\epsilon
_
i
=
1
$
时,模型的训练与以前完全相同,而当
$
\epsilon
_
i
=
0
$
时,模型的训练与
推断使用的策略完全一样。在这里使用到了一种
{
\small\bfnew
{
课程学习
}}
\index
{
课程学习
}
(Curriculum Learning)
\index
{
curriculum learning
}
策略(
{
\color
{
red
}
参考文献!
}
),该策略认为应从一种学习策略过渡到另一种学习策略:在训练开始时,由于模型训练不充分,因此如果从模型中随机采样,会导致收敛速度非常慢。因此,在模型训练的前期,通常会选择使用标准答案
$
\{\mathbi
{
y
}_{
1
}
,...,
\mathbi
{
y
}_{
j
-
1
}
\}
$
。在模型训练的后期,应该更倾向于使用自模型本身的预测
$
\{\hat
{
\mathbi
{
y
}}_{
1
}
,...,
\hat
{
\mathbi
{
y
}}_{
j
-
1
}
\}
$
。关于课程学习的内容在
\ref
{
sec:curriculum-learning
}
节还会有详细介绍
。
\parinterval
在使用调度策略时,需要调整关于
$
i
$
的函数来降低
$
\epsilon
_
i
$
,与梯度下降方法中降低学习率的方式相似
,调度策略可以采取
如下几种方式:
\parinterval
在使用调度策略时,需要调整关于
$
i
$
的函数来降低
$
\epsilon
_
i
$
,与梯度下降方法中降低学习率的方式相似
。调度策略可以采用
如下几种方式:
\begin{itemize}
\vspace
{
0.5em
}
\item
线性衰减:
$
\epsilon
_
i
=
\max
(
\epsilon
,k
-
ci
)
$
,其中
$
0
\leqslant
\epsilon
<
1
$
,是要提供给模型的最小数值,而k和c提供
衰减的偏移量和斜率,取决于预期的收敛速度。
\item
线性衰减:
$
\epsilon
_
i
=
\max
(
\epsilon
,k
-
ci
)
$
,其中
$
\epsilon
$
(
$
0
\leqslant
\epsilon
<
1
$
)是
$
\epsilon
_
i
$
的最小数值,而
$
k
$
和
$
c
$
代表
衰减的偏移量和斜率,取决于预期的收敛速度。
\vspace
{
0.5em
}
\item
指数衰减:
$
\epsilon
_
i
=
k
^
i
$
,其中
$
k
$
是一个常数,一般为
$
k <
1
$
,取决于预期的收敛速度
。
\item
指数衰减:
$
\epsilon
_
i
=
k
^
i
$
,其中
$
k
$
是一个常数,一般为
$
k <
1
$
。
\vspace
{
0.5em
}
\item
反向Sigmoid 衰减:
$
\epsilon
_
i
=
k
/(
k
+
\exp
(
i
/
k
))
$
,其中
$
k
\geqslant
1
$
,取决于预期的收敛速度
。
\item
反向Sigmoid 衰减:
$
\epsilon
_
i
=
k
/(
k
+
\exp
(
i
/
k
))
$
,其中
$
k
\geqslant
1
$
。
\vspace
{
0.5em
}
\end{itemize}
...
...
@@ -513,76 +514,76 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\subsubsection
{
2. 生成对抗网络
}
\parinterval
调度采样解决曝光偏置的方法是:把模型
自己生成的结果当成正确答案用来训练。但是这样导致的问题就是模型会把错误的结果当成正确的来学习,影响了模型最终的效果。解决这个问题的关键就是如何对模型自己生成的结果进行评价。如果生成好的结果,那么我们使用它进行模型训练,否则就不使用。
{
\small\bfnew
{
生成对抗网络
}}
\index
{
生成对抗网络
}
(Generative Adversarial Networks
\index
{
Generative Adversarial Networks
}
,GAN)
就是这样一种技术,它引入了一个额外的模型(判别器)来对原有模型(生成器)的生成结果进行评价,并根据评价结果同时训练两个模型。
\parinterval
调度采样解决曝光偏置的方法是:把模型
历史预测的结果作为输入,并用于预测下一时刻的输出。但是,如果模型预测的结果中有错误,再使用错误的结果预测未来的序列也会产生问题。这里面的核心问题是,如何知道模型预测的好与坏,进而在训练中有效的使用它们。如果生成好的结果,那么可以使用它进行模型训练,否则就不使用。生成对抗网络
就是这样一种技术,它引入了一个额外的模型(判别器)来对原有模型(生成器)的生成结果进行评价,并根据评价结果同时训练两个模型。
\parinterval
生成对抗网络采用了对抗的训练架构并将其命名为
{
\small\bfnew
{
对抗神经机器翻译
}}
\index
{
对抗神经机器翻译
}
(Adversarial-NMT)
\index
{
Adversarial-NMT
}
,其总体框架如图
\ref
{
fig:13-23
}
所示,
{
\red
其中“Ref”是“Reference”的缩写,表示标准答案,而“ Hyp”是“Hypothesis”的缩写,表示模型翻译句子结果(准备直接吧图中英文改为中文,然后把这句话删掉)
}
。所有黄色部分表示神经机器翻译模型G,该模型将源语言句子
$
\seq
{
x
}$
映射为目标语言句子。红色部分是对抗网络D,该网络预测目标语言句子是否是源语言句子
$
\seq
{
x
}$
的真实翻译。G和D相互对抗,同时生成翻译结果
$
\seq
{
y
}
'
$
来训练D,以及生成奖励信号来通过策略梯度训练G
。
\parinterval
在
\ref
{
sec:adversarial-examples
}
已经提到了生成对抗网络,这里进行一些展开。 在机器翻译中,基于对抗神经网络的架构被命名为
{
\small\bfnew
{
对抗神经机器翻译
}}
\index
{
对抗神经机器翻译
}
(Adversarial-NMT)
\index
{
Adversarial-NMT
}
(
{
\color
{
red
}
参考文献!
}
)。其总体框架如图
\ref
{
fig:13-23
}
所示,
{
\red
其中“Ref”是“Reference”的缩写,表示标准答案,而“ Hyp”是“Hypothesis”的缩写,表示模型翻译句子结果(准备直接吧图中英文改为中文,然后把这句话删掉)
}
。黄色部分表示神经机器翻译模型
$
G
$
,该模型将源语言句子
$
\seq
{
x
}$
映射为目标语言句子。红色部分是对抗网络
$
D
$
,该网络预测目标语言句子是否是源语言句子
$
\seq
{
x
}$
的真实翻译。
$
G
$
和
$
D
$
相互对抗,同时生成翻译结果
$
\seq
{
y
}
'
$
来训练
$
D
$
,并生成奖励信号来通过策略梯度训练
$
G
$
。
%----------------------------------------------
\begin{figure}
[htp]
\centering
\includegraphics
[scale=1]
{
./Chapter13/Figures/figure-framework-of-Adversarial-Neural-machine-translation.png
}
\caption
{
对抗神经机器翻译框架图
}
\caption
{
对抗神经机器翻译框架图
(
{
\color
{
red
}
最好别抄,用自己的理解画
}
)
}
\label
{
fig:13-23
}
\end{figure}
%----------------------------------------------
\parinterval
对于
用于训练的双语句对
$
(
\seq
{
x
}
=
\{\mathbi
{
x
}_
1
,
\mathbi
{
x
}_
2
,
\ldots
,
\mathbi
{
x
}_
m
\}
,
\seq
{
y
}
=
\{\mathbi
{
y
}_
1
,
\mathbi
{
y
}_
2
,
\ldots
,
\mathbi
{
y
}_
n
\}
)
$
,其中
$
\mathbi
{
x
}_
i
$
是源句子中的第
$
i
$
个单词,
$
\mathbi
{
y
}_
j
$
是目标句子中的第
$
j
$
个单词。令
$
\seq
{
y
}
'
$
表示神经机器翻译系统对源语言句子
$
\mathbi
{
x
}$
的解码结果。实际上,对抗神经机器翻译的训练目标就是强制
$
\seq
{
y
}
'
$
与
$
\seq
{
y
}$
相似。在理想情况下,
$
\seq
{
y
}
'
$
与人类的翻译结果
$
\seq
{
y
}$
非常相似,以至于人类也无法分辨
$
\seq
{
y
}
'
$
是由机器还是人类产生的。为了实现这一目标,需要引入一个额外的对抗网络
\upcite
{
DBLP:conf/nips/GoodfellowPMXWOCB14
}
。该对抗网络的目标是将人类翻译与机器翻译区分开来,神经机器翻译模型G试图产生类似于人类翻译的目标句子,以欺骗对抗网络
。
\parinterval
对于
训练用双语句对
$
(
\seq
{
x
}
,
\seq
{
y
}
)=(
\{\mathbi
{
x
}_
1
,
\mathbi
{
x
}_
2
,
\ldots
,
\mathbi
{
x
}_
m
\}
,
\{\mathbi
{
y
}_
1
,
\mathbi
{
y
}_
2
,
\ldots
,
\mathbi
{
y
}_
n
\}
)
$
,其中
$
\mathbi
{
x
}_
i
$
是源句子中的第
$
i
$
个单词的表示向量,
$
\mathbi
{
y
}_
j
$
是目标句子中的第
$
j
$
个单词的表示向量。令
$
\seq
{
y
}
'
$
表示神经机器翻译系统对源语言句子
$
\mathbi
{
x
}$
的翻译结果。实际上,对抗神经机器翻译的训练目标就是强制
$
\seq
{
y
}
'
$
与
$
\seq
{
y
}$
相似。在理想情况下,
$
\seq
{
y
}
'
$
与人类标注的答案
$
\seq
{
y
}$
非常相似,以至于人类也无法分辨
$
\seq
{
y
}
'
$
是由机器还是人类产生的
。
\parinterval
在对抗神经机器翻译中,原始的神经机器翻译模型为生成网络,其训练由一个对抗网络协助。对抗网络的目的
是将神经机器翻译模型生成的翻译结果与人的翻译结果区分开,而生成网络的目标是产生高质量的翻译,以欺骗对抗网络。生成网络和对抗网络作为对手,由策略梯度方法来共同训练。为了使得生成网络和对抗网络能够提高彼此性能,可以通过学习人为产生的正例和从神经机器翻译取得的负例来提高对手的辨别力。通过这种方式,神经机器翻译的结果可以尽可能接近真实答案。
\parinterval
为了实现这一目标,需要引入一个额外的对抗网络
\upcite
{
DBLP:conf/nips/GoodfellowPMXWOCB14
}
。在这个框架中,原始的神经机器翻译模型为生成网络,其训练由对抗网络协助。对抗网络的目标
是将神经机器翻译模型生成的翻译结果与人的翻译结果区分开,而生成网络的目标是产生高质量的翻译,以欺骗对抗网络。生成网络和对抗网络作为对手,由策略梯度方法来共同训练。为了使得生成网络和对抗网络能够提高彼此性能,可以通过学习人为产生的正例和从神经机器翻译取得的负例来提高对手的辨别力。通过这种方式,神经机器翻译的结果可以尽可能接近真实答案。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection
{
增强
学习方法
}
\subsection
{
强化
学习方法
}
\parinterval
增强学习方法可以同时解决
\ref
{
subsec-15.3.1
}
提到的曝光偏置问题和训练解码评价指标不一致问题,本节中涉及到的方法主要包括基于策略的增强学习方法和基于演员-评论家的增强学习方法
。
\parinterval
{
\small\bfnew
{
强化学习
}}
\index
{
强化学习
}
(Reinforcement Learning,RL
\index
{
Reinforcement Learning,RL
}
)方法是机器学习中的经典方法,它可以同时解决
\ref
{
subsec-15.3.1
}
节提到的曝光偏置问题和训练- 推断评价指标不一致问题。本节主要介绍基于策略的方法和基于演员-评论家的方法(
{
\color
{
red
}
参考文献!
}
)
。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection
{
1. 基于策略的
增强
学习方法
}
\subsubsection
{
1. 基于策略的
强化
学习方法
}
\parinterval
与传统的极大似然估计不同,
{
\small\bfnew
{
最小风险训练
}}
\index
{
最小风险训练
}
(Minimum Risk Training
\index
{
Minimum Risk Training
}
,MRT)方法引入了评价指标作为损失函数,目标是将训练数据在测试数据上的预期风险降至最低
\upcite
{
DBLP:conf/acl/ShenCHHWSL16
}
。
\parinterval
{
\small\bfnew
{
最小风险训练
}}
\index
{
最小风险训练
}
(Minimum Risk Training
\index
{
Minimum Risk Training
}
,MRT)可以被看作是一种基于策略的方法。与传统的极大似然估计不同,最小风险训练引入了评价指标作为损失函数,目标是将模型的预期风险降至最低,这里预期风险通常用风险函数的期望表示
\upcite
{
DBLP:conf/acl/ShenCHHWSL16
}
。
\parinterval
最小风险训练的训练目标是最小化训练数据
$
\{
(
x
_
1
,
\widetilde
{
y
}_
1
)
,...,
(
x
_
N,
\widetilde
{
y
}_
N
)
\}
$
上的风险
$
\funp
{
R
}
(
\theta
)
$
,如公式
\eqref
{
eq:13-13
}
所示:
\parinterval
MRT的训练目标是最小化训练数据上的风险,风险定义为相对于后验分布的预期损失,其计算方式如公式
\eqref
{
eq:13-13
}
所示:
\begin{eqnarray}
\hat
{
\theta
}_{
\textrm
{
MRT
}}
&
=
&
\arg\max
_{
\theta
}
\{\funp
{
R
}
(
\theta
)
\}
\\
\funp
{
R
}
(
\theta
)
&
=
&
\sum
_{
i=1
}^
n
\mathbb
{
E
}_{
\mathbi
{
y
}_
i|
\mathbi
{
x
}_
i;
\theta
}
[
\vartriangle
(
\mathbi
{
y
}_
i
,
\widetilde
{
\mathbi
{
y
}}
)]
\nonumber
\\
&
=
&
\sum
_{
i=1
}^
n
\sum
_{
\mathbi
{
y
}_
i
\in
\chi
(
\mathbi
{
x
}_
i)
}
\funp
{
P
}
(
\mathbi
{
y
}_
i|
\mathbi
{
x
}_
i;
\theta
)
\vartriangle
(
\mathbi
{
y
}_
i
,
\widetilde
{
\mathbi
{
y
}}
)
\funp
{
R
}
(
\theta
)
&
=
&
\sum
_{
k=1
}^
N
\mathbb
{
E
}_{
\mathbi
{
y
}_
k|
\mathbi
{
x
}_
k;
\theta
}
[
\vartriangle
(
\mathbi
{
y
}_
k
,
\widetilde
{
\mathbi
{
y
}}
)]
\nonumber
\\
&
=
&
\sum
_{
k=1
}^
N
\sum
_{
\mathbi
{
y
}_
k
\in
\chi
(
\mathbi
{
x
}_
k)
}
\funp
{
P
}
(
\mathbi
{
y
}_
k|
\mathbi
{
x
}_
k;
\theta
)
\vartriangle
(
\mathbi
{
y
}_
k
,
\widetilde
{
\mathbi
{
y
}}
)
\label
{
eq:13-13
}
\end{eqnarray}
\noindent
此处,
$
\{\mathbi
{
x
}_
i,
\widetilde
{
\mathbi
{
y
}}
\}
$
是训练数据中第
$
i
$
个句子对,
$
\mathbi
{
y
}_
i
$
是模型预测输出,
$
\chi
(
\mathbi
{
x
}_
i
)
$
是对
$
\mathbi
{
x
}_
i
$
的所有候选翻译的集合,损失函数
$
\vartriangle
(
\mathbi
{
y
}_
i,
\widetilde
{
\mathbi
{
y
}}
)
$
用来衡量模型预测
$
\mathbi
{
y
}_
i
$
与标准答案
$
\widetilde
{
\mathbi
{
y
}}$
间的差异,损失函数可以是负平滑句子级别的评估指标,例如BLEU
\upcite
{
DBLP:conf/acl/PapineniRWZ02
}
,NIST
\upcite
{
doddington2002automatic
}
,TER
\upcite
{
snover2006study
}
或METEOR
\upcite
{
lavie2009meteor
}
。在MRT中,对模型参数
$
\theta
_
i
$
的偏导数公式
\eqref
{
eq:13-14
}
所示,由于无需对
$
\vartriangle
(
\mathbi
{
y
}_
i,
\widetilde
{
\mathbi
{
y
}}
)
$
进行微分,因此MRT允许任意不可微的损失函数。
\noindent
这里,
$
\mathbi
{
y
}_
i
$
是模型预测的译文,
$
\chi
(
\mathbi
{
x
}_
i
)
$
是
$
\mathbi
{
x
}_
i
$
所对应的所有候选翻译的集合,损失函数
$
\vartriangle
(
\mathbi
{
y
}_
i,
{
\mathbi
{
y
}}
)
$
用来衡量模型预测
$
\mathbi
{
y
}_
i
$
与标准答案
$
\widetilde
{
\mathbi
{
y
}}$
间的差异,损失函数一般用翻译质量评价指标定义,例如,BLEU,TER等。在MRT中,对模型参数
$
\theta
$
的偏导数公式
\eqref
{
eq:13-14
}
所示,
\begin{eqnarray}
\frac
{
\partial
\funp
{
R
}
(
\theta
)
}{
\partial
\theta
_
k
}
&
=
&
\sum
_{
i=1
}^
n
\mathbb
{
E
}_{
\mathbi
{
y
}_
i|
\mathbi
{
x
}_
i;
\theta
}
[
\vartriangle
(
\mathbi
{
y
}_
i,
\widetilde
{
\mathbi
{
y
}}
)
\times
\sum
_
j
^
m
\frac
{
\partial
\funp
{
P
}
(
\widetilde
{
\mathbi
{
y
}}^
j|
\mathbi
{
x
}_
i,
\widetilde
{
\mathbi
{
y
}}^{
<m
}
;
\theta
)/
\partial
\theta
_
k
}{
\funp
{
P
}
(
\widetilde
{
\mathbi
{
y
}}^
j|
\mathbi
{
x
}_
i,
\widetilde
{
\mathbi
{
y
}}^{
<m
}
;
\theta
)
}
]
\frac
{
\partial
\funp
{
R
}
(
\theta
)
}{
\partial
\theta
}
&
=
&
\sum
_{
k=1
}^
N
\mathbb
{
E
}_{
\mathbi
{
y
}_
k|
\mathbi
{
x
}_
k;
\theta
}
[
\vartriangle
(
\mathbi
{
y
}_
k,
\widetilde
{
\mathbi
{
y
}}
)
\times
\sum
_{
j=1
}^{
|
\widetilde
{
y
}_
k|
}
\frac
{
\partial
\funp
{
P
}
(
\widetilde
{
\mathbi
{
y
}}_{
k,j
}
|
\mathbi
{
x
}_
k,
\widetilde
{
\mathbi
{
y
}}_{
k,<m
}
;
\theta
)/
\partial
\theta
}{
\funp
{
P
}
(
\widetilde
{
\mathbi
{
y
}}_{
k,j
}
|
\mathbi
{
x
}_
k,
\widetilde
{
\mathbi
{
y
}}_{
k,<j
}
;
\theta
)
}
]
\label
{
eq:13-14
}
\end{eqnarray}
\noindent
其中,
$
\widetilde
{
\mathbi
{
y
}}^
j
$
表示第i个句子的预测的第
$
j
$
个词,
$
\theta
_
k
$
表示第
$
k
$
个模型的参数
\noindent
其中,
$
\widetilde
{
\mathbi
{
y
}}_{
k,j
}$
表示第
$
i
$
个样本的第
$
j
$
个目标语言单词,
$
\widetilde
{
\mathbi
{
y
}}_{
k,<m
}$
表示第
$
i
$
个样本所有位置小于
$
m
$
的目标语言单词。公式
\eqref
{
eq:13-14
}
使用了
{
\small\bfnew
{
策略梯度
}}
\index
{
策略梯度
}
(Policy Gradient
\index
{
Policy Gradient
}
)的手段将
$
\vartriangle
(
\mathbi
{
y
}_
i,
\widetilde
{
\mathbi
{
y
}}
)
$
提到微分操作之外(
{
\color
{
red
}
引用策略梯度的论文!
}
)。这样,就无需对
$
\vartriangle
(
\mathbi
{
y
}_
i,
\widetilde
{
\mathbi
{
y
}}
)
$
进行微分,因此最小风险训练允许任意不可微的损失函数,包括BLEU等常用的评价函数。
\parinterval
相比于最大似然估计,最小风险训练有着以下优点:
\begin{itemize}
\vspace
{
0.5em
}
\item
MRT
通过使用模型自身产生的数据进行训练,从而解决了曝光偏置问题。
\item
最小风险训练
通过使用模型自身产生的数据进行训练,从而解决了曝光偏置问题。
\vspace
{
0.5em
}
\item
MRT通过直接优化BLEU等解码中实际使用的评价指标,从而解决了训练解码
评价指标不一致问题。
\item
最小风险训练通过直接优化BLEU等评价指标,从而解决了训练-推断
评价指标不一致问题。
\vspace
{
0.5em
}
\item
由于MRT方法中只涉及到模型输出而不涉及具体的模型结构,因此其对体系结构是透明的,可以应用于任意的端到端NMT
模型。
\item
最小风险训练方法只涉及到模型输出而不涉及具体的模型结构,因此其对体系结构是透明的,可以应用于任意的机器翻译
模型。
\vspace
{
0.5em
}
\end{itemize}
\parinterval
MRT显著改善了机器翻译任务的性能
\upcite
{
bahdanau2014neural
}
,且已广泛用于常规SMT
\upcite
{
koehn2003statistical,smith2006minimum,he2012maximum
}
和基于深度学习的MT
\upcite
{
DBLP:conf/acl/GaoHYD14
}
。
\parinterval
表
\ref
{
fig:13-24
}
的右半边展示了优化过程中的四个模型,顺序为从差到好。
{
\red
根据和标准答案
$
\widetilde
{
\mathbi
{
y
}}_
i
$
计算出的损失函数,
}
从上到下的三个模型预测输出我们用
$
\mathbi
{
y
}_
1
$
,
$
\mathbi
{
y
}_
2
$
和
$
\mathbi
{
y
}_
3
$
表示(
$
\mathbi
{
y
}_
1
$
:“今天 天气 很 好”,
$
\mathbi
{
y
}_
2
$
:“今天 天气 不错”,
$
\mathbi
{
y
}_
3
$
:“今天 天 很 晴朗”),显然
$
\mathbi
{
y
}_
1
$
是最好的候选,
$
\mathbi
{
y
}_
3
$
是次优的候选,
$
\mathbi
{
y
}_
2
$
是最差的候选,
$
\mathbi
{
y
}_
1
>
\mathbi
{
y
}_
3
>
\mathbi
{
y
}_
2
$
。第一列的模型以和标准答案相反的顺序排序所有候选结果,
$
\mathbi
{
y
}_
2
>
\mathbi
{
y
}_
3
>
\mathbi
{
y
}_
1
$
,因此他得到了最高的风险分数-0.50,第二列的模型相对于第一列的模型得到了一个更好的分数-0.61,第三列得到的分数最高,为-0.71。通过将概率质量集中在
$
\mathbi
{
y
}_
1
$
上,可以进一步降低风险。通过最大程度地减少训练数据的风险分数,我们期望获得一个与标准答案非常相关的模型。
\parinterval
表
\ref
{
fig:13-24
}
展示了四个模型及所对应的损失函数
$
\vartriangle
(
\mathbi
{
y
}_
i,
{
\mathbi
{
y
}}
)
$
的值,四个模型顺序为从差到好。假设有三个译文:
$
\mathbi
{
y
}_
1
=
$
“今天 天气 很 好”,
$
\mathbi
{
y
}_
2
=
$
“今天 天气 不错”,
$
\mathbi
{
y
}_
3
=
$
“今天 天 很 晴朗”。显然
$
\mathbi
{
y
}_
1
$
是最好的候选,
$
\mathbi
{
y
}_
3
$
是次优的候选,
$
\mathbi
{
y
}_
2
$
是最差的候选,于是按翻译质量好坏的排序为
$
\mathbi
{
y
}_
1
>
\mathbi
{
y
}_
3
>
\mathbi
{
y
}_
2
$
。模型1以和标准答案相反的顺序排序所有候选结果,
$
\mathbi
{
y
}_
2
>
\mathbi
{
y
}_
3
>
\mathbi
{
y
}_
1
$
,因此他得到了最高的风险分数-0.50,模型2相对于第一列的模型得到了一个更好的分数-0.61,模型3得到的分数最高,为-0.71。通过将概率质量集中在
$
\mathbi
{
y
}_
1
$
上,可以进一步降低风险。通过最大程度地减少风险,可以期望获得一个模型,它的预测与标准答案最一致。
%----------------------------------------------
\begin{figure}
[htp]
\centering
\includegraphics
[scale=1]
{
./Chapter13/Figures/figure-minimum-risk-training-calculation-process.png
}
\caption
{
最小风险训练计算过程
}
\caption
{
不同模型预测结果所对应的风险
}
\label
{
fig:13-24
}
\end{figure}
%----------------------------------------------
...
...
@@ -591,53 +592,55 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection
{
2. 基于演员-评论家的增强学习方法
}
\subsubsection
{
2. 基于演员-评论家的强化学习方法
}
\parinterval
基于策略的强化学习是要寻找一个策略
$
\funp
{
p
}
(
a|
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j
}
,
\mathbi
{
x
}
)
$
,使得该策略选择的行动
$
a
$
未来可以获得的奖励期望(也被称为动作价值函数)最大化(
{
\color
{
red
}
句子里的专有名词要加黑,加英文
}
)。这个过程通常用函数
$
Q
$
来描述:
\parinterval
对于基于策略的增强学习方法来说,它的目标是寻找一个策略
$
\funp
{
p
}
(
\textrm
{
a
}
|
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
}
,
\mathbi
{
x
}
)
$
,使得该策略选择的行动a未来可以获得的奖励期望(也被称为动作价值函数)最大化:
\begin{eqnarray}
\funp
{
Q
}
(
\textrm
{
a
}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
}
,
\widetilde
{
\mathbi
{
y
}}
)
&
=
&
\mathbb
{
E
}_{
\hat
{
\mathbi
{
y
}}_{
t+1
\ldots
T
}
\sim
\funp
{
p
}
(
\textrm
{
a
}
|
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
}
\textrm
{
a
}
,
\mathbi
{
x
}
)
}
[
\funp
{
r
}_
t(
\textrm
{
a
}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t-1
}
,
\widetilde
{
\mathbi
{
y
}}
)
\nonumber
\\
&
+
&
\sum
_{
i=t+1
}^
T
\funp
{
r
}_
i(
\hat
{
\mathbi
{
y
}}_
i;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
i-1
}
\textrm
{
a
}
\hat
{
\mathbi
{
y
}}_{
t
+1
\ldots
i
}
,
\widetilde
{
\mathbi
{
y
}}
)]
\funp
{
Q
}
(
a;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j
}
,
\widetilde
{
\mathbi
{
y
}}
)
&
=
&
\mathbb
{
E
}_{
\hat
{
\mathbi
{
y
}}_{
j+1
\ldots
J
}
\sim
\funp
{
p
}
(a|
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j
}
a,
\mathbi
{
x
}
)
}
[
\funp
{
r
}_
j(a;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j-1
}
,
\widetilde
{
\mathbi
{
y
}}
) +
\nonumber
\\
&
&
\sum
_{
i=j+1
}^
J
\funp
{
r
}_
i(
\hat
{
\mathbi
{
y
}}_
i;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
i-1
}
a
\hat
{
\mathbi
{
y
}}_{
j
+1
\ldots
i
}
,
\widetilde
{
\mathbi
{
y
}}
)]
\label
{
eq:13-35
}
\end{eqnarray}
\noindent
其中
$
\funp
{
r
}_
t
(
\textrm
{
a
}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
-
1
}
,
\widetilde
{
\mathbi
{
y
}}
)
$
是
$
t
$
时刻做出行动a获得的奖励,
$
\mathbi
{
x
}$
是源语句子,
$
\widetilde
{
\mathbi
{
y
}}$
是正确答案,
$
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
}$
是策略
$
\funp
{
p
}$
产生的译文的前
$
t
$
个词,
{
\red
$
T
$
是
}
。其(在一个源语句子X上的)定义的目标函数可以表示为:
\noindent
其中,
$
\funp
{
r
}_
j
(
\textrm
{
a
}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j
-
1
}
,
\widetilde
{
\mathbi
{
y
}}
)
$
是
$
j
$
时刻做出行动
$
a
$
获得的奖励,
$
\mathbi
{
x
}$
是源语言句子,
$
\widetilde
{
\mathbi
{
y
}}$
是正确译文,
$
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j
}$
是策略
$
\funp
{
p
}$
产生的译文的前
$
j
$
个词,
{
\red
$
J
$
是???
}
。其(在一个源语句子
$
x
$
上的)定义的目标为:
\begin{eqnarray}
\
max
_{
\funp
{
p
}}
\mathbb
{
E
}_{
\hat
{
\mathbi
{
y
}}
\sim
\funp
{
p
}
(
\hat
{
\mathbi
{
y
}}
|
\mathbi
{
x
}
)
}
\sum
_{
t=1
}^
T
\sum
_{
\textrm
{
a
}
\in
\textrm
{
A
}}
\funp
{
p
}
(
\textrm
{
a
}
|
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
}
,
\mathbi
{
x
}
)
\funp
{
Q
}
(
\textrm
{
a
}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
}
,
\widetilde
{
\mathbi
{
y
}}
)
\
hat
{
p
}
&
=
&
\max
_{
\funp
{
p
}}
\mathbb
{
E
}_{
\hat
{
\mathbi
{
y
}}
\sim
\funp
{
p
}
(
\hat
{
\mathbi
{
y
}}
|
\mathbi
{
x
}
)
}
\sum
_{
j=1
}^
J
\sum
_{
a
\in
A
}
\funp
{
p
}
(a|
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j
}
,
\mathbi
{
x
}
)
\funp
{
Q
}
(a;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j
}
,
\widetilde
{
\mathbi
{
y
}}
)
\label
{
eq:13-15
}
\end{eqnarray}
\
parinterval
其中,
\textrm
{
A
}
所有可能的行动组成的空间,也就是词表
$
V
$
。上式表示,计算动作价值函数
$
\funp
{
Q
}$
需要枚举
$
t
$
时刻以后所有可能句子,而可能的句子数目是随着其长度指数级增长,因此我们只能估计
$
\funp
{
Q
}$
。基于策略的增强学习方法,如最小风险训练(风险
$
\vartriangle
=-
\funp
{
Q
}$
)等都使用了采样的方法来估计
$
\funp
{
Q
}$
。尽管采样估计的结果是
$
\funp
{
Q
}$
的无偏估计,但是它的缺点在于估计的方差比较大。而
$
\funp
{
Q
}$
直接关系到梯度更新的大小,不稳定的数值会导致网络
更新不稳定,难以优化。
\
noindent
其中,
$
A
$
表示所有可能的行动组成的空间,也就是词表
$
V
$
。公式
\eqref
{
eq:13-15
}
的含义是,计算动作价值函数
$
\funp
{
Q
}$
需要枚举
$
j
$
时刻以后所有可能的序列,而可能的序列数目是随着其长度呈指数级增长,因此只能估计
$
\funp
{
Q
}$
。基于策略的强化学习方法,如最小风险训练(风险
$
\vartriangle
=-
\funp
{
Q
}$
)等都使用了采样的方法来估计
$
\funp
{
Q
}$
。尽管采样估计的结果是
$
\funp
{
Q
}$
的无偏估计,但是它的缺点在于估计的方差比较大。而
$
\funp
{
Q
}$
直接关系到梯度更新的大小,不稳定的数值会导致模型
更新不稳定,难以优化。
\parinterval
为了避免采样的开销和随机性带来的不稳定,基于
演员-评论家的增强学习方法
\upcite
{
DBLP:conf/iclr/BahdanauBXGLPCB17
}
引入一个可学习的函数
$
\hat
{
\funp
{
Q
}}$
,通过函数
$
\hat
{
\funp
{
Q
}}$
来逼近动作价值函数
$
\funp
{
Q
}$
。但是由于
$
\hat
{
\funp
{
Q
}}$
是人工设计的一个函数,该函数有着自身的偏置,因此
$
\hat
{
\funp
{
Q
}}$
不是
$
\funp
{
Q
}$
的一个无偏估计,所以使用
$
\hat
{
\funp
{
Q
}}$
来指导
$
\funp
{
p
}$
的优化无法到达理论上的最优解。尽管如此,得益于神经网络强大的拟合能力,基于演员-评论家的增强
学习方法仍更具优势。
\parinterval
为了避免采样的开销和随机性带来的不稳定,基于
{
\small\bfnew
{
演员-评论家
}}
\index
{
演员-评论家
}
(Actor-critic
\index
{
Actor-critic
}
)的强化学习方法
\upcite
{
DBLP:conf/iclr/BahdanauBXGLPCB17
}
引入一个可学习的函数
$
\hat
{
\funp
{
Q
}}$
,通过函数
$
\hat
{
\funp
{
Q
}}$
来逼近动作价值函数
$
\funp
{
Q
}$
。但是由于
$
\hat
{
\funp
{
Q
}}$
是人工设计的一个函数,该函数有着自身的偏置,因此
$
\hat
{
\funp
{
Q
}}$
不是
$
\funp
{
Q
}$
的一个无偏估计,所以使用
$
\hat
{
\funp
{
Q
}}$
来指导
$
\funp
{
p
}$
的优化无法到达理论上的最优解。尽管如此,得益于神经网络强大的拟合能力,基于演员-评论家的强化
学习方法仍更具优势。
\parinterval
对于基于演员-评论家的
增强
学习方法,演员就是策略
$
\funp
{
p
}$
,而评论家就是动作价值函数
$
\funp
{
Q
}$
的估计
$
\hat
{
\funp
{
Q
}}$
。对于演员,它的目标函数如下:
\parinterval
对于基于演员-评论家的
强化
学习方法,演员就是策略
$
\funp
{
p
}$
,而评论家就是动作价值函数
$
\funp
{
Q
}$
的估计
$
\hat
{
\funp
{
Q
}}$
。对于演员,它的目标函数如下:
\begin{eqnarray}
\
max
_{
\funp
{
p
}}
\mathbb
{
E
}_{
\hat
{
\mathbi
{
y
}}
\sim
\funp
{
p
}
(
\hat
{
\mathbi
{
y
}}
|
\mathbi
{
x
}
)
}
\sum
_{
t=1
}^
T
\sum
_{
\textrm
{
a
}
\in
\textrm
{
A
}}
\funp
{
p
}
(
\textrm
{
a
}
|
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
}
,
\mathbi
{
x
}
)
\hat
{
\funp
{
Q
}}
(
\textrm
{
a
}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
}
,
\widetilde
{
\mathbi
{
y
}}
)
\
hat
{
p
}
&
=
&
\max
_{
\funp
{
p
}}
\mathbb
{
E
}_{
\hat
{
\mathbi
{
y
}}
\sim
\funp
{
p
}
(
\hat
{
\mathbi
{
y
}}
|
\mathbi
{
x
}
)
}
\sum
_{
j=1
}^
J
\sum
_{
a
\in
A
}
\funp
{
p
}
(a|
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j
}
,
\mathbi
{
x
}
)
\hat
{
\funp
{
Q
}}
(a;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j
}
,
\widetilde
{
\mathbi
{
y
}}
)
\label
{
eq:13-16
}
\end{eqnarray}
\parinterval
与公式
\eqref
{
eq:13-15
}
相比可以发现,基于演员-评论家的增强学习方法与基于策略的增强学习方法类似,公式
\eqref
{
eq:13-16
}
对动作价值函数
$
\funp
{
Q
}$
的估计从采样换成了
$
\hat
{
\funp
{
Q
}}$
。对于目标函数里的期望,我们通常使用采样来进行逼近。借助与最小风险训练类似的方法,我们可以计算对
$
\funp
{
p
}$
的梯度来进行优化
。
\parinterval
与公式
\eqref
{
eq:13-15
}
对比可以发现,基于演员-评论家的强化学习方法与基于策略的强化学习方法类似,公式
\eqref
{
eq:13-16
}
对动作价值函数
$
\funp
{
Q
}$
的估计从采样换成了
$
\hat
{
\funp
{
Q
}}$
(
{
\color
{
red
}
公式
\eqref
{
eq:13-15
}
哪里体现出了采样?而公式
\eqref
{
eq:13-16
}
哪里体现出不需要采样?
}
)。对于目标函数里的期望,通常使用采样对方式来进行逼近,例如,选择一定量的
$
\hat
{
y
}$
来计算期望,而不是遍历所有的
$
\hat
{
y
}$
。借助与最小风险训练类似的方法,可以计算对
$
\funp
{
p
}$
的梯度来进行优化(
{
\color
{
red
}
优化啥?
}
)
。
\parinterval
而对于评论家,它的优化目标
则不是那么显而易见。尽管根据定义我们可以通过采样
来估计
$
\funp
{
Q
}$
,然后使用该估计作为目标让
$
\hat
{
\funp
{
Q
}}$
进行拟合,但是这样会导致非常高的(采样)代价,同时可以想象,既然有了一个无偏估计,为什么还要用有偏估计
$
\hat
{
\funp
{
Q
}}$
呢?
\parinterval
而对于评论家,它的优化目标
并不是那么显而易见。尽管可以通过采样得方式
来估计
$
\funp
{
Q
}$
,然后使用该估计作为目标让
$
\hat
{
\funp
{
Q
}}$
进行拟合,但是这样会导致非常高的(采样)代价,同时可以想象,既然有了一个无偏估计,为什么还要用有偏估计
$
\hat
{
\funp
{
Q
}}$
呢?
\parinterval
回顾动作价值函数的定义,
我们
对它做适当的展开,可以得到如下等式:
\parinterval
回顾动作价值函数的定义,
可以
对它做适当的展开,可以得到如下等式:
\begin{eqnarray}
\funp
{
Q
}
(
\hat
{
\mathbi
{
y
}}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t-1
}
,
\widetilde
{
\mathbi
{
y
}}
)
&
=
&
\funp
{
r
}_
t(
\hat
{
\mathbi
{
y
}}_
t;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t-1
}
,
\widetilde
{
\mathbi
{
y
}}
)
\nonumber
\\
&
+
&
\sum
_{
\textrm
{
a
}
\in
\textrm
{
A
}}
\funp
{
p
}
(
\textrm
{
a
}
|
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
}
,
\mathbi
{
x
}
)
\funp
{
Q
}
(
\textrm
{
a
}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
}
,
\widetilde
{
\mathbi
{
y
}}
)
\funp
{
Q
}
(
\hat
{
\mathbi
{
y
}}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j -1
}
,
\widetilde
{
\mathbi
{
y
}}
)
&
=
&
\funp
{
r
}_
j(
\hat
{
\mathbi
{
y
}}_
j;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j-1
}
,
\widetilde
{
\mathbi
{
y
}}
) +
\nonumber
\\
&
&
\sum
_{
a
\in
A
}
\funp
{
p
}
(a|
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j
}
,
\mathbi
{
x
}
)
\funp
{
Q
}
(a;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j
}
,
\widetilde
{
\mathbi
{
y
}}
)
\label
{
eq:13-17
}
\end{eqnarray}
\parinterval
这个等式也被称为
贝尔曼方程
\upcite
{
sutton2018reinforcement
}
。这个等式告诉我们
$
t
-
1
$
时刻的动作价值函数
$
\funp
{
Q
}
(
\hat
{
\mathbi
{
y
}}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
-
1
}
,
\widetilde
{
\mathbi
{
y
}}
)
$
跟下一时刻
$
t
$
的动作价值函数
$
\funp
{
Q
}
(
\textrm
{
a
}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
}
,
\widetilde
{
\mathbi
{
y
}}
)
$
之间的关系。因此我们可以很自然的使用等式右部作为等式左部
$
\funp
{
Q
}
(
\hat
{
\mathbi
{
y
}}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
-
1
}
,
\widetilde
{
\mathbi
{
y
}}
)
$
的目标。而由于动作价值函数的输出是数值,通常会选用均方误差来计算目标函数值
。
\parinterval
这个等式也被称为
{
\small\bfnew
{
贝尔曼方程
}}
\index
{
贝尔曼方程
}
(Bellman Equation
\index
{
Bellman Equation
}
)
\upcite
{
sutton2018reinforcement
}
。这个等式告诉我们
$
j
-
1
$
时刻的动作价值函数
$
\funp
{
Q
}
(
\hat
{
\mathbi
{
y
}}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j
-
1
}
,
\widetilde
{
\mathbi
{
y
}}
)
$
跟下一时刻
$
j
$
的动作价值函数
$
\funp
{
Q
}
(
\textrm
{
a
}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j
}
,
\widetilde
{
\mathbi
{
y
}}
)
$
之间的关系。因此可以很自然的使用等式右部作为等式左部
$
\funp
{
Q
}
(
\hat
{
\mathbi
{
y
}}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j
-
1
}
,
\widetilde
{
\mathbi
{
y
}}
)
$
的目标。而由于动作价值函数的输出是数值,通常会选用均方误差来计算目标函数值(
{
\color
{
red
}
为啥输出是数值,就要用局方误差来计算目标函数?
}
)
。
\parinterval
t
时刻动作价值函数的目标如下:
{
\red
(下面开始用q?)
}
\parinterval
进一步,可以定义
$
j
$
时刻动作价值函数的目标如下:
{
\red
(下面开始用q?)
}
\begin{eqnarray}
\funp
{
q
}_
t
&
=
&
\funp
{
r
}_
t(
\hat
{
\mathbi
{
y
}}_
t;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t-1
}
,
\widetilde
{
\mathbi
{
y
}}
) +
\sum
_{
\textrm
{
a
}
\in
\textrm
{
A
}}
\funp
{
p
}
(
\textrm
{
a
}
|
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
}
,
\mathbi
{
x
}
)
\hat
{
\funp
{
Q
}}
(
\textrm
{
a
}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
}
,
\widetilde
{
\mathbi
{
y
}}
)
\funp
{
q
}_
j
&
=
&
\funp
{
r
}_
j(
\hat
{
\mathbi
{
y
}}_
j;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j-1
}
,
\widetilde
{
\mathbi
{
y
}}
) +
\sum
_{
a
\in
A
}
\funp
{
p
}
(a|
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j
}
,
\mathbi
{
x
}
)
\hat
{
\funp
{
Q
}}
(a;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j
}
,
\widetilde
{
\mathbi
{
y
}}
)
\label
{
eq:13-18
}
\end{eqnarray}
\parinterval
而评论家对应的目标函数
则
如下:
\parinterval
而评论家对应的目标函数
定义
如下:
\begin{eqnarray}
\
min
_{
\hat
{
\funp
{
Q
}}}
\sum
_{
t=1
}^
T
{
(
\hat
{
\funp
{
Q
}}
(
\hat
{
\mathbi
{
y
}}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t-1
}
,
\widetilde
{
\mathbi
{
y
}}
) -
\funp
{
q
}_
t
)
}^
2
\
hat
{
\hat
{
\funp
{
Q
}}}
&
=
&
\min
_{
\hat
{
\funp
{
Q
}}}
\sum
_{
j=1
}^
J
{
(
\hat
{
\funp
{
Q
}}
(
\hat
{
\mathbi
{
y
}}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j-1
}
,
\widetilde
{
\mathbi
{
y
}}
) -
\funp
{
q
}_
j
)
}^
2
\label
{
eq:13-19
}
\end{eqnarray}
...
...
@@ -647,22 +650,22 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\begin{figure}
[htp]
\centering
\includegraphics
[scale=0.4]
{
./Chapter13/Figures/figure-reinforcement-learning-method-based-on-actor-critic.png
}
\caption
{
基于演员-评论家的
增强
学习方法
}
\caption
{
基于演员-评论家的
强化
学习方法
}
\label
{
fig:13-25
}
\end{figure}
%----------------------------------------------
\parinterval
实际使用基于演员-评论家的增强
学习方法还有许多细节,包括但不限于以下技巧:
\parinterval
使用基于演员-评论家的强化
学习方法还有许多细节,包括但不限于以下技巧:
\begin{itemize}
\vspace
{
0.5em
}
\item
多目标学习:演员的优化通常会引入额外的
MLE目标函数,同时会使用MLE进行预训练。这样会简化训练,因为随机初始化的演员性能很差,很难获得有效的奖励。同时MLE
作为一个额外的正则项也防止模型跑偏,加速收敛。
\item
多目标学习:演员的优化通常会引入额外的
极大似然估计目标函数,同时会使用极大似然估计进行预训练。这样会简化训练,因为随机初始化的演员性能很差,很难获得有效的奖励。同时极大似然估计
作为一个额外的正则项也防止模型跑偏,加速收敛。
\vspace
{
0.5em
}
\item
目标网络
:评论家的优化目标是由自身输出所构造。当模型更新比较快的时候模型的输出变化也会很快,导致构造的优化目标不稳定,影响模型收敛。一个解决方案是在一定更新次数内固定构造优化目标使用的模型,然后再使用比较新的模型来构造后续一定更新次数内的优化目标,如此往复
\upcite
{
DBLP:journals/nature/SilverHMGSDSAPL16
}
。
\item
优化目标
:评论家的优化目标是由自身输出所构造。当模型更新比较快的时候模型的输出变化也会很快,导致构造的优化目标不稳定,影响模型收敛。一个解决方案是在一定更新次数内固定构造优化目标使用的模型,然后再使用比较新的模型来构造后续一定更新次数内的优化目标,如此往复
\upcite
{
DBLP:journals/nature/SilverHMGSDSAPL16
}
。
\vspace
{
0.5em
}
\item
方差惩罚:在机器翻译
里面使用增强学习方法一个问题就是动作空间,也就是词表非常大。因为模型只根据被采样到的结果来进行更新,很多动作很难得到更新,因此对不同动作的动作价值函数估计值会有很大差异。通常我们会引入一个正则项
$
C
_
t
=
\sum
_{
\textrm
{
a
}
\in
\textrm
{
A
}}{
(
\hat
{
\funp
{
Q
}}
(
\textrm
{
a
}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
}
,
\widetilde
{
\mathbi
{
y
}}
)
-
\frac
{
1
}{
|
\textrm
{
A
}
|
}
\sum
_{
\textrm
{
b
}
\in
\textrm
{
A
}}
\hat
{
\funp
{
Q
}}
(
\textrm
{
b
}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
}
,
\widetilde
{
\mathbi
{
y
}}
))
}^
2
$
来约束不同动作的动作函数估计值,使其不会偏离他们的均值太远
\upcite
{
DBLP:conf/icml/ZarembaMJF16
}
。
\item
方差惩罚:在机器翻译
中使用强化学习方法一个问题是动作空间过大,这是由词表过大造成的。因为模型只根据被采样到的结果来进行更新,很多动作很难得到更新,因此对不同动作的动作价值函数估计值会有很大差异。通常会引入一个正则项
$
C
_
j
=
\sum
_{
a
\in
A
}{
(
\hat
{
\funp
{
Q
}}
(
a;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j
}
,
\widetilde
{
\mathbi
{
y
}}
)
-
\frac
{
1
}{
|A|
}
\sum
_{
b
\in
A
}
\hat
{
\funp
{
Q
}}
(
b;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
j
}
,
\widetilde
{
\mathbi
{
y
}}
))
}^
2
$
来约束不同动作的动作函数估计值,使其不会偏离他们的均值太远
\upcite
{
DBLP:conf/icml/ZarembaMJF16
}
。
\vspace
{
0.5em
}
\item
函数塑形:在机器翻译里面使用
增强学习方法另一个问题就是奖励的稀疏性。评价指标如BLEU等只能对完整的句子进行打分,这意味着奖励只有在句子结尾有值,而在句子中间只能为0。这种情况意味着模型在生成句子的过程中没有任何信号来指导它的行为,从而大大增加了学习难度。常见的解决方案是进行函数塑形
,使得奖励在生成句子的过程中变得稠密,同时也不会改变模型的最优解
\upcite
{
DBLP:conf/icml/NgHR99
}
。
\item
函数塑形:在机器翻译里面使用
强化学习方法另一个问题就是奖励的稀疏性。评价指标如BLEU等只能对完整的句子进行打分,也就是奖励只有在句子结尾有值,而在句子中间只能为0。这种情况意味着模型在生成句子的过程中没有任何信号来指导它的行为,从而大大增加了学习难度。常见的解决方案是进行
{
\small\bfnew
{
函数塑形
}}
\index
{
函数塑形
}
(Reward Shaping
\index
{
Reward Shaping
}
)
,使得奖励在生成句子的过程中变得稠密,同时也不会改变模型的最优解
\upcite
{
DBLP:conf/icml/NgHR99
}
。
\vspace
{
0.5em
}
\end{itemize}
...
...
@@ -789,7 +792,7 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
\sectionnewpage
\section
{
基于样本价值的学习
}
\parinterval
当人在学习知识时,通常会遵循序渐进、由易到难的原则,这是一种很自然的学习策略。但是,当训练机器翻译模型时,通常是将全部的样本以随机的方式输入模型中进行学习,换句话说,就是让模型来平等地对待所有的训练样本。这种方式忽略了样本对于模型训练的“价值”,显然,更加理想的方式是
使用高价值的样本对模型进行训练。围绕训练样本的价值差异引发了诸如数据选择、主动学习、课程学习等一系列的学习策略,这些学习策略本质上是在不同任务、不同背景、不同假设下对如何高效的利用样本来进行学习这一问题的解决方法,本节即对这些相关
技术进行介绍。
\parinterval
当人在学习知识时,通常会遵循序渐进、由易到难的原则,这是一种很自然的学习策略。但是,当训练机器翻译模型时,通常是将全部的样本以随机的方式输入模型中进行学习,换句话说,就是让模型来平等地对待所有的训练样本。这种方式忽略了样本对于模型训练的“价值”,显然,更加理想的方式是
优先使用价值高的样本对模型进行训练。围绕训练样本的价值差异产生了诸如数据选择、主动学习、课程学习等一系列的学习策略,这些学习策略本质上是在不同任务、不同背景、不同假设下,对如何高效的利用训练样本这一问题进行求解,本节即对这些
技术进行介绍。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
...
...
@@ -797,11 +800,11 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
\subsection
{
数据选择
}
\parinterval
模型学习
的过程本质上就是在学习训练数据的分布,以期望模型学到的分布和真实数据的分布越接近越好。然而训练数据是从真实世界中采样得来的,这导致了训练数据无法完整地描述客观世界的真实规律。这种分布的不匹配有许多不同的表现形式,比如
类别不平衡、领域差异、存在标签噪声等,这导致模型在实践中表现不佳。
\parinterval
模型学习
目的就是要学习训练数据的分布,以期望模型学到的分布和真实数据的分布越接近越好。然而训练数据是从真实世界中采样得来的,这导致了训练数据无法完整地描述客观世界的真实规律。这种分布的不匹配有许多不同的表现形式,例如,
类别不平衡、领域差异、存在标签噪声等,这导致模型在实践中表现不佳。
\parinterval
类别不平衡在分类任务中更为常见,可以通过重采样、代价敏感
等手段来解决,数据选择则是缓解后两个问题的一种有效手段,它的学习策略是不让模型学所有的样本,而是静态或动态的选择有价值的样本来让模型学习,此外,在一些稀缺资源场景下还会面临标注数据稀少的情况,此时可以利用主动学习选择那些最有价值的样本让人工进行标注,从而降低
成本。
\parinterval
类别不平衡在分类任务中更为常见,可以通过重采样、代价敏感
训练等手段来解决。数据选择则是缓解领域差异和标签噪声等问题的一种有效手段,它的学习策略是让模型有选择的使用样本进行学习。此外,在一些稀缺资源场景下还会面临标注数据稀少的情况,此时可以利用主动学习选择那些最有价值的样本让人工优先进行标注,从而降低标注
成本。
\parinterval
在这里,定义价值本质上是在定义一个评价函数,这是数据选择的核心问题,价值在不同任务背景下有不同的含义,这与任务的特性和它的基本假设有关。比如,在领域相关数据选择中,价值表示样本与领域的相关性;在数据降噪中,价值表示样本的可信度;在主动学习中,价值表示样本的困难程度。下面对它们进行介绍
。
\parinterval
显然,上述方法都基于一个假设:在训练过程中,每个样本是有价值的,这种价值可以计算。基于这个假设,定义价值本质上是在定义一个评价函数。价值在不同任务背景下有不同的含义,这与任务的特性有关。比如,在领域相关数据选择中,价值表示样本与领域的相关性;在数据降噪中,价值表示样本的可信度;在主动学习中,价值表示样本的难易程度
。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
...
...
@@ -809,33 +812,33 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
\subsubsection
{
1. 领域相关的数据选择
}
\parinterval
机器翻译模型是基于平行语料训练出来的,语料的质量、数量对翻译效果都有很大的影响。特别是,当机器翻译系统应用于不同领域的文本时,训练语料与所应用领域的相关性就
非常重要
\upcite
{
DBLP:journals/mt/EetemadiLTR15,britz2017effective
}
。不同领域往往具有自己独特的属性,比如语言风格、句子结构、专业术语等,例如,“bank”这个英语单词,在金融领域通常被翻译为“银行”,而在计算机领域,一般被解释为“库”、“存储体”等。这也会导致,使用通用领域数据训练出来的模型在特定领域上的翻译效果往往不理想,这本质上是训练数据和测试数据的领域属性不匹配造成的。
\parinterval
当机器翻译系统应用于不同领域时,训练语料与所应用领域的相关性就显得
非常重要
\upcite
{
DBLP:journals/mt/EetemadiLTR15,britz2017effective
}
。不同领域往往具有自己独特的属性,比如语言风格、句子结构、专业术语等,例如,“bank”这个英语单词,在金融领域通常被翻译为“银行”,而在计算机领域,一般被解释为“库”、“存储体”等。这也会导致,使用通用领域数据训练出来的模型在特定领域上的翻译效果往往不理想,这本质上是训练数据和测试数据的领域属性不匹配造成的。
\parinterval
一种解决办法是只使用特定领域的数据进行模型训练,然而这种数据往往比较稀缺。那能不能利用通用领域数据来帮助数据稀少的领域呢?这个研究方向被称为机器翻译的
{
\small\bfnew
{
领域适应
}}
\index
{
领域适应
}
(Domain Adaptation
\index
{
Domain Adaptation
}
),即从资源丰富的领域(称为源领域, Source Domain)向资源稀缺的领域(称为目标领域, Target Domain)迁移。这本身也对应着资源稀缺场景下的机器翻译问题,这类问题会在
{
\chaptersixteen
}
进行详细讨论。本章更加关注如何
充分有效地利用训练样本以更好地适应目标领域。具体来说,可以使用
{
\small\bfnew
{
数据选择
}}
\index
{
数据选择
}
(Data Selection
\index
{
Selection
}
)从源领域训练数据中选择与目标领域更加相关的样本进行模型训练。这样做的一个好处是,源领域中混有大量与目标领域不相关的样本,数据选择可以有效的降低这部分数据的比例,这样可以更加突出与领域相关的
样本的作用。
\parinterval
一种解决办法是只使用特定领域的数据进行模型训练,然而这种数据往往比较稀缺。那能不能利用通用领域数据来帮助数据稀少的领域呢?这个研究方向被称为机器翻译的
{
\small\bfnew
{
领域适应
}}
\index
{
领域适应
}
(Domain Adaptation
\index
{
Domain Adaptation
}
),即从资源丰富的领域(称为源领域, Source Domain)向资源稀缺的领域(称为目标领域, Target Domain)迁移。这本身也对应着资源稀缺场景下的机器翻译问题,这类问题会在
{
\chaptersixteen
}
进行详细讨论。本章更加关注如何
有效地利用训练样本以更好地适应目标领域。具体来说,可以使用
{
\small\bfnew
{
数据选择
}}
\index
{
数据选择
}
(Data Selection
\index
{
Selection
}
)从源领域训练数据中选择与目标领域更加相关的样本进行模型训练。这样做的一个好处是,源领域中混有大量与目标领域不相关的样本,数据选择可以有效的降低这部分数据的比例,这样可以更加突出与领域相关
样本的作用。
\parinterval
数据选择所要解决的核心问题是:给定一个目标数据集(如,目标任务的开发集),如何衡量原始训练样本与目标领域/任务的相关性?主要方法可以分为以下几类:
\parinterval
数据选择所要解决的核心问题是:给定一个目标
领域/任务
数据集(如,目标任务的开发集),如何衡量原始训练样本与目标领域/任务的相关性?主要方法可以分为以下几类:
\begin{itemize}
\vspace
{
0.5em
}
\item
基于
{
\small\bfnew
{
交叉熵差
}}
\index
{
交叉熵差
}
(Cross-entropy difference
\index
{
Cross-entropy difference
}
,CED)的方法
\upcite
{
DBLP:conf/emnlp/AxelrodHG11,DBLP:conf/wmt/AxelrodRHO15,DBLP:conf/emnlp/WangULCS17,DBLP:conf/iwslt/MansourWN11
}
。该方法
做法是在目标领域数据和通用数据上分别训练语言模型,然后用
语言模型来给句子打分并做差,分数越低说明句子与目标领域越相关。
\item
基于
{
\small\bfnew
{
交叉熵差
}}
\index
{
交叉熵差
}
(Cross-entropy difference
\index
{
Cross-entropy difference
}
,CED)的方法
\upcite
{
DBLP:conf/emnlp/AxelrodHG11,DBLP:conf/wmt/AxelrodRHO15,DBLP:conf/emnlp/WangULCS17,DBLP:conf/iwslt/MansourWN11
}
。该方法
在目标领域数据和通用数据上分别训练语言模型,然后用两个
语言模型来给句子打分并做差,分数越低说明句子与目标领域越相关。
\vspace
{
0.5em
}
\item
基于文本分类的方法
\upcite
{
DBLP:conf/conll/ChenH16,chen2016bilingual,DBLP:conf/aclnmt/ChenCFL17,DBLP:conf/wmt/DumaM17
}
。将
该问题转化为文本分类问题,先构造一个领域分类器,之后利用该分类器对给定的句子进行领域分类,最后用输出的概率来打分,选择目标领域预测
得分高的样本。
\item
基于文本分类的方法
\upcite
{
DBLP:conf/conll/ChenH16,chen2016bilingual,DBLP:conf/aclnmt/ChenCFL17,DBLP:conf/wmt/DumaM17
}
。将
问题转化为文本分类问题,先构造一个领域分类器,之后利用分类器对给定的句子进行领域分类,最后用输出的概率来打分,选择
得分高的样本。
\vspace
{
0.5em
}
\item
基于
{
\small\bfnew
{
特征衰减算法
}}
\index
{
特征衰减算法
}
(Feature Decay Algorithms
\index
{
Feature Decay Algorithms
}
,FDA)的方法
\upcite
{
DBLP:conf/wmt/BiciciY11,poncelas2018feature,DBLP:conf/acl/SotoSPW20,DBLP:journals/corr/abs-1811-03039
}
。该算法基于特征匹配,试图从源领域中提取出一个句子集合,这些句子能够最大化
覆盖目标领域的语言特征。
\item
基于
{
\small\bfnew
{
特征衰减算法
}}
\index
{
特征衰减算法
}
(Feature Decay Algorithms
\index
{
Feature Decay Algorithms
}
,FDA)的方法
\upcite
{
DBLP:conf/wmt/BiciciY11,poncelas2018feature,DBLP:conf/acl/SotoSPW20,DBLP:journals/corr/abs-1811-03039
}
。该算法基于特征匹配,试图从源领域中提取出一个句子集合,这些句子能够最大程度
覆盖目标领域的语言特征。
\vspace
{
0.5em
}
\end{itemize}
\parinterval
尽管这些方法有所不同,但是它们的目的都是为了衡量样本和领域的相关性,这些评价指标最终服务于训练过程中的样本学习策略。样本学习策略主要分为静态和动态两种,早期的研究工作都是关注于设计评分函数,在学习策略上普遍采用静态方法
,即首先利用评分函数对源领域的数据进行打分排序,然后选取一定数量的数据合并到目标领域数据集中共同训练模型
\upcite
{
DBLP:conf/emnlp/AxelrodHG11,DBLP:conf/wmt/AxelrodRHO15,chen2016bilingual,DBLP:conf/wmt/BiciciY11,DBLP:conf/conll/ChenH16
}
,这个过程其实是扩大了目标领域的数据规模,模型的收益主要来自于数据的增加。但是研究人员也发现静态方法会存在两方面的缺陷:
\parinterval
上述方法实际上描述了一种静态的学习策略
,即首先利用评分函数对源领域的数据进行打分排序,然后选取一定数量的数据合并到目标领域数据集中共同训练模型
\upcite
{
DBLP:conf/emnlp/AxelrodHG11,DBLP:conf/wmt/AxelrodRHO15,chen2016bilingual,DBLP:conf/wmt/BiciciY11,DBLP:conf/conll/ChenH16
}
,这个过程其实是扩大了目标领域的数据规模,模型的收益主要来自于数据的增加。但是研究人员也发现静态方法会存在两方面的缺陷:
\begin{itemize}
\vspace
{
0.5em
}
\item
在选定的子集上进行训练会导致词表覆盖率的降低
和
加剧单词长尾分布问题
\upcite
{
DBLP:conf/wmt/AxelrodRHO15,DBLP:conf/emnlp/WeesBM17
}
。
\item
在选定的子集上进行训练会导致词表覆盖率的降低
,并
加剧单词长尾分布问题
\upcite
{
DBLP:conf/wmt/AxelrodRHO15,DBLP:conf/emnlp/WeesBM17
}
。
\vspace
{
0.5em
}
\item
静态方法可以看作一种数据过滤技术,它对数据的判定方式是“非黑即白”的,即接收或拒绝
,
这种方式一方面会受到评分函数的影响,一方面被拒绝的数据可能对于训练模型仍然有用,而且样本的价值可能会随着训练过程的推进而改变
\upcite
{
DBLP:conf/wmt/WangWHNC18
}
。
\item
静态方法可以看作一种数据过滤技术,它对数据的判定方式是“非黑即白”的,即接收或拒绝
。
这种方式一方面会受到评分函数的影响,一方面被拒绝的数据可能对于训练模型仍然有用,而且样本的价值可能会随着训练过程的推进而改变
\upcite
{
DBLP:conf/wmt/WangWHNC18
}
。
\vspace
{
0.5em
}
\end{itemize}
\parinterval
使用动态学习策略可以有效地缓解上述
这些问题。这里的动态主要体现在模型训练过程中,训练数据是以某种策略进行动态的组织。它的基本想法是:不完全抛弃领域相关性低的样本,而只是使模型给予相关性高的样本更高的关注度,使得它更容易参与到训练过程中。具体在实现上,主要有两种方法,一种是将句子的领域相似性表达成概率分布,然后在训练过程中根据该分布对数据进行动态采样
\upcite
{
DBLP:conf/emnlp/WeesBM17,DBLP:conf/acl/WangUS18
}
, 一种是在计算损失函数时根据句子的领域相似性以加权的方式进行训练
\upcite
{
DBLP:conf/emnlp/WangULCS17,DBLP:conf/aclnmt/ChenCFL17
}
。相比于基于静态的二元选择,基于动态的
方法是一种“软”选择方式,这使得模型有机会使用到其它数据,提高了训练数据的多样性,因此性能也更稳定。
\parinterval
使用动态学习策略可以有效地缓解上述
问题。这里的动态主要体现在模型训练过程中,训练数据是以某种策略进行动态的组织。它的基本想法是:不完全抛弃领域相关性低的样本,而只是使模型给予相关性高的样本更高的关注度,使得它更容易参与到训练过程中。具体在实现上,主要有两种方法,一种是将句子的领域相似性表达成概率分布,然后在训练过程中根据该分布对数据进行动态采样
\upcite
{
DBLP:conf/emnlp/WeesBM17,DBLP:conf/acl/WangUS18
}
, 一种是在计算损失函数时根据句子的领域相似性以加权的方式进行训练
\upcite
{
DBLP:conf/emnlp/WangULCS17,DBLP:conf/aclnmt/ChenCFL17
}
。相比于静态方法的二元选择方式,动态
方法是一种“软”选择方式,这使得模型有机会使用到其它数据,提高了训练数据的多样性,因此性能也更稳定。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
...
...
@@ -877,8 +880,9 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
%----------------------------------------------------------------------------------------
\subsection
{
课程学习
}
\label
{
sec:curriculum-learning
}
\parinterval
{
\small\bfnew
{
课程学习
}}
\index
{
课程学习
}
(Curriculum Learning
\index
{
Curriculum Learning
}
)的基本思想是:先学习简单的、普适性的知识,然后逐渐增加难度,学习更复杂、更专业化的知识。在统计模型训练中,这体现在让模型按照由“易”到”难“ 的顺序对样本进行学习
\upcite
{
DBLP:conf/icml/BengioLCW09
}
,这本质上是一种样本使用策略。以神经机器翻译翻译使用的随机梯度下降为例,在传统的方法中,所有训练样本都是随机呈现给模型的,换句话说,就是让模型来平等地对待所有的训练样本,这忽略了数据样本的各种复杂性和当前模型的学习状态。所以模拟人类由易到难的学习过程就是一种很自然的想法,这样做的好处在于:
\parinterval
课程学习(Curriculum Learning
)的基本思想是:先学习简单的、普适性的知识,然后逐渐增加难度,学习更复杂、更专业化的知识。在统计模型训练中,这体现在让模型按照由“易”到”难“ 的顺序对样本进行学习
\upcite
{
DBLP:conf/icml/BengioLCW09
}
,这本质上是一种样本使用策略。以神经机器翻译翻译使用的随机梯度下降为例,在传统的方法中,所有训练样本都是随机呈现给模型的,换句话说,就是让模型来平等地对待所有的训练样本,这忽略了数据样本的各种复杂性和当前模型的学习状态。所以模拟人类由易到难的学习过程就是一种很自然的想法,这样做的好处在于:
\begin{itemize}
\vspace
{
0.5em
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论