深度学习笔记4——RNN、LSTM

RNN

RNN与BP的区别

传统的神经网络没有设计记忆结构,难以处理序列数据,循环神经网络(RNN)针对BP神经网络的缺点,增加了信息跨时代传递的结构。
当我们处理与事件发生的时间轴有关系的问题时,比如自然语言处理,文本处理,文字的上下文是有一定的关联性的;时间序列数据,如连续几天的天气状况,当日的天气情况与过去的几天有某些联系;又比如语音识别,机器翻译等

RNN的历史信息传递方式

对于RNN,每个时刻的隐藏层除了连接本层的输入层与输出层,还连接上一时刻和下一时刻的隐藏单元。

BPTT

基于时间的反向传播(Back Propagation Through Time,BPTT):RNN在训练时采用反向传播,还包含从最后一个时间将累积的残差传递回来过程的方法。

什么是RNN

  • 循环神经网络在隐藏层会对之前的信息进行存储记忆,然后输入到当前计算的隐藏层单元中,也就是隐藏层内部结点不再是互相独立的,而是相互有信息传递。
  • RNN通过隐藏层神经元的记忆功能,实现了所有时刻的权重矩阵共享。
  • RNN基础结构图深度学习笔记4——RNN、LSTM_第1张图片

LSTM

相较与LSTM,RNN的缺陷

  • 普通RNN虽然具备一定的记忆功能,但是不能很好的处理长期记忆问题。
  • RNN采用反向传播算法对权重和阈值进行优化,虽然可以将之前的隐藏层状态储存在记忆单元中,但难以处理相隔较远的信息,因为:
    • 当误差权重>1,权重多次相乘会导致梯度爆炸
    • 当误差权重<1,经过多次传播会导致梯度消失
  • 计算梯度,使用链式法则,前面层的梯度是由后面层的梯度连乘得到,多个较小的梯度相乘导致梯度值指数级下降,最终反向传播几步后消失。
  • RNN学习依赖于激活函数和网络初始参数,如果梯度太大,会梯度爆炸
  • RNN不能解决长期依赖问题

什么是LSTM

LSTM模型属于循环神经网络,LSTM对于RNN的改进主要体现在:

  • 通过门控制器,增加了对不同时刻记忆的权重控制(增加忘记门)、
    • 通过忘记门的控制单元选择过去的信息保留多少
    • 当忘记门=1,全保留过去信息
    • 当忘记门=0,全部忘记过去信息
    • 当0<忘记门<1,部分保留过去信息
  • 加入跨层连接,削减梯度消失问题的影响
  • 在LSTM单元中总是保持稳定的误差流,使得在反向传播时,不会出现梯度消失

LSTM算法内部结构

深度学习笔记4——RNN、LSTM_第2张图片

  • 第一层是忘记层,垓层决定细胞状态丢弃什么信息(sigmoid函数的输出决定了状态信息保留多少),把ht-1和xt拼接传给sigmoid函数并输出0~1之间的值,并将值传到细胞状态Ct-1上
    在这里插入图片描述

  • 第二步是更新层的细胞状态,tanh层用来产生更新值的候选象,sigmoid层的输出值乘到tanh层的输出上。
    深度学习笔记4——RNN、LSTM_第3张图片

  • 第三步是旧的细胞状态Ct-1与忘记门ft相乘,再加第二步的更新的部分,产生新的细胞状态Ct
    在这里插入图片描述

  • 第四步是输出部分,将第三步的Ct,输给tanh函数得到输出值的候选项
    深度学习笔记4——RNN、LSTM_第4张图片

LSTM小结

  • 输入门控制了记忆单元的入口,只有当输入门是打开状态,输入数据才可以进入记忆单元;当输入门关闭,数据不能进入;输入门打开与否由神经网络学习到的参数决定。
  • 遗忘门决定记忆单元的信息保留还是遗忘:即控制上一时刻进入记忆单元的信息有多少可以累计到当前时刻,这部分数据最终汇总到输出门处理。
  • 输出门是记忆单元的出口,决定外部的单元是否可以从记忆单元中读取信息。
  • LSTM的历史信息累计靠靠记忆单元的自连接实现,通过遗忘门控制上一时刻记忆单元的信息,并通过输入门控制信息的输入

LSTM与RNN相比的改进

  • 多了3个基于sigmoid函数的“门”来控制信息的流量,通过对历史信息的线性累积,实现时间序列预测的“长程依赖”
  • LSTM不仅可以保存过去的信息,还可以通过遗忘门决定保存多少过去的信息

你可能感兴趣的:(深度学习,rnn,lstm,深度学习)