目录
二、Elman network && Jordan network
一、循环神经网络RNN介绍
循环神经网络 RNN 的基本结构是 BP 网络的结构,也是有输入层,隐藏层和输出层。只不过在 RNN 中隐藏层的输出不仅可以传到输出层,并且还可以传给下一个时刻的隐藏层。
从结构上可以观察到 RNN 最大的特点是
之前序列输入的信息会对模型之后的输出结果造
成影响。
(
有记忆
)
例:有一个句子是“我爱你”,那么先把句子做分词得到“我”,“爱”,“你”三个词,然后依次把这三个词输入到网络中。那么 "为“我” 所表示的信号, 为“爱”所表示的信号, 为“你”所表示的信号。而 "输出结果是主语, 输出结果是谓语, 输出结果是宾语,分别得到 “我”,“爱”,“你”这三个词的词性。
二、Elman network && Jordan network
循环神经网络 RNN 有两种常见的模型,一种是 Elman network 另一种是 Jordan network。
Elman network 和 Jordan network 也被称为:Simple Recurrent Networks (SRN)
或
SimpleRNN
,即简单的循环神经网络。
公式:
Elman network:
Jordan network:
Elman network会更常用一些。
三、RNN的多种架构
1、一对一
2、多对一
3、多对多
4、 一对多
5、Seq2Seq
Seq2Seq(Sequence to Sequence):序列到序列模型(算是多对多架构)。
seq2seq作用:
四、传统RNN的缺点
传统RNN的缺点:梯度消失。
梯度消失:关于梯度消失的问题。就是模型计算得到的误差信号从输出层不断向前传播,以此来调整前面层的权值,使得模型的性能越来越好。但是由于误差信号在每次传递的时候都需要乘以激活函数的导数,当激活函数的导数取值范围是 0-1 之间时,会使得误差信号越传越小,最终趋近于0。
RNN中的梯度消失:这个梯度消失的问题在 RNN 中同样存在,RNN 的序列结构展开之后也可以看成是有很多的“层”,在计算误差信号的时候同样会出现梯度消失的问题,使得网络输出的学习信号只能影响到它前面的几层,对它前面的几层的权值进行调节。
例:
RNN成功例子:
RNN失败例子: