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
ceb9e624
Commit
ceb9e624
authored
Dec 21, 2020
by
单韦乔
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
13.4文字和bib去article
parent
4804b9cb
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
219 行增加
和
371 行删除
+219
-371
Chapter13/Figures/figure-bpe.tex
+4
-4
Chapter13/chapter13.tex
+75
-225
bibliography.bib
+140
-142
没有找到文件。
Chapter13/Figures/figure-bpe.tex
查看文件 @
ceb9e624
...
...
@@ -19,10 +19,10 @@
\node
[node,anchor = west]
(node8) at ([xshift = 2em,yshift = 2em]node7.east)
{
对于词表外的词lowest
}
;
\node
[node,anchor = north west]
(node9) at ([yshift = 0.3em]node8.south west)
{
可以被分割为low est
}
;
\node
[node,font=\scriptsize,anchor = north,fill=ugreen!5,drop shadow]
(dict) at ([xshift =
8
em,yshift = -5em]node6.south)
{
\begin{tabular}
{
llllll
}
\multirow
{
3
}{
*
}{
子词词表:
}
&
`es'
&
`est'
&
`est
$
<
$
e
$
>
$
'
&
`lo'
&
`low'
\\
&
`ne'
&
`new'
&
`newest
$
<
$
e
$
>
$
'
&
`low
$
<
$
e
$
>
$
'
&
`wi'
\\
&
`wid'
&
`widest
$
<
$
e
$
>
$
'
&
`lowe'
&
`lower'
&
`lower
$
<
$
e
$
>
$
'
\node
[node,font=\scriptsize,anchor = north,fill=ugreen!5,drop shadow]
(dict) at ([xshift =
5
em,yshift = -5em]node6.south)
{
\begin{tabular}
{
llllll
}
\multirow
{
3
}{
*
}{
符号合并表:
}
&
('e','s')
&
('es','t')
&
('est','
$
<
$
e
$
>
$
')
&
('l','o')
&
('lo','w')
\\
&
('n','e')
&
('ne','w')
&
('new','est
$
<
$
e
$
>
$
')
&
('low','
$
<
$
e
$
>
$
')
&
'w','i')
\\
&
('wi','d')
&
('wid','est
$
<
$
e
$
>
$
')
&
('low','e')
&
('lowe','r')
&
('lower','
$
<
$
e
$
>
$
')
\end{tabular}
}
;
\node
[node,anchor=west]
(line1) at ([xshift = 8em]node1.south east)
{
按字符拆分,并添加
}
;
...
...
Chapter13/chapter13.tex
查看文件 @
ceb9e624
...
...
@@ -254,7 +254,7 @@ R(\mathbf{w}) & = & (\big| |\mathbf{w}| {\big|}_2)^2 \\
\parinterval
从几何的角度看,L1和L2正则项都是有物理意义的。二者都可以被看作是空间上的一个区域,比如,在二维平面上,L1范数表示一个以0点为中心的矩形,L2范数表示一个以0点为中心的圆。因此,优化问题可以被看作是在两个区域(
$
L
(
\mathbf
{
w
}
)
$
和
$
R
(
\mathbf
{
w
}
)
$
)叠加在一起所形成的区域上进行优化。由于L1和L2正则项都是在0点(坐标原点)附近形成的区域,因此优化的过程可以确保参数不会偏离0点太多。也就是说,L1和L2正则项引入了一个先验:模型的解不应该离0点太远。而L1和L2正则项实际上是在度量这个距离。
\parinterval
那为什么要用L1和L2正则项惩罚离0点远的解呢?这还要从模型复杂度谈起。实际上,对于神经机器翻译这样的模型来说,模型的容量是足够的。所谓容量可以被简单的理解为独立参数的个数
\footnote
{
关于模型容量,在
\ref
{
section-13.2
}
节会有进一步讨论
。
}
。也就是说,理论上存在一种模型可以完美的描述问题。但是,从目标函数拟合的角度来看,如果一个模型可以拟合很复杂的目标函数,那模型所表示的函数形态也会很复杂。这往往体现在模型中参数的值“偏大”。比如,用一个多项式函数拟合一些空间中的点,如果希望拟合得很好,各个项的系数往往是非零的。而且为了对每个点进行拟合,通常需要多项式中的某些项具有较大的系数,以获得函数在局部有较大的斜率。显然,这样的模型是很复杂的。而模型的复杂度可以用函数中的参数(比如多项式中各项的系数)的“值”进行度量,体现出来就是模型参数的范数。
\parinterval
那为什么要用L1和L2正则项惩罚离0点远的解呢?这还要从模型复杂度谈起。实际上,对于神经机器翻译这样的模型来说,模型的容量是足够的。所谓容量可以被简单的理解为独立参数的个数
\footnote
{
简单理解,模型的容量是指神经网络的参数量,即神经元之间连接权重的个数。另一种定义是把容量看作神经网络所能表示的假设空间大小
\upcite
{
DBLP:journals/nature/LeCunBH15
}
,也就是神经网络能表示的不同函数所构成的空间
。
}
。也就是说,理论上存在一种模型可以完美的描述问题。但是,从目标函数拟合的角度来看,如果一个模型可以拟合很复杂的目标函数,那模型所表示的函数形态也会很复杂。这往往体现在模型中参数的值“偏大”。比如,用一个多项式函数拟合一些空间中的点,如果希望拟合得很好,各个项的系数往往是非零的。而且为了对每个点进行拟合,通常需要多项式中的某些项具有较大的系数,以获得函数在局部有较大的斜率。显然,这样的模型是很复杂的。而模型的复杂度可以用函数中的参数(比如多项式中各项的系数)的“值”进行度量,体现出来就是模型参数的范数。
\parinterval
因此,L1和L2正则项的目的是防止模型为了匹配少数(噪声)样本而导致模型的参数过大。反过来说,L1和L2正则项会鼓励那些参数值在0点附近的情况。从实践的角度看,这种方法可以很好的对统计模型的训练进行校正,得到泛化能力更强的模型。
...
...
@@ -347,195 +347,9 @@ y_{j}^{ls} &=& (1-\alpha) \cdot \tilde{y}_j + \alpha \cdot q
%----------------------------------------------------------------------------------------
\sectionnewpage
\section
{
增大模型容量
}
\label
{
section-13.2
}
\parinterval
神经机器翻译是一种典型的多层神经网络。一方面,可以通过设计合适的网络连接方式和激活函数来捕捉复杂的翻译现象;另一方面,越来越多的可用数据让模型能够得到更有效的训练。在训练数据较为充分的情况下,设计更加“复杂”的模型成为了提升系统性能的有效手段。比如,Transformer模型有两个常用配置Transformer-Base和Transformer-Big。其中,Transformer-Big比Transformer-Base使用了更多的神经元,相应的翻译品质更优
\upcite
{
NIPS2017
_
7181
}
。
\parinterval
那么是否还有类似的方法可以改善系统性能呢?答案显然是肯定的。这里,把这类方法统称为基于大容量模型的方法。在传统机器学习的观点中,神经网络的性能不仅依赖于架构设计,同样与容量密切相关。那么什么是模型的
{
\small\bfnew
{
容量
}}
\index
{
容量
}
(Capacity)
\index
{
Capacity
}
?简单理解,容量是指神经网络的参数量,即神经元之间连接权重的个数。另一种定义是把容量看作神经网络所能表示的假设空间大小
\upcite
{
DBLP:journals/nature/LeCunBH15
}
,也就是神经网络能表示的不同函数所构成的空间。
\parinterval
而学习一个神经网络就是要找到一个“最优”的函数,它可以准确地拟合数据。当假设空间变大时,训练系统有机会找到更好的函数,但是同时也需要依赖更多的训练样本才能完成最优函数的搜索。相反,当假设空间变小时,训练系统会更容易完成函数搜索,但是很多优质的函数可能都没有被包含在假设空间里。这也体现了一种简单的辩证思想:如果训练(搜索)的代价高,会有更大的机会找到更好的解;另一方面,如果想少花力气进行训练(搜索),那就设计一个小一些的假设空间,在小一些规模的样本集上进行训练,当然搜索到的解可能不是最好的。
\parinterval
在很多机器翻译任务中,训练数据是相对充分的。这时增加模型容量是提升性能的一种很好的选择。常见的方法有三种:
\begin{itemize}
\vspace
{
0.5em
}
\item
增加隐藏层维度:即增加网络宽度,加强每一层网络的线性拟合能力。
\vspace
{
0.5em
}
\item
增加网络的整体层数:即增加网络深度,利用更多的线性和非线性变换来获得更复杂的特征抽取能力。
\vspace
{
0.5em
}
\item
增大输入层和输出层的维度:即增强模型对词表中每个词的表示能力。
\end{itemize}
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection
{
宽网络
}
\parinterval
宽网络通常指隐藏层维度更大的网络,目前在图像处理领域和自然语言处理领域被广泛地使用。第五章已经验证了包含足够多神经元的多层前馈神经网络可以无限逼近任意复杂的连续函数
\upcite
{
Hornic1989Multilayer
}
,这也在一定程度上说明了神经网络建模中神经元数目的重要性。
\parinterval
增大隐藏层神经元的数目是网络变宽的基本方式之一。例如,图像处理领域中提出的
{
\small\bfnew
{
宽残差网络
}}
\index
{
宽残差网络
}
(Wide Residual Network)
\index
{
Wide Residual Network
}
使用更大的卷积核来提高每次卷积计算的精度
\upcite
{
DBLP:conf/bmvc/ZagoruykoK16
}
;神经机器翻译中,Transformer-Big模型广受研究人员的认可
\upcite
{
NIPS2017
_
7181
}
,它同样是一个典型的宽网络。对比基线模型Transformer-Base,Transformer-Big通过扩大隐藏层维度与滤波器(Filter)维度,取得了显著的翻译性能提升。表
\ref
{
tab:13-2
}
是相应的参数设置。
%----------------------------------------------
\begin{table}
[htp]
\centering
\caption
{
基线网络与宽网络的参数设置
}
\begin{tabular}
{
l | l l
}
&
Transformer-Base
&
Transformer-Big
\\
\hline
\rule
{
0pt
}{
13pt
}
词向量维度
&
512
&
1024
\\
\rule
{
0pt
}{
13pt
}
注意力头数
&
8
&
16
\\
\rule
{
0pt
}{
13pt
}
隐藏层维度
&
512
&
1024
\\
\rule
{
0pt
}{
13pt
}
FFN子层映射维度
&
2048
&
4096
\end{tabular}
\label
{
tab:13-2
}
\end{table}
%--------------------------------------
\parinterval
值得注意的是, Transformer模型中的前馈神经网络子层将隐藏层表示映射到更高维度的空间(通过一个Filter),之后经过激活函数Relu后再映射回原来的维度大小。这个操作对翻译模型的性能有明显的正向作用。从表
\ref
{
tab:13-2
}
中可以看出,Filter的维度是普通隐藏层维度的四倍。通过增大Filter大小可以有效地扩展网络的宽度,比如,有些情况下可以将Filter增大到8192甚至更大。
\parinterval
但伴随着模型变宽,网络的整体参数量会显著增长
\footnote
{
在一个全连接神经网络中,参数的数量与各层宽度呈平方关系。
}
。同时,宽网络需要更长的训练时间才能达到稳定的收敛状态。此外,训练宽网络时通常需要对一些超参数进行相应的调整,例如Dropout的大小,学习率的峰值等。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection
{
深网络
}
\parinterval
虽然,理论上宽网络有能力拟合任意的函数,但是获得这种能力的代价是非常高的。在实践中,往往需要增加相当的宽度,以极大的训练代价才能换来少量的性能提升。当神经网络达到一定宽度后这种现象更为严重。“无限”增加宽度显然是不现实的。
\parinterval
因此,另一种思路是使用更深的网络以增加模型的容量。深网络是指包含更多层的神经网络。相比宽网络的参数量随着宽度呈平方增长,深网络的参数量随着深度呈线性增长。这带给深网络一个优点:在同样参数量下可以通过更多的非线性变换来对问题进行描述。这也赋予了深网络对复杂问题建模的能力。比如,在图像识别领域,很多先进的系统都是基于很深的神经网络,甚至在一些任务上最好的的结果需要1000 层以上的神经网络。
\parinterval
宽网络和深网络是增加模型表示能力的两个维度。宽网络相当于增强了模型线性变换的能力,将模型的输入在更高维度的空间上进行抽象;深网络通过引入更多的层构建了多个表示空间,通过逐层的变换,在多个表示空间上对输入进行多次抽象。二者在有些情况下甚至可以相互转换。
\parinterval
除了数学上的解释,深度神经网络也可以给分析、理解现实世界的问题提供有效的手段。很多时候,可以把一个多层神经网络看作是对一个复杂问题的拆解,每层(或每几层)是在处理一个子问题。例如,在人脸识别任务中,一个3层的神经网络中第一层主要提取低层次的简单特征,即边缘特征;第二层将简单的特征组合成更为复杂的特征,如器官特征;第三层针对第二层的输出进行进一步的抽象得到人脸的面部特征。这样,深网络通过不同层的逐层特征抽象可以在人脸识别数据集上超越人类的精度
\upcite
{
DBLP:journals/corr/HeZRS15
}
。
\parinterval
类似的现象也出现在基于语言模型的预训练任务中。比如,研究人员通过使用
{
\small\bfnew
{
探测任务
}}
\index
{
探测任务
}
(Probing Task)
\index
{
Probing Task
}
来分析12层的BERT模型中的不同层所表示的含义
\upcite
{
ethayarajh-2019-contextual,DBLP:conf/acl/JawaharSS19
}
:
\begin{itemize}
\vspace
{
0.5em
}
\item
浅层网络表示:网络的底层部分更擅长处理词串的
{
\small\bfnew
{
表面信息
}}
\index
{
表面信息
}
(Surface Information)
\index
{
Surface Information
}
,例如词性选择、词义消歧等。
\vspace
{
0.5em
}
\item
中间层的表示:中间层部分更关注于
{
\small\bfnew
{
语法信息
}}
\index
{
语法信息
}
(Syntactic Information)
\index
{
Syntactic Information
}
\vspace
{
0.5em
}
\item
顶层网络的表示:上层部分更擅长处理
{
\small\bfnew
{
语义信息
}}
\index
{
语义信息
}
(Semantic Information)
\index
{
Semantic Information
}
\vspace
{
0.5em
}
\end{itemize}
\parinterval
目前在神经机器翻译领域,研究人员发现编码端的表示能力对翻译性能有较大的影响,因此加深编码网络是一种有效的改进系统的手段(如图
\ref
{
fig:13-16
}
)。而且,增加编码端的深度对模型推断的速度并没有较大影响,因为整个序列可以通过GPU进行并行计算。
%----------------------------------------------
\begin{figure}
[htp]
\centering
\input
{
./Chapter13/Figures/figure-increase-the-encoder
}
\caption
{
增大神经机器翻译的编码端来增大模型的容量
}
\label
{
fig:13-16
}
\end{figure}
%----------------------------------------------
\parinterval
不过,深网络容易发生梯度消失和梯度爆炸问题。因此在使用深网络时,训练策略的选择是至关重要的。实际上,标准的Transformer模型已经是不太“浅”的神经网络,因此里面使用了残差连接来缓解梯度消失等问题。此外,为了避免过拟合,深层网络的训练也要与Dropout等正则化策略相配合,并且需要设计恰当的参数初始化方法和学习率调整策略。关于构建深层神经机器翻译的方法,本章
\ref
{
subsection-7.5.1
}
节还会有进一步讨论。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection
{
增大输入层和输出层表示能力
}
\parinterval
如前所述,神经机器翻译的原始输入是单词序列,包括源语言端和目标语言端。模型中的输入层将这种离散的单词表示转换成实数向量的表示,也就是常说的
{
\small\bfnew
{
词嵌入
}}
\index
{
词嵌入
}
(Embedding)
\index
{
Embedding
}
。从实现的角度来看,输入层其实就是从一个词嵌入矩阵中提取对应的词向量表示,这个矩阵两个维度大小分别对应着词表大小和词嵌入的维度。词嵌入的维度也代表着模型对单词刻画的能力。因此适当增加词嵌入的维度也是一种增加模型容量的手段。通常,词嵌入和隐藏层的维度是一致的,这种设计也是为了便于系统实现。
\parinterval
当然,并不是说词嵌入的维度一定越大就越好。本质上,词嵌入是要在一个多维空间上有效的区分含有不同语义的单词。如果词表较大,更大的词嵌入维度会更有意义,因为需要更多的“特征”描述更多的语义。当词表较小时,增大词嵌入维度可能不会带来增益,相反会增加系统计算的负担。另一种策略是,动态选择词嵌入维度,比如,对于高频词使用较大的词嵌入维度,而对于低频词则使用较小的词嵌入维度
\upcite
{
DBLP:conf/iclr/BaevskiA19
}
。这种方法可以用同样的参数量处理更大的词表。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection
{
大模型的分布式计算
}
\parinterval
伴随着模型容量的增大,复杂模型可能无法在单GPU上完成训练。比如,即使是不太复杂的Transformer-Base模型在很多任务上也需要在8张GPU进行训练。如何利用多个设备进行大模型的并行训练是一个很现实的问题。比较简单的策略是使用
{
\small\bfnew
{
数据并行
}}
\index
{
数据并行
}
(Data Parallelism)
\index
{
Data Parallelism
}
,即把一个批次分到多个GPU上进行训练,之后对多个GPU上的梯度进行汇总,并更新参数。不过,当模型规模增大到一定程度时,单GPU可能仍然无法处理。这个问题在GPU显存较小的时候会非常突出。这时需要考虑
{
\small\bfnew
{
模型并行
}}
\index
{
模型并行
}
(Model Parallelism)
\index
{
Model Parallelism
}
。模型并行是指将模型分割成不同的部分,在不同的GPU上运行其中的一部分。例如,在训练深层LSTM模型时可以将不同层放置在不同GPU上,这种方式一定程度上能够加速模型的训练。对于更大的模型,如参数量为10亿的BERT-Large模型
\upcite
{
DBLP:conf/naacl/DevlinCLT19
}
,同样可以使用这种策略。不过,模型并行中不同设备传输的延时会大大降低模型运行的效率,因此很多时候要考虑训练效率和模型性能之间的平衡。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection
{
大批量训练
}
\parinterval
在第六章已经介绍了神经机器翻译模型需要使用梯度下降方法进行训练。其中,一项非常重要的技术就是
{
\small\bfnew
{
小批量训练
}}
\index
{
小批量训练
}
(Mini-batch Training)
\index
{
Mini-batch Training
}
,即每次使用多个样本来获取梯度并对模型参数进行更新。这里将每次参数更新使用的多个样本集合称为批次,将样本的数量称作批次的大小。在机器翻译中,通常用批次中的源语言/目标语言单词数或者句子数来表示批次大小。理论上,过小的批次会带来训练的不稳定,而且参数更新次数会大大增加。因此,很多研究者尝试增加批次大小来提高训练的稳定性。在Transformer模型中,使用更大的批次已经被验证是有效的。这种方法也被称作大批量训练。不过,这里所谓“ 大”批量是一个相对的概念。下面就一起看一看如何使用合适的批次大小来训练神经机器翻译模型。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection
{
为什么需要大批量训练
}
\parinterval
在模型训练的过程中,训练批次的大小对模型的收敛状态有很大影响,合理选择批次的大小往往会取得事半功倍的效果。较大的批次可以保证模型每次更新时梯度是在较多的样本上计算,其梯度结果更准确,有效地缓解训练中出现的性能震荡的问题。此外,较大的批次可以让模型在更新次数更少的情况下遍历整个数据集。同时大矩阵运算在GPU上的并行度更高,提高了设备的利用率。
\parinterval
然而,批次也不是越大越好,要根据训练数据集的规模与模型的容量做出合理的选择。此外,GPU显存的大小也对批次大小有约束,因为过大的批次可能无法放入GPU显存中。另一方面,在一些场景例中,如增量式训练、领域迁移,往往需要对模型进行微调。这时,常用的做法是使用小批次并固定较小的学习率,防止现有的模型参数发生较大的偏离。
\parinterval
大多数情况下,批次的大小是指单独一块GPU上的数据量,然而考虑到利用数据并行进行分布式训练时,批次大小等于所有GPU 中批次大小的和。下面以Transformer模型为例。通常Transformer-Base模型使用4096词/GPU的批次在8张GPU上进行训练,此时真实批次大小为
$
4096
\times
8
=
32768
$
词。伴随着模型容量的进一步增加,例如Transformer-Big模型,由于训练过程中网络的中间表示要消耗大量的GPU显存,可能会考虑减小批次的大小并使用累计梯度的方式来保证稳定的训练。累计梯度是一种大批量训练的常用手段,即按照一定频率缓存多个相邻批次的梯度后再进行参数的更新。比如,为了获取大批次,可以考虑将累计的更新频率设置为2或4。图
\ref
{
fig:13-17
}
给出了累计梯度的参数更新方法,可以看到使用累积梯度的方式可以减少设备的空闲时间。
%----------------------------------------------
\begin{figure}
[htp]
\centering
\input
{
./Chapter13/Figures/figure-batch-generation-method
}
\caption
{
生成批次的方式
}
\label
{
fig:13-17
}
\end{figure}
%----------------------------------------------
\parinterval
此外,前人工作表明,使用大批量训练复杂网络结构时要配合略大一些的学习率,加快模型在梯度方向上的更新速度,进而达到更优的翻译性能
\upcite
{
DBLP:conf/wmt/OttEGA18
}
。例如,深层网络也需要对学习率进行适当的调整才能发挥较好的性能。表
\ref
{
tab:13-3
}
展示了30层网络在不同批次大小和学习率峰值的条件下的BLEU值(WMT14 En-De)
\footnote
{
学习率峰值是指Transformer模型训练的预热阶段,学习率所到达的最高值。
}
。可以发现,在固定学习率峰值的条件下增大批次大小并不能带来性能上的增益,必须同时调整学习率的峰值。也有研究团队验证了Transformer-Big模型在128张GPU上进行分布式训练时,适当的增大学习率会带来明显的BLEU提升
\upcite
{
DBLP:conf/wmt/OttEGA18
}
。
\\
\\
\\
%----------------------------------------------
\begin{table}
[htp]
\centering
\caption
{
深层Transformer不同批次大学和学习率峰值设置下的BLEU值
}
\begin{tabular}
{
l | l l
}
\rule
{
0pt
}{
13pt
}
batch
&
lr
&
BLEU
\\
\hline
\rule
{
0pt
}{
13pt
}
4096
&
0.01
&
29.15
\\
\rule
{
0pt
}{
13pt
}
8192
&
0.01
&
29.06
\\
\rule
{
0pt
}{
13pt
}
8192
&
0.02
&
29.49
\end{tabular}
\label
{
tab:13-3
}
\end{table}
%--------------------------------------
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection
{
如何构建批次
}
\parinterval
由于不同句子之间的长度有明显的差异,这时批次所占用的显存/内存大小由其中最长句子的长度决定。通常使用
{
\small\bfnew
{
填充
}}
(Padding)的方式对一个批次中句长不足的部分用空白填充(见第六章)。但由于生成批次的方式不同,最终批次内的Padding数量各不相同,因此合理选择生成批次的方式也是至关重要的。通常有几种方法:
\begin{itemize}
\vspace
{
0.5em
}
\item
随机生成:最简单的方式是从整个数据集中随机生成批次。这种方式可以有效地保证样本间的随机性,但随机生成的批次中不同句子之间的长度会有较大区别,因此Padding数量较多会导致显卡的利用率较低。
\vspace
{
0.5em
}
\item
按句长排序:为了减少显卡利用率低的问题,可以根据源语言或者目标语言的句子长度进行排序,让相邻句长的样本更为相近(图
\ref
{
fig:13-18
}
)。这样在同一个批次中不会因为句长差异过大造成设备利用率的降低。
%----------------------------------------------
\begin{figure}
[htp]
\centering
\input
{
./Chapter13/Figures/figure-randomly-generation-vs-generate-by-sentence-length
}
\caption
{
批次生成 - 随机生成 vs 按句长生成
}
\label
{
fig:13-18
}
\end{figure}
%----------------------------------------------
\vspace
{
0.5em
}
\item
按词数构建批次:对比按照句长生成批次,按词数生成批次可以防止某些批次中句子整体长度特别长或者特别短的情况,保证不同批次之间整体的词数处于大致相同的范围,这样所得到的梯度也是可比较的。通常的做法是根据源语言词数、目标语言词数,或者源语言词数与目标语言词数的最大值等指标生成批次。
\vspace
{
0.5em
}
\item
按课程学习的方式:考虑样本的“难度”也是生成批次的一种策略。比如,可以使用
{
\small\bfnew
{
课程学习
}}
\index
{
课程学习
}
(Curriculum Learning)
\index
{
Curriculum Learning
}
的思想
\upcite
{
DBLP:conf/icml/BengioLCW09
}
,让系统先学习“简单”的样本,之后逐渐增加样本的难度,达到循序渐进的学习。具体来说,可以利用句子长度、词频等指标计算每个批次的“难度”,记为
$
d
$
。 之后,选择满足
$
d
\leq
c
$
的样本构建一个批次。这里,
$
c
$
表示难度的阈值,它可以随着训练的执行不断增大。
\vspace
{
0.5em
}
\end{itemize}
%----------------------------------------------------------------------------------------
% NEW SECTION
%----------------------------------------------------------------------------------------
\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
}
展示了一个神经机器翻译系统的
结果,可以看到,输入中把单词“他”换成“她”会造成
完全不同的译文。这时神经机器翻译系统就存在鲁棒性问题。
\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]
...
...
@@ -546,7 +360,7 @@ y_{j}^{ls} &=& (1-\alpha) \cdot \tilde{y}_j + \alpha \cdot q
\end{figure}
%----------------------------------------------
\parinterval
决定神经网络模型鲁棒性的因素主要包括训练数据、网络结构、正则化方法等。仅仅从网络结构设计和训练算法优化的角度来改善鲁棒性一般是较为困难的,因为如果输入数据是“干净”的,模型就会学习在这样的数据上进行预测。无论模型的能力是强还是弱,当推断时
输入数据出现扰动的时候,模型可能无法适应,因为它从未见过这种新的
数据。因此,一种简单直接的方法是从训练样本出发,让模型在学习的过程中能对样本中的扰动进行处理,进而在推断时具有更强的鲁棒性。具体来说,可以在训练过程中构造有噪声的样本,即基于
{
\small\bfnew
{
对抗样本
}}
\index
{
对抗样本
}
(Adversarial Examples)
\index
{
Adversarial Examples
}
进行
{
\small\bfnew
{
对抗训练
}}
\index
{
对抗训练
}
(Adversarial Training)
\index
{
Adversarial Training
}
。
\parinterval
决定神经网络模型鲁棒性的因素主要包括训练数据、网络结构、正则化方法等。仅仅从网络结构设计和训练算法优化的角度来改善鲁棒性一般是较为困难的,因为如果输入数据是“干净”的,模型就会学习在这样的数据上进行预测。无论模型的能力是强还是弱,当推断时
的输入数据出现扰动的时候,模型可能无法适应这种它从未见过的新
数据。因此,一种简单直接的方法是从训练样本出发,让模型在学习的过程中能对样本中的扰动进行处理,进而在推断时具有更强的鲁棒性。具体来说,可以在训练过程中构造有噪声的样本,即基于
{
\small\bfnew
{
对抗样本
}}
\index
{
对抗样本
}
(Adversarial Examples)
\index
{
Adversarial Examples
}
进行
{
\small\bfnew
{
对抗训练
}}
\index
{
对抗训练
}
(Adversarial Training)
\index
{
Adversarial Training
}
。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
...
...
@@ -556,21 +370,21 @@ y_{j}^{ls} &=& (1-\alpha) \cdot \tilde{y}_j + \alpha \cdot q
\parinterval
在图像识别领域,研究人员就发现,对于输入图像的细小扰动,如像素变化等,会使模型以高置信度给出错误的预测
\upcite
{
DBLP:conf/cvpr/NguyenYC15,DBLP:journals/corr/SzegedyZSBEGF13,DBLP:journals/corr/GoodfellowSS14
}
,但是这种扰动并不会影响人类的判断。也就是说,样本中的微小变化“欺骗”了图像识别系统,但是“欺骗”不了人类。这种现象背后的原因有很多,例如,一种可能的原因是:系统并没有理解图像,而是在拟合数据,因此拟合能力越强,反而对数据中的微小变化更加敏感。从统计学习的角度看,既然新的数据中可能会有扰动,那更好的学习方式就是在训练中显性地把这种扰动建模出来,让模型对输入的细微变化更加鲁棒。
\parinterval
这种对原样本上增加一些难以察觉的扰动从而使模型的到错误判断的样本,被称为对抗样本。对于输入
$
\mathbi
{
x
}$
和输出
$
\mathbi
{
y
}$
,对抗样本形式上可以被描述为:
{
\red
s.t.的形式再确认一下
}
\parinterval
这种对原样本上增加一些难以察觉的扰动从而使模型的到错误判断的样本,被称为对抗样本。对于输入
$
\mathbi
{
x
}$
和输出
$
\mathbi
{
y
}$
,对抗样本形式上可以被描述为:
\begin{eqnarray}
\funp
{
C
}
(
\mathbi
{
x
}
)
&
=
&
\mathbi
{
y
}
\label
{
eq:13-6
}
\\
\funp
{
C
}
(
\mathbi
{
x
}
)
&
\neq
&
\mathbi
{
y
}
\funp
{
C
}
(
\mathbi
{
x
}
'
)
&
\neq
&
\mathbi
{
y
}
\label
{
eq:13-7
}
\\
\textrm
{
s.t.
}
\quad
\funp
{
R
}
(
\mathbi
{
x
}
,
\mathbi
{
x
}
')
&
<
&
\varepsilon
\label
{
eq:13-8
}
\end{eqnarray}
\noindent
其中,
$
(
\mathbi
{
x
}
,
\mathbi
{
y
}
)
$
为原样本,
$
(
\mathbi
{
x
}
',
\mathbi
{
y
}
)
$
为输入中含有扰动的对抗样本,函数
$
\funp
{
C
}
(
\cdot
)
$
为模型。公式
\eqref
{
eq:13-8
}
中
$
\funp
{
R
}
(
\mathbi
{
x
}
,
\mathbi
{
x
}
'
)
$
表示扰动后的输入
$
\mathbi
{
x
}
'
$
和原输入
$
\mathbi
{
x
}$
之间的距离,
$
\varepsilon
$
表示扰动的受限范围
当模型对包含噪声的数据容易给出较差的结果时,往往意味着模型的抗干扰能力差,因此可以利用对抗样本检测现有模型的鲁棒性
\upcite
{
DBLP:conf/emnlp/JiaL17
}
。同时,采用类似数据增强的方式将对抗样本混合至训练数据中,能够帮助模型学习到更普适的特征使模型的
到稳定的输出,这种方式也被称为对抗训练
\upcite
{
DBLP:journals/corr/GoodfellowSS14,DBLP:conf/emnlp/BekoulisDDD18,DBLP:conf/naacl/YasunagaKR18
}
。
\noindent
其中,
$
(
\mathbi
{
x
}
,
\mathbi
{
y
}
)
$
为原样本,
$
(
\mathbi
{
x
}
',
\mathbi
{
y
}
)
$
为输入中含有扰动的对抗样本,函数
$
\funp
{
C
}
(
\cdot
)
$
为模型。公式
\eqref
{
eq:13-8
}
中
$
\funp
{
R
}
(
\mathbi
{
x
}
,
\mathbi
{
x
}
'
)
$
表示扰动后的输入
$
\mathbi
{
x
}
'
$
和原输入
$
\mathbi
{
x
}$
之间的距离,
$
\varepsilon
$
表示扰动的受限范围
。当模型对包含噪声的数据容易给出较差的结果时,往往意味着该模型的抗干扰能力差,因此可以利用对抗样本检测现有模型的鲁棒性
\upcite
{
DBLP:conf/emnlp/JiaL17
}
。同时,采用类似数据增强的方式将对抗样本混合至训练数据中,能够帮助模型学习到更普适的特征使模型得
到稳定的输出,这种方式也被称为对抗训练
\upcite
{
DBLP:journals/corr/GoodfellowSS14,DBLP:conf/emnlp/BekoulisDDD18,DBLP:conf/naacl/YasunagaKR18
}
。
\parinterval
通过对抗样本训练
提升模型鲁棒性的首要问题是如何生成对抗样本。通过当前模型
$
\funp
{
C
}$
,和样本
$
(
\mathbi
{
x
}
,
\mathbi
{
y
}
)
$
,生成对抗样本的过程,被称为
{
\small\bfnew
{
对抗攻击
}}
\index
{
对抗攻击
}
(Adversarial Attack)
\index
{
Adversarial Attack
}
。对抗攻击可以被分为两种,分别是黑盒攻击和白盒攻击。在白盒攻击中,攻击算法可以访问模型的完整信息,包括模型结构、网络参数、损失函数、激活函数、输入和输出数据等。而黑盒攻击不需要知道神经网络的详细信息,仅仅通过访问模型的输入和输出达到攻击目的,因此 通常依赖启发式方法来生成对抗样本
。由于神经网络本身便是一个黑盒模型,研究人员对模型内部的参数干预度有限,因此黑盒攻击在许多实际应用中更加实用。
\parinterval
通过对抗样本训练
来提升模型鲁棒性的首要问题是:如何生成对抗样本。通过当前模型
$
\funp
{
C
}$
,和样本
$
(
\mathbi
{
x
}
,
\mathbi
{
y
}
)
$
,生成对抗样本的过程,被称为
{
\small\bfnew
{
对抗攻击
}}
\index
{
对抗攻击
}
(Adversarial Attack)
\index
{
Adversarial Attack
}
。对抗攻击可以被分为两种,分别是黑盒攻击和白盒攻击。在白盒攻击中,攻击算法可以访问模型的完整信息,包括模型结构、网络参数、损失函数、激活函数、输入和输出数据等。而黑盒攻击不需要知道神经网络的详细信息,仅仅通过访问模型的输入和输出就可以达到攻击目的,
{
\red
因此通常依赖启发式方法来生成对抗样本
}
。由于神经网络本身便是一个黑盒模型,研究人员对模型内部的参数干预度有限,因此黑盒攻击在许多实际应用中更加实用。
\parinterval
在神经机器翻译中,输入
中细小的扰动经常会使模型变得脆弱
\upcite
{
DBLP:conf/iclr/BelinkovB18
}
。但是图像和文本之间存在着一定的差异,图像中的对抗攻击方法难以直接应用于自然语言处理领域,这是由于以像素值等表示的图像数据是连续的
\upcite
{
DBLP:conf/naacl/MichelLNP19
}{
\red
(如何理解连续?)
}
,而文本中的一个个单词本身离散的。因此简单替换这些离散的单词,可能会生成语法错误或者语义错误的句子。这时的扰动过大,模型很容易判别,因此无法涵盖原始问题。即使对词嵌入等连续表示部分进行扰动,也会产生无法与词嵌入空间中的任何词匹配的问题
\upcite
{
Gong2018AdversarialTW
}
。针对这些问题,下面着重介绍神经机器翻译任务中有效的生成和利用对抗样本的方法
。
\parinterval
在神经机器翻译中,输入
所包含的细小的扰动会使模型变得脆弱
\upcite
{
DBLP:conf/iclr/BelinkovB18
}
。由于图像和文本数据之间存在着一定的差异,以像素值等表示的图像数据是连续的
\upcite
{
DBLP:conf/naacl/MichelLNP19
}{
\red
(如何理解连续?)
}
,而文本中的一个个单词本身离散的,因此图像中的对抗攻击方法难以直接应用于自然语言处理领域。简单替换这些离散的单词,可能会生成语法错误或者语义错误的句子。由于简单替换产生的扰动过大,模型很容易判别,因此无法涵盖原始问题。即使对词嵌入等连续表示的部分进行扰动,也会产生无法与词嵌入空间中的任何词匹配的向量
\upcite
{
Gong2018AdversarialTW
}
。针对这些问题,下面着重介绍神经机器翻译任务中如何有效生成和使用对抗样本
。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
...
...
@@ -578,7 +392,7 @@ y_{j}^{ls} &=& (1-\alpha) \cdot \tilde{y}_j + \alpha \cdot q
\subsection
{
基于黑盒攻击的方法
}
\parinterval
一个好的对抗样本应该具有
一些性质,如:对文本做最少的修改,并最大程度地保留原文的语义。这些可以通过对文本加噪声的方式来来实现,分为自然噪声和人工噪声
\upcite
{
DBLP:conf/iclr/BelinkovB18
}
。自然噪声一般是指人为的在语料库中收集自然出现的错误,如输入错误,拼写错误等,构建可用的词汇替换表,在文本中加入噪声。人为噪声则可以通过多种方式来处理文本。如可以通过在干净的数据中通过固定的规则或是使用噪声生成器以一定的概率引入不同类型的噪声,如:拼写、表情符号、语法错误等
\upcite
{
DBLP:conf/naacl/VaibhavSSN19,DBLP:conf/naacl/AnastasopoulosL19,DBLP:conf/acl/SinghGR18
}
;此外,也可以在文本中加入精心设计,或毫无意义的单词序列,以此来分散模型的注意,通过不同的算法来确定插入的位置和内容,这种方式常用于阅读理解任务中
\upcite
{
DBLP:conf/emnlp/JiaL17
}
。
\parinterval
一个好的对抗样本应该具有
这种性质:对文本做最少的修改,并最大程度地保留原文的语义。一种简单的实现方式是对文本加噪声。这里,噪声可以分为自然噪声和人工噪声
\upcite
{
DBLP:conf/iclr/BelinkovB18
}
。自然噪声一般是指人为的在语料库中收集自然出现的错误,如输入错误、拼写错误等,或构建可用的词汇替换表,以及在文本中加入噪声。人为噪声是通过多种方式来处理文本,例如,可以通过固定的规则或是使用噪声生成器,在干净的数据中以一定的概率引入不同类型的噪声,如:拼写、表情符号、语法错误等
\upcite
{
DBLP:conf/naacl/VaibhavSSN19,DBLP:conf/naacl/AnastasopoulosL19,DBLP:conf/acl/SinghGR18
}
;此外,也可以在文本中加入人为设计过的毫无意义的单词序列,以此来分散模型的注意。或者是通过不同的算法来确定插入的位置和内容,这种方式常用于阅读理解任务中
\upcite
{
DBLP:conf/emnlp/JiaL17
}{
\red
(改的对不对)
}
。
\parinterval
除了单纯的在文本中引入各种扰动外,还可以通过文本编辑的方式构建对抗样本,在不改变语义的情况下尽可能的修改文本
\upcite
{
DBLP:journals/corr/SamantaM17,DBLP:conf/ijcai/0002LSBLS18
}
,从而生成对抗样本。文本的编辑方式主要包括交换,插入,替换和删除操作。图
\ref
{
fig:13-20
}
给出了一些通过上述方式生成的对抗样本。
...
...
@@ -591,11 +405,11 @@ y_{j}^{ls} &=& (1-\alpha) \cdot \tilde{y}_j + \alpha \cdot q
\end{figure}
%----------------------------------------------
\parinterval
形式上可以利用FGSM
\upcite
{
DBLP:journals/corr/GoodfellowSS14
}
等算法验证文本中每一个单词对语义的贡献度,同时为每一个单词构建其候选池,包括单词的近义词,拼写错误词,同音词等。对于贡献度较低的词如语气词,副词等,可以通过插入,删除操作进行扰动。对于文本序列中其他的单词可以进行在候选池中选择相应的单词进行替换。对于交换操作可以基于词级别交换序列中的单词,也可以是基于字符级的交换单词中的字符
\upcite
{
DBLP:conf/coling/EbrahimiLD18
}
。重复的进行不同的编辑操作,直至误导模型做出错误的判断。
\parinterval
{
\red
形式上,可以利用FGSM
\upcite
{
DBLP:journals/corr/GoodfellowSS14
}
等算法,验证文本中每一个单词对语义的贡献度,同时为每一个单词构建候选池,包括单词的近义词,拼写错误词,同音词等。对于贡献度较低的词,如语气词,副词等,可以使用插入、删除操作进行扰动。对于文本序列中其他的单词,可以在候选池中选择相应的单词进行替换。其中,交换操作可以是基于词级别的,比如交换序列中的单词,也可以是基于字符级别的,比如交换单词中的字符
\upcite
{
DBLP:conf/coling/EbrahimiLD18
}
。重复的进行不同的编辑操作,直至误导模型做出错误的判断。
}
\parinterval
基于语义的方法除了通过不同的算法进行修改输入生成对抗样本外,也可以通过神经网络模型增加扰动,例如在机器翻译中常用的回译技术也是生成对抗样本的一种有效方式,通过反向模型将目标语言翻译成源语言,并再次应用于神经机器翻译系统的训练。除了翻译模型,语言模型也可以用于生成对抗样本。前面也已经介绍过语言模型可以用于检测句子流畅度,根据上文预测当前位置可能出现的单词,因此可以通过语言模型根据上文预测出当前位置最可能出现的多个单词,与序列中的原本的单词进行替换
。在机器翻译任务中,可以通过与神经机器翻译系统联合训练,共享词向量矩阵的方式得到语言模型。
{
\red
(引用)
}
\parinterval
在基于语义的方法中,除了通过不同的算法修改输入以外,也可以通过神经网络模型增加扰动。例如,在机器翻译中常用的回译技术,也是生成对抗样本的一种有效方式。回译就是,通过反向模型将目标语言翻译成源语言,并将翻译得到的双语数据再次应用于神经机器翻译系统的训练。除了翻译模型,语言模型也可以用于生成对抗样本。
{
\red
前面
}
已经介绍过,语言模型可以用于检测句子的流畅度,它根据上文预测当前位置可能出现的单词。因此,此时可以使用语言模型预测出当前位置最可能出现的多个单词,并用这些词替换序列中原本的单词
。在机器翻译任务中,可以通过与神经机器翻译系统联合训练,共享词向量矩阵的方式得到语言模型。
{
\red
(引用)
}
\parinterval
此外,
生成
{
\small\bfnew
{
对抗网络
}}
\index
{
对抗网络
}
(Generative Adversarial Networks
\index
{
Generative Adversarial Networks
}
, GANs)也可以被用来生成对抗样本
\upcite
{
DBLP:conf/iclr/ZhaoDS18
}
。与回译方法类似,GAN的方法将原始的输入映射为潜在分布
$
\funp
{
P
}$
,并在其中搜索出服从相同分布的文本构成对抗样本。一些研究正
也对这种方法进行了优化
\upcite
{
DBLP:conf/iclr/ZhaoDS18
}
,在稠密的向量空间
$
z
$
中进行搜索,也就是说在定义
$
\funp
{
P
}$
的基础稠密向量空间中找到对抗性表示
$
\mathbi
{
z
}
'
$
,然后利用生成模型将其映射回
$
\mathbi
{
x
}
'
$
,使最终生成的对抗样本在语义上接近原始输入。
{
\red
(既然GAN不是主流,可以考虑把这部分放到拓展阅读中)
}
\parinterval
此外,
{
\small\bfnew
{
生成对抗网络
}}
\index
{
生成对抗网络
}
(Generative Adversarial Networks
\index
{
Generative Adversarial Networks
}
, GANs)也可以被用来生成对抗样本
\upcite
{
DBLP:conf/iclr/ZhaoDS18
}
。与回译方法类似,GAN的方法将原始的输入映射为潜在分布
$
\funp
{
P
}$
,并在其中搜索出服从相同分布的文本构成对抗样本。一些研究
也对这种方法进行了优化
\upcite
{
DBLP:conf/iclr/ZhaoDS18
}
,在稠密的向量空间
$
z
$
中进行搜索,也就是说在定义
$
\funp
{
P
}$
的基础稠密向量空间中找到对抗性表示
$
\mathbi
{
z
}
'
$
,然后利用生成模型将其映射回
$
\mathbi
{
x
}
'
$
,使最终生成的对抗样本在语义上接近原始输入。
{
\red
(既然GAN不是主流,可以考虑把这部分放到拓展阅读中)
}
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
...
...
@@ -603,15 +417,15 @@ y_{j}^{ls} &=& (1-\alpha) \cdot \tilde{y}_j + \alpha \cdot q
\subsection
{
基于白盒攻击的方法
}
\parinterval
除了在离散的词汇级别
的增加扰动
,还可以在模型内部增加扰动。这里简单介绍一下利用白盒攻击方法增加模型鲁棒性的方法:
\parinterval
除了在离散的词汇级别
增加扰动以外
,还可以在模型内部增加扰动。这里简单介绍一下利用白盒攻击方法增加模型鲁棒性的方法:
\begin{itemize}
\vspace
{
0.5em
}
\item
与利用词向量的余弦相似度选择
近义词对当前词进行替换类似,可以对于每一个词都在其词嵌入表示的基础上累加了一个从正太分布,之后将其作为模型的最终输入。同时,可以在训练目标中增加额外的训练目标,比如,迫使模型在接收到被扰动的输入后,编码端
生成与正常输入类似的表示,解码端输出正确的翻译结果
\upcite
{
DBLP:conf/acl/LiuTMCZ18
}
。
\item
与利用词向量的余弦相似度选择
当前词的近义词,并对当前词进行替换类似,可以在每一个词的词嵌入表示上,累加一个服从正太分布的变量,之后将其作为模型的最终输入。同时,可以在训练目标中增加额外的训练目标。比如,迫使模型在接收到被扰动的输入后,编码端能够
生成与正常输入类似的表示,解码端输出正确的翻译结果
\upcite
{
DBLP:conf/acl/LiuTMCZ18
}
。
\vspace
{
0.5em
}
\item
除了引入标准的噪声外,还可以根据模型所存在的具体问题,
构建不同的扰动。例如,针对输入中包含同音字错误导致模型输出误差较大的问题,可以将单词的发音转换为一个包含
$
n
$
个发音单元,如音素,音节等的发音序列,并训练相应的嵌入矩阵将每一个发音单元转换为对应的向量表示。对发音序列中的发音单元的嵌入表示进行平均后,得到当前单词的发音表示。最后将词嵌入与单词的发音表示,加权求和后的结果作为模型的输入
\upcite
{
DBLP:conf/acl/LiuMHXH19
}
。通过这种方式可以提高模型对同音异形词的鲁棒性,得到更准确的翻译结果。此外除了在词嵌入层增加扰动,同样有研究人员证明了,在端到端模型的中的编码端输出中引入额外的噪声,能起到与在层输入中增加扰动生成对抗样本进行对抗训练
类似的效果,增强了模型训练的鲁棒性
\upcite
{
DBLP:conf/acl/LiLWJXZLL20
}
。
\item
除了引入标准的噪声外,还可以根据模型所存在的具体问题,
构建不同的扰动。例如,针对输入中包含同音字错误导致的模型输出误差较大的问题,可以将单词的发音转换为一个包含
$
n
$
个发音单元的发音序列,如音素,音节等。并训练相应的嵌入矩阵将每一个发音单元转换为对应的向量表示。对发音序列中发音单元的嵌入表示进行平均后,得到当前单词的发音表示。最后将词嵌入与单词的发音表示进行加权求和,并将结果作为模型的输入
\upcite
{
DBLP:conf/acl/LiuMHXH19
}
。通过这种方式可以提高模型对同音异形词的鲁棒性,得到更准确的翻译结果。此外除了在词嵌入层增加扰动,同样有研究人员证明了,在端到端模型中的编码端输出中引入额外的噪声,能起到与在层输入中增加扰动相
类似的效果,增强了模型训练的鲁棒性
\upcite
{
DBLP:conf/acl/LiLWJXZLL20
}
。
\vspace
{
0.5em
}
\item
此外还
有一类基于梯度的方法来生成对抗样本进行对抗性训练。例如,可以通过最大化替换词与原始单词词向量之间的差值和候选词的梯度向量
之间的相似度来生成对抗样本
\upcite
{
DBLP:conf/acl/ChengJM19
}
,具体的计算方式如下:
{
\red
下面的是sin还是sim,而且文字中是正弦把?下面三角是不是delta
}
\item
此外还
可以使用基于梯度的方法来生成对抗样本。例如,可以利用替换词与原始单词词向量之间的差值,以及候选词的梯度
之间的相似度来生成对抗样本
\upcite
{
DBLP:conf/acl/ChengJM19
}
,具体的计算方式如下:
{
\red
下面的是sin还是sim,而且文字中是正弦把?下面三角是不是delta
}
\begin{eqnarray}
{
\mathbi
{
x
}
'
}_
i
&
=
&
\arg\max
_{
\mathbi
{
x
}
\in
\nu
_{
\mathbi
{
x
}}}
\textrm
{
sim
}
(
\funp
{
e
}
(
\mathbi
{
x
}
)-
\funp
{
e
}
(
\mathbi
{
x
}_
i),
\mathbi
{
g
}_{
\mathbi
{
x
}_
i
}
)
\label
{
eq:13-9
}
\\
...
...
@@ -619,24 +433,24 @@ y_{j}^{ls} &=& (1-\alpha) \cdot \tilde{y}_j + \alpha \cdot q
\label
{
eq:13-10
}
\end{eqnarray}
\noindent
其中,
$
\mathbi
{
x
}_
i
$
为输入中第
$
i
$
个词,
$
\mathbi
{
g
}_{
\mathbi
{
x
}_
i
}$
为对应的梯度向量,
$
\funp
{
e
}
(
\cdot
)
$
用于获取词向量,
$
\textrm
{
sim
}
(
\cdot
,
\cdot
)
$
用于评估两个向量之间的余弦距离
{
\red
(很多符号没有解释,
$
∇
_
(
e
(
x
_
i
))
$
是什么?等等)
}
。
$
\nu
_{
\mathbi
{
x
}}$
为源语的词表,但是由于对词表中所有单词进行枚举,计算成本较大,因此利用语言模型选择最可能的
$
n
$
个词作为候选,进而缩减匹配范围,通过此方式对采样出的源语词进行替换。同时为了保护模型不受解码器预测误差的影响,对模型目标端的输入同样做了调整,方法与源语端类似,不同的地方在于将公式
\eqref
{
eq:13-10
}
中的损失替换为
$
-
\log
\funp
{
P
}
(
\mathbi
{
y
}
|
\mathbi
{
x
}
'
)
$
,利用语言模型选择候选和采样的方式
也做出了相应的调整。在进行对抗性训练时,在原有的训练损失上增加了三个额外的损失,最终的训练目标为:
\noindent
其中,
$
\mathbi
{
x
}_
i
$
为输入中第
$
i
$
个词,
$
\mathbi
{
g
}_{
\mathbi
{
x
}_
i
}$
为对应的梯度向量,
$
\funp
{
e
}
(
\cdot
)
$
用于获取词向量,
$
\textrm
{
sim
}
(
\cdot
,
\cdot
)
$
用于评估两个向量之间的余弦距离
{
\red
(很多符号没有解释,
$
∇
_
(
e
(
x
_
i
))
$
是什么?等等)
}
,
$
\nu
_{
\mathbi
{
x
}}$
为源语的词表。但是,由于对词表中所有单词进行枚举时,计算成本较大。因此利用语言模型选择最可能的
$
n
$
个词作为候选,进而缩减匹配范围,并从中采样出源语词进行替换是一种更有效地方式。同时,为了保护模型不受解码器预测误差的影响,此时需要对模型目标端的输入做出同样的调整。与在源语端操作不同的地方时,此时会将公式
\eqref
{
eq:13-10
}
中的损失替换为
$
-
\log
\funp
{
P
}
(
\mathbi
{
y
}
|
\mathbi
{
x
}
'
)
$
。同时,在如何利用语言模型选择候选和采样方面,
也做出了相应的调整。在进行对抗性训练时,在原有的训练损失上增加了三个额外的损失,最终的训练目标为:
\begin{eqnarray}
Loss(
\theta
_{
\textrm
{
mt
}}
,
\theta
_{
\textrm
{
lm
}}^{
\mathbi
{
x
}}
,
\theta
_{
\textrm
{
lm
}}^{
\mathbi
{
y
}}
)
&
=
&
Loss
_{
\textrm
{
clean
}}
(
\theta
_{
\textrm
{
mt
}}
) + Loss
_{
\textrm
{
lm
}}
(
\theta
_{
\textrm
{
lm
}}^{
\mathbi
{
x
}}
) +
\nonumber
\\
&
&
Loss
_{
\textrm
{
robust
}}
(
\theta
_{
\textrm
{
mt
}}
) + Loss
_{
\textrm
{
lm
}}
(
\theta
_{
\textrm
{
lm
}}^{
\mathbi
{
y
}}
)
\label
{
eq:13-11
}
\end{eqnarray}
\noindent
其中
分别
$
Loss
_{
\textrm
{
clean
}}
(
\theta
_{
\textrm
{
mt
}}
)
$
为正常情况下的损失,
$
Loss
_{
\textrm
{
lm
}}
(
\theta
_{
\textrm
{
lm
}}^{
\mathbi
{
x
}}
)
$
和
$
Loss
_{
\textrm
{
lm
}}
(
\theta
_{
\textrm
{
lm
}}^{
\mathbi
{
y
}}
)
$
生成对抗样本所用到的源语言与目标语言语言模型的损失,
$
Loss
_{
\textrm
{
robust
}}
(
\theta
_{
\textrm
{
mt
}}
)
$
是以对源语言和目标端做出修改后得到的对抗样本作为输入,原始的目标语作为答案
计算得到的损失,其具体形式如下:
\noindent
其中
$
Loss
_{
\textrm
{
clean
}}
(
\theta
_{
\textrm
{
mt
}}
)
$
为正常情况下的损失,
$
Loss
_{
\textrm
{
lm
}}
(
\theta
_{
\textrm
{
lm
}}^{
\mathbi
{
x
}}
)
$
和
$
Loss
_{
\textrm
{
lm
}}
(
\theta
_{
\textrm
{
lm
}}^{
\mathbi
{
y
}}
)
$
为生成对抗样本所用到的源语言与目标语言的模型的损失,
$
Loss
_{
\textrm
{
robust
}}
(
\theta
_{
\textrm
{
mt
}}
)
$
是使用修改后得到的对抗样本作为输入,并以原始的目标语作为答案时
计算得到的损失,其具体形式如下:
\begin{eqnarray}
Loss
_{
\textrm
{
robust
}}
(
\theta
_{
\textrm
{
mt
}}
)
&
=
&
\frac
{
1
}{
\textrm
{
S
}}
\sum
_{
(
\mathbi
{
x
}
,
\mathbi
{
y
}
\in
\textrm
{
S
}
)
}
-
\log
\funp
{
P
}
(
\mathbi
{
y
}
|
\mathbi
{
x
}
',
\mathbi
{
z
}
';
\theta
_{
\textrm
{
mt
}}
)
\label
{
eq:13-11
}
\end{eqnarray}
\noindent
这里
$
\textrm
{
S
}$
代表整体的语料库。
通过上述方式达到对抗训练的目的。
\noindent
这里
$
\textrm
{
S
}$
代表整体的语料库。
\vspace
{
0.5em
}
\end{itemize}
\parinterval
不论是黑盒方法还是白盒方法,本质上都是通过增加噪声使得模型训练更加健壮。类似的思想在很多机器学习方法都有体现,比如,最大熵模型中使用高斯噪声就是常用的增加模型健壮性的手段之一
\upcite
{
chen1999gaussian
}{
\red
这篇文章再找一下
}
。而在深度学习时代下,对抗训练将问题定义为:有意识地构造系统容易出错的样本,进而更加有效的增加系统抗干扰的
能力。
\parinterval
无论是黑盒方法还是白盒方法,本质上都是通过增加噪声使得模型训练更加健壮。类似的思想在很多机器学习方法中都有体现,比如,最大熵模型中使用高斯噪声就是常用的增加模型健壮性的手段之一
\upcite
{
chen1999gaussian
}{
\red
这篇文章再找一下
}
。而在深度学习时代下,对抗训练将问题定义为:有意识地构造出系统容易出错的样本,并使用这种样本训练系统,以此增加系统的抗干扰
能力。
%----------------------------------------------------------------------------------------
% NEW SECTION
...
...
@@ -668,23 +482,23 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{\textrm{S}}\sum_{(\ma
%----------------------------------------------------------------------------------------
\sectionnewpage
\section
{
知识
精炼
}
\label
{
subsection-7.5.3
}
\section
{
知识
蒸馏
}
\label
{
subsection-7.5.3
}
\parinterval
理想的机器翻译系统应该是品质好、速度块、存储占用少。不过现实的机器翻译系统往往需要用运行速度和存储空间来换取翻译品质,比如,
\ref
{
subsection-7.3.2
}
节提到的增大模型容量的方法就是通过增加模型参数量来达到更好的函数拟合效果,但是这也导致系统变得更加笨拙。在很多场景下,这样的模型甚至无法使用。比如,Transformer-Big等“大”模型通常在专用GPU服务器上运行,在手机等受限环境下仍很难应用。
\parinterval
另一方面,直接训练“小”模型的效果往往并不理想,其翻译品质与“大”模型相比仍有比较明显的差距。比如,在Transformer中,使用一个48层的编码器要比传统的6层编码器在BLEU上高出1-2个点,而且两者翻译结果的人工评价的区别也十分明显。
\parinterval
面对小模型难以训练的问题,一种有趣的想法是把“大”模型的知识传递给“小”模型,让“小”模型可以更好的进行学习。这类似于,教小孩子学习数学,是请一个权威数学家(数据中的标准答案),还是请一个小学数学教师(“大”模型)。这就是知识
精炼
的基本思想。
\parinterval
面对小模型难以训练的问题,一种有趣的想法是把“大”模型的知识传递给“小”模型,让“小”模型可以更好的进行学习。这类似于,教小孩子学习数学,是请一个权威数学家(数据中的标准答案),还是请一个小学数学教师(“大”模型)。这就是知识
蒸馏
的基本思想。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection
{
什么是知识
精炼
}
\subsection
{
什么是知识
蒸馏
}
\parinterval
通常,知识
精炼
可以被看作是一种知识迁移的手段
\upcite
{
Hinton2015Distilling
}
。如果把“大”模型的知识迁移到“小”模型,这种方法的直接结果就是
{
\small\bfnew
{
模型压缩
}}
\index
{
模型压缩
}
(Model Compression)
\index
{
Model Compression
}
。当然,理论上也可以把“小”模型的知识迁移到“大”模型,比如,将迁移后得到的“大”模型作为初始状态,之后继续训练该模型,以期望取得加速收敛的效果。不过,在实践中更多是使用“大”模型到“小”模型的迁移,这也是本节讨论的重点。
\parinterval
通常,知识
蒸馏
可以被看作是一种知识迁移的手段
\upcite
{
Hinton2015Distilling
}
。如果把“大”模型的知识迁移到“小”模型,这种方法的直接结果就是
{
\small\bfnew
{
模型压缩
}}
\index
{
模型压缩
}
(Model Compression)
\index
{
Model Compression
}
。当然,理论上也可以把“小”模型的知识迁移到“大”模型,比如,将迁移后得到的“大”模型作为初始状态,之后继续训练该模型,以期望取得加速收敛的效果。不过,在实践中更多是使用“大”模型到“小”模型的迁移,这也是本节讨论的重点。
\parinterval
知识
精炼
基于两个假设:
\parinterval
知识
蒸馏
基于两个假设:
\begin{itemize}
\vspace
{
0.5em
}
...
...
@@ -696,7 +510,7 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{\textrm{S}}\sum_{(\ma
\parinterval
这里所说的第二个假设对应了机器学习中的一大类问题
\ \dash
\
{
\small\bfnew
{
学习难度
}}
\index
{
学习难度
}
(Learning Difficulty)
\index
{
Learning Difficulty
}
。所谓难度是指:在给定一个模型的情况下,需要花费多少代价对目标任务进行学习。如果目标任务很简单,同时模型与任务很匹配,那学习难度就会降低。如果目标任务很复杂,同时模型与其匹配程度很低,那学习难度就会很大。在自然语言处理任务中,这个问题的一种表现是:在很好的数据中学习的模型的翻译质量可能仍然很差。即使训练数据是完美的,但是模型仍然无法做到完美的学习。这可能是因为建模的不合理,导致模型无法描述目标任务中复杂的规律。也就是纵然数据很好,但是模型学不到其中的“知识”。在机器翻译中这个问题体现的尤为明显。比如,在机器翻译系统
$
n
$
-best结果中挑选最好的译文(成为Oracle)作为训练样本让系统重新学习,系统仍然达不到Oracle的水平。
\parinterval
知识
精炼
本身也体现了一种“自学习”的思想。即利用模型(自己)的预测来教模型(自己)。这样既保证了知识可以向更轻量的模型迁移,同时也避免了模型从原始数据中学习难度大的问题。虽然“大”模型的预测中也会有错误,但是这种预测是更符合建模的假设的,因此“小”模型反倒更容易从不完美的信息中学习
\footnote
[15]
{
很多时候,“大”模型和“小”模型都是基于同一种架构,因此二者对问题的假设和模型结构都是相似的。
}
到更多的知识。类似于,刚开始学习围棋的人从职业九段身上可能什么也学不到,但是向一个业余初段的选手学习可能更容易入门。另外,也有研究表明:在机器翻译中,相比于“小”模型,“大”模型更容易进行优化,也更容易找到更好的模型收敛状态。因此在需要一个性能优越,存储较小的模型时,也会考虑将大模型压缩得到更轻量模型的手段
\upcite
{
DBLP:journals/corr/abs-2002-11794
}
。
\parinterval
知识
蒸馏
本身也体现了一种“自学习”的思想。即利用模型(自己)的预测来教模型(自己)。这样既保证了知识可以向更轻量的模型迁移,同时也避免了模型从原始数据中学习难度大的问题。虽然“大”模型的预测中也会有错误,但是这种预测是更符合建模的假设的,因此“小”模型反倒更容易从不完美的信息中学习
\footnote
[15]
{
很多时候,“大”模型和“小”模型都是基于同一种架构,因此二者对问题的假设和模型结构都是相似的。
}
到更多的知识。类似于,刚开始学习围棋的人从职业九段身上可能什么也学不到,但是向一个业余初段的选手学习可能更容易入门。另外,也有研究表明:在机器翻译中,相比于“小”模型,“大”模型更容易进行优化,也更容易找到更好的模型收敛状态。因此在需要一个性能优越,存储较小的模型时,也会考虑将大模型压缩得到更轻量模型的手段
\upcite
{
DBLP:journals/corr/abs-2002-11794
}
。
\parinterval
通常把“大”模型看作的传授知识的“教师”,被称作
{
\small\bfnew
{
教师模型
}}
\index
{
教师模型
}
(Teacher Model)
\index
{
Teacher Model
}
;把“小”模型看作是接收知识的“学生”,被称作
{
\small\bfnew
{
学生模型
}}
\index
{
学生模型
}
(Student Model)
\index
{
Student Model
}
。比如,可以把Transformer-Big看作是教师模型,把Transformer-Base看作是学生模型。
...
...
@@ -704,13 +518,13 @@ Loss_{\textrm{robust}}(\theta_{\textrm{mt}}) &=& \frac{1}{\textrm{S}}\sum_{(\ma
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection
{
知识
精炼
的基本方法
}
\subsection
{
知识
蒸馏
的基本方法
}
\parinterval
知识
精炼
的基本思路是让学生模型所表示的函数尽可能去拟合教师模型所表示的函数
\upcite
{
Hinton2015Distilling
}
。通常有两种实现方式
\upcite
{
DBLP:conf/emnlp/KimR16
}
:
\parinterval
知识
蒸馏
的基本思路是让学生模型所表示的函数尽可能去拟合教师模型所表示的函数
\upcite
{
Hinton2015Distilling
}
。通常有两种实现方式
\upcite
{
DBLP:conf/emnlp/KimR16
}
:
\begin{itemize}
\vspace
{
0.5em
}
\item
{
\small\bfnew
{
基于单词的知识
精炼
}}
\index
{
基于单词的知识精炼
}
(Word-level Knowledge Distillation)
\index
{
Word-level Knowledge Distillation
}
。该方法的目标是使得学生模型的预测(分布)尽可能逼近教师模型的预测(分布)。令
$
\mathbf
{
x
}
=
\{
x
_
1
,
\ldots
,x
_
m
\}
$
和
$
\mathbf
{
y
}
=
\{
y
_
1
,
\ldots
,y
_
n
\}
$
分别表示输入和输出(数据中的答案)序列,
$
V
$
表示目标语言词表,
$
n
$
表示译文序列的长度,则基于单词的知识精炼
的损失函数被定义为:
\item
{
\small\bfnew
{
基于单词的知识
蒸馏
}}
\index
{
基于单词的知识蒸馏
}
(Word-level Knowledge Distillation)
\index
{
Word-level Knowledge Distillation
}
。该方法的目标是使得学生模型的预测(分布)尽可能逼近教师模型的预测(分布)。令
$
\mathbf
{
x
}
=
\{
x
_
1
,
\ldots
,x
_
m
\}
$
和
$
\mathbf
{
y
}
=
\{
y
_
1
,
\ldots
,y
_
n
\}
$
分别表示输入和输出(数据中的答案)序列,
$
V
$
表示目标语言词表,
$
n
$
表示译文序列的长度,则基于单词的知识蒸馏
的损失函数被定义为:
\begin{eqnarray}
L
_{
\textrm
{
word
}}
= -
\sum
_{
j=1
}^
n
\sum
_{
y
_
j
\in
V
}
\textrm
{
P
}_{
\textrm
{
t
}}
(y
_{
\textrm
{
j
}}
|
\mathbf
{
x
}
)
\textrm
{
logP
}_{
\textrm
{
s
}}
(y
_
j|
\mathbf
{
x
}
)
\label
{
eq:13-28
}
...
...
@@ -718,7 +532,7 @@ L_{\textrm{word}} = - \sum_{j=1}^n \sum_{y_j \in V} \textrm{P}_{\textrm{t}} (y_{
这里,
$
\textrm
{
P
}_{
\textrm
{
s
}}
(
y
_
j|
\mathbf
{
x
}
)
$
和
$
\textrm
{
P
}_{
\textrm
{
t
}}
(
y
_
i|
\mathbf
{
x
}
)
$
分别表示学生模型和教师模型在
$
j
$
位置的输出的概率。公式
\ref
{
eq:13-28
}
实际上在最小化教师模型和学生模型输出分布之间的交叉熵。
\vspace
{
0.5em
}
\item
{
\small\bfnew
{
基于序列的知识
精炼
}}
\index
{
基于序列的知识精炼
}
(Sequence-level Knowledge Distillation)
\index
{
Sequence-level Knowledge Distillation
}
。除了单词一级的拟合,基于序列的知识精炼
希望在序列整体上进行拟合。其损失函数被定义为:
\item
{
\small\bfnew
{
基于序列的知识
蒸馏
}}
\index
{
基于序列的知识蒸馏
}
(Sequence-level Knowledge Distillation)
\index
{
Sequence-level Knowledge Distillation
}
。除了单词一级的拟合,基于序列的知识蒸馏
希望在序列整体上进行拟合。其损失函数被定义为:
\begin{eqnarray}
L
_{
\textrm
{
seq
}}
= -
\sum
_{
\textrm
{
y
}}
\textrm
{
P
}_{
\textrm
{
t
}}
(
\mathbf
{
y
}
|
\mathbf
{
x
}
)
\textrm
{
logP
}_{
\textrm
{
s
}}
(
\mathbf
{
y
}
|
\mathbf
{
x
}
)
\label
{
eq:13-29
}
...
...
@@ -730,7 +544,7 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
\label
{
eq:13-30
}
\end{eqnarray}
这样的损失函数带来最直接的好处是,知识
精炼的流程会非常简单。因为只需要利用教师模型将训练数据(源语言)翻译一遍,之后把它的输出替换为训练数据的目标语言部分。之后,利用得到的新的双语数据训练学生模型即可,图
\ref
{
fig:13-41
}
展示了简化后词级和序列级的不同,其中词级知识精炼
的解码端输入为真实双语数据的目标语言,并以teacher模型输出的概率分布作为学习目标,而序列级则直接将teacher推断后得到的结果作为解码端的输入,并将解码结果的One-hot向量作为学习目标。
这样的损失函数带来最直接的好处是,知识
蒸馏的流程会非常简单。因为只需要利用教师模型将训练数据(源语言)翻译一遍,之后把它的输出替换为训练数据的目标语言部分。之后,利用得到的新的双语数据训练学生模型即可,图
\ref
{
fig:13-41
}
展示了简化后词级和序列级的不同,其中词级知识蒸馏
的解码端输入为真实双语数据的目标语言,并以teacher模型输出的概率分布作为学习目标,而序列级则直接将teacher推断后得到的结果作为解码端的输入,并将解码结果的One-hot向量作为学习目标。
\vspace
{
0.5em
}
\end{itemize}
...
...
@@ -738,23 +552,23 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
\begin{figure}
[htp]
\centering
\input
{
./Chapter13/Figures/figure-difference-between-word-level-and-sequence-level-in-knowledge-distillation
}
\caption
{
词级和序列级知识
精炼
的差异
}
\caption
{
词级和序列级知识
蒸馏
的差异
}
\label
{
fig:13-41
}
\end{figure}
%-------------------------------------------
\parinterval
本质上,基于单词的知识
精炼和传统的语言模型等问题的建模方式是一致的。在传统方法中,训练数据中的答案会被看作是一个One-hot分布,之后让模型去尽可能拟合这种分布。而这里,答案不再是一个One-hot分布,而是由教师模型生成的真实分布,但是损失函数的形式是一模一样的。在具体实现时,一个容易出现的问题是在词级别的知识精炼
中,teacher模型的Softmax可能会生成非常尖锐的分布。这时需要考虑对分布进行平滑,提高模型的泛化能力
\footnote
[16]
{
比如,可以在Softmax函数中加入一个参数
$
\alpha
$
,如
$
\textrm
{
Softmax
}
(
s
_
i
)=
\frac
{
exp
(
s
_
i
/
\alpha
)
}{
\sum
_
j exp
(
s
_
i
/
\alpha
)
}$
。这样可以通过
$
\alpha
$
控制分布的平滑程度。
\parinterval
本质上,基于单词的知识
蒸馏和传统的语言模型等问题的建模方式是一致的。在传统方法中,训练数据中的答案会被看作是一个One-hot分布,之后让模型去尽可能拟合这种分布。而这里,答案不再是一个One-hot分布,而是由教师模型生成的真实分布,但是损失函数的形式是一模一样的。在具体实现时,一个容易出现的问题是在词级别的知识蒸馏
中,teacher模型的Softmax可能会生成非常尖锐的分布。这时需要考虑对分布进行平滑,提高模型的泛化能力
\footnote
[16]
{
比如,可以在Softmax函数中加入一个参数
$
\alpha
$
,如
$
\textrm
{
Softmax
}
(
s
_
i
)=
\frac
{
exp
(
s
_
i
/
\alpha
)
}{
\sum
_
j exp
(
s
_
i
/
\alpha
)
}$
。这样可以通过
$
\alpha
$
控制分布的平滑程度。
}
。
\parinterval
除了在模型最后输出的分布上进行知识
精炼
,同样可以使用教师模型对学生模型的
{
\small\bfnew
{
中间层输出
}}
\index
{
中间层输出
}
(Hint-based Knowledge Transfer)
\index
{
Hint-based Knowledge Transfer
}
和
{
\small\bfnew
{
注意力分布
}}
\index
{
注意力分布
}
(Attention To Attention Transfer)
\index
{
Attention To Attention Transfer
}
进行约束。而对翻译常用的Transformer架构,也有研究者使用更精细的精炼方式对模型各个位置的知识重新设计了知识迁移的方法
\upcite
{
DBLP:journals/corr/abs-1909-10351
}
。
\parinterval
除了在模型最后输出的分布上进行知识
蒸馏
,同样可以使用教师模型对学生模型的
{
\small\bfnew
{
中间层输出
}}
\index
{
中间层输出
}
(Hint-based Knowledge Transfer)
\index
{
Hint-based Knowledge Transfer
}
和
{
\small\bfnew
{
注意力分布
}}
\index
{
注意力分布
}
(Attention To Attention Transfer)
\index
{
Attention To Attention Transfer
}
进行约束。而对翻译常用的Transformer架构,也有研究者使用更精细的精炼方式对模型各个位置的知识重新设计了知识迁移的方法
\upcite
{
DBLP:journals/corr/abs-1909-10351
}
。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection
{
机器翻译中的知识
精炼
}
\subsection
{
机器翻译中的知识
蒸馏
}
\parinterval
在神经机器翻译中,通常使用公式
\ref
{
eq:13-30
}
的方法进行知识
精炼
,即通过教师模型构造伪数据,之后让学生模型从伪数据中学习。这样做的好处在于,系统研发人员不需要对系统进行任何修改,整个过程只需要调用教师模型和学生模型标准的训练和推断模块即可。
\parinterval
在神经机器翻译中,通常使用公式
\ref
{
eq:13-30
}
的方法进行知识
蒸馏
,即通过教师模型构造伪数据,之后让学生模型从伪数据中学习。这样做的好处在于,系统研发人员不需要对系统进行任何修改,整个过程只需要调用教师模型和学生模型标准的训练和推断模块即可。
\parinterval
另一个问题是如何构造教师模型和学生模型。以Transformer为例,通常有两种思路:
...
...
@@ -766,13 +580,13 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
\vspace
{
0.5em
}
\end{itemize}
\parinterval
此外还可以采用迭代的知识
精炼
的方式。首先,通过模型集成得到较强的教师模型,再将知识迁移到不同的学生模型上,随后继续使用这些学生模型集成新的教师模型。不断的重复上述过程可以逐步提升集成模型的性能,如图
\ref
{
fig:13-42
}
所示。值得注意的是,随着迭代次数的增加,集成所带来的收益也会随着子模型之间差异性的减小而减少。
\parinterval
此外还可以采用迭代的知识
蒸馏
的方式。首先,通过模型集成得到较强的教师模型,再将知识迁移到不同的学生模型上,随后继续使用这些学生模型集成新的教师模型。不断的重复上述过程可以逐步提升集成模型的性能,如图
\ref
{
fig:13-42
}
所示。值得注意的是,随着迭代次数的增加,集成所带来的收益也会随着子模型之间差异性的减小而减少。
%----------------------------------------------
\begin{figure}
[htp]
\centering
\input
{
./Chapter13/Figures/figure-ensemble-knowledge-distillation
}
\caption
{
迭代式知识
精炼
}
\caption
{
迭代式知识
蒸馏
}
\label
{
fig:13-42
}
\end{figure}
%-------------------------------------------
...
...
@@ -784,7 +598,43 @@ L_{\textrm{seq}} = - \textrm{logP}_{\textrm{s}}(\hat{\mathbf{y}} | \mathbf{x})
%----------------------------------------------------------------------------------------
\sectionnewpage
\section
{
可解释性
}
\section
{
学习策略
}
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection
{
数据选择
}
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection
{
1. 领域适应中的数据选择
}
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection
{
2. 数据降噪
}
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection
{
3. 主动学习
}
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection
{
课程学习
}
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection
{
持续学习
}
%----------------------------------------------------------------------------------------
% NEW SECTION
...
...
bibliography.bib
查看文件 @
ceb9e624
...
...
@@ -19,10 +19,10 @@
year={2019}
}
@
article
{赵军峰2019深化改革,
@
inproceedings
{赵军峰2019深化改革,
title ={深化改革 探讨创新 推进发展——全国翻译专业学位研究生教育2019年会综述},
author ={赵军峰,姚恺璇},
journal
={中国翻译},
publisher
={中国翻译},
year ={2019},
}
...
...
@@ -33,28 +33,28 @@
publisher={University of Toronto Press}
}
@
article
{DBLP:journals/bstj/Shannon48,
@
inproceedings
{DBLP:journals/bstj/Shannon48,
author = {Claude E. Shannon},
title = {A mathematical theory of communication},
journal
= {Bell System Technical Journal},
publisher
= {Bell System Technical Journal},
volume = {27},
number = {3},
pages = {379--423},
year = {1948}
}
@
article
{shannon1949the,
@
inproceedings
{shannon1949the,
title={The mathematical theory of communication},
author={Claude E. {Shannon} and Warren {Weaver}},
journal
={IEEE Transactions on Instrumentation and Measurement},
publisher
={IEEE Transactions on Instrumentation and Measurement},
volume={13},
year={1949}
}
@
article
{weaver1955translation,
@
inproceedings
{weaver1955translation,
title={Translation},
author={Weaver, Warren},
journal
={Machine translation of languages},
publisher
={Machine translation of languages},
volume={14},
number={15-23},
pages={10},
...
...
@@ -62,10 +62,10 @@
publisher={Cambridge: Technology Press, MIT}
}
@
article
{chomsky1957syntactic,
@
inproceedings
{chomsky1957syntactic,
title={Syntactic Structures},
author={Chomsky, Noam},
journal
={Language},
publisher
={Language},
volume={33},
number={3},
year={1957},
...
...
@@ -80,23 +80,23 @@
year = {1990}
}
@
article
{DBLP:journals/coling/BrownPPM94,
@
inproceedings
{DBLP:journals/coling/BrownPPM94,
author = {Peter F. Brown and
Stephen Della Pietra and
Vincent J. Della Pietra and
Robert L. Mercer},
title = {The Mathematics of Statistical Machine Translation: Parameter Estimation},
journal
= {Computational Linguistics},
publisher
= {Computational Linguistics},
volume = {19},
number = {2},
pages = {263--311},
year = {1993}
}
@
article
{nirenburg1989knowledge,
@
inproceedings
{nirenburg1989knowledge,
title={Knowledge-based machine translation},
author={Nirenburg, Sergei},
journal
={Machine Translation},
publisher
={Machine Translation},
volume={4},
number={1},
pages={5--24},
...
...
@@ -111,10 +111,10 @@
publisher={Ellis Horwood Chichester}
}
@
article
{zarechnak1979history,
@
inproceedings
{zarechnak1979history,
title={The history of machine translation},
author={Zarechnak, Michael},
journal
={Machine Translation},
publisher
={Machine Translation},
volume={1979},
pages={1--87},
year={1979}
...
...
@@ -127,44 +127,44 @@
year={2004},
}
@
article
{王宝库1991机器翻译系统中一种规则描述语言,
@
inproceedings
{王宝库1991机器翻译系统中一种规则描述语言,
title={机器翻译系统中一种规则描述语言(CTRDL)},
author={王宝库,张中义,姚天顺},
journal
={中文信息学报},
publisher
={中文信息学报},
volume={5},
number={4},
year={1991},
}
@
article
{唐泓英1995基于搭配词典的词汇语义驱动算法,
@
inproceedings
{唐泓英1995基于搭配词典的词汇语义驱动算法,
title={基于搭配词典的词汇语义驱动算法},
author={唐泓英,姚天顺},
journal
={软件学报},
publisher
={软件学报},
volume={6},
number={A01},
pages={78-85},
year={1995},
}
@
article
{nagao1984framework,
@
inproceedings
{nagao1984framework,
title={A framework of a mechanical translation between Japanese and English by analogy principle},
author={Nagao, Makoto},
journal
={Artificial and human intelligence},
publisher
={Artificial and human intelligence},
pages={351--354},
year={1984}
}
@
article
{gale1993a,
@
inproceedings
{gale1993a,
title={A program for aligning sentences in bilingual corpora},
author={William A. {Gale} and Kenneth W. {Church}},
journal
={Computational Linguistics},
publisher
={Computational Linguistics},
volume={19},
number={1},
pages={75--102},
year={1993}
}
@
article
{Wu2016GooglesNM,
@
inproceedings
{Wu2016GooglesNM,
author = {Yonghui Wu and
Mike Schuster and
Zhifeng Chen and
...
...
@@ -198,7 +198,7 @@
Jeffrey Dean},
title = {Google's Neural Machine Translation System: Bridging the Gap between
Human and Machine Translation},
journal
= {CoRR},
publisher
= {CoRR},
volume = {abs/1609.08144},
year = {2016}
}
...
...
@@ -276,10 +276,10 @@
year = {2016}
}
@
article
{goldberg2017neural,
@
inproceedings
{goldberg2017neural,
title={Neural network methods for natural language processing},
author={Goldberg, Yoav},
journal
={Synthesis Lectures on Human Language Technologies},
publisher
={Synthesis Lectures on Human Language Technologies},
volume={10},
number={1},
pages={1--309},
...
...
@@ -328,14 +328,14 @@
publisher ={北京: 高等教育出版社}
}
@
article
{resnick1992adventures,
@
inproceedings
{resnick1992adventures,
author = {Barbour, A. and Resnick, Sidney},
year = {1993},
month = {12},
pages = {1474},
title = {Adventures in Stochastic Processes.},
volume = {88},
journal
= {Journal of the American Statistical Association}
publisher
= {Journal of the American Statistical Association}
}
@book{liuke-markov-2004,
...
...
@@ -345,21 +345,21 @@
publisher ={清华大学出版社}
}
@
article
{gale1995good,
@
inproceedings
{gale1995good,
author = {William A. Gale and
Geoffrey Sampson},
title = {Good-Turing Frequency Estimation Without Tears},
journal
= {Journal of Quantitative Linguistics},
publisher
= {Journal of Quantitative Linguistics},
volume = {2},
number = {3},
pages = {217--237},
year = {1995}
}
@
article
{good1953population,
@
inproceedings
{good1953population,
title ={The population frequencies of species and the estimation of population parameters},
author ={Good, Irving J},
journal
={Biometrika},
publisher
={Biometrika},
volume ={40},
number ={3-4},
pages ={237--264},
...
...
@@ -391,23 +391,23 @@
year = {2002}
}
@
article
{chen1999empirical,
@
inproceedings
{chen1999empirical,
author = {Stanley F. Chen and
Joshua Goodman},
title = {An empirical study of smoothing techniques for language modeling},
journal
= {Computer Speech \& Language},
publisher
= {Computer Speech \& Language},
volume = {13},
number = {4},
pages = {359--393},
year = {1999}
}
@
article
{ney1994structuring,
@
inproceedings
{ney1994structuring,
author = {Hermann Ney and
Ute Essen and
Reinhard Kneser},
title = {On structuring probabilistic dependences in stochastic language modelling},
journal
= {Computer Speech \& Language},
publisher
= {Computer Speech \& Language},
volume = {8},
number = {1},
pages = {1--38},
...
...
@@ -440,22 +440,22 @@
publisher={Cambridge University Press}
}
@
article
{tarjan1972depth,
@
inproceedings
{tarjan1972depth,
title={Depth-First Search and Linear Graph Algorithms},
author={Robert Endre {Tarjan}},
journal
={SIAM Journal on Computing},
publisher
={SIAM Journal on Computing},
volume={1},
number={2},
pages={146--160},
year={1972}
}
@
article
{DBLP:journals/ai/SabharwalS11,
@
inproceedings
{DBLP:journals/ai/SabharwalS11,
author = {Ashish Sabharwal and
Bart Selman},
title = {S. Russell, P. Norvig, Artificial Intelligence: {A} Modern Approach,
Third Edition},
journal
= {Artificial Intelligence},
publisher
= {Artificial Intelligence},
volume = {175},
number = {5-6},
pages = {935--937},
...
...
@@ -469,10 +469,10 @@
publisher={Computer Science Press}
}
@
article
{hart1968a,
@
inproceedings
{hart1968a,
title={A Formal Basis for the Heuristic Determination of Minimum Cost Paths},
author={Peter E. {Hart} and Nils J. {Nilsson} and Bertram {Raphael}},
journal
={IEEE Transactions on Systems Science and Cybernetics},
publisher
={IEEE Transactions on Systems Science and Cybernetics},
volume={4},
number={2},
pages={100--107},
...
...
@@ -493,20 +493,20 @@
publisher={Oxford university press}
}
@
article
{åström1965optimal,
@
inproceedings
{åström1965optimal,
title={Optimal control of Markov processes with incomplete state information},
author={Karl Johan {Åström}},
journal
={Journal of Mathematical Analysis and Applications},
publisher
={Journal of Mathematical Analysis and Applications},
volume={10},
number={1},
pages={174--205},
year={1965}
}
@
article
{korf1990real,
@
inproceedings
{korf1990real,
title={Real-time heuristic search},
author={Richard E. {Korf}},
journal
={Artificial Intelligence},
publisher
={Artificial Intelligence},
volume={42},
number={2},
pages={189--211},
...
...
@@ -535,28 +535,28 @@
year = {2018}
}
@
article
{jelinek1980interpolated,
@
inproceedings
{jelinek1980interpolated,
title={Interpolated estimation of Markov source parameters from sparse data},
author={F. {Jelinek}},
journal
={Pattern Recognition in Practice},
publisher
={Pattern Recognition in Practice},
pages={381--397},
year={1980}
}
@
article
{katz1987estimation,
@
inproceedings
{katz1987estimation,
title={Estimation of probabilities from sparse data for the language model component of a speech recognizer},
author={S. {Katz}},
journal
={IEEE Transactions on Acoustics, Speech, and Signal Processing},
publisher
={IEEE Transactions on Acoustics, Speech, and Signal Processing},
volume={35},
number={3},
pages={400--401},
year={1987}
}
@
article
{witten1991the,
@
inproceedings
{witten1991the,
title={The zero-frequency problem: estimating the probabilities of novel events in adaptive text compression},
author={I.H. {Witten} and T.C. {Bell}},
journal
={IEEE Transactions on Information Theory},
publisher
={IEEE Transactions on Information Theory},
volume={37},
number={4},
pages={1085--1094},
...
...
@@ -570,10 +570,10 @@
publisher={Prentice Hall}
}
@
article
{goodman2001a,
@
inproceedings
{goodman2001a,
title={A bit of progress in language modeling},
author={Joshua T. {Goodman}},
journal
={Computer Speech \& Language},
publisher
={Computer Speech \& Language},
volume={15},
number={4},
pages={403--434},
...
...
@@ -644,17 +644,17 @@
year={2007}
}
@
article
{jing2019a,
@
inproceedings
{jing2019a,
title={A Survey on Neural Network Language Models.},
author={Kun {Jing} and Jungang {Xu}},
journal
={arXiv preprint arXiv:1906.03591},
publisher
={arXiv preprint arXiv:1906.03591},
year={2019}
}
@
article
{bengio2003a,
@
inproceedings
{bengio2003a,
title={A neural probabilistic language model},
author={Yoshua {Bengio} and Réjean {Ducharme} and Pascal {Vincent} and Christian {Janvin}},
journal
={Journal of Machine Learning Research},
publisher
={Journal of Machine Learning Research},
volume={3},
number={6},
pages={1137--1155},
...
...
@@ -772,11 +772,11 @@
year={2001}
}
@
article
{DBLP:journals/mt/BangaloreR02,
@
inproceedings
{DBLP:journals/mt/BangaloreR02,
author = {Srinivas Bangalore and
Giuseppe Riccardi},
title = {Stochastic Finite-State Models for Spoken Language Machine Translation},
journal
= {Machine Translation},
publisher
= {Machine Translation},
volume = {17},
number = {3},
pages = {165--184},
...
...
@@ -5909,7 +5909,7 @@ author = {Yoshua Bengio and
year = {2018}
}
@
article
{DBLP:journals/jmlr/RaffelSRLNMZLL20,
@
inproceedings
{DBLP:journals/jmlr/RaffelSRLNMZLL20,
author = {Colin Raffel and
Noam Shazeer and
Adam Roberts and
...
...
@@ -5921,7 +5921,7 @@ author = {Yoshua Bengio and
Peter J. Liu},
title = {Exploring the Limits of Transfer Learning with a Unified Text-to-Text
Transformer},
journal
= {Journal of Machine Learning Reseach},
publisher
= {Journal of Machine Learning Reseach},
volume = {21},
pages = {140:1--140:67},
year = {2020}
...
...
@@ -5936,10 +5936,10 @@ author = {Yoshua Bengio and
year = {2012}
}
@
article
{JMLR:v15:srivastava14a,
@
inproceedings
{JMLR:v15:srivastava14a,
author = {Nitish Srivastava and Geoffrey Hinton and Alex Krizhevsky and Ilya Sutskever and Ruslan Salakhutdinov},
title = {Dropout: A Simple Way to Prevent Neural Networks from Overfitting},
journal
= {Journal of Machine Learning Research},
publisher
= {Journal of Machine Learning Research},
year = {2014},
volume = {15},
pages = {1929-1958},
...
...
@@ -6067,10 +6067,10 @@ author = {Yoshua Bengio and
year = {2019}
}
@
article
{Gong2018AdversarialTW,
@
inproceedings
{Gong2018AdversarialTW,
title={Adversarial Texts with Gradient Methods},
author={Zhitao Gong and Wenlu Wang and B. Li and D. Song and W. Ku},
journal
={ArXiv},
publisher
={ArXiv},
year={2018},
volume={abs/1801.07175}
}
...
...
@@ -6107,11 +6107,11 @@ author = {Yoshua Bengio and
year = {2018}
}
@
article
{DBLP:journals/corr/SamantaM17,
@
inproceedings
{DBLP:journals/corr/SamantaM17,
author = {Suranjana Samanta and
Sameep Mehta},
title = {Towards Crafting Text Adversarial Samples},
journal
= {CoRR},
publisher
= {CoRR},
volume = {abs/1707.02812},
year = {2017}
}
...
...
@@ -8077,12 +8077,12 @@ author = {Zhuang Liu and
year = {2017}
}
@
article
{DBLP:journals/corr/GreffSS16,
@
inproceedings
{DBLP:journals/corr/GreffSS16,
author = {Klaus Greff and
Rupesh Kumar Srivastava and
J{\"{u}}rgen Schmidhuber},
title = {Highway and Residual Networks learn Unrolled Iterative Estimation},
journal
= {International Conference on Learning Representations},
publisher
= {International Conference on Learning Representations},
year = {2017}
}
...
...
@@ -8113,7 +8113,7 @@ author = {Zhuang Liu and
year = {2019}
}
@
article
{DBLP:journals/corr/abs-2002-04745,
@
inproceedings
{DBLP:journals/corr/abs-2002-04745,
author = {Ruibin Xiong and
Yunchang Yang and
Di He and
...
...
@@ -8125,7 +8125,7 @@ author = {Zhuang Liu and
Liwei Wang and
Tie-Yan Liu},
title = {On Layer Normalization in the Transformer Architecture},
journal
= {International Conference on Machine Learning},
publisher
= {International Conference on Machine Learning},
volume = {abs/2002.04745},
year = {2020}
}
...
...
@@ -8153,12 +8153,12 @@ author = {Zhuang Liu and
year = {2016},
}
@
article
{Ba2016LayerN,
@
inproceedings
{Ba2016LayerN,
author = {Lei Jimmy Ba and
Jamie Ryan Kiros and
Geoffrey E. Hinton},
title = {Layer Normalization},
journal
= {CoRR},
publisher
= {CoRR},
volume = {abs/1607.06450},
year = {2016}
}
...
...
@@ -8196,10 +8196,10 @@ author = {Zhuang Liu and
year = {2019}
}
@
article
{Wang2018MultilayerRF,
@
inproceedings
{Wang2018MultilayerRF,
title={Multi-layer Representation Fusion for Neural Machine Translation},
author={Qiang Wang and Fuxue Li and Tong Xiao and Yanyang Li and Yinqiao Li and Jingbo Zhu},
journal
={International Conference on Computational Linguistics},
publisher
={International Conference on Computational Linguistics},
year={2018},
volume={abs/2002.06714}
}
...
...
@@ -8390,11 +8390,11 @@ author = {Zhuang Liu and
year = {1989}
}
@
article
{DBLP:journals/compsys/Kitano90,
@
inproceedings
{DBLP:journals/compsys/Kitano90,
author = {Hiroaki Kitano},
title = {Designing Neural Networks Using Genetic Algorithms with Graph Generation
System},
journal
= {Complex Systems},
publisher
= {Complex Systems},
volume = {4},
number = {4},
year = {1990}
...
...
@@ -8656,14 +8656,14 @@ author = {Zhuang Liu and
year = {2020}
}
@
article
{DBLP:journals/jmlr/LiJDRT17,
@
inproceedings
{DBLP:journals/jmlr/LiJDRT17,
author = {Lisha Li and
Kevin G. Jamieson and
Giulia DeSalvo and
Afshin Rostamizadeh and
Ameet Talwalkar},
title = {Hyperband: {A} Novel Bandit-Based Approach to Hyperparameter Optimization},
journal
= {Journal of Machine Learning Research},
publisher
= {Journal of Machine Learning Research},
volume = {18},
pages = {185:1--185:52},
year = {2017}
...
...
@@ -8687,7 +8687,7 @@ author = {Zhuang Liu and
year = {2018}
}
@
article
{DBLP:journals/taslp/FanTXQLL20,
@
inproceedings
{DBLP:journals/taslp/FanTXQLL20,
author = {Yang Fan and
Fei Tian and
Yingce Xia and
...
...
@@ -8695,7 +8695,7 @@ author = {Zhuang Liu and
Xiang-Yang Li and
Tie-Yan Liu},
title = {Searching Better Architectures for Neural Machine Translation},
journal
= {IEEE Transactions on Audio, Speech, and Language Processing},
publisher
= {IEEE Transactions on Audio, Speech, and Language Processing},
volume = {28},
pages = {1574--1585},
year = {2020}
...
...
@@ -8747,59 +8747,57 @@ author = {Zhuang Liu and
year = {2018}
}
@
article
{DBLP:journals/corr/abs-2003-03384,
@
inproceedings
{DBLP:journals/corr/abs-2003-03384,
author = {Esteban Real and
Chen Liang and
David R. So and
Quoc V. Le},
title = {AutoML-Zero: Evolving Machine Learning Algorithms From Scratch},
journal
= {CoRR},
publisher
= {CoRR},
volume = {abs/2003.03384},
year = {2020}
}
@
article
{Chollet2017XceptionDL,
@
inproceedings
{Chollet2017XceptionDL,
title={Xception: Deep Learning with Depthwise Separable Convolutions},
author = {Fran{\c{c}}ois Chollet},
journal
={IEEE Conference on Computer Vision and Pattern Recognition},
publisher
={IEEE Conference on Computer Vision and Pattern Recognition},
year={2017},
pages={1800-1807}
}
@
article
{DBLP:journals/tnn/AngelineSP94,
@
inproceedings
{DBLP:journals/tnn/AngelineSP94,
author = {Peter J. Angeline and
Gregory M. Saunders and
Jordan B. Pollack},
title = {An evolutionary algorithm that constructs recurrent neural networks},
journal
= {IEEE Transactions on Neural Networks},
publisher
= {IEEE Transactions on Neural Networks},
volume = {5},
number = {1},
pages = {54--65},
year = {1994}
}
@
article
{stanley2002evolving,
@
inproceedings
{stanley2002evolving,
title={Evolving neural networks through augmenting topologies},
author={Stanley, Kenneth O and Miikkulainen, Risto},
journal
={Evolutionary computation},
publisher
={Evolutionary computation},
volume={10},
number={2},
pages={99--127},
year={2002},
publisher={MIT Press}
year={2002}
}
@
article
{DBLP:journals/alife/StanleyDG09,
@
inproceedings
{DBLP:journals/alife/StanleyDG09,
author = {Kenneth O. Stanley and
David B. D'Ambrosio and
Jason Gauci},
title = {A Hypercube-Based Encoding for Evolving Large-Scale Neural Networks},
journal
= {Artificial Life},
publisher
= {Artificial Life},
volume = {15},
number = {2},
pages = {185--212},
year = {2009},
publisher = {MIT Press}
year = {2009}
}
@inproceedings{DBLP:conf/ijcai/SuganumaSN18,
...
...
@@ -8870,21 +8868,21 @@ author = {Zhuang Liu and
year = {2016}
}
@
article
{DBLP:journals/corr/abs-1807-06906,
@
inproceedings
{DBLP:journals/corr/abs-1807-06906,
author = {Arber Zela and
Aaron Klein and
Stefan Falkner and
Frank Hutter},
title = {Towards Automated Deep Learning: Efficient Joint Neural Architecture
and Hyperparameter Search},
journal
= {International Conference on Machine Learning},
publisher
= {International Conference on Machine Learning},
year = {2018}
}
@
article
{li2020automated,
@
inproceedings
{li2020automated,
title={Automated and Lightweight Network Design via Random Search for Remote Sensing Image Scene Classification},
author={Li, Jihao and Diao, Wenhui and Sun, Xian and Feng, Yingchao and Zhang, Wenkai and Chang, Zhonghan and Fu, Kun},
journal
={The International Archives of Photogrammetry, Remote Sensing and Spatial Information Sciences},
publisher
={The International Archives of Photogrammetry, Remote Sensing and Spatial Information Sciences},
volume={43},
pages={1217--1224},
year={2020}
...
...
@@ -8919,13 +8917,13 @@ author = {Zhuang Liu and
year = {2017}
}
@
article
{DBLP:journals/corr/ChrabaszczLH17,
@
inproceedings
{DBLP:journals/corr/ChrabaszczLH17,
author = {Patryk Chrabaszcz and
Ilya Loshchilov and
Frank Hutter},
title = {A Downsampled Variant of ImageNet as an Alternative to the {CIFAR}
datasets},
journal
= {CoRR},
publisher
= {CoRR},
volume = {abs/1707.08819},
year = {2017}
}
...
...
@@ -9025,7 +9023,7 @@ author = {Zhuang Liu and
year = {2018}
}
@
article
{DBLP:journals/corr/abs-2009-02070,
@
inproceedings
{DBLP:journals/corr/abs-2009-02070,
author = {Wei Zhu and
Xiaoling Wang and
Xipeng Qiu and
...
...
@@ -9033,7 +9031,7 @@ author = {Zhuang Liu and
Guotong Xie},
title = {AutoTrans: Automating Transformer Design via Reinforced Architecture
Search},
journal
= {CoRR},
publisher
= {CoRR},
volume = {abs/2009.02070},
year = {2020}
}
...
...
@@ -9053,7 +9051,7 @@ author = {Zhuang Liu and
year = {2020}
}
@
article
{DBLP:journals/corr/abs-2008-06808,
@
inproceedings
{DBLP:journals/corr/abs-2008-06808,
author = {Henry Tsai and
Jayden Ooi and
Chun-Sung Ferng and
...
...
@@ -9061,7 +9059,7 @@ author = {Zhuang Liu and
Jason Riesa},
title = {Finding Fast Transformers: One-Shot Neural Architecture Search by
Component Composition},
journal
= {CoRR},
publisher
= {CoRR},
volume = {abs/2008.06808},
year = {2020}
}
...
...
@@ -9080,20 +9078,20 @@ author = {Zhuang Liu and
year={2020}
}
@
article
{li2020shallow,
@
inproceedings
{li2020shallow,
title={Shallow-to-Deep Training for Neural Machine Translation},
author={Li, Bei and Wang, Ziyang and Liu, Hui and Jiang, Yufan and Du, Quan and Xiao, Tong and Wang, Huizhen and Zhu, Jingbo},
journal
={Conference on Empirical Methods in Natural Language Processing},
publisher
={Conference on Empirical Methods in Natural Language Processing},
year={2020}
}
@
article
{DBLP:journals/corr/abs-2007-06257,
@
inproceedings
{DBLP:journals/corr/abs-2007-06257,
author = {Hongfei Xu and
Qiuhui Liu and
Deyi Xiong and
Josef van Genabith},
title = {Transformer with Depth-Wise {LSTM}},
journal
= {CoRR},
publisher
= {CoRR},
volume = {abs/2007.06257},
year = {2020}
}
...
...
@@ -9110,7 +9108,7 @@ author = {Zhuang Liu and
year = {2020}
}
@
article
{DBLP:journals/corr/abs-2006-10369,
@
inproceedings
{DBLP:journals/corr/abs-2006-10369,
author = {Jungo Kasai and
Nikolaos Pappas and
Hao Peng and
...
...
@@ -9118,12 +9116,12 @@ author = {Zhuang Liu and
Noah A. Smith},
title = {Deep Encoder, Shallow Decoder: Reevaluating the Speed-Quality Tradeoff
in Machine Translation},
journal
= {CoRR},
publisher
= {CoRR},
volume = {abs/2006.10369},
year = {2020}
}
@
article
{DBLP:journals/corr/abs-1806-01261,
@
inproceedings
{DBLP:journals/corr/abs-1806-01261,
author = {Peter W. Battaglia and
Jessica B. Hamrick and
Victor Bapst and
...
...
@@ -9152,7 +9150,7 @@ author = {Zhuang Liu and
Yujia Li and
Razvan Pascanu},
title = {Relational inductive biases, deep learning, and graph networks},
journal
= {CoRR},
publisher
= {CoRR},
volume = {abs/1806.01261},
year = {2018}
}
...
...
@@ -9167,7 +9165,7 @@ author = {Zhuang Liu and
year = {2018},
}
@
article
{Dai2019TransformerXLAL,
@
inproceedings
{Dai2019TransformerXLAL,
author = {Zihang Dai and
Zhilin Yang and
Yiming Yang and
...
...
@@ -9175,7 +9173,7 @@ author = {Zhuang Liu and
Quoc V. Le and
Ruslan Salakhutdinov},
title = {Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context},
journal
= {Annual Meeting of the Association for Computational Linguistics},
publisher
= {Annual Meeting of the Association for Computational Linguistics},
pages = {2978--2988},
year = {2019}
}
...
...
@@ -9274,11 +9272,11 @@ author = {Zhuang Liu and
year = {2020}
}
@
article
{Aharoni2017TowardsSN,
@
inproceedings
{Aharoni2017TowardsSN,
title={Towards String-To-Tree Neural Machine Translation},
author={Roee Aharoni and
Yoav Goldberg},
journal
={Annual Meeting of the Association for Computational Linguistics},
publisher
={Annual Meeting of the Association for Computational Linguistics},
year={2017}
}
...
...
@@ -9380,10 +9378,10 @@ author = {Zhuang Liu and
year = {2019}
}
@
article
{Liu2020LearningTE,
@
inproceedings
{Liu2020LearningTE,
title={Learning to Encode Position for Transformer with Continuous Dynamical Model},
author={Xuanqing Liu and Hsiang-Fu Yu and Inderjit Dhillon and Cho-Jui Hsieh},
journal
={ArXiv},
publisher
={ArXiv},
year={2020},
volume={abs/2003.09229}
}
...
...
@@ -9475,17 +9473,17 @@ author = {Zhuang Liu and
year = {2017}
}
@
article
{DBLP:journals/corr/abs-1711-02132,
@
inproceedings
{DBLP:journals/corr/abs-1711-02132,
author = {Karim Ahmed and
Nitish Shirish Keskar and
Richard Socher},
title = {Weighted Transformer Network for Machine Translation},
journal
= {CoRR},
publisher
= {CoRR},
volume = {abs/1711.02132},
year = {2017}
}
@
article
{DBLP:journals/corr/abs-2006-10270,
@
inproceedings
{DBLP:journals/corr/abs-2006-10270,
author = {Yang Fan and
Shufang Xie and
Yingce Xia and
...
...
@@ -9494,7 +9492,7 @@ author = {Zhuang Liu and
Xiang-Yang Li and
Tie-Yan Liu},
title = {Multi-branch Attentive Transformer},
journal
= {CoRR},
publisher
= {CoRR},
volume = {abs/2006.10270},
year = {2020}
}
...
...
@@ -9509,10 +9507,10 @@ author = {Zhuang Liu and
year = {2020}
}
@
article
{李北2019面向神经机器翻译的集成学习方法分析,
@
inproceedings
{李北2019面向神经机器翻译的集成学习方法分析,
title={面向神经机器翻译的集成学习方法分析},
author={李北 and 王强 and 肖桐 and 姜雨帆 and 张哲旸 and 刘继强 and 张俐 and 于清},
journal
={中文信息学报},
publisher
={中文信息学报},
volume={33},
number={3},
year={2019},
...
...
@@ -9540,10 +9538,10 @@ author = {Zhuang Liu and
year = {2019}
}
@
article
{Lan2020ALBERTAL,
@
inproceedings
{Lan2020ALBERTAL,
title={ALBERT: A Lite BERT for Self-supervised Learning of Language Representations},
author={Zhenzhong Lan and Mingda Chen and Sebastian Goodman and Kevin Gimpel and Piyush Sharma and Radu Soricut},
journal
={International Conference on Learning Representations},
publisher
={International Conference on Learning Representations},
year={2020}
}
...
...
@@ -9586,45 +9584,45 @@ author = {Zhuang Liu and
year = {2018}
}
@
article
{DBLP:journals/corr/abs-2004-05150,
@
inproceedings
{DBLP:journals/corr/abs-2004-05150,
author = {Iz Beltagy and
Matthew E. Peters and
Arman Cohan},
title = {Longformer: The Long-Document Transformer},
journal
= {CoRR},
publisher
= {CoRR},
volume = {abs/2004.05150},
year = {2020}
}
@
article
{Kitaev2020ReformerTE,
@
inproceedings
{Kitaev2020ReformerTE,
author = {Nikita Kitaev and
Lukasz Kaiser and
Anselm Levskaya},
title = {Reformer: The Efficient Transformer},
journal
= {International Conference on Learning Representations},
publisher
= {International Conference on Learning Representations},
year = {2020}
}
@
article
{DBLP:journals/corr/abs-2003-05997,
@
inproceedings
{DBLP:journals/corr/abs-2003-05997,
author = {Aurko Roy and
Mohammad Saffar and
Ashish Vaswani and
David Grangier},
title = {Efficient Content-Based Sparse Attention with Routing Transformers},
journal
= {CoRR},
publisher
= {CoRR},
volume = {abs/2003.05997},
year = {2020}
}
@
article
{Katharopoulos2020TransformersAR,
@
inproceedings
{Katharopoulos2020TransformersAR,
title={Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention},
author={Angelos Katharopoulos and Apoorv Vyas and Nikolaos Pappas and Franccois Fleuret},
journal
={CoRR},
publisher
={CoRR},
year={2020},
volume={abs/2006.16236}
}
@
article
{DBLP:journals/corr/abs-2009-14794,
@
inproceedings
{DBLP:journals/corr/abs-2009-14794,
author = {Krzysztof Choromanski and
Valerii Likhosherstov and
David Dohan and
...
...
@@ -9639,7 +9637,7 @@ author = {Zhuang Liu and
Lucy Colwell and
Adrian Weller},
title = {Rethinking Attention with Performers},
journal
= {CoRR},
publisher
= {CoRR},
volume = {abs/2009.14794},
year = {2020}
}
...
...
@@ -9669,14 +9667,14 @@ author = {Zhuang Liu and
year = {2018}
}
@
article
{DBLP:journals/corr/abs-2006-04768,
@
inproceedings
{DBLP:journals/corr/abs-2006-04768,
author = {Sinong Wang and
Belinda Z. Li and
Madian Khabsa and
Han Fang and
Hao Ma},
title = {Linformer: Self-Attention with Linear Complexity},
journal
= {CoRR},
publisher
= {CoRR},
volume = {abs/2006.04768},
year = {2020}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论