一文读懂循环神经网络RNN

一、RNN诞生原因

神经网络可以当做是能够拟合任意函数的黑盒子,只要训练数据足够,给定特定的x,就能得到希望的y,结构图如下:
一文读懂循环神经网络RNN_第1张图片
将神经网络模型训练好之后,在输入层给定一个x,通过网络之后就能够在输出层得到特定的y。

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

比如,当我们在理解一句话意思时,孤立的理解这句话的每个词是不够的,我们需要处理这些词连接起来的整个序列;

具体例子:词性标注任务:
这个任务的输入就是:我 吃 苹果 (已经分词好的句子)
这个任务的输出是:我/nn 吃/v 苹果/nn(词性标注好的句子)
很明显,一个句子中,前一个单词其实对于当前单词的词性预测是有很大影响的,比如预测苹果的时候,由于前面的吃是一个动词,那么很显然苹果作为名词的概率就会远大于动词的概率,因为动词后面接名词很常见,而动词后面接动词很少见。

所以为了解决一些这样类似的问题,能够更好的处理序列的信息,RNN就诞生了。

二、RNN原理

首先看一个简单的循环神经网络抽象图:它由输入层、一个隐藏层和一个输出层组成:
一文读懂循环神经网络RNN_第2张图片
U是输入层到隐藏层的权重矩阵,o也是一个向量,它表示输出层的值;V是隐藏层到输出层的权重矩阵。

现在我们来看看W是什么?循环神经网络的隐藏层的值s不仅仅取决于当前这次的输入x,还取决于上一次隐藏层的值s。权重矩阵 W就是隐藏层上一次的值作为这一次的输入的权重。

我们给出具体图:

一文读懂循环神经网络RNN_第3张图片
我们从上图就能够很清楚的看到,上一时刻的隐藏层是如何影响当前时刻的隐藏层的。

如果我们把上面的图展开,循环神经网络也可以画成下面这个样子:
一文读懂循环神经网络RNN_第4张图片
在这里插入图片描述
用公式表示如下:
一文读懂循环神经网络RNN_第5张图片
本文转载自:https://zhuanlan.zhihu.com/p/30844905

你可能感兴趣的:(人工智能算法模型)