RNN
RNN:Recurrent Neural Network,循环神经网络,或 递归神经网络
来源
全连接神经网络和卷积神经网络 都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的。
但是,某些任务需要能够更好的处理序列
的信息,即前面的输入和后面的输入是有关系的。
比如,当我们在理解一句话意思时,孤立的理解这句话的每个词是不够的,我们需要处理这些词连接起来的整个序列;当我们处理视频的时候,我们也不能只单独的去分析每一帧,而要分析这些帧连接起来的整个序列。
这时,就需要用到RNN。
最早用于 自然语言处理领域。
基本 RNN
由输入层、一个隐藏层和一个输出层组成:
- 把上面有W的那个带箭头的圈去掉,它就变成了最普通的全连接神经网络。
- x是一个向量,它表示输入层的值(这里面没有画出来表示神经元节点的圆圈);
- s是一个向量,它表示隐藏层的值(这里隐藏层面画了一个节点,你也可以想象这一层其实是多个节点,节点数与向量s的维度相同);
- U是输入层到隐藏层的权重矩阵
- o,向量,它表示输出层的值
- V是隐藏层到输出层的权重矩阵
将上图展开,RNN 也可以画成下面的样子:
RNN 计算方法:
输出层的计算公式:\(o_t = g(C_{S_t})\)
输出层是一个全连接层,也就是它的每个节点都和隐藏层的每个节点相连。
V是输出层的权重矩阵,g是激活函数。
隐藏层的计算公式:\(s_t = f(U_{X_t} + W_{S_{t-1}})\)
隐藏层是循环层。
- U:输入x的权重矩阵
- W:上一次的值作为这一次的输入的权重矩阵;
- f:激活函数。
由此可见,循环层和全连接层的区别就是循环层多了一个权重矩阵 W。
参考资料
-
零基础入门深度学习(5) - 循环神经网络
https://zybuluo.com/hanbingtao/note/541458 -
知乎忆臻
:一文搞懂RNN(循环神经网络)基础篇
https://zhuanlan.zhihu.com/p/30844905