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
22f035cd
Commit
22f035cd
authored
Dec 30, 2020
by
xiaotong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wording (sec 13)
parent
b3f7e316
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
15 行增加
和
15 行删除
+15
-15
Chapter13/chapter13.tex
+15
-15
没有找到文件。
Chapter13/chapter13.tex
查看文件 @
22f035cd
...
@@ -630,7 +630,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
...
@@ -630,7 +630,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\label
{
eq:13-17
}
\label
{
eq:13-17
}
\end{eqnarray}
\end{eqnarray}
\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
这个等式也被称为
{
\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
进一步,可以定义
$
j
$
时刻动作价值函数的目标如下:
{
\red
(下面开始用q?)
}
\parinterval
进一步,可以定义
$
j
$
时刻动作价值函数的目标如下:
{
\red
(下面开始用q?)
}
\begin{eqnarray}
\begin{eqnarray}
...
@@ -792,7 +792,7 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
...
@@ -792,7 +792,7 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
\sectionnewpage
\sectionnewpage
\section
{
基于样本价值的学习
}
\section
{
基于样本价值的学习
}
\parinterval
当人在学习知识时,通常会遵循序渐进、由易到难的原则,这是一种很自然的学习策略。但是,当训练机器翻译模型时,通常是将全部的样本以随机的方式输入模型中进行学习,换句话说,就是让模型来平等地对待所有的训练样本。这种方式忽略了样本对于模型训练的“价值”,显然,更加理想的方式是
使用高价值的样本对模型进行训练。围绕训练样本的价值差异引发了诸如数据选择、主动学习、课程学习等一系列的学习策略,这些学习策略本质上是在不同任务、不同背景、不同假设下对如何高效的利用样本来进行学习这一问题的解决方法,本节即对这些相关
技术进行介绍。
\parinterval
当人在学习知识时,通常会遵循序渐进、由易到难的原则,这是一种很自然的学习策略。但是,当训练机器翻译模型时,通常是将全部的样本以随机的方式输入模型中进行学习,换句话说,就是让模型来平等地对待所有的训练样本。这种方式忽略了样本对于模型训练的“价值”,显然,更加理想的方式是
优先使用价值高的样本对模型进行训练。围绕训练样本的价值差异产生了诸如数据选择、主动学习、课程学习等一系列的学习策略,这些学习策略本质上是在不同任务、不同背景、不同假设下,对如何高效的利用训练样本这一问题进行求解,本节即对这些
技术进行介绍。
%----------------------------------------------------------------------------------------
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
% NEW SUB-SECTION
...
@@ -800,11 +800,11 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
...
@@ -800,11 +800,11 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
\subsection
{
数据选择
}
\subsection
{
数据选择
}
\parinterval
模型学习
的过程本质上就是在学习训练数据的分布,以期望模型学到的分布和真实数据的分布越接近越好。然而训练数据是从真实世界中采样得来的,这导致了训练数据无法完整地描述客观世界的真实规律。这种分布的不匹配有许多不同的表现形式,比如
类别不平衡、领域差异、存在标签噪声等,这导致模型在实践中表现不佳。
\parinterval
模型学习
目的就是要学习训练数据的分布,以期望模型学到的分布和真实数据的分布越接近越好。然而训练数据是从真实世界中采样得来的,这导致了训练数据无法完整地描述客观世界的真实规律。这种分布的不匹配有许多不同的表现形式,例如,
类别不平衡、领域差异、存在标签噪声等,这导致模型在实践中表现不佳。
\parinterval
类别不平衡在分类任务中更为常见,可以通过重采样、代价敏感
等手段来解决,数据选择则是缓解后两个问题的一种有效手段,它的学习策略是不让模型学所有的样本,而是静态或动态的选择有价值的样本来让模型学习,此外,在一些稀缺资源场景下还会面临标注数据稀少的情况,此时可以利用主动学习选择那些最有价值的样本让人工进行标注,从而降低
成本。
\parinterval
类别不平衡在分类任务中更为常见,可以通过重采样、代价敏感
训练等手段来解决。数据选择则是缓解领域差异和标签噪声等问题的一种有效手段,它的学习策略是让模型有选择的使用样本进行学习。此外,在一些稀缺资源场景下还会面临标注数据稀少的情况,此时可以利用主动学习选择那些最有价值的样本让人工优先进行标注,从而降低标注
成本。
\parinterval
在这里,定义价值本质上是在定义一个评价函数,这是数据选择的核心问题,价值在不同任务背景下有不同的含义,这与任务的特性和它的基本假设有关。比如,在领域相关数据选择中,价值表示样本与领域的相关性;在数据降噪中,价值表示样本的可信度;在主动学习中,价值表示样本的困难程度。下面对它们进行介绍
。
\parinterval
显然,上述方法都基于一个假设:在训练过程中,每个样本是有价值的,这种价值可以计算。基于这个假设,定义价值本质上是在定义一个评价函数。价值在不同任务背景下有不同的含义,这与任务的特性有关。比如,在领域相关数据选择中,价值表示样本与领域的相关性;在数据降噪中,价值表示样本的可信度;在主动学习中,价值表示样本的难易程度
。
%----------------------------------------------------------------------------------------
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
% NEW SUBSUB-SECTION
...
@@ -812,33 +812,33 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
...
@@ -812,33 +812,33 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
\subsubsection
{
1. 领域相关的数据选择
}
\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}
\begin{itemize}
\vspace
{
0.5em
}
\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
}
\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
}
\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
}
\vspace
{
0.5em
}
\end{itemize}
\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}
\begin{itemize}
\vspace
{
0.5em
}
\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
}
\vspace
{
0.5em
}
\item
静态方法可以看作一种数据过滤技术,它对数据的判定方式是“非黑即白”的,即接收或拒绝
,
这种方式一方面会受到评分函数的影响,一方面被拒绝的数据可能对于训练模型仍然有用,而且样本的价值可能会随着训练过程的推进而改变
\upcite
{
DBLP:conf/wmt/WangWHNC18
}
。
\item
静态方法可以看作一种数据过滤技术,它对数据的判定方式是“非黑即白”的,即接收或拒绝
。
这种方式一方面会受到评分函数的影响,一方面被拒绝的数据可能对于训练模型仍然有用,而且样本的价值可能会随着训练过程的推进而改变
\upcite
{
DBLP:conf/wmt/WangWHNC18
}
。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\end{itemize}
\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
% NEW SUBSUB-SECTION
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论