在介绍RNN神经网络之前,我们先提供一个样本数据例子可以见下表格
代表 这个样本tn 时刻,有五个特征
上图是循环神经网络的基本模型(是别人的博客来的,借鉴一下),对于t时刻来说。
x为输入 ,o为这一个时刻的输出,代表的上一个时刻的输出,也相当于这一个时刻的输入,s代表的是这一个时刻输出,大家会产生疑问,为什么一个单元神经网络上会有两个输出呢,其实 ,这o和s 本质是一样的,只不过一个s用于可以传递到下个网络,而o
可以有别的用处,例如就写入普通的全连接神经网络上。
然后 W,V ,U 只是参数而已, 值得注意的是,这个W,V ,U 在每个单元神经网络上,是共享参数的。(因为V是o的输出,这时候我们可以先不考虑这个参数权重),其实U和W可以并列起来,因为都是可以采用下面的计算方法。其实是可以并列的。
计算例子
然后根据上面的例子,我们假设输出的值为8维(就是最后一层单元神经网络的输出,其实每个单元神经网络的输出);
那么W就是8+上面时刻的5个特征。就是13 维的
对于0时刻,因为没有上一个时刻的输入 所以传来的输入为0,加上t0时刻的五个特征为13维的,然后输出s要求也是8维[s1 ,s2, s3, s4…s7 ,s8]
W[[w11 , w12, w13, w14, w15… w1 12, w1 13]]*
[0, 0 ,0 ,0 , 0, 0, 0, 0, a,b,c,d,e]+ b1 = s1
同理
W[[w21 , w22, w23, w24, w25… w2 12, w2 13]]*
[0, 0 ,0 ,0 , 0, 0, 0, 0, a,b,c,d,e]+ b2 = s2
…
直到计算s8
W[[w81 , w82, w83, w84, w85… w8 12, w8 13]]*
[0, 0 ,0 ,0 , 0, 0, 0, 0, a,b,c,d,e]+ b8 = s8
那我们就得到了一个[s1,s2,s3,s4,s5,s6,s7,s8]
接下来就是重复的计算
W[[w11 , w12, w13, w14, w15… w1 12, w1 13]]*
[s1,s2 ,s3 ,s4 , s5, s6, s7,s8, A,B,C,D,E]+ b1 = 新的s1 (这个为新时刻的8维输出)
W[[w21 , w22, w23, w24, w25… w2 12, w2 13]]*
[s1,s2 ,s3 ,s4 , s5, s6, s7,s8, A,B,C,D,E]+ b2 = 新的 s2
…
W[[w81 , w82, w83, w84, w85… w8 12, w8 13]]*
[s1,s2 ,s3 ,s4 , s5, s6, s7,s8, A,B,C,D,E]+ b8 = 新的 s8
直到出现一个最终的8维输出。