【深度学习】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/
最新文章
- c# float显示时保存一位小数
- django admin site配置(二)
- 【BZOJ 1791】 [Ioi2008]Island 岛屿
- hadoop 异常 INFO ipc.Client: Retrying connect to server:
- SQLServer中临时表与表变量的区别分析【转】
- 46. Lotus Notes中编程发送邮件(一)
- nodejs6下使用koa2
- 国外线下技术俱乐部建设(1) - Belgrade Python技术俱乐部2019-01-25活动感悟
- SQL给数据编号
- HDFS的命令
- C# 多窗体之间方法调用
- IDEA中将WEB-INF\lib下的Jar包添加到项目中
- 简单的应用可以用storyBoard
- leetcode232
- Gradle Goodness: Changing Name of Default Build File
- 软件测试基础-Homework1
- FPGA与嵌入式一点见解
- uCOS-II消息邮箱的使用
- visio中相关设置-菜单视图
- 在多点环境下使用cas实现单点登陆及登出