【深度学习】RNN | GRU | LSTM

本文深入探讨了循环神经网络(RNN)、门控循环单元(GRU)和长短期记忆网络(LSTM)的工作原理。从RNN的基本结构开始,解释了其在处理序列数据时面临的梯度消失与梯度膨胀问题。接着介绍了GRU如何通过引入重置门和更新门来缓解这些问题,以及LSTM如何进一步改进,通过遗忘门、输入门和输出门实现更有效的长期依赖学习。

目录:

1、RNN

2、GRU

3、LSTM

 

一、RNN

1、RNN结构图如下所示:

其中:

$a^{(t)} = \boldsymbol{W}h^{t-1} + \boldsymbol{W}_{e}x^{t} + \mathbf{b}$

$h^{t} = f(a^{t})$, f 是激励函数,sigmoid或者tanh

$\hat{y}^{t} = Uh^{t}$

2、RNN中的梯度消失与梯度膨胀

 总损失是所有时间步的和:$E =  \sum_{t=1}^{T}E_{t}$,所以$\frac{\partial E}{\partial W} = \sum_{t=1}^{T}\frac{\partial E_{t}}{\partial W}$

 而

$\frac{\partial h_{j}}{\partial h_{j-1}} = \frac{\partial f(a_{j})}{\partial h_{j-1}} = f^{'}(a_{j})W$, 不知道是W还是WT,大概是这样的,因为是累乘,所以如果f'太大或者太小就会梯度膨胀或消失

 

二、GRU

参考 https://towardsdatascience.com/understanding-gru-networks-2ef37df6c9be

相对于RNN来说,GRU主要增加了两个门 重置门 r 和 更新门 u,重置门用来决定会保留多少历史信息,如果是0的话,就不会保持历史信息;更新门用来衡量当前与历史的取舍

GRU是如何解决梯度消失与膨胀的?https://www.cs.toronto.edu/~guerzhoy/321/lec/W09/rnn_gated.pdf

好像是这样,但是感觉还是不能解决梯度消失,如果zj和后面的偏导都非常小,还是会梯度弥散?

 

 

三、LSTM

http://colah.github.io/posts/2015-08-Understanding-LSTMs/

转载于:https://www.cnblogs.com/zhaopAC/p/10240968.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值