\parinterval 那激活函数又是什么?神经元在接收到经过线性变换的结果后,通过激活函数的处理,得到最终的输出$\mathbf y $。激活函数的目的是解决实际问题中的非线性变换,线性变换只能拟合直线,而激活函数的加入,使神经网络具有了拟合曲线的能力。 特别是在实际问题中,很多现象都无法用简单的线性关系描述,这时激活函数的非线性就为描述更加复杂的问题提供了工具。常见的非线性函数有Sigmoid、ReLU、Tanh等。如图\ref{fig:5-15}列举了几种激活函数的形式。\\
\parinterval 那激活函数又是什么?神经元在接收到经过线性变换的结果后,通过激活函数的处理,得到最终的输出$\mathbf y $。激活函数的目的是解决实际问题中的非线性变换,线性变换只能拟合直线,而激活函数的加入,使神经网络具有了拟合曲线的能力。 特别是在实际问题中,很多现象都无法用简单的线性关系描述,这时可以使用非线性激活函数来描述更加复杂的问题。常见的非线性函数有Sigmoid、ReLU、Tanh等。如图\ref{fig:5-15}列举了几种激活函数的形式。\\
\parinterval 为了更好地理解神经网络和深度学习在自然语言处理中的应用。这里介绍一种基于神经网络的语言建模方法\ \dash\ {\small\sffamily\bfseries{神经语言模型}}\index{神经语言模型}(Neural Language Model)\index{Neural Language Model}。可以说,神经语言模型是深度学习时代下自然语言处理的标志性成果,它所涉及的许多概念至今仍是研究的热点,比如:词嵌入、表示学习、预训练等。此外,神经语言模型也为机器翻译的建模提供了很好的思路。从某种意义上说,机器翻译的深度学习建模的很多灵感均来自神经语言模型,二者在一定程度上是统一的。
\parinterval$ w_{i-3}$、 $ w_{i-2}$ 、$ w_{i-1}$为该语言模型的输入(绿色方框),输入为每个词的One-hot向量表示(维度大小与词表大小一致),每个One-hot向量仅一维为1,其余为0,比如:$(0,0,1,\dots,0)$ 表示词表中第三个单词。之后把One-hot向量乘以一个矩阵$\mathbf C $得到单词的分布式表示(紫色方框)。令$ w_i $为第$ i $个词的One-hot表示,$\mathbf e_i $为第$ i $个词的分布式表示,有:
\begin{eqnarray}
\mathbf e_i&=&w_i\mathbf C
\label{eq:5-60}
\end{eqnarray}
\noindent 这里的$\mathbf C $可以被理解为一个查询表,根据$ w_i $中为1的那一维,在$\mathbf C $中索引到相应的行进行输出(结果是一个行向量)。随后,把得到的$\mathbf e_0$、$\mathbf e_1$、$\mathbf e_2$三个向量级联在一起,经过两层网络,最后通过Softmax函数(橙色方框)得到输出:
\noindent 这里的$\mathbf C $可以被理解为一个查询表,根据$ w_i $中为1的那一维,在$\mathbf C $中索引到相应的行进行输出(结果是一个行向量)。通常,把$\mathbf e_i$这种单词的实数向量表示称为{\small\bfnew{词嵌入}}\index{词嵌入}(Word Embedding\index{Word Embedding}),把$\mathbf C $称为词嵌入矩阵。
\parinterval 输出$\mathbf y $是词表上的一个分布,通过单词$ w_i $可以索引到对应概率${\rm P}(w_i|w_{i-1},w_{i-2},\\w_{i-3})$。$\mathbf U $、$\mathbf H $和$\mathbf d $是模型的参数。从结构上看,FNNLM主要有三层:1)词的分布式表示层,即把输入的离散的单词变为分布式表示对应的实数向量;2)隐藏层,即将得到的词的分布式表示进行线性和非线性变换;3)输出层,根据隐藏层的输出预测单词的概率分布。这三层堆叠在一起构成了整个网络,而且也可以加入从词的分布式表示直接到输出层的连接(红色虚线箭头)。
\noindent 这里,输出$\mathbf y $是词表$V$上的一个分布,来表示${\rm P}(w_i|w_{i-1},w_{i-2},w_{i-3})$。$\mathbf U $、$\mathbf H $和$\mathbf d $是模型的参数。这样,对于给定的$w_i$可以用$\mathbf y(i)$得到其概率,其中$\mathbf y(i)$表示向量$\mathbf y$的第$i$维。
@@ -2306,12 +2303,14 @@ Jobs was the CEO of {\red{\underline{apple}}}.
\sectionnewpage
\section{小结及深入阅读}
\parinterval 神经网络为解决自然语言处理问题提供了全新的思路。而所谓深度学习也是建立在多层神经网络结构之上的一系列模型和方法。本章从神经网络的基本概念到其在语言建模中的应用进行了概述。由于篇幅所限,这里无法覆盖所有神经网络和深度学习的相关内容,感兴趣的读者可以进一步阅读《Neural Network Methods in Natural Language Processing》\cite{goldberg2017neural}和《Deep Learning》\cite{Goodfellow-et-al-2016}。此外,也有很多研究方向值得关注:
\parinterval 神经网络为解决自然语言处理问题提供了全新的思路。而所谓深度学习也是建立在多层神经网络结构之上的一系列模型和方法。本章从神经网络的基本概念到其在语言建模中的应用进行了概述。由于篇幅所限,这里无法覆盖所有神经网络和深度学习的相关内容,感兴趣的读者可以进一步阅读\textit{Neural Network Methods in Natural Language Processing}\cite{goldberg2017neural}和\textit{Deep Learning}\cite{Goodfellow-et-al-2016}。此外,也有一些研究方向值得关注: