循环神经网络 基础篇 一文搞懂RNN
1.神经网络基础
神经网络可以当做是能够拟合恣意函数的黑盒子,只需训练数据足够,给定特定的x,就能获取宿愿的y,结构图如下:
将神经网络模型训练好之后,在输入层给定一个x,经过网络之后就能够在输入层获取特定的y,那么既然有了这么弱小的模型,为什么还须要RNN(循环神经网络)呢?
2.为什么须要RNN(循环神经网络)
他们都只能独自的取处置一个个的输入,前一个输入和后一个输入是齐全没有相关的。然而,某些义务须要能够更好的处置序列的消息,即前面的输入和前面的输入是有相关的。
比如,当咱们无了解一句话意思时,孤立的了解这句话的每个词是不够的,咱们须要处置这些词衔接起来的整个序列; 当咱们处置视频的时刻,咱们也不能只独自的去剖析每一帧,而要剖析这些帧衔接起来的整个序列。
以nlp的一个最便捷词性标注义务来说,将我 吃 苹果 三个单词标注词性为 我/nn 吃/v 苹果/nn。
那么这个义务的输入就是:
我 吃 苹果 (曾经分词好的句子)
这个义务的输入是:
我/nn 吃/v 苹果/nn(词性标注好的句子)
关于这个义务来说,咱们当然可以间接用普通的神经网络来做,给网络的训练数据格局了就是我-> 我/nn 这样的多个独自的单词->词性标注好的单词。
然而很显著,一个句子中,前一个单词其实关于单词的词性预测是有很大影响的,比如预测苹果的时刻,由于前面的吃是一个动词,那么很显然苹果作为名词的概率就会远大于动词的概率,由于动词前面接名词很经常出现,而动词前面接动词很少见。
所认为了处置一些这样相似的疑问,能够更好的处置序列的消息,RNN就降生了。
3.RNN结构
首先看一个便捷的循环神经网络如,它由输入层、一个暗藏层和一个输入层组成:
不知道初学的同窗能够了解这个图吗,反正我刚开局学习的时刻是懵逼的,每个结点究竟代表的是一个值的输入,还是说一层的向量结点汇合,如何暗藏层又可以衔接到自己,等等这些纳闷~这个图是一个比拟形象的图。
咱们如今这样来了解,假设把上方有W的那个带箭头的圈去掉,它就变成了最普通的全衔接神经网络。
x是一个向量,它示意输入层的值(这外面没有画进去示意神经元节点的圆圈);s是一个向量,它示意暗藏层的值(这里暗藏层面画了一个节点,你也可以构想这一层其实是多个节点,节点数与向量s的维度相反);
U是输入层到暗藏层的权重矩阵,o也是一个向量,它示意输入层的值;V是暗藏层到输入层的权重矩阵。
那么,如今咱们来看看W是什么。循环神经网络的暗藏层的值s不只仅取决于这次的输入x,还取决于上一次性暗藏层的值s。权重矩阵 W就是暗藏层上一次性的值作为这一次性的输入的权重。
咱们给出这个形象图对应的详细图:
咱们从上图就能够很清楚的看到,上一时辰的暗藏层是如何影响时辰的暗藏层的。
假设咱们把上方的图开展,循环神经网络也可以画成上方这个样子:
如今看下来就比拟清楚了,这个网络在t时辰接纳到输入 之后,暗藏层的值是 ,输入值是 。关键一点是, 的值不只仅取决于 ,还取决于 。咱们可以用上方的公式来示意循环神经网络的计算方法:
用公式示意如下:
4.总结
好了,到这里大略解说了RNN最基本的几个常识点,能够协助大家直观的感触RNN和了解为什么须要RNN,后续总结它的反向求导常识点。
***给出RNN的总括图: