摘要: 什么是人工神经网络?它是如何工作的?在自然语言处理中使用不同类型的人工神经网络到底能达到什么效果?今天我们就通过这篇文章简单地探讨一下这些问题。
人工神经网络是一种基于大脑神经结构的非线性运算模型。它仅通过参考样本便可学习完成诸如分类、预测、决定和可视化等任务。
人工神经网络由许多神经元处理单元广泛连接而成。这些处理单元分为三类,包括输入层、隐含层(可以多于一层)和输出层。
位于输入层的神经元将信息传递到隐含层,隐含层再传递至输出层。每个神经元都有加权输入(突触)、一个激活函数(代表该神经元特定输出的函数)和一个输出。突触是将神经网络转换为参数化系统的可调参数。
激励信号由加权过的输入信号产生,再传递至激励函数以获得输出。常用的激励函数包括线性、阶跃、Sigmoid、双曲正切和线性修正单元(ReLu)函数。
线性函数
f(x)=ax
阶跃函数
Sigmoid函数
双曲正切函数
线性修正单元函数
通过训练对权值进行优化,从而达到最小化预测误差、提高预测准确率的目标。反向传播算法是一种计算损失函数梯度的算法,其常用于确定神经元对误差贡献量。
使用额外的隐含层可以使系统更强大,能够适应更复杂情况。在输入层和输出层间存在多个隐含层的人工神经网络便是深度神经网络(DNNs),它们可以对复杂的非线性关系进行建模。
多层感知器拥有三个或三个以上节点层。它通过非线性激活函数(主要是双曲正切和Sigmoid函数)对线性不可分数据进行分类。MLP可以被看作是一个有向图,由多个节点层组成,每一层全连接到下一层。其在自然语言处理方面的主要应用是语音识别和机器翻译。
卷积神经网络包括卷积层和池化层两部分。它其实和我们上节所讲述的前馈网络并无太大区别,只是将其中某些层换成了卷积层而已,所以卷积网络也是一种特殊的前馈网络。而这样的结构带来的是更少的参数需求和更深入的网络。
卷积神经网络在图像和语音处理中有着不凡的表现。 在Convolutional Neural Networks for Sentence Classification一文中,Yoon Kim描述了使用卷积神经网络进行文本分类的过程和结果。他建立一个基于word2vec的模型,并从多个基准和维度对它进行了一系列的实验,而令人满意的结果也印证了卷积神经网络的出色。
而 Xiang Zhang和Yann LeCun则在其论文Text Understanding from Scratch中揭示了卷积神经网络可不依赖任何语言知识完成本体分类、情感分析、文本分类等任务。
递归神经网络是两种人工神经网络的总称。一种是时间递归神经网络(recurrent neural network),另一种是结构递归神经网络(recursive neural network)。时间递归神经网络的神经元间连接构成有向图,而结构递归神经网络利用相似的神经网络结构递归构造更为复杂的深度网络。两者训练的算法不同,但属于同一算法变体。
长短期记忆网络,是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。它是一种含有LSTM区块神经网络,在文献或其他资料中LSTM区块可能被描述成智能网络单元,因为它可以记忆不定时间长度的数值,区块中有一个“门”能够决定输入值是否重要到能被记住以及能不能被输出。
在大规模声学建模和词性分类方面,长短期记忆网络被证明拥有优异性能。
通常,一个序列到序列模型由两个递归神经网络组成:一个处理输入的编码器和一个产生输出的译码器。编码器和解码器可以使用相同或不同的参数集。
序列-序列模型主要用于问答系统,聊天机器人和机器翻译。
除了深层神经网络外,浅层模型也是实用且广受欢迎的工具。例如,word2vec是一组浅层模型,用于生成词向量。word2vec可以在百万数量级的词典和上亿的数据集上进行高效地训练,训练结果——词向量可以很好地度量词与词之间的相似性。
在本文中,我们介绍了人工神经网络的不同变体,如多层感知器、卷积神经网络、递归神经网络、长短期记忆网络、序列-序列模型以及浅层神经网络。我们展示了这些网络如何运作,以及它们在自然语言处理任务中的具体应用。我们发现,卷积神经网络主要用于文本分类,而递归神经网络通常用于自然语言生成或机器翻译。(云栖社区翻译)
浙大90后女黑客在GeekPwn2017上秒破人脸识别系统!