RNN

RNN
首先看一个简单的循环神经网络如,它由输入层、一个隐藏层和一个输出层组成:

如果把上面有W的那个带箭头的圈去掉,它就变成了最普通的全连接神经网络。x是一个向量,它表示输入层的值(这里面没有画出来表示神经元节点的圆圈);s是一个向量,它表示隐藏层的值(这里隐藏层面画了一个节点,你也可以想象这一层其实是多个节点,节点数与向量s的维度相同);
U是输入层到隐藏层的权重矩阵,o也是一个向量,它表示输出层的值;V是隐藏层到输出层的权重矩阵。
循环神经网络的隐藏层的值s不仅仅取决于当前这次的输入x,还取决于上一次隐藏层的值s。权重矩阵 W就是隐藏层上一次的值作为这一次的输入的权重。
抽象图对应的具体图:

从上图就能够很清楚的看到,上一时刻的隐藏层是如何影响当前时刻的隐藏层的。
如果把上面的图展开,循环神经网络也可以画成下面这个样子:

RNN时间线展开图
现在看上去就比较清楚了,这个网络在t时刻接收到输入x_t 之后,隐藏层的值是 s_t,输出值是 o_t。关键一点是,s_t的值不仅仅取决于x_t,还取决于 s_t-1,可以用下面的公式来表示循环神经网络的计算方法:
用公式表示如下:

RNN公式
最后给出RNN的总括图:

注意:为了简单说明问题,偏置都没有包含在公式里面。

posted @ 2025-05-12 18:28  Jenny43473  阅读(24)  评论(0)    收藏  举报