Commit a1f57a7c by xiaotong

wording (sec 13)

parent 7a7a9c10
......@@ -120,7 +120,7 @@
\parinterval 字节对编码或双字节编码(BPE)是一种常用的子词词表构建方法。BPE方法最早用于数据压缩,该方法将数据中常见的连续字符串替换为一个不存在的字符,之后通过构建一个替换关系的对应表,对压缩后的数据进行还原\upcite{Gage1994ANA}。机器翻译借用了这种思想,把子词切分看作是学习对自然语言句子进行压缩编码表示的问题\upcite{DBLP:conf/acl/SennrichHB16a}。其目的是,保证编码后的结果(即子词切分)占用的字节尽可能少。这样,子词单元会尽可能被不同单词复用,同时又不会因为使用过小的单元造成子词切分序列过长。
\parinterval \ref{fig:7-9}给出了BPE算法执行的实例。其中预先设定的合并表的大小为10。在得到了符号合并表后,便需要对用字符表示的单词进行合并,得到以子词形式表示的文本。首先,将单词切分为以字符表示的符号序列,并在尾部加上终结符。然后按照符号合并表的顺序依次遍历,如果存在相同的2-gram符号组合,则对其进行合并,直至遍历结束。图1.4给出了一个使用字符合并表对单词进行子词切分的实例。红色单元为每次合并后得到的新符号,直至无法合并,或遍历结束,得到最终的合并结果。其中每一个单元为一个子词。
\parinterval {\color{red}\ref{fig:7-9}???}给出了BPE算法执行的实例。其中预先设定的合并表的大小为10。在得到了符号合并表后,便需要对用字符表示的单词进行合并,得到以子词形式表示的文本。首先,将单词切分为以字符表示的符号序列,并在尾部加上终结符。然后按照符号合并表的顺序依次遍历,如果存在相同的2-gram符号组合,则对其进行合并,直至遍历结束。图1.4给出了一个使用字符合并表对单词进行子词切分的实例。红色单元为每次合并后得到的新符号,直至无法合并,或遍历结束,得到最终的合并结果。其中每一个单元为一个子词。
%----------------------------------------------
\begin{figure}[htp]
......@@ -451,7 +451,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\end{figure}
%----------------------------------------------
\parinterval 训练目标函数与任务评价指标不一致问题:在训练过程中,在训练数据上进行极大似然估计,而在新数据上进行推断的时候,通常使用BLEU等外部评价指标来评价模型的性能。更加理想的情况是,模型应该直接最大化性能评价指标,而不是训练集数据上的似然函数({\color{red} Minimum Risk Training for Neural Machine Translation})。但是很多情况下,模型性能评价指标不可微分,这使得我们无法直接利用基于梯度的方法来优化模型。在机器翻译任务中,这个问题的一种体现是,训练数据上更低的困惑度不一定能带来BLEU的提升
\parinterval 训练目标函数与任务评价指标不一致问题:在训练数据上使用极大似然估计,而在新数据上进行推断的时候,通常使用BLEU等外部评价指标来评价模型的性能。在机器翻译任务中,这个问题的一种体现是,训练数据上更低的困惑度不一定能带来BLEU的提升。更加理想的情况是,模型应该直接最大化性能评价指标,而不是训练集数据上的似然函数({\color{red} Minimum Risk Training for Neural Machine Translation})。但是很多模型性能评价指标不可微分,这使得我们无法直接利用基于梯度的方法来优化模型
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
......@@ -459,7 +459,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\subsection{非Teacher-forcing方法}
\parinterval 所谓Teacher-forcing,即要求模型预测的结果和标准答案完全对应。Teacher-forcing是一种深度学习训练策略,在序列处理任务上被广泛使用({\color{red} deep learning})。以序列生成任务为例,Teacher-forcing要求模型在训练时不是使用上一个时刻的输出作为下一个时刻的输入,而是使用训练数据中的标准答案作为下一个时刻的输入。显然这会导致曝光偏置问题。为了解决这个问题,可以使用非Teacher-forcing方法,主要包括调度采样和生成对抗网络。
\parinterval 所谓Teacher-forcing,即要求模型预测的结果和标准答案完全对应。Teacher-forcing是一种深度学习训练策略,在序列处理任务上被广泛使用({\color{red} deep learning})。以序列生成任务为例,Teacher-forcing要求模型在训练时不是使用上一个时刻的模型输出作为下一个时刻的输入,而是使用训练数据中上一时刻的标准答案作为下一个时刻的输入。显然这会导致曝光偏置问题。为了解决这个问题,可以使用非Teacher-forcing方法,主要包括调度采样和生成对抗网络。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
......@@ -467,9 +467,9 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
\subsubsection{1. 调度采样}
\parinterval 对于曝光偏置问题,一般可以使用束搜索等启发式搜索方法来进行缓解。也就是,训练过程可以模拟推断时的行为。但是即使使用束搜索,最终得到的有效序列数量很小,仍然无法完全解决训练和推断行为不一致的问题。
\parinterval 对于曝光偏置问题,一般可以使用束搜索等启发式搜索方法来进行缓解。也就是,训练过程可以模拟推断时的行为。
\parinterval 对于一个目标序列$\seq{y}=\{{y}_1,{y}_2,\ldots,{y}_n\}$,在预测第$j$个单词${y}_j$时,训练过程与推断过程之间的主要区别在于:训练过程中使用标准答案$\{{y}_{1},...,{y}_{j-1}\}$,而推断过程使用的是来自模型本身的预测结果$\{\tilde{{y}}_{1},...,\tilde{{y}}_{j-1}\}$。此时可以采取一种{\small\bfnew{调度采样}}\index{调度采样}(Scheduled Sampling\index{Scheduled Sampling})机制({\color{red} Scheduled Sampling for Sequence Prediction with Recurrent Neural Networks}),在训练中随机决定使用${y}_{j-1}$还是$\tilde{{y}}_{j-1}$。 假设训练时使用的是基于小批量的随机梯度下降方法,在第$i$ 个批次中,对序列每一个位置进行预测时以概率$\epsilon_i$使用标准答案,或以概率${(1-\epsilon_i)}^2$使用来自模型本身的预测。具体到序列中的一个位置$j$,可以根据模型预测$\tilde{{y}}_{j-1}$ 单词的概率进行采样,在$\epsilon_i$控制的调度策略下,同${y}_{j-1}$一起作为输入。此过程如图\ref{fig:13-22}所示,并且这个过程可以很好地与束搜索融合。
\parinterval 对于一个目标序列$\seq{y}=\{{y}_1,{y}_2,\ldots,{y}_n\}$,在预测第$j$个单词${y}_j$时,训练过程与推断过程之间的主要区别在于:训练过程中使用标准答案$\{{y}_{1},...,{y}_{j-1}\}$,而推断过程使用的是来自模型本身的预测结果$\{\tilde{{y}}_{1},...,\tilde{{y}}_{j-1}\}$。此时可以采取一种{\small\bfnew{调度采样}}\index{调度采样}(Scheduled Sampling\index{Scheduled Sampling})机制({\color{red} Scheduled Sampling for Sequence Prediction with Recurrent Neural Networks}),在训练中随机决定使用${y}_{j-1}$还是$\tilde{{y}}_{j-1}$。 假设训练时使用的是基于小批量的随机梯度下降方法,在第$i$ 个批次中,对序列每一个位置进行预测时以概率$\epsilon_i$使用标准答案,或以概率${(1-\epsilon_i)}^2$使用来自模型本身的预测。具体到序列中的一个位置$j$,可以根据模型单词预测的概率进行采样,在$\epsilon_i$控制的调度策略下,同${y}_{j-1}$一起作为输入。此过程如图\ref{fig:13-22}所示,并且这个过程可以很好地与束搜索融合。
%----------------------------------------------
\begin{figure}[htp]
......@@ -481,7 +481,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{N}\sum_{(\mathbi{x},\
%----------------------------------------------
\parinterval$\epsilon_i=1$时,模型的训练与原始的训练策略完全相同,而当$\epsilon_i=0$时,模型的训练则与推断时使用的策略完全一样。在这里使用到了一种{\small\bfnew{课程学习}}\index{课程学习}(Curriculum Learning)\index{curriculum learning}策略({\color{red} Curriculum Learning Dynamic Curriculum Learning for Low-Resource Neural Machine
Translation}),该策略认为应从一种学习策略过渡到另一种学习策略:在训练开始时,由于模型训练不充分,因此如果从模型中随机采样,会导致收敛速度非常慢。因此,在模型训练的前期,通常会选择使用标准答案$\{{y}_{1},...,{y}_{j-1}\}$。在模型训练的后期,应该更倾向于使用自模型本身的预测$\{\tilde{{y}}_{1},...,\tilde{{y}}_{j-1}\}$。关于课程学习的内容在\ref{sec:curriculum-learning}节还会有详细介绍。
Translation}),该策略认为学习应该循序渐进,从一种状态逐渐过渡到另一种状态。在训练开始时,由于模型训练不充分,因此如果从模型中随机采样,会导致收敛速度非常慢。因此,在模型训练的前期,通常会选择使用标准答案$\{{y}_{1},...,{y}_{j-1}\}$。在模型训练的后期,应该更倾向于使用自模型本身的预测$\{\tilde{{y}}_{1},...,\tilde{{y}}_{j-1}\}$。关于课程学习的内容在\ref{sec:curriculum-learning}节还会有详细介绍。
\parinterval 在使用调度策略时,需要调整关于$i$的函数来降低$\epsilon_i$,与梯度下降方法中降低学习率的方式相似。调度策略可以采用如下几种方式:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论