【deeplearning.ai】循环神经网络

RNN、LSTM、梯度消失基本概念

序列数据及能做的事

这里写图片描述

  • 语音识别:一维时间序列 文本序列
  • 音乐生成器:输入为空 音乐
  • 情感分类器:文本序列 星级评分(0~5)/正负类(0/1)
  • DNA序列分析:字符序列 字符序列
  • 翻译系统:文本序列 文本序列
  • 视频标识(视频活动识别):视频 类别
  • (名字)身份识别:文本序列 文本序列

  如果输入是文本序列,则处理数据的方式是对单词建立词典并向量化每个单词(one-hot编码)。若单词在词库中不存在,则可用表示。

为什么不用传统网络处理序列数据?
  1. 输入输出长度不固定(及时可用填充成一样的,那也表现的不是很好)【参数共享可用解决】
  2. 第一层参数过大(输入为字典向量,假设词库有1W个单词,那也有成百上千万个参数)
梯度爆炸和梯度消失

  梯度爆炸可通过梯度修剪解决,就是如果数值过大,则缩小,实验表明该操作具有一定鲁棒性;而梯度消失相对难解决的多,所以很多策略都是用于解决梯度消失的。

RNN

前向传播1

  更新公式:
a(0)=0^ a ( 0 ) = 0 ^
a<t>=g(waa<t1>+wxx<t>+ba) a < t > = g ( w a a < t − 1 > + w x x < t > + b a )
y^<t>=g(wya<t>+by) y ^ < t > = g ( w y a < t > + b y )

  为了书写方便,有以下定义:
[a<t>,x<t>]=[a<t>x<t>] [ a < t > , x < t > ] = [ a < t > x < t > ]
a<t>=g(wa[a<t>,x<t>]+ba) 即 a < t > = g ( w a [ a < t > , x < t > ] + b a )
<script type="math/tex; mode=display" id="MathJax-Element-36"></script>

RNN结构类型

RNN结构类型

单向RNN的一个缺点:

  网络只使用了序列之前的信息,没综合后面的信息(如只使用单向网络,不能确定一个单词是人名的一部分还是地名的一部分)

双向RNN(BRNN)

  双向RNN可以获取双向的信息,即过去和未来的信息。

BRNN

  就是输出的时候,综合了前向传播网络的输出和后向传播网络的输出。
  BRNN的缺点是需要完整的数据的序列,才能预测任意位置(相较之前只需要前面信息)。例如,语音系统需要你说完话才能工作。

GRU(Gate Recurrent Unit)

  GRU(门循环单元)改变了RNN的隐藏单元,使其可以更好地捕捉深层连接,并改善了梯度消失问题(通过改变更新的力度,相当于可以更好地丢掉无用的)。以下展示了门的作用:控制细胞状态更新与否,更新力度。
  变量 c c 代表细胞,即记忆细胞,c=memory cell。记忆细胞的作用是提供了记忆的功能(比如猫是单数还是双数)。细胞想要更新的值(候选值)为【需要理解的是,这个单元的 c^<t>=a^<t> c ^ < t > = a ^ < t > 】:

c^<t>=tanh(wc[c<t1>,x<t>]+bc) c ^ < t > = t a n h ( w c [ c < t − 1 > , x < t > ] + b c )
  以及一个门 Γy Γ y 来判断是否更新细胞记忆。
Γy=σ(wy[c<t1>,x<t>]+by) Γ y = σ ( w y [ c < t − 1 > , x < t > ] + b y )
  更新后的细胞状态为:
c<t>=Γyc^<t>+(1Γy)c<t1> c < t > = Γ y ∗ c ^ < t > + ( 1 − Γ y ) ∗ c < t − 1 >
   这里的 Γu Γ u 控制更新, (1Γu) ( 1 − Γ u ) 控制遗忘(对应后面的忘记门)

LSTM(long-short time memory,长短时记忆)

LSTM公式及结构图

  其中, Γu Γ u 是控制更新的门, Γf Γ f 是控制忘记的门, Γo Γ o 是控制遗忘的门, c^<t> c ^ < t > 是细胞状态更新的候选值, c<t> c < t > 是细胞状态, a<t> a < t > 是前后信息的激活值。大概 a<t> a < t > 用于保存前后记忆( 短时记忆),便于“联想”, c<t> c < t > 用于保存历史记忆的重要信息( 长时记忆

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值