我是靠谱客的博主 伶俐白昼,最近开发中收集的这篇文章主要介绍lstm结构图_Navie RNN,LSTM,GRU结构及优缺点,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

7774b438cc8bb16a2ef64c8c4148c7b4.png

本文主要参考李宏毅老师的视频介绍RNN相关知识,主要包括两个部分:

  • 分别介绍Navie RNN,LSTM,GRU的结构
  • 对比这三者的优缺点

1.RNN,LSTM,GRU结构及计算方式

1.1 Navie RNN

结构图:

08c7abbd10ce74197b7ce245bd47a70f.png

计算公式:

依赖每一个时刻的隐状态产生当前的输出,具体计算方式根据自己任务来定。

1.2 LSTM

结构图:

a320ce200b969e514662249b7df098cd.png

计算公式:

1.3 GRU

结构图:

8e581fd92c07831c3a048fe2ad9bd1f7.png

计算公式:

2.RNN,LSTM,GRU的优缺点

2.1 为什么LSTM能解决RNN不能长期依赖的问题

(1)RNN的梯度消失问题导致不能“长期依赖”

RNN中的梯度消失不是指损失对参数的总梯度消失了,而是RNN中对较远时间步的梯度消失了。RNN中反向传播使用的是back propagation through time(BPTT)方法,损失loss对参数W的梯度等于loss在各时间步对w求导之和。用公式表示就是:

上式中

计算较复杂,根据复合函数求导方式连续求导。

是当前隐状态对上一隐状态求偏导。

假设某一时间步j距离t时间步相差了(t-j)时刻。则

如果t-j很大,也就是j距离t时间步很远,当

时,,会产生梯度爆炸问题,当
时,会产生梯度消失问题。而t-j很小时,也就是j是t的短期依赖,则不存在梯度消失/梯度爆炸的问题。一般会使用梯度裁剪解决梯度爆炸问题。所以主要分析梯度消失问题。

loss对时间步j的梯度值反映了时间步j对最终输出

的影响程度。就是j对最终输出
的影响程度越大,则loss对时间步j的梯度值也就越大。loss对时间步j的梯度值趋于0,就说明了j对最终输出
几乎没影响。

综上:距离时间步t较远的j的梯度会消失,说明j对最终输出

没影响。也就是说RNN中不能长期依赖。

(2)LSTM如何解决梯度消失

LSTM设计的初衷就是让当前记忆单元对上一记忆单元的偏导为常数。如在1997年最初版本的LSTM,记忆细胞更新公式为:

后来为了避免记忆细胞无线增长,引入了“遗忘门”。更新公式为:

此时连续偏导的值为:

虽然

是一个[0,1]区间的数值,不在满足当前记忆单元对上一记忆单元的偏导为常数。但通常会给遗忘门设置一个很大的偏置项,使得遗忘门在多数情况下是关闭的,只有在少数情况下开启。回顾下遗忘门的公式,这里我们加上了偏置b。

趋向于1时,遗忘门关闭,趋向于0,时,遗忘门打开。通过设置大的偏置项,使得大多数情况下遗忘门的值趋于1。也就缓解了由于小数连乘导致的梯度消失问题。

2.2 相较于LSTM,GRU的优势

GRU的参数量少,减少过拟合的风险

LSTM的参数量是Navie RNN的4倍(看公式),参数量过多就会存在过拟合的风险,GRU只使用两个门控开关,达到了和LSTM接近的结果。其参数量是Navie RNN的三倍

最后

以上就是伶俐白昼为你收集整理的lstm结构图_Navie RNN,LSTM,GRU结构及优缺点的全部内容,希望文章能够帮你解决lstm结构图_Navie RNN,LSTM,GRU结构及优缺点所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部