讲义

chap-循环神经网络.pptx

博客:循环神经网络基础篇

原文链接

神经网络基础

神经网络可以当作是能够拟合任意函数的黑盒子,只要训练数据足够,给定特定的§ 6. 循环神经网络 - 图1,就能得到希望的§ 6. 循环神经网络 - 图2,结构图如下:

§ 6. 循环神经网络 - 图3
将神经网络模型训练好之后,在输入层给定一个§ 6. 循环神经网络 - 图4,通过网络之后就能够在输出层得到特定的§ 6. 循环神经网络 - 图5,那么既然有了这么强大的模型,为什么还需要RNN(循环神经网络)呢?

为什么需要RNN(循环神经网络)

他们都只能单独的去处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。

比如,当我们在理解一句话意思时,孤立的理解这句话的词是不够的,我们需要处理这些词连接起来的整个序列;当我们处理视频的时候,我们也不能只单独的去分析每一帧,而要分析这些帧连接起来的整个序列。

以nlp的一个最简单词性标注任务来说,将我 吃 苹果三个单词标注词性为我/nn 吃/v 苹果/nn
那么这个人物的输入就是:
我 吃 苹果(已经分词好的句子)
这个任务的输出就是:
我/nn 吃/v 苹果/nn(词性标注好的句子)
对于这个任务来说,我们当然可以直接用普通的神经网路来做,给网络的训练数据格式就是我 ->我/nn这样的多个单独的单词->词性标注好的单词。
但是很明显,一个句子中,前一个单词对于当前单词的词性预测是有很大影响的,比如预测苹果的时候,由于前面的吃是一个动词,那么很显然苹果作为名词的概率就会远大于动词的概率,因为动词后面接名词很常见,而动词后面接动词很少见。
所以为了解决一些这样类似的问题,能够更好的处理序列的信息,RNN就诞生了。

RNN结构

首先看一个简单的循环神经网络,它由输入层、一个隐藏层和一个输出层组成:
§ 6. 循环神经网络 - 图6
这个图比较抽象,有个问题:每个结点到底代表的是一个值的输入,还是说一层的向量结点集合,如何隐藏层又可以连接到自己?
我们现在这样理解:
如果把上面有W的那个循环去掉,它就变成最普通的全连接神经网络。§ 6. 循环神经网络 - 图7是输入层的值,§ 6. 循环神经网络 - 图8是一个向量,表示隐藏层的值。§ 6. 循环神经网络 - 图9是输入层到隐藏层的权重矩阵,§ 6. 循环神经网络 - 图10也是一个向量,他表示输出层的值;§ 6. 循环神经网络 - 图11是隐藏层到输出层的权重矩阵。
所以,这个§ 6. 循环神经网络 - 图12代表什么?循环神经网络的隐藏层的值§ 6. 循环神经网络 - 图13不仅取决于当前的输入§ 6. 循环神经网络 - 图14,还取决于上一次隐藏层的值§ 6. 循环神经网络 - 图15.权重矩阵§ 6. 循环神经网络 - 图16就是隐藏层上一次的值作为这一次的输入的权重.
我们给出这个抽象图对应的具体图:

§ 6. 循环神经网络 - 图17
我们从上图就能够很清楚地看到,上一时刻的隐藏层是如何影响当前时刻的隐藏层的.
如果我们把上面的图展开,循环神经网络也可以画成下面这个样子:
§ 6. 循环神经网络 - 图18
现在看上去就比较清楚了,这个网络在§ 6. 循环神经网络 - 图19时刻接收到输入§ 6. 循环神经网络 - 图20之后,隐藏层的值就是§ 6. 循环神经网络 - 图21,输出值是§ 6. 循环神经网络 - 图22.关键一点是,§ 6. 循环神经网络 - 图23的值不仅仅取决于§ 6. 循环神经网络 - 图24,还取决于§ 6. 循环神经网络 - 图25.我们可以用下面的公式来表示循环神经网络的计算方法:
用公式表示如下:
§ 6. 循环神经网络 - 图26

总结

好了,到这里大概讲解了RNN最基本的几个知识点,能够帮助大家直观的感受RNN和了解需要RNN,后续总结它的反向求导知识点.
最后给出RNN的总括图:

§ 6. 循环神经网络 - 图27