本文同步更新在我的微信公众号里,地址:https://mp.weixin.qq.com/s/IPyI2Ee6Kzyv3wFAUN7NOQ
本文同步更新在我的知乎专栏里,地址:https://zhuanlan.zhihu.com/p/43190710
目录
1. 基本循环神经网络
传统的神经网络模型是从输入层到隐含层再到输出层的全连接,且同层的节点之间是无连接,网络的传播也是顺序的,但这种普通的网络结构对于许多问题却显得无能为力。例如,在自然语言处理中,如果要预测下一个单词,就需要知道前面的部分单词,因为一个句子中的单词之间是相互联系的,即有语义。这就需要一种新的神经网络,即循环神经网络RNN,循环神经网络对于序列化的数据有很强的模型拟合能力。具体的结构为:循环神经网络在隐含层会对之前的信息进行存储记忆,然后输入到当前计算的隐含层单元中,也就是隐含层的内部节点不再是相互独立的,而是互相有消息传递。隐含层的输入不仅可以由两部分组成,输入层的输出和隐含层上一时刻的输出,即隐含层内的节点自连;隐含层的输入还可以由三部分组成,输入层的输出、隐含层上一时刻的输出、上一隐含层的状态,即隐含层内的节点不仅自连还互连。结构如图1所示。
在图1中,可以看到隐含层节点间有消息的相互传递。为了更简单的理解,现在我们将RNN在时间坐标轴上展开成一个全神经网络,如图2所示。例如,对一个包含3个单词的语句,那么展开的网络便是一个有3层的神经网络,每一层代表一个单词。
对于图2的网络,计算过程如下:
-
表示第步(step)的输入。比如为第二个词的词向量(为第一个词);