目录
一、循环神经网络RNN介绍
二、Elman network && Jordan network
三、RNN的多种架构
1、一对一
2、多对一
3、多对多
4、 一对多
5、Seq2Seq
四、传统RNN的缺点
一、循环神经网络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失败例子: