Commit a4b4c27d by 曹润柘

合并分支 'caorunzhe' 到 'master'

Caorunzhe

查看合并请求 !342
parents 419e3d51 e38ca4ab
......@@ -383,26 +383,26 @@
\section{残差网络和层正则化}
\parinterval Transformer编码器、解码器分别由多层网络组成(通常为6层),每层网络又包含多个子层(自注意力网络、前馈神经网络)。因此Transformer实际上是一个很深的网络结构。再加上前面介绍的点乘注意力机制,包含很多线性和非线性变换;另外,注意力函数Attention($\cdot$)的计算也涉及多层网络,整个网络的信息传递非常复杂。从反向传播的角度来看,每次回传的梯度都会经过若干步骤,容易产生梯度爆炸或者消失
\parinterval Transformer编码器、解码器分别由多层网络组成(通常为6层),每层网络又包含多个子层(自注意力网络、前馈神经网络)。因此Transformer实际上是一个很深的网络结构。再加上点乘注意力机制中包含很多线性和非线性变换;且注意力函数Attention($\cdot$)的计算也涉及多层网络,整个网络的信息传递非常复杂。从反向传播的角度来看,每次回传的梯度都会经过若干步骤,容易产生梯度爆炸或者消失。解决这个问题的一种办法就是使用残差连接\upcite{DBLP:journals/corr/HeZRS15},此部分内容已经在{\chaptereleven}进行了介绍,这里不再赘述
\parinterval 解决这个问题的一种办法就是使用残差连接\upcite{DBLP:journals/corr/HeZRS15}。残差连接是一种用来训练深层网络的技术,其结构如图\ref{fig:12-49},即在子层之前通过增加直接连接的方式,将底层信息直接传递给上层。
%\parinterval 解决这个问题的一种办法就是使用残差连接\upcite{DBLP:journals/corr/HeZRS15}。残差连接是一种用来训练深层网络的技术,其结构如图\ref{fig:12-49},即在子层之前通过增加直接连接的方式,将底层信息直接传递给上层。
%----------------------------------------------
\begin{figure}[htp]
\centering
\input{./Chapter12/Figures/figure-residual-network-structure}
\caption{残差网络结构}
\label{fig:12-49}
\end{figure}
%\begin{figure}[htp]
%\centering
%\input{./Chapter12/Figures/figure-residual-network-structure}
%\caption{残差网络结构}
%\label{fig:12-49}
%\end{figure}
%----------------------------------------------
\parinterval 残差连接从广义上讲也叫短连接,指的是这种短距离的连接。它的思想很简单,就是把层和层之间的距离拉近。如图\ref{fig:12-49}所示,子层1通过残差连接跳过了子层2,直接和子层3进行信息传递。使信息传递变得更高效,有效解决了深层网络训练过程中容易出现的梯度消失/爆炸问题,使得深层网络的训练更加容易。其计算公式为:
\begin{eqnarray}
x_{l+1} = x_l + \mathcal{F} (x_l)
\label{eq:12-50}
\end{eqnarray}
%\parinterval 残差连接从广义上讲也叫短连接,指的是这种短距离的连接。它的思想很简单,就是把层和层之间的距离拉近。如图\ref{fig:12-49}所示,子层1通过残差连接跳过了子层2,直接和子层3进行信息传递。使信息传递变得更高效,有效解决了深层网络训练过程中容易出现的梯度消失/爆炸问题,使得深层网络的训练更加容易。其计算公式为:
%\begin{eqnarray}
%x_{l+1} = x_l + \mathcal{F} (x_l)
%\label{eq:12-50}
%\end{eqnarray}
\noindent 其中,$x_l$表示$l$层网络的输入向量,$\mathcal{F} (x_l)$是子层运算。如果$l=2$,那么公式\eqref{eq:12-50}可以解释为,第3层的输入($x_3$)等于第2层的输出($\mathcal{F}(x_2)$)加上第二层的输入($x_2$)。图\ref{fig:12-50} 中的红色方框展示了Transformer 中残差连接的位置。
%\noindent 其中,$x_l$表示$l$层网络的输入向量,$\mathcal{F} (x_l)$是子层运算。如果$l=2$,那么公式\eqref{eq:12-50}可以解释为,第3层的输入($x_3$)等于第2层的输出($\mathcal{F}(x_2)$)加上第二层的输入($x_2$)。图\ref{fig:12-50} 中的红色方框展示了Transformer 中残差连接的位置。
%----------------------------------------------
\begin{figure}[htp]
......@@ -413,7 +413,13 @@ x_{l+1} = x_l + \mathcal{F} (x_l)
\end{figure}
%----------------------------------------------
\parinterval 在Transformer的训练过程中,由于引入了残差操作,将前面所有层的输出加到一起。这样会导致不同层(或子层)的结果之间的差异性很大,造成训练过程不稳定、训练时间较长。为了避免这种情况,在每层中加入了层正则化操作\upcite{Ba2016LayerN}。层正则化的计算公式如下:
\parinterval 在Transformer的训练过程中,由于引入了残差操作,将前面所有层的输出加到一起,如公式:
\begin{eqnarray}
x_{l+1} = x_l + \mathcal{F} (x_l)
\label{eq:12-50}
\end{eqnarray}
\noindent 这样会导致不同层(或子层)的结果之间的差异性很大,造成训练过程不稳定、训练时间较长。为了避免这种情况,在每层中加入了层正则化操作\upcite{Ba2016LayerN}。图\ref{fig:12-50} 中的红色方框展示了Transformer中残差和层正则化的位置。层正则化的计算公式如下:
\begin{eqnarray}
\textrm{LN}(x) = g \cdot \frac{x- \mu} {\sigma} + b
\label{eq:12-51}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论