Commit 48eda392 by 孟霞

合并分支 'mengxia' 到 'caorunzhe'

Mengxia

查看合并请求 !496
parents 7e6bba70 5e72e252
......@@ -158,7 +158,7 @@
\subsubsection{2. 深度学习的效果}
\parinterval 相比于传统的基于特征工程的方法,基于深度学习的模型更加方便、通用,在系统性能上也普遍更优。这里以语言建模任务为例。语言建模的目的是开发一个模型来描述词串出现的可能性(见{\chaptertwo})。这个任务已经有着很长时间的历史。表\ref{tab:9-1}给出了不同方法在常用的PTB数据集上的困惑度结果 \footnote{困惑度越低明语言建模的效果越好。} 。传统的$ n$-gram语言模型由于面临维度灾难和数据稀疏问题,最终语言模型的性能并不是很好。而在深度学习模型中,通过引入循环神经网络等结构,所得到的语言模型可以更好地描述序列生成的问题。而最新的基于Transformer架构的语言模型将PPL从最初的178.0 下降到了惊人的35.7。可见深度学习为这个任务带来的进步是巨大的。
\parinterval 相比于传统的基于特征工程的方法,基于深度学习的模型更加方便、通用,在系统性能上也普遍更优。这里以语言建模任务为例。语言建模的目的是开发一个模型来描述词串出现的可能性(见{\chaptertwo})。这个任务已经有着很长时间的历史。表\ref{tab:9-1}给出了不同方法在常用的PTB数据集上的困惑度结果 \footnote{困惑度越低明语言建模的效果越好。} 。传统的$ n$-gram语言模型由于面临维度灾难和数据稀疏问题,最终语言模型的性能并不是很好。而在深度学习模型中,通过引入循环神经网络等结构,所得到的语言模型可以更好地描述序列生成的问题。而最新的基于Transformer架构的语言模型将PPL从最初的178.0 下降到了惊人的35.7。可见深度学习为这个任务带来的进步是巨大的。
%----------------------------------------------------------------------------------------------------
\begin{table}[htp]
......@@ -400,7 +400,7 @@
\subsubsection{5. 线性映射}
\parinterval {\small\sffamily\bfseries{线性映射}}\index{线性映射}( Linear Mapping)\index{Linear Mapping}{\small\sffamily\bfseries{线性变换}}\index{线性变换}(Linear Transformation)\index{Linear Transformation}一个向量空间V到另一个向量空间W的映射函数$ f:v\rightarrow w$,且该映射函数保持加法运算和数量乘法运算,即对于空间V中任何两个向量$ {\mathbi{u}} $$ {\mathbi{v}} $以及任何标量$ c $,始终符合公式\eqref{eq:9-9}和公式\eqref{eq:9-10}
\parinterval {\small\sffamily\bfseries{线性映射}}\index{线性映射}( Linear Mapping)\index{Linear Mapping}{\small\sffamily\bfseries{线性变换}}\index{线性变换}(Linear Transformation)\index{Linear Transformation}是一个向量空间V到另一个向量空间W的映射函数$ f:v\rightarrow w$,且该映射函数保持加法运算和数量乘法运算,即对于空间V中任何两个向量$ {\mathbi{u}} $$ {\mathbi{v}} $以及任何标量$ c $,始终符合公式\eqref{eq:9-9}和公式\eqref{eq:9-10}
\begin{eqnarray}
f({\mathbi{u}}+{\mathbi{v}})&=&f({\mathbi{u}})+f({\mathbi{v}})\label{eq:9-9}\\
f(c{\mathbi{v}})&=&cf({\mathbi{v}})
......@@ -578,7 +578,7 @@ x_1\cdot w_1+x_2\cdot w_2+x_3\cdot w_3 & = & 0\cdot 1+0\cdot 1+1\cdot 1 \nonumbe
\begin{figure}[htp]
\centering
\input{./Chapter9/Figures/figure-perceptron-to-predict-2}
\caption{预测是否去剧场的感知机(改变权重}
\caption{预测是否去剧场的感知机(权重不同}
\label{fig:9-7}
\end{figure}
%-------------------------------------------
......@@ -764,12 +764,12 @@ x_1\cdot w_1+x_2\cdot w_2+x_3\cdot w_3 & = & 0\cdot 1+0\cdot 1+1\cdot 1 \nonumbe
\begin{figure}[htp]
\centering
\input{./Chapter9/Figures/figure-four-layers-of-neural-network}
\caption{具有四层神经元的(三层)神经网络}
\caption{三层神经网络}
\label{fig:9-17}
\end{figure}
%-------------------------------------------
\parinterval 在多层神经网络中,通常包括输入层、输出层和至少一个隐藏层。图\ref{fig:9-17}展示了一个由四层神经网络构成的模型,包括输入层、输出层和两个隐藏层。\\
\parinterval 在多层神经网络中,通常包括输入层、输出层和至少一个隐藏层。图\ref{fig:9-17}展示了一个三层神经网络,包括输入层\footnote{由于输入层不存在神经元,因此在计算神经网络层数时不将其包括在内。}、输出层和两个隐藏层。\\
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
......@@ -1040,23 +1040,23 @@ f(x)=\begin{cases} 0 & x\le 0 \\x & x>0\end{cases}
\begin{tabular}{l | l}
\rule{0pt}{15pt} 函数 & 描述 \\
\hline
\rule{0pt}{15pt} \texttt{a.Reshape(o,s)} &$ {\mathbi{a}} $变换成阶为o、形状为s的张量 \\
\rule{0pt}{15pt} \texttt{a.Get(pos)} & 取张量中位置为pos的元素 \\
\rule{0pt}{15pt} \texttt{a.Set(v,pos)} & 把张量中位置为pos的元素值设为v \\
\rule{0pt}{15pt} \texttt{a.Dump(file)} & 把张量存到file中,file为文件句柄 \\
\rule{0pt}{15pt} \texttt{a.Read(file)} & 从file中读取张量,file为文件句柄 \\
\rule{0pt}{15pt} \texttt{a.Reshape(o,s)} &张量$ {\mathbi{a}} $变换成阶为o、形状为s的张量 \\
\rule{0pt}{15pt} \texttt{a.Get(pos)} & 取张量$ {\mathbi{a}} $中位置为pos的元素 \\
\rule{0pt}{15pt} \texttt{a.Set(v,pos)} & 把张量$ {\mathbi{a}} $中位置为pos的元素值设为v \\
\rule{0pt}{15pt} \texttt{a.Dump(file)} & 把张量$ {\mathbi{a}} $存到file中,file为文件句柄 \\
\rule{0pt}{15pt} \texttt{a.Read(file)} & 从file中读取张量$ {\mathbi{a}} $,file为文件句柄 \\
\rule{0pt}{15pt} \texttt{Power(a,p)} & 计算指数$ a^p $ \\
\rule{0pt}{15pt} \texttt{Linear(a,s,b)} & 计算${\mathbi{a}}\ast s+b $,s和b都是一个实数 \\
\rule{0pt}{15pt} \texttt{CopyValue(a)} & 构建$ {\mathbi{a}} $的一个拷贝 \\
\rule{0pt}{15pt} \texttt{ReduceMax(a,d)} &$ {\mathbi{a}} $沿着方向d进行规约,得到最大值 \\
\rule{0pt}{15pt} \texttt{ReduceSum(a,d)} &$ {\mathbi{a}} $沿着方向d进行规约,得到和 \\
\rule{0pt}{15pt} \texttt{CopyValue(a)} & 构建张量$ {\mathbi{a}} $的一个拷贝 \\
\rule{0pt}{15pt} \texttt{ReduceMax(a,d)} &张量$ {\mathbi{a}} $沿着方向d进行规约,得到最大值 \\
\rule{0pt}{15pt} \texttt{ReduceSum(a,d)} &张量$ {\mathbi{a}} $沿着方向d进行规约,得到和 \\
\rule{0pt}{15pt} \texttt{Concatenate(a,b,d)} & 把两个张量$ {\mathbi{a}} $$ {\mathbi{b}} $沿d方向级联 \\
\rule{0pt}{15pt} \texttt{Merge(a,d)} & 对张量$ {\mathbi{a}} $沿d方向合并 \\
\rule{0pt}{15pt} \texttt{Split(a,d,n)} & 对张量$ {\mathbi{a}} $沿d方向分裂成n份 \\
\rule{0pt}{15pt} \texttt{Sigmoid(a)} &${\mathbi{a}}$进行Sigmoid变换 \\
\rule{0pt}{15pt} \texttt{Softmax(a)} &$ {\mathbi{a}} $进行Softmax变换,沿最后一个方向 \\
\rule{0pt}{15pt} \texttt{HardTanh(a)} &$ {\mathbi{a}} $进行hard Tanh变换(双曲正切的近似) \\
\rule{0pt}{15pt} \texttt{Rectify(a)} &$ {\mathbi{a}} $进行ReLU变换 \\
\rule{0pt}{15pt} \texttt{Sigmoid(a)} &张量${\mathbi{a}}$进行Sigmoid变换 \\
\rule{0pt}{15pt} \texttt{Softmax(a)} &张量$ {\mathbi{a}} $进行Softmax变换,沿最后一个方向 \\
\rule{0pt}{15pt} \texttt{HardTanh(a)} &张量$ {\mathbi{a}} $进行hard Tanh变换(双曲正切的近似) \\
\rule{0pt}{15pt} \texttt{Rectify(a)} &张量$ {\mathbi{a}} $进行ReLU变换 \\
\end{tabular}
\end{table}
%--------------------------------------------------------------------
......@@ -1946,7 +1946,7 @@ z_t&=&\gamma z_{t-1}+(1-\gamma) \frac{\partial J}{\partial {\theta}_t} \cdot \f
\label{eq:9-120}
\end{eqnarray}
\noindent 这里,exp($\cdot$)表示指数函数。Softmax函数是一个典型的标准化函数,它可以将输入的向量的每一维都转化为0-1之间的数,同时保证所有维的和等于1。Softmax的另一个优点是,它本身(对于输出的每一维)都是可微的(如图\ref{fig:softmax}所示),因此可以直接使用基于梯度的方法进行优化。实际上,Softmax经常被用于分类任务。也可以把机器翻译中目标语单词的生成看作一个分类问题,它的类别数是|$V$|。
\noindent 这里,exp($\cdot$)表示指数函数。Softmax函数是一个典型的归一化函数,它可以将输入的向量的每一维都转化为0-1之间的数,同时保证所有维的和等于1。Softmax的另一个优点是,它本身(对于输出的每一维)都是可微的(如图\ref{fig:softmax}所示),因此可以直接使用基于梯度的方法进行优化。实际上,Softmax经常被用于分类任务。也可以把机器翻译中目标语单词的生成看作一个分类问题,它的类别数是|$V$|。
%----------------------------------------------
\begin{figure}[htp]
......@@ -1965,7 +1965,7 @@ z_t&=&\gamma z_{t-1}+(1-\gamma) \frac{\partial J}{\partial {\theta}_t} \cdot \f
\parinterval 值得注意的是,在FNNLM中,单词已经不再是一个孤立的符号串,而是被表示为一个实数向量。这样,两个单词之间可以通过向量计算某种相似度或距离。这导致相似的单词会具有相似的分布,进而缓解$n$-gram语言模型的问题\ \dash \ 明明意思很相近的两个词但是概率估计的结果差异性却很大。
\parinterval 在FNNLM中,所有的参数、输入、输出都是连续变量,因此FNNLM也是典型的一个连续空间模型。通过使用交叉熵等损失函数,FNNLM很容易进行优化。比如,可以使用梯度下降方法对FNNLM的模型参数进行训练。
\parinterval 在FNNLM中,所有的参数、输入、输出都是连续变量,因此FNNLM也是一个典型的连续空间模型。通过使用交叉熵等损失函数,可以很容易地对FNNLM进行优化。比如,可以使用梯度下降方法对FNNLM的模型参数进行训练。
\parinterval 虽然FNNLM形式简单,却为处理自然语言提供了一个全新的视角。首先,该模型重新定义了“词是什么”\ \dash \ 它并非词典的一项,而是可以用一个连续实数向量进行表示的可计算的“量”。此外,由于$n$-gram不再是离散的符号序列,模型不需要记录$n$-gram,所以很好的缓解了上面所提到的数据稀疏问题,模型体积也大大减小。
......@@ -2024,7 +2024,7 @@ z_t&=&\gamma z_{t-1}+(1-\gamma) \frac{\partial J}{\partial {\theta}_t} \cdot \f
\parinterval 针对这个问题,一种解决方法是使用卷积神经网络\upcite{Pham2016ConvolutionalNN}。卷积神经网络的特点是可以对一定窗口大小内的连续单词进行统一建模,这样非常易于捕捉窗口内单词之间的依赖,同时对它们进行整体的表示。进一步,卷积操作可以被多次叠加使用,通过更多层的卷积神经网络可以捕捉更大范围的依赖关系。关于卷积神经网络及其在机器翻译中的应用,{\chaptereleven}会有详细论述。
\parinterval 此外,研究者也提出了另一种新的结构$\ \dash \ ${\small\bfnew{自注意力机制}}\index{自注意力机制}(Self-attention Mechanism)\index{Self-attention Mechanism}。自注意力是一种特殊的神经网络结构,它可以对序列上任意两个词的相互作用直接进行建模,这样也就避免了循环神经网络中随着距离变长信息传递步骤增多的缺陷。在自然语言处理领域,自注意力机制被成功地应用在机器翻译任务上,形成了著名的Transformer模型\upcite{vaswani2017attention}{\chaptertwelve}会系统地介绍自注意力机制和Transformer模型。
\parinterval 此外,研究者也提出了另一种新的结构$\ \dash \ ${\small\bfnew{自注意力机制}}\index{自注意力机制}(Self-attention Mechanism)\index{Self-attention Mechanism}。自注意力是一种特殊的神经网络结构,它可以对序列上任意两个词的相互作用直接进行建模,这样也就避免了循环神经网络中随着距离变长信息传递步骤增多的缺陷。在自然语言处理领域,自注意力机制被成功地应用在机器翻译任务上,著名的Transformer模型\upcite{vaswani2017attention}就是基于该原理工作的{\chaptertwelve}会系统地介绍自注意力机制和Transformer模型。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论