通常情况下,深度神经网络都是水平延伸的(比如cnn),隐层数量多了,但是没有考虑单个隐层在时间上的变化
rnn:关注隐层每个神经元在时间维度上的不断成长
网络结构不变,不添加新的神经元,但是沿着时间轴重复,建立时序上的关联
这里的层级扩展并不是神经元数量的真实增加,而是表示隐层在不同时刻的状态
隐层的时间关联既可以是全连接的(如图),也可以是自己对自己的
Ws:层级间的权重矩阵
rnn通常会假定不同的层,也就是不同的时刻,通用一个Ws(有效的减少训练参数)
##对于图像的分类,输入的每张图往往是独立的,前后无关的,这时候cnn就够了
##但是对于语言类的问题,输入的语境的语序都是非常重要的,rnn就有用了
rnn的训练(和传统神经网络一样)采用误差反向传播和梯度下降来更新权重,只不过在计算隐层时要引入之前不同时刻的数据
rnn的记忆不能无线延申,通常超过10步就不大行了
由于时序上的层级结构,使得rnn在输入输出关系上更灵活
a.单入多出
b.多入单出
c.n to n
d. n to m