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
74389e5f
Commit
74389e5f
authored
Dec 28, 2020
by
单韦乔
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
13.5更新
parent
718c1174
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
30 行增加
和
24 行删除
+30
-24
Chapter13/chapter13.tex
+30
-24
没有找到文件。
Chapter13/chapter13.tex
查看文件 @
74389e5f
...
...
@@ -330,7 +330,7 @@ R(\mathbf{w}) & = & (\big| |\mathbf{w}| {\big|}_2)^2 \\
\sectionnewpage
\section
{
对抗样本训练
}
\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
}
展示了一个神经机器翻译系统的翻译结果,可以看到,把输入句子中的单词“他”换成“她”会得到完全不同的译文。这时神经机器翻译系统就存在健壮性问题。
a
\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
}
展示了一个神经机器翻译系统的翻译结果,可以看到,把输入句子中的单词“他”换成“她”会得到完全不同的译文。这时神经机器翻译系统就存在健壮性问题。
%----------------------------------------------
\begin{figure}
[htp]
...
...
@@ -450,7 +450,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\begin{itemize}
\vspace
{
0.5em
}
\item
曝光偏置问题:
{
\red
在训练过程中,模型使用真实数据进行训练,因此模型在预测一个句子中的下一个单词时,解码器端的输入服从于真实数据的分布(改的对不对)
}
。但是在解码过程中,模型则会根据先前的预测结果来生成下一个词,此时模型输入所服从的分布在训练和解码中不一致,如图
\ref
{
fig:13-21
}
所示。由于在训练过程中暴露于真实数据,模型可能会偏向于仅在具有真实数据的情况下才能表现良好,这就是曝光偏置问题
\upcite
{
Bengio2015ScheduledSF,Ranzato2016SequenceLT
}
。
{
\red
(转录时,w改为y,并在图中补充:
$
y
_
1
,y
_
2
,y
_
3
,…, y
_
V
$
表示
词表里的V个词)
}
\item
曝光偏置问题:
在训练过程中,模型使用真实数据进行训练,因此模型在预测一个句子中的下一个单词时,解码器端的输入服从于真实数据的分布。但是在解码过程中,模型则会根据先前的预测结果来生成下一个词,此时模型输入所服从的分布在训练和解码中不一致,如图
\ref
{
fig:13-21
}
所示。由于在训练过程中暴露于真实数据,模型可能会偏向于仅在具有真实数据的情况下才能表现良好,这就是曝光偏置问题
\upcite
{
Bengio2015ScheduledSF,Ranzato2016SequenceLT
}
。
{
\red
(转录时,w改为y,并在图中补充:
$
y
_
1
,y
_
2
,y
_
3
,…, y
_
V
$
表示目标语言
词表里的V个词)
}
\vspace
{
0.5em
}
%----------------------------------------------
...
...
@@ -462,7 +462,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\end{figure}
%----------------------------------------------
\item
训练解码评价指标不一致问题:
{
\red
在训练过程中,使用极大似然估计最大化训练集数据的概率(感觉说的有点奇怪)
}
,而在解码的时候,通常使用如BLEU等外部评价指标来评价模型的性能。理想的情况下,模型应该直接最大化模型性能评价指标而不是
{
\red
概率(什么概率)
}
,但是因为这些指标通常
不可导,这使得我们无法直接利用反向传播来优化神经网络,因此在训练时我们只能使用概率作为实际评价指标的替代,这样就会导致训练解码评价指标不一致问题。在机器翻译任务中,这个问题的一个后果就是,更低的困惑度不一定能提高BLEU。
\item
训练解码评价指标不一致问题:
在训练过程中,使用极大似然估计最大化训练集数据出现的概率,而在解码的时候,通常使用如BLEU等外部评价指标来评价模型的性能。理想的情况下,模型应该直接最大化模型性能评价指标,而不是训练集数据出现的概率。但是通常情况下,模型性能评价指标
不可导,这使得我们无法直接利用反向传播来优化神经网络,因此在训练时我们只能使用概率作为实际评价指标的替代,这样就会导致训练解码评价指标不一致问题。在机器翻译任务中,这个问题的一个后果就是,更低的困惑度不一定能提高BLEU。
\vspace
{
0.5em
}
\end{itemize}
...
...
@@ -482,7 +482,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\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
}$
。假设训练时使用的是基于小批量
{
\red
(批次?)
}
的随机梯度下降方法,对于每个预测训练算法的第
$
i
$
个小批量的
$
\mathbi
{
y
}_
t
\in
\textrm
{
Y
}${
\red
(Y格式对不对,Y没解释)
}
,随机以概率
$
\epsilon
_
i
$
使用先前真实答案或以概率
${
(
1
-
\epsilon
_
i
)
}^
2
$
使用来自模型本身的估计。该模型的估计可以根据由
$
\funp
{
P
}
(
\mathbi
{
y
}_{
t
-
1
}
|
\mathbi
{
h
}_{
t
-
1
}
)
$
建模的概率分布对单词进行采样来获得,也可以作为
$
\arg\max
_
s
\funp
{
P
}
(
\mathbi
{
y
}_{
t
-
1
}
=
s|
\mathbi
{
h
}_{
t
-
1
}
)
$
,此过程如图
\ref
{
fig:13-22
}
所示。
{
\red
(上句难理解,s没解释,s是向量?)
}
\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
}
所示。
%----------------------------------------------
\begin{figure}
[htp]
...
...
@@ -493,17 +493,17 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\end{figure}
%----------------------------------------------
\parinterval
当
$
\epsilon
_
i
=
1
$
时,模型的训练与以前完全相同,而当
$
\epsilon
_
i
=
0
$
时,
{
\red
模型的训练与解码时使用的设置相同(改的对吗)
}
。在这里使用到了一种
{
\small\bfnew
{
课程学习
}}
\index
{
课程学习
}
(curriculum learning)
\index
{
curriculum learning
}
策略,该策略认为应从一种学习策略过渡到另一种学习策略:
{
\red
在训练开始时,由于模型训练不足,因此从模型中会采样产生随机单词,这可能会导致收敛速度非常慢,因此,经常选择真正的先前单词
$
yt−
1
$
通常会有所帮助;另一方面,在训练结束时,
$
\epsilon
_
i
$
应该更倾向于使用来自模型本身的估计
$
\hat
{
\mathbi
{
y
}}_{
t
-
1
}$
,因为这与真实的推理情况相对应。(看不懂)
}
\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
在使用调度策略时,需要调整关于
$
i
$
的函数来降低
$
\epsilon
_
i
$
,与梯度下降方法中降低学习率的方式相似,调度策略可以采取如下几种方式:
\parinterval
在使用调度策略时,需要调整关于
$
i
$
的函数来降低
$
\epsilon
_
i
$
,与梯度下降方法中降低学习率的方式相似,调度策略可以采取如下几种方式
{
\red
(调度策略、i、epslon什么关系?)
}
:
{
\red
(下面最后一句重复,而且没明白想表达什么)
}
\begin{itemize}
\vspace
{
0.5em
}
\item
线性衰减:
$
\epsilon
_
i
=
\max
(
\epsilon
,k
-
ci
)
$
{
\red
(ci中i是什么意思,c不是个常数?)
}
,其中
$
0
\leqslant
\epsilon
<
1
$
,是要提供给模型的最小数值,而k和c提供衰减的偏移量和斜率,取决于预期的收敛速度。
\item
线性衰减:
$
\epsilon
_
i
=
\max
(
\epsilon
,k
-
ci
)
$
,其中
$
0
\leqslant
\epsilon
<
1
$
,是要提供给模型的最小数值,而k和c提供衰减的偏移量和斜率,取决于预期的收敛速度。
\vspace
{
0.5em
}
\item
指数衰减:
$
\epsilon
_
i
=
k
^
i
$
,其中
$
k
$
是一个常数,一般为
$
k <
1
$
,取决于预期的收敛速度。
\vspace
{
0.5em
}
\item
反向
sigmoid 衰减:
$
ϵ
_
i
=
k
/(
k
+
exp
(
i
/
k
))
$
,其中
$
k≥
1
$
,取决于预期的收敛速度。
\item
反向
Sigmoid 衰减:
$
\epsilon
_
i
=
k
/(
k
+
\exp
(
i
/
k
))
$
,其中
$
k
\geqslant
1
$
,取决于预期的收敛速度。
\vspace
{
0.5em
}
\end{itemize}
...
...
@@ -513,9 +513,9 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\subsubsection
{
2. 生成对抗网络
}
\parinterval
{
\red
(前面讲了一点GAN)
}
与人工翻译相比,
{
\red
极大似然估计的优化目标是假设能够最大化标准答案的可能性(这种描述有点绕)
}
,但由于曝光偏置问题会导致训练和解码的不一致,因此这个
{
\red
假设
}
不一定成立。而
{
\small\bfnew
{
生成对抗网络
}}
\index
{
生成对抗网络
}
(Generative Adversarial Networks
\index
{
Generative Adversarial Networks
}
,GAN)的优化目标
{
\red
不是最大化标准答案的可能性,而是最大化标准答案和模型预测结果的相似性,因此可以解决曝光偏置问题。
}
\parinterval
调度采样解决曝光偏置的方法是:把模型自己生成的结果当成正确答案用来训练。但是这样导致的问题就是模型会把错误的结果当成正确的来学习,影响了模型最终的效果。解决这个问题的关键就是如何对模型自己生成的结果进行评价。如果生成好的结果,那么我们使用它进行模型训练,否则就不使用。
{
\small\bfnew
{
生成对抗网络
}}
\index
{
生成对抗网络
}
(Generative Adversarial Networks
\index
{
Generative Adversarial Networks
}
,GAN)就是这样一种技术,它引入了一个额外的模型(判别器)来对原有模型(生成器)的生成结果进行评价,并根据评价结果同时训练两个模型。
\parinterval
生成对抗网络采用了对抗的训练架构并将其命名为
{
\small\bfnew
{
对抗神经机器翻译
}}
\index
{
对抗神经机器翻译
}
(Adversarial-NMT)
\index
{
Adversarial-NMT
}
,其总体框架如图
\ref
{
fig:13-23
}
所示,
{
\red
其中“Ref”是“Reference”的缩写,表示标准答案,而“ Hyp”是“Hypothesis”的缩写,表示模型翻译句子结果(准备直接吧图中英文改为中文
)
}
。所有黄色部分表示神经机器翻译模型G
{
\red
(看下15章的模型)
}
,该模型将源语言句子
$
\seq
{
x
}$
映射为目标语言句子。红色部分是对抗网络D,该网络预测目标语言句子是否是源语言句子
$
\seq
{
x
}$
的真实翻译。G和D相互对抗,同时生成
{
\red
采样翻译
}
$
\seq
{
y
}
'
$
来训练D,以及生成奖励信号来通过策略梯度训练G。
\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。
%----------------------------------------------
\begin{figure}
[htp]
...
...
@@ -528,7 +528,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\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
在对抗神经机器翻译中,原始的神经机器翻译模型为生成网络,其训练由一个对抗网络协助。对抗网络的目的是将神经机器翻译模型生成的翻译结果与人的翻译结果区分开,而生成网络的目标是产生高质量的翻译,以欺骗对抗网络。生成网络和对抗网络作为对手,由策略梯度方法来共同训练。
{
\red
为了使得生成网络和对抗网络能够提高彼此性能,可以通过学习人为产生的正例和从神经机器翻译取得的负例来提高对手的辨别力,通过将对手的输出作为反馈来提高神经机器翻译模型欺骗对手的能力。通过这种方式,神经机器翻译的结果可以尽可能接近真实答案。(句子太长)
}
\parinterval
在对抗神经机器翻译中,原始的神经机器翻译模型为生成网络,其训练由一个对抗网络协助。对抗网络的目的是将神经机器翻译模型生成的翻译结果与人的翻译结果区分开,而生成网络的目标是产生高质量的翻译,以欺骗对抗网络。生成网络和对抗网络作为对手,由策略梯度方法来共同训练。
为了使得生成网络和对抗网络能够提高彼此性能,可以通过学习人为产生的正例和从神经机器翻译取得的负例来提高对手的辨别力。通过这种方式,神经机器翻译的结果可以尽可能接近真实答案。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
...
...
@@ -544,7 +544,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\subsubsection
{
1. 基于策略的增强学习方法
}
\parinterval
与传统的极大似然估计不同,
{
\small\bfnew
{
最小风险训练
}}
\index
{
最小风险训练
}
(Minimum Risk Training
\index
{
Minimum Risk Training
}
,MRT)方法引入了评价指标作为损失函数,
{
\red
目标是将训练数据在测试数据上的预期损失降至最低
}
\upcite
{
DBLP:conf/acl/ShenCHHWSL16
}
。
\parinterval
与传统的极大似然估计不同,
{
\small\bfnew
{
最小风险训练
}}
\index
{
最小风险训练
}
(Minimum Risk Training
\index
{
Minimum Risk Training
}
,MRT)方法引入了评价指标作为损失函数,
目标是将训练数据在测试数据上的预期风险降至最低
\upcite
{
DBLP:conf/acl/ShenCHHWSL16
}
。
\parinterval
MRT的训练目标是最小化训练数据上的风险,风险定义为相对于后验分布的预期损失,其计算方式如公式
\eqref
{
eq:13-13
}
所示:
\begin{eqnarray}
...
...
@@ -576,9 +576,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\parinterval
MRT显著改善了机器翻译任务的性能
\upcite
{
bahdanau2014neural
}
,且已广泛用于常规SMT
\upcite
{
koehn2003statistical,smith2006minimum,he2012maximum
}
和基于深度学习的MT
\upcite
{
DBLP:conf/acl/GaoHYD14
}
。
\parinterval
{
\red
图X
}
是最小风险训练计算的一个示例,
$
\mathbi
{
x
}_
i
$
是观测到的源语句子,
$
\widetilde
{
\mathbi
{
y
}}_
i
$
是对应的标准答案,
$
\mathbi
{
y
}_
1
$
,
$
\mathbi
{
y
}_
2
$
和
$
\mathbi
{
y
}_
3
$
是模型的预测结果。损失函数
$
\vartriangle
(
\mathbi
{
y
}_
i,
\widetilde
{
\mathbi
{
y
}}
)
$
用来衡量模型预测结果和标准答案间的差异,MRT的目标是找到一个分布(最右一列)来最小化期望的损失函数。假设
$
\chi
(
\mathbi
{
x
}_
i
)
$
是包含
$
\mathbi
{
y
}_
1
$
,
$
\mathbi
{
y
}_
2
$
和
$
\mathbi
{
y
}_
3
$
三个候选的一个集合,整个搜索空间只有这三个候选。
\parinterval
表
\ref
{
fig:13-24
}
的右半边展示了优化过程中的四个模型,顺序为从差到好。根据和标准答案
$
\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
}
的右半边展示了优化过程中的四个模型,顺序为从差到好。
{
\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
$
上,可以进一步降低风险。通过最大程度地减少训练数据的风险分数,我们期望获得一个与标准答案非常相关的模型。
%----------------------------------------------
\begin{figure}
[htp]
...
...
@@ -595,13 +593,20 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\subsubsection
{
2. 基于演员-评论家的增强学习方法
}
\parinterval
对于基于策略的增强学习方法来说,它的目标是寻找一个策略
$
\funp
{
p
}
(
\textrm
{
a
}
|
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
}
,
\mathbi
{
x
}
)
$
,使得该策略选择的行动a未来可以获得的奖励期望
{
\red
(后面期望下标中的a是不是加多了?另外原始word里面大小y混用,没有解释小y是什么。另外感觉这个公式太复杂了,没有解释的很清楚,要是解释不清楚的话建议删掉)
}$
\funp
{
Q
}
(
\textrm
{
a
}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
}
,
\widetilde
{
\mathbi
{
y
}}
)
=
\mathbb
{
E
}_{
\hat
{
\mathbi
{
y
}}_{
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
}}
)
+
\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
{
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
(在一个源语句子X上的)
}
目标函数可以表示为公式
\eqref
{
eq:13-15
}
:
{
\red
(下面A没解释)
}
\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
}}
)]
\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上的)定义的目标函数可以表示为:
\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
}}
)
\label
{
eq:13-15
}
\end{eqnarray}
\parinterval
{
\red
(这段上面不好理解,这段开始是ok的)
}
计算动作价值函数
$
\funp
{
Q
}$
需要
{
\red
迭代
}
$
t
$
时刻以后所有可能句子,而可能的句子数目是随着其长度指数级增长,因此我们只能估计
$
\funp
{
Q
}$
。基于策略的增强学习方法,如最小风险训练(风险
$
\vartriangle
=-
\funp
{
Q
}$
)等都使用了采样的方法来估计
$
\funp
{
Q
}$
。尽管采样估计的结果是
$
\funp
{
Q
}$
的无偏估计,但是它的缺点在于估计的方差比较大。而
$
\funp
{
Q
}$
直接关系到梯度更新的大小,不稳定的数值会导致网络更新不稳定,难以优化。
\parinterval
其中,
\textrm
{
A
}
所有可能的行动组成的空间,也就是词表
$
V
$
。上式表示,计算动作价值函数
$
\funp
{
Q
}$
需要枚举
$
t
$
时刻以后所有可能句子,而可能的句子数目是随着其长度指数级增长,因此我们只能估计
$
\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
}$
的优化无法到达理论上的最优解。尽管如此,得益于神经网络强大的拟合能力,基于演员-评论家的增强学习方法仍更具优势。
...
...
@@ -611,27 +616,28 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\label
{
eq:13-16
}
\end{eqnarray}
\parinterval
与公式
\eqref
{
eq:13-15
}
相比可以发现,基于演员-评论家的增强学习方法与基于策略的增强学习方法类似,公式
\eqref
{
eq:13-16
}
对动作价值函数
$
\funp
{
Q
}$
的估计从采样换成了
$
\hat
{
\funp
{
Q
}}$
。
{
\red
对于目标函数里的期望,我们通常使用采样来进行逼近。借助与最小风险训练类似的方法,我们可以计算对
$
\funp
{
p
}$
的梯度来进行优化。(感觉这段讲不讲都行,没有帮助理解上面公式)
}
\parinterval
与公式
\eqref
{
eq:13-15
}
相比可以发现,基于演员-评论家的增强学习方法与基于策略的增强学习方法类似,公式
\eqref
{
eq:13-16
}
对动作价值函数
$
\funp
{
Q
}$
的估计从采样换成了
$
\hat
{
\funp
{
Q
}}$
。
对于目标函数里的期望,我们通常使用采样来进行逼近。借助与最小风险训练类似的方法,我们可以计算对
$
\funp
{
p
}$
的梯度来进行优化。
\parinterval
而对于评论家,它的优化目标则不是那么显而易见。尽管根据定义我们可以通过采样来估计
$
\funp
{
Q
}$
,然后使用该估计作为目标让
$
\hat
{
\funp
{
Q
}}$
进行拟合,但是这样会导致非常高的(采样)代价,同时可以想象,既然有了一个无偏估计,为什么还要用有偏估计
$
\hat
{
\funp
{
Q
}}$
呢?
\parinterval
回顾动作价值函数的定义,我们对它做适当的展开,可以得到如下等式:
\begin{eqnarray}
\funp
{
Q
}
(
\hat
{
\mathbi
{
y
}}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t-1
}
,
\mathbi
{
y
}
)
&
=
&
\funp
{
r
}_
t(
\hat
{
\mathbi
{
y
}}_
t;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t-1
}
,
\mathbi
{
y
}
) +
\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
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
}}
)
\label
{
eq:13-17
}
\end{eqnarray}
\parinterval
这个等式也被称为贝尔曼方程
\upcite
{
sutton2018reinforcement
}
。这个等式告诉我们
$
t
-
1
$
时刻的动作价值函数
$
\funp
{
Q
}
(
\hat
{
\mathbi
{
y
}}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t
-
1
}
,
\
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
}
,
\mathbi
{
y
}
)
$
的目标。而由于动作价值函数的输出是数值,通常会选用均方误差来计算目标函数值。
\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
t时刻动作价值函数的目标如下:
{
\red
(下面开始用q?)
}
\begin{eqnarray}
\funp
{
q
}_
t
&
=
&
\funp
{
r
}_
t(
\hat
{
\mathbi
{
y
}}_
t;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t-1
}
,
\
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
}_
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
}}
)
\label
{
eq:13-18
}
\end{eqnarray}
\parinterval
而评论家对应的目标函数则如下:
\begin{eqnarray}
\min
_{
\hat
{
\funp
{
Q
}}}
\sum
_{
t=1
}^
T
{
(
\hat
{
\funp
{
Q
}}
(
\hat
{
\mathbi
{
y
}}
;
\hat
{
\mathbi
{
y
}}_{
1
\ldots
t-1
}
,
\
mathbi
{
y
}
) -
\funp
{
q
}_
t)
}^
2
\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
\label
{
eq:13-19
}
\end{eqnarray}
...
...
@@ -650,7 +656,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\begin{itemize}
\vspace
{
0.5em
}
\item
多目标学习:演员的优化通常会引入额外的
{
\red
MLE(好像之前没解释?)
}
目标函数,同时会使用MLE进行预训练。这样会简化训练,因为随机初始化的演员性能很差,很难获得有效的奖励。同时MLE作为一个额外的正则项也防止模型跑偏,加速收敛。
\item
多目标学习:演员的优化通常会引入额外的
MLE
目标函数,同时会使用MLE进行预训练。这样会简化训练,因为随机初始化的演员性能很差,很难获得有效的奖励。同时MLE作为一个额外的正则项也防止模型跑偏,加速收敛。
\vspace
{
0.5em
}
\item
目标网络:评论家的优化目标是由自身输出所构造。当模型更新比较快的时候模型的输出变化也会很快,导致构造的优化目标不稳定,影响模型收敛。一个解决方案是在一定更新次数内固定构造优化目标使用的模型,然后再使用比较新的模型来构造后续一定更新次数内的优化目标,如此往复
\upcite
{
DBLP:journals/nature/SilverHMGSDSAPL16
}
。
\vspace
{
0.5em
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论