Commit 553b784f by 曹润柘

合并分支 'master' 到 'caorunzhe'

Master

查看合并请求 !633
parents 58af859e fb3ffad9
......@@ -34,7 +34,7 @@
\sectionnewpage
\section{基于自注意力机制的改进}
\parinterval 注意力机制是神经机器翻译成功的关键,因此对相关模型结构的优化是十分重要的研究方向。以Transformer为例,其使用的自注意力模型具有高并行计算与全局建模的能力,目前在机器翻译、语言建模等自然语言处理任务上表现十分突出,也有许多改进工作。例如,在处理长文本序列时,由于自注意力模型的时间复杂度为$O(N^2)$,其中$N$指代文本的长度,过大的$N$导致效率低下甚至受制于内存或显存容量无法正常训练网络;同时在机器翻译领域,尽管在Transformer模型的输入中引入了绝对位置编码表示,现有的自注意力机制仍然无法显著捕获局部窗口下不同位置之间的关系;此外一部分研究人员将多头-自注意力网络机制中多头思想进一步扩展,采用多分支的结构对不同空间特征进行提取,之后对特征进行融合。针对以上问题,本节将介绍注意力机制的优化策略,并重点讨论自注意力模型的若干改进方法。
\parinterval 注意力机制是神经机器翻译成功的关键,因此对相关模型结构的优化是十分重要的研究方向。以Transformer为例,其使用的自注意力模型具有高并行计算与全局建模的能力,目前在机器翻译、语言建模等自然语言处理任务上表现十分突出,也有许多改进工作。例如,在处理长文本序列时(假设文本长度为$N$),由于自注意力模型的时间复杂度为$O(N^2)$$N$过大时翻译速度很低;同时在机器翻译领域,尽管在Transformer模型的输入中引入了绝对位置编码表示,现有的自注意力机制仍然无法显著捕获局部窗口下不同位置之间的关系;此外一部分研究人员将多头- 自注意力网络机制中多头思想进一步扩展,采用多分支的结构对不同空间特征进行提取,之后对特征进行融合。针对以上问题,本节将介绍注意力机制的优化策略,并重点讨论自注意力模型的若干改进方法。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
......@@ -42,9 +42,9 @@
\subsection{局部信息建模}\label{subsec-15.1.1}
\parinterval 使用循环神经网络进行序列建模时,每一个时刻的计算都依赖于上一时刻的隐层状态。这种模式天然具有一定的时序性,且具有{\small\bfnew{归纳偏置}}\index{归纳偏置}(Inductive Bias)\index{Inductive Bias}的特性\upcite{DBLP:journals/corr/abs-1806-01261}。但是在使用Transformer模型对词序列进行建模时,由于自注意力网络能够直接对当前单词与序列中所有位置的单词进行建模,从而忽略了单词之间的位置关系,缺少了类似于循环或卷积机制中局部窗口内的依赖关系。在Transformer中通过引入正余弦函数作为绝对位置编码与输入的特征表示进行累加来区分单词之间的位置关系(见{\chaptertwelve}),仍然无法显著区分局部依赖与长距离依赖。局部依赖指代当前位置的词与周围局部窗口内词之间的内在联系,比较符合人类理解文字的习惯。
\parinterval 使用循环神经网络进行序列建模时,每一个时刻的计算都依赖于上一时刻的隐层状态。这种模式天然具有一定的时序性,且具有{\small\bfnew{归纳偏置}}\index{归纳偏置}(Inductive Bias)\index{Inductive Bias}的特性\upcite{DBLP:journals/corr/abs-1806-01261}。但是在使用Transformer模型对词序列进行建模时,由于自注意力网络能够直接对当前单词与序列中所有位置的单词进行建模,从而忽略了单词之间的位置关系,缺少了类似于循环或卷积神经网络中局部窗口内的依赖关系。在Transformer中通过引入正余弦函数作为绝对位置编码来区分单词之间的位置关系(见{\chaptertwelve}),仍然无法显著区分局部依赖与长距离依赖。局部依赖指代当前位置的词与周围局部窗口内词之间的内在联系,比较符合人类理解文字的习惯。
\parinterval 针对上述问题,研究人员设计了“相对位置”编码表示对原有的“绝对位置”编码进行补充,强化了局部依赖\upcite{Dai2019TransformerXLAL,Shaw2018SelfAttentionWR}。伴随着逐层的自注意力机制计算,模型捕获位置信息的能力也逐渐减弱,这种现象在深层网络建模中尤为明显。而利用相对位置编码能够有效地帮助深层网络中强化局部窗口下位置之间的表示,并显著地提升模型性能\upcite{li2020shallow}。目前也有很多的工作对网络中的相对位置进行建模,下面将对部分相关工作进行介绍
\parinterval 针对上述问题,研究人员设计了“相对位置”编码对原有的“绝对位置”编码进行补充,强化了局部依赖\upcite{Dai2019TransformerXLAL,Shaw2018SelfAttentionWR}。伴随着逐层的自注意力机制计算,模型捕获位置信息的能力也逐渐减弱,这种现象在深层网络建模中尤为明显。而利用相对位置编码能够有效地帮助深层神经网络中强化局部窗口下位置信息的表示,并显著地提升模型性能\upcite{li2020shallow}。 下面是具体方法
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
......@@ -52,9 +52,9 @@
\subsubsection{1. 位置编码}
\parinterval 对于一个序列,位置编码是为模型提供了置位线索或者说是用于收集信息对于不同位置的偏置。常见的技术手段除了可以在初始的输入特征中加入统计的偏置信息,如正余弦函数\upcite{vaswani2017attention}, 也可以在计算每层的注意力权重时加入偏置信息。在介绍相对位置编码之前,首先简要回顾一下自注意力机制的计算流程,由于实现方式的不同,这里与{\chaptertwelve}提到的注意力机制的计算略有区别:
\parinterval 对于一个序列,位置编码是在描述对不同位置的偏置。常见的技术手段除了可以在初始的输入中加入统计的偏置信息,如正余弦函数\upcite{vaswani2017attention}, 也可以在计算每层的注意力权重时加入偏置信息。在介绍相对位置编码之前,首先简要回顾一下自注意力机制的计算流程(见{\chaptertwelve})。
\parinterval 在传统的自注意力机制中,给定输入序列$\seq{x}={\mathbi{x}_1,\mathbi{x}_2,\ldots,\mathbi{x}_m}$,通过点乘计算得到当前位置单词$i$和序列中所有单词之间的关系:
\parinterval 在传统的自注意力机制中,给定输入的向量序列$\seq{x}=\{\mathbi{x}_1,\mathbi{x}_2,\ldots,\mathbi{x}_m\}$,通过点乘计算得到当前位置单词$i$和序列中所有单词之间的关系:
\begin{eqnarray}
\mathbi{z}_{i} &=& \sum_{j=1}^m \alpha_{ij}(\mathbi{x}_j \mathbi{W}_V)
\label{eq:15-1}
......@@ -66,32 +66,40 @@
\label{eq:15-2}
\end{eqnarray}
\noindent 这里$\mathbi{e}_{ij}$指经过缩放后的$\mathbi{Q}$$\mathbi{K}$向量积
\noindent 这里$\mathbi{e}_{ij}$被定义为
\begin{eqnarray}
\mathbi{e}_{ij} &=& \frac{(\mathbi{x}_i \mathbi{W}_Q){(\mathbi{x}_j \mathbi{W}_K)}^{T}}{\sqrt{d_k}}
\label{eq:15-3}
\end{eqnarray}
\noindent 其中$\mathbi{W}_Q$$\mathbi{W}_K$为网络中的可学习参数,$d_k$\footnote[1]{在多头注意力中,$d_k$为经过多头分割后每个头的维度。}为模型中隐层的维度 。与{\chaptertwelve}的注意力计算不同,这里$\mathbi{Q}=\mathbi{x} \mathbi{W}_Q$$\mathbi{K}=\mathbi{x} \mathbi{W}_K$$\mathbi{V}=\mathbi{x} \mathbi{W}_V$$\mathbi{x}$为上一层的输出。而{\chaptertwelve}$\mathbi{Q}$$\mathbi{K}$$\mathbi{V}$同为上一层的输出向量。虽然此处自注意力计算的方式不同,但是其结果均代表了句子中单词之间的关系。
\noindent 其中$\mathbi{W}_Q$$\mathbi{W}_K$为模型中的可学习参数,$d_k$为模型中隐层的维度\footnote[1]{在多头注意力中,$d_k$为经过多头分割后每个头的维度。}。这里,可以定义:
\parinterval 基于上述的注意力计算方式,相对位置建模可以按如下方式实现:
\begin{eqnarray}
\mathbi{Q} & = & \mathbi{x} \mathbi{W}_Q \\
\mathbi{K} & = & \mathbi{x} \mathbi{W}_K \\
\mathbi{V} & = & \mathbi{x} \mathbi{W}_V
\end{eqnarray}
\noindent 其中,$\mathbi{x}$为上一层的输出\footnote{这里,$\mathbi{K}$$\mathbi{Q}$$\mathbi{V}$的定义与{\chaptertwelve}略有不同,因为在这里的$\mathbi{K}$$\mathbi{Q}$$\mathbi{V}$是指对注意力模型输入进行线性变换后的结果,而{\chaptertwelve}$\mathbi{K}$$\mathbi{Q}$$\mathbi{V}$直接表示输入。但是,这两种描述方式本质上是一样的,区别仅仅在于对输入的线性变化是放在输入自身中描述,还是作为输入之后的一个额外操作。}。这样,$\mathbi{e}_{ij}$实际上就是$\mathbi{Q}$$\mathbi{K}$向量积缩放后的一个结果。
\parinterval 基于上述的注意力机制的计算方式,相对位置建模可以按如下方式实现:
\begin{itemize}
\vspace{0.5em}
\item {\small\bfnew{相对位置编码}}\index{相对位置编码}(Relative Positional Representation)\index{Relative Positional Representation}\upcite{Shaw2018SelfAttentionWR}。核心思想是在能够捕获全局依赖的自注意力机制中引入相对位置信息。该方法可以有效弥补绝对位置编码信息,甚至完全取代位置编码。对于输入元素$\mathbi{x}_i$$\mathbi{x}_j$之间的边,通过向量$\mathbi{a}_{ij}^V$$\mathbi{a}_{ij}^K$来表示,其中$\mathbi{a}_{ij}^V$表示计算注意力输出时引入的相对位置向量,$\mathbi{a}_{ij}^K$表示计算注意力分布时引入的相对位置向量,注意力模型的计算调整如下:
\item {\small\bfnew{相对位置编码}}\index{相对位置编码}(Relative Positional Representation)\index{Relative Positional Representation}\upcite{Shaw2018SelfAttentionWR}。核心思想是在能够捕获全局依赖的自注意力机制中引入相对位置信息。该方法可以有效弥补绝对位置编码信息,甚至完全取代位置编码。对于输入元素$\mathbi{x}_i$$\mathbi{x}_j$之间的联系,可以通过向量$\mathbi{a}_{ij}^V$$\mathbi{a}_{ij}^K$来表示,其中$\mathbi{a}_{ij}^V$...,$\mathbi{a}_{ij}^K$...{\color{red} $\mathbi{a}_{ij}^V$$\mathbi{a}_{ij}^K$必须形式化定义出来,要不别人看不懂。用到的符号必须定义出来!}。于是,注意力模型的计算调整如下:
\begin{eqnarray}
\mathbi{z}_{i} &=& \sum_{j=1}^m \alpha_{ij}(\mathbi{x}_j \mathbi{W}_V + \mathbi{a}_{ij}^V)
\label{eq:15-4}
\end{eqnarray}
\noindent 对比公式\eqref{eq:15-1},在计算$\mathbi{z}_i$时引入了额外的$\mathbi{a}_{ij}^V$向量来表示位置i与位置j之间的相对位置。同时在计算注意力权重时对Key进行修改,同样引入了$\mathbi{a}_{ij}^K$向量表示位置$i$与位置$j$之间的相对位置。在公式\eqref{eq:15-3}的基础上,注意力权重的计算方式调整为:
\noindent 对比公式\eqref{eq:15-1},在计算$\mathbi{z}_i$时引入了额外的$\mathbi{a}_{ij}^V$向量来表示位置$i$与位置$j$之间的相对位置。同时在计算注意力权重时对$\mathbi{K}$进行修改,同样引入了$\mathbi{a}_{ij}^K$向量表示位置$i$与位置$j$之间的相对位置。在公式\eqref{eq:15-3}的基础上,注意力权重的计算方式调整为:
\begin{eqnarray}
\mathbi{e}_{ij} &=& \frac{\mathbi{x}_i \mathbi{W}_Q{(\mathbi{x}_j \mathbi{W}_K + \mathbi{a}_{ij}^K )}^{T}}{\sqrt{d_k}} \\
&=& \frac{\mathbi{x}_i \mathbi{W}_Q{(\mathbi{x}_j \mathbi{W}_K)}^{T} + \mathbi{x}_i \mathbi{W}_Q{(\mathbi{a}_{ij}^K )}^{T}}{\sqrt{d_k}}
\label{eq:15-6}
\end{eqnarray}
\noindent 这里通过预先设定的最大相对位置$k$,强化模型对当前词为中心的左右各k个词的注意力计算。因此,最终的窗口大小为$2k + 1$。对于边缘位置窗口大小不足$2k$的单词,采用了裁剪的机制,即只对有效的临近词进行建模。举个简单的例子,假设对序列中的第一个单词进行建模,则只需考虑其右侧的$k$个词,因此$\mathbi{a}_{ij}^V$$\mathbi{a}_{ij}^K$的获取方式为:
\noindent 这里通过预先设定的最大相对位置$k$,强化模型对当前词为中心的左右各$k$个词的注意力计算。因此,最终的窗口大小为$2k + 1$。对于边缘位置窗口大小不足$2k$的单词,采用了裁剪的机制,即只对有效的临近词进行建模。举个简单的例子,假设对序列中的第一个单词进行建模,则只需考虑其右侧的$k$个词,因此$\mathbi{a}_{ij}^V$$\mathbi{a}_{ij}^K$的获取方式为:
\begin{eqnarray}
\mathbi{a}_{ij}^K &=& \mathbi{w}^K_{\textrm{clip}(j-i,k)} \\
\mathbi{a}_{ij}^V &=& \mathbi{w}^V_{\textrm{clip}(j-i,k)} \\
......@@ -99,10 +107,10 @@
\label{eq:15-9}
\end{eqnarray}
\noindent 其中,\mathbi{w}是可学习的模型参数,最终得到的相对位置表示为$\mathbi{w}^K = (\mathbi{w}^{K}_{-k},\ldots,\mathbi{w}^K_{k})$$\mathbi{w}^{V} = (\mathbi{w}^{V}_{-k},\ldots,\mathbi{w}^{V}_{k})$$\mathbi{w}^{K}_{i},\mathbi{w}^{V}_{i}\in \mathbb{R}^{d_k}$
\noindent 其中,{\color{red} $\textrm{clip}$是啥?}\mathbi{w}是可学习的模型参数,最终得到的相对位置表示为$\mathbi{w}^K = (\mathbi{w}^{K}_{-k},\ldots,\mathbi{w}^K_{k})$$\mathbi{w}^{V} = (\mathbi{w}^{V}_{-k},\ldots,\mathbi{w}^{V}_{k})$$\mathbi{w}^{K}_{i},\mathbi{w}^{V}_{i}\in \mathbb{R}^{d_k}$
\vspace{0.5em}
\item 之后研究人员在相对位置编码的基础上进一步探索,采用更符合人直觉的相对位置信息\upcite{Dai2019TransformerXLAL}。由于输入特征是由词嵌入表示与绝对位置编码组成,例如$x_i = \mathbi{E}_{x_i} + \mathbi{U}_i$$x_j=\mathbi{E}_{x_j} + \mathbi{U}_j$,将其代入将公式\eqref{eq:15-3}中可以得到:
\item 对相对位置编码可以进一步改进\upcite{Dai2019TransformerXLAL}。由于输入特征是由词嵌入表示与绝对位置编码组成,例如$x_i = \mathbi{E}_{x_i} + \mathbi{U}_i$$x_j=\mathbi{E}_{x_j} + \mathbi{U}_j$,将其代入将公式\eqref{eq:15-3}中可以得到:
\begin{eqnarray}
\mathbi{e}_{ij} &=& \frac{(\mathbi{E}_{x_i} + \mathbi{U}_i)\mathbi{W}_Q{((\mathbi{E}_{x_j} + \mathbi{U}_j)\mathbi{W}_K)}^{T}}{\sqrt{d_k}}
\label{eq:15-10}
......@@ -110,25 +118,25 @@
\noindent 在计算$\mathbi{e}_{ij}$时将其进行展开得到:
\begin{eqnarray}
A_{ij}^{abs} &=& \underbrace{\mathbi{E}_{x_i}\mathbi{W}_Q\mathbi{W}_{K}^{T}\mathbi{E}_{x_j}^{T}}_{\textrm{(a)}} + \underbrace{\mathbi{E}_{x_i}\mathbi{W}_Q\mathbi{W}_{K}^{T}\mathbi{U}_{j}^{T}}_{\textrm{(b)}} \nonumber \\
&+& \underbrace{\mathbi{U}_i\mathbi{W}_Q\mathbi{W}_{K}^{T}\mathbi{E}_{x_j}^{T}}_{\textrm{(c)}} + \underbrace{\mathbi{U}_i\mathbi{W}_Q\mathbi{W}_{K}^{T}\mathbi{U}_{j}^{T}}_{\textrm{(d)}}
A_{ij}^{abs} &=& \underbrace{\mathbi{E}_{x_i}\mathbi{W}_Q\mathbi{W}_{K}^{T}\mathbi{E}_{x_j}^{T}}_{\textrm{(a)}} + \underbrace{\mathbi{E}_{x_i}\mathbi{W}_Q\mathbi{W}_{K}^{T}\mathbi{U}_{j}^{T}}_{\textrm{(b)}} + \nonumber \\
& & \underbrace{\mathbi{U}_i\mathbi{W}_Q\mathbi{W}_{K}^{T}\mathbi{E}_{x_j}^{T}}_{\textrm{(c)}} + \underbrace{\mathbi{U}_i\mathbi{W}_Q\mathbi{W}_{K}^{T}\mathbi{U}_{j}^{T}}_{\textrm{(d)}}
\label{eq:15-11}
\end{eqnarray}
\noindent 这里用$A_{ij}^{abs}$表示使用绝对位置编码时$\mathbi{e}_{ij}$的分子,$\mathbi{E}_{x_i}$$\mathbi{E}_{x_j}$表示位置$i$$j$的词嵌入,$\mathbi{W}_Q$$\mathbi{W}_K$表示线性变换的权重矩阵,$\mathbi{U}_{i}$$\mathbi{U}_{j}$表示正余弦函数矩阵。为了引入相对位置信息,可以将公式\eqref{eq:15-11}修改为如下形式:
\noindent 这里$A_{ij}^{abs}$表示使用绝对位置编码时$\mathbi{e}_{ij}$的分子,$\mathbi{E}_{x_i}$$\mathbi{E}_{x_j}$表示位置$i$$j$的词嵌入,$\mathbi{W}_Q$$\mathbi{W}_K$表示线性变换的权重矩阵,$\mathbi{U}_{i}$$\mathbi{U}_{j}$表示正余弦函数矩阵。为了引入相对位置信息,可以将公式\eqref{eq:15-11}修改为如下形式:
\begin{eqnarray}
A_{ij}^{rel} &=& \underbrace{\mathbi{E}_{x_i}\mathbi{W}_Q\mathbi{W}_{K}^{T}\mathbi{E}_{x_j}^{T}}_{\textrm{(a)}} + \underbrace{\mathbi{E}_{x_i}\mathbi{W}_Q\mathbi{W}_{K}^{T}\mathbi{R}_{i-j}^{T}}_{\textrm{(b)}} \nonumber \\
&+& \underbrace{\mathbi{u}\mathbi{W}_{K,E}^{T}\mathbi{E}_{x_j}^{T}}_{\textrm{(c)}} + \underbrace{\mathbi{v}\mathbi{W}_{K,R}^{T}\mathbi{R}_{i-j}^{T}}_{\textrm{(d)}}
A_{ij}^{rel} &=& \underbrace{\mathbi{E}_{x_i}\mathbi{W}_Q\mathbi{W}_{K}^{T}\mathbi{E}_{x_j}^{T}}_{\textrm{(a)}} + \underbrace{\mathbi{E}_{x_i}\mathbi{W}_Q\mathbi{W}_{K}^{T}\mathbi{R}_{i-j}^{T}}_{\textrm{(b)}} + \nonumber \\
& & \underbrace{\mathbi{u}\mathbi{W}_{K,E}^{T}\mathbi{E}_{x_j}^{T}}_{\textrm{(c)}} + \underbrace{\mathbi{v}\mathbi{W}_{K,R}^{T}\mathbi{R}_{i-j}^{T}}_{\textrm{(d)}}
\label{eq:15-12}
\end{eqnarray}
\noindent 其中$A_{ij}^{rel}$为使用相对位置编码后的表示。首先将(b)和(d)两项中Query的绝对位置$\mathbi{U}_j$修改为相对位置$\mathbi{R}_{i-j}$;之后将(c)和(d)两项中Key中的$\mathbi{U}_i$分别替换成可学习的$\mathbi{u}$$\mathbi{v}$;最后将$\mathbi{W}_{K}$矩阵分割为$\mathbi{W}_{K,E}$$\mathbi{W}_{K,R}$矩阵,分别作为Key中词嵌入与相对位置编码的线性映射矩阵。通过该参数化定以后每一项具备了直观上的表征含义:(a)表示基于内容的表征,(b)表示基于内容的位置偏置,(c)表示全局的内容的偏置,(d)表示全局的位置偏置。公式\eqref{eq:15-11}中的(a)、(b)两项与前面介绍的相对位置编码一致\upcite{Shaw2018SelfAttentionWR},并针对相对位置编码引入了额外的线性映射矩阵。同时兼顾了全局内容偏置和全局位置偏置,可以更好的利用正余弦函数的归纳偏置特性。
\noindent 其中$A_{ij}^{rel}$为使用相对位置编码后的表示。公式中各项的含义为:(a)表示基于内容的表征,(b)表示基于内容的位置偏置,(c)表示全局的内容的偏置,(d) 表示全局的位置偏置。公式\eqref{eq:15-11}中的(a)、(b)两项与前面介绍的相对位置编码一致\upcite{Shaw2018SelfAttentionWR},并针对相对位置编码引入了额外的线性映射矩阵。同时兼顾了全局内容偏置({\color{red} 啥是全局内容偏置?}和全局位置偏置,可以更好的利用正余弦函数的归纳偏置特性。
\vspace{0.5em}
\item {\small\bfnew{基于结构化位置编码}}\index{基于结构化位置编码}(Structural Position Representations)\index{Structural Position Representations}\upcite{DBLP:conf/emnlp/WangTWS19a}对比序列化的位置编码手段,引入结构化位置表示。通过对输入句子进行依存句法分析得到句法树,根据叶子结点在句法树中的深度来表示其绝对位置。并在此基础上利用相对位置编码的思想计算节点之间的相对位置信息。
\item {\small\bfnew{结构化位置编码}}\index{基于结构化位置编码}(Structural Position Representations)\index{Structural Position Representations}\upcite{DBLP:conf/emnlp/WangTWS19a}对比序列化的位置编码手段,引入结构化位置表示。通过对输入句子进行依存句法分析得到句法树,根据叶子结点在句法树中的深度来表示其绝对位置。并在此基础上利用相对位置编码的思想计算节点之间的相对位置信息。
\vspace{0.5em}
\item {\small\bfnew{基于连续动态系统}}\index{基于连续动态系统}(Continuous Dynamic Model)\index{Continuous Dynamic Model}的位置编码\upcite{Liu2020LearningTE}。相比于正余弦位置编码本身不具备可学习的参数,表示能力受限的同时不够灵活,在超出训练样本中句长的样例表现不佳。使用神经常微分方程\upcite{DBLP:conf/nips/ChenRBD18}{\small\bfnew{求解器}}\index{求解器}(Solver)\index{Solver}来建模位置信息,模型具有更好的归纳偏置能力,可以处理变长的输入样本,同时能够从不同的数据中进行自适应学习。
\item {\small\bfnew{连续动态系统}}\index{基于连续动态系统}(Continuous Dynamic Model)\index{Continuous Dynamic Model}的位置编码\upcite{Liu2020LearningTE}。使用神经常微分方程\upcite{DBLP:conf/nips/ChenRBD18}{\small\bfnew{求解器}}\index{求解器}(Solver)\index{Solver}来建模位置信息,模型具有更好的归纳偏置能力,可以处理变长的输入样本,同时能够从不同的数据中进行自适应学习。
\vspace{0.5em}
\end{itemize}
......@@ -138,7 +146,7 @@ A_{ij}^{rel} &=& \underbrace{\mathbi{E}_{x_i}\mathbi{W}_Q\mathbi{W}_{K}^{T}\math
\subsubsection{2. 注意力分布约束}
\parinterval 局部注意力的概念早在基于循环神经网络的机器翻译模型中广受讨论\upcite{DBLP:journals/corr/LuongPM15}。通过对自注意力网络中的注意力权重可视化,可以观测到不同位置的词受关注的程度相对平滑。这样建模方式利于全局建模,但一定程度上分散了注意力分布导致忽略了邻近单词之间的关系。为了提高模型对局部信息的感知,类似于相对位置编码,修正注意力的权重同样可以达到加强模型关注局部信息的目的:
\parinterval 局部注意力的一直是机器翻译中受关注的研究方向\upcite{DBLP:journals/corr/LuongPM15}。通过对自注意力网络中的注意力权重可视化,可以观测到不同位置的词受关注的程度相对平滑。这样建模方式利于全局建模,但一定程度上分散了注意力分布导致忽略了邻近单词之间的关系。为了提高模型对局部信息的感知,类似于相对位置编码,修正注意力的权重同样可以达到加强模型关注局部信息的目的:
\begin{itemize}
\vspace{0.5em}
......@@ -273,7 +281,7 @@ C(\mathbi{x}_j \mathbi{W}_K,\omega) &=& (\mathbi{x}_{j-\omega},\ldots,\mathbi{x}
%-------------------------------------------
\vspace{0.5em}
\item 多分支注意力模型(图\ref{fig:15-6}\upcite{DBLP:journals/corr/abs-2006-10270}。相比于Weighted Transformer模型,多分支注意力模型直接利用每个分支独立地进行自注意力网络的计算。同时为了避免结构相同的多个多头注意力机制之间的协同适应,使用Branch Dropout在训练过程中随机的丢弃一些分支。
\item 多分支注意力模型(图\ref{fig:15-6}\upcite{DBLP:journals/corr/abs-2006-10270}。相比于Weighted Transformer模型,多分支注意力模型直接利用每个分支独立地进行自注意力网络的计算。同时为了避免结构相同的多个多头注意力机制之间的协同适应,使用Branch Dropout在训练过程中随机的丢弃一些分支。
%----------------------------------------------
\begin{figure}[htp]
......@@ -838,7 +846,7 @@ lr &=& d_{model}^{-0.5}\cdot step\_num^{-0.5}
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{深层网络的鲁棒性训练}
\subsection{深层网络的健壮性训练}
\parinterval 伴随着网络的加深,还会面临另外一个比较严峻的问题\ \dash \ 过拟合。由于参数量的增大,深层网络的输入与输出分布之间的差异也会越来越大,然而不同子层之间的{\small\bfnew{相互适应}}\index{相互适应}(Co-adaptation)\index{Co-adaptation}也会更加的明显,这将导致任意子层网络对其他子层的依赖过大。这种现象在训练阶段是有帮助的,因为不同子层可以协同工作从而更好地拟合训练数据。然而这种方式也降低了模型的泛化能力,即深层网络更容易陷入过拟合问题。
......@@ -1214,7 +1222,7 @@ a(\mathbi{x}) &=& \funp{P}(\cdot|\mathbi{x})
\begin{itemize}
\vspace{0.5em}
\item 进化算法:进化算法最初被用来对神经网络模型结构以及权重参数进行优化\upcite{DBLP:conf/icga/MillerTH89,DBLP:journals/tnn/AngelineSP94,stanley2002evolving,DBLP:journals/alife/StanleyDG09}。虽然随着最优化算法的发展,近年来,对于网络参数的学习更多地采用梯度下降法的方式,但是进化算法仍被用于对模型结构进行优化\upcite{DBLP:conf/aaai/RealAHL19,DBLP:conf/icml/RealMSSSTLK17,DBLP:conf/iclr/ElskenMH19,DBLP:conf/ijcai/SuganumaSN18,Real2019AgingEF,DBLP:conf/iclr/LiuSVFK18,DBLP:conf/iccv/XieY17}。从结构优化的角度来说,一般是将模型结构看做遗传算法中种群的个体,使用轮盘赌或锦标赛等抽取方式,对种群中的结构进行取样作为亲本,之后通过亲本模型的突变产生新的模型结构,最终对这些新的模型结构进行适应度评估\ref{subsubsec-15.4.2.3}。根据模型结构在校验集上的性能确定是否将其加入种群,整个过程如图\ref{fig:15-32}所示。进化算法中结构的突变主要指的是对模型中局部结构的改变,如增加跨层连接、替换局部操作等。
\item 进化算法:进化算法最初被用来对神经网络模型结构以及权重参数进行优化\upcite{DBLP:conf/icga/MillerTH89,DBLP:journals/tnn/AngelineSP94,stanley2002evolving,DBLP:journals/alife/StanleyDG09}。虽然随着最优化算法的发展,近年来,对于网络参数的学习更多地采用梯度下降法的方式,但是进化算法仍被用于对模型结构进行优化\upcite{DBLP:conf/aaai/RealAHL19,DBLP:conf/icml/RealMSSSTLK17,DBLP:conf/iclr/ElskenMH19,DBLP:conf/ijcai/SuganumaSN18,Real2019AgingEF,DBLP:conf/iclr/LiuSVFK18,DBLP:conf/iccv/XieY17} 从结构优化的角度来说,一般是将模型结构看做遗传算法中种群的个体,使用轮盘赌或锦标赛等抽取方式,对种群中的结构进行取样作为亲本,之后通过亲本模型的突变产生新的模型结构,最终对这些新的模型结构进行适应度评估\ref{subsubsec-15.4.2.3}。根据模型结构在校验集上的性能确定是否将其加入种群,整个过程如图\ref{fig:15-32}所示。进化算法中结构的突变主要指的是对模型中局部结构的改变,如增加跨层连接、替换局部操作等。
%----------------------------------------------
\begin{figure}[htp]
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论