提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
一、RNN概念及适用情形
递归神经网络(Recurrent Neural Network, RNN)是一种可以专门用来处理时间序列数据的模型。它可以关注到时间连续这一特性,从而从数据中提取相应的信息。
典型的时序数据像:股价,天气,文本。对于文本而言,每个字符都有前后顺序,如果顺序不对,那么意义就不一样甚至不对了。这里要注意的是,文本数据是离散化的。
二、RNN模型
1.网络模型
RNN需要做的是前后关系联系在一起。
看一个简单的循环神经网络图
x是一个向量,它表示输入层的值(这里面没有画出来表示神经元节点的圆圈);s是一个向量,它表示隐藏层的值(这里隐藏层面画了一个节点,你也可以想象这一层其实是多个节点,节点数与向量s的维度相同);
U是输入层到隐藏层的权重矩阵,o也是一个向量,它表示输出层的值;V是隐藏层到输出层的权重矩阵。
那么,现在我们来看看W是什么。循环神经网络的隐藏层的值s不仅仅取决于当前这次的输入x,还取决于上一次隐藏层的值s。权重矩阵 W就是隐藏层上一次的值作为这一次的输入的权重。
把它按照时间线展开
当前时刻t的隐藏状态S t ,不仅仅取决于当前的输入X t , 还取决于前一个时刻的隐藏状态值S t − 1
f()为激活函数。
Softmax 是一个数学函数,用于对 0 和 1 之间的值进行归一化。
2.反向传播
我简单的理解就是求微分,对网络中所有权重计算损失函数的梯度。
我用一个例子来帮助理解
三、缺点
序列太长,容易梯度消失,参数只能捕捉局部关系,没法在捕捉序列间长期依赖关系。
用例子来说明
总结
以上就是对RNN神经网络的学习