深度学习基础----循环神经网络

背景--传统前馈网络的短板

 

1.层与层之间连接, 每层之间无连接.  每层输入输出维数是固定的, 不能任意改变. 无法处理变长序列数据

2.假设每次输入都是独立的, 也就是说每次网络的输出只依赖于当前的输入

RNN的结构

各种类型的网络

 

更新状态

 

 

 

按时间展开

 

 

随时间的反向传播算法

向前传播, 反向传播

 

向前传播

 

反向传播

1.L对V的梯度:

2.L对W的梯度:

3.L对U的梯度:

应对梯度消失, 梯度爆炸

背景

在时间维度上, RNN很深, 必须直面, 梯度消失(尤其), 梯度爆炸

应对

梯度消失

梯度截断: 在梯度到达一定阈值之后, 将梯度进行缩减

梯度爆炸

1.采用其他的激活函数

2.权重初始化采用一些限制

3.设计改进不同的网络结构

采用其他激活函数

 

采用ReLU函数防止激活函数将梯度快速收缩

权重初始化限制

 

将权重初始化为单位矩阵, 有助于防止权重缩减到0

设计不同的网络结构

回声状态网络ESN, 只学习输出权重

LSTM

核心

依靠一个门控单元追踪时间步中的信息

门控机制

 

遗忘

 

即决定哪些信息要从历史状态单元中遗忘,

 

  1. 利用上一层的状态h_(t-1)和这一层的输入x_t
  2. Sigmoid从0~1之间, 从”完全遗忘”到”完全保留”

留下

 

即决定在细胞单元状态中存储哪些信息

 

Sigmoid层: 决定更新哪些值

Tanh层:生成新的可以添加到细胞单元状态的”候选值”向量

更新

 

即更新旧的细胞状态

 

即: 遗忘门+添加新信息

输出

 

即决定需要输出的值

 

Sigmiod层: 决定输出细胞单元状态中的哪部分

Tanh层: 将细胞单元状态从挤压到(-1,1)

乘积: 输出过滤后版本的细胞单元状态

较标准RNN

相同点: 接受两个输入, 得到一个输出.  使用两个参数矩阵W_(xc), W_(hc), 以及tanh函数

不同点: LSTM通过三个门控单元, 对信息进行控制

缓解梯度消失: f_t闭合时, 梯度可以直接传递到C_(t-1), 从而缓解梯度消失的问题

GRU

LSTM有三个门, 遗忘门, 输入门与输出门,

GRU有两个门: 重置门与更新门

 

GRU与LSTM区别

  1. GRU少了一个门, 少了细胞状态
  2. LSTM中, 通过遗忘门和输入门控制信息的保留和输入.

   GRU则通过重置门控制是否保留原来隐藏状态信息, 不再限制当前信息传入

  1. LSTM输出隐藏状态:

   GRU输出隐藏状态:

重置门r_t

用于控制h_(t-1)对当前x_t的影响

更新门z_t

用于决定是否忽略当前x_t, 类似于LSTM中的输入门

 

总结

  1. RNN非常适合于序列建模任务
  1. RNN通过BPTT算法进行反向传播学习
  1. RNN允许在架构设计中有很大的灵活性
  1. 普通RNN简单, 但效果不好. 很可能发生梯度消失或梯度爆炸
  1. 梯度爆炸可以通过梯度阶段来控制
  2. 梯度消失可以通过设计新的网络结构来缓解
  1. LSTM或GRU都是通过附加一些门控机制来改善梯度流动
  1. 设计更好或简单的网络架构是当前的一个研究热点

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值