递归网络是一种表示学习,它可以将词、句、段、篇按照他们的语义映射到同一个向量空间中,也就是把可组合(树/图结构)的信息表示为一个个有意义的向量。
简介递归神经网络将所有的词、句都映射到一个2维向量空间中。句子(the country of my birth)和句子(the place where I was born)的意思是非常接近的,所以表示它们的两个向量在向量空间中的距离很近。另外两个词(Germany)和(France)因为表示的都是地点,它们的向量与上面两句话的向量的距离,就比另外两个表示时间的词(Monday)和(Tuesday)的向量的距离近得多。这样,通过向量的距离,就得到了一种语义的表示。
上图还显示了自然语言可组合的性质:词可以组成句、句可以组成段落、段落可以组成篇章,而更高层的语义取决于底层的语义以及它们的组合方式。递归神经网络是一种表示学习,它可以将词、句、段、篇按照他们的语义映射到同一个向量空间中,也就是把可组合(树/图结构)的信息表示为一个个有意义的向量。1
递归网络结构包含的参数记号1、网络某一时刻的输入,和之前介绍的多层感知器的输入一样,是一个维向量,不同的是递归网络的输入将是一整个序列,也就是,对于语言模型,每一个将代表一个词向量,一整个序列就代表一句话。
2、代表时刻的隐藏状态。
3、代表时刻的输出。
4、输入层到隐藏层直接的权重由表示,它将我们的原始输入进行抽象作为隐藏层的输入。
5、隐藏层到隐藏层的权重,它是网络的记忆控制者,负责调度记忆。
6、隐藏层到输出层的权重,从隐藏层学习到的表示将通过它再一次抽象,并作为最终输出。
实际应用循环神经网络(Recurrent Neural Networks,RNNs)已经在众多自然语言处理(Natural Language Processing, NLP)中取得了巨大成功以及广泛应用。但是,目前网上与RNNs有关的学习资料很少,因此该系列便是介绍RNNs的原理以及如何实现。主要分成以下几个部分对RNNs进行介绍:
1. RNNs的基本介绍以及一些常见的RNNs(本文内容);
2. 详细介绍RNNs中一些经常使用的训练算法,如Back Propagation Through Time(BPTT)、Real-time Recurrent Learning(RTRL)、Extended Kalman Filter(EKF)等学习算法,以及梯度消失问题(vanishing gradient problem)
3. 详细介绍Long Short-Term Memory(LSTM,长短时记忆网络);
4. 详细介绍Clockwork RNNs(CW-RNNs,时钟频率驱动循环神经网络);
5. 基于Python和Theano对RNNs进行实现,包括一些常见的RNNs模型。2
本词条内容贡献者为:
李斌 - 副教授 - 西南大学