深度学习(三)-RNN循环神经网络概述
一、引入
1、神经网络的实际使用中,会处理跟时序相关的数据
2、传统的神经网络,输入和输出独立,不能很好处理时序数据
3、1986年提出RNN
二、网络结构
1、3层:输入层、隐藏层、输出层
2、使用时,按时间线展开,特别注意:循环的不是隐藏层,而是整个3层结构
3、输入
2个:当前时刻的输入Xt,上一时刻的状态St-1
4、输出
2个:当前时刻的输出Ot,当前时刻的状态St
5、计算公式
三、长期依赖和门控RNN
1、RNN长期依赖:梯度小于1,不断相乘会变成0,有梯度消失的风险
2、引入门控单元
四、LSTM(Long-Short-Time Memory)长短时记忆网络(1997年提出)
1、使用3个门:输入门、遗忘门、输出门
4、遗忘门决定上一个状态中哪些数据会被遗弃,为1全保留,为0全遗弃
五、GRU(2014年提出)
1、每个门控单元对提高学习能力的贡献不一样
2、对提高学习能力的贡献较小的门可以省略,结构和权重,简化神经网络
六、DRNN(Deep RNN)深度循环神经网络
1、是RNN的扩展,把多个隐藏层堆叠在一起,上一层的输出序列,作为下一层的输入序列
2、可以处理长度不固定的序列数据
七、BiRNN双向循环神经网络
1、当前时刻的输出,不仅和前面的信息有关,还和后面信息有关
2、BiRNN由两层RNN组成,输入相同,信息传递方向相反
3、每个节点的输出,由两层RNN共同决定
八、注意力机制结合RNN
1、RNN难以学习到时间间隔较长的信息
2、注意力机制:对信息集合进行监视,从中挑选出有用的信息
3、机器翻译:seq2seq,将输入序列,映射成一个固定长度的向量,然后将向量解码为目标序列
4、编码器:输入序列->上下文向量,RNN可以处理可变长度的输入序列
5、解码器:上下文向量->目标序列