对rnn的一些模型结构可以查看这篇文章: RNN:几张图搞懂RNN模型构建
下面来 着重看一些lstm:
LSTM:是一种改进之后的循环网络,可以解决rnn无法处理长距离依赖的问题。
首先看一下原始rnn: 其实rnn可以看成是一个很深的network。 如下图所示的形式。
但是原始rnn存在梯度消失 或者 梯度爆炸的情况, 梯度消失可以通过累积来体现(激活函数等)、梯度爆炸可以通过累加再体现(累加值太大),那么有什么解决方法呢?
(1)clipped gradient: 将梯度约束到一点的范围内: [min, max],即梯度小于min时取min、当梯度大于max时取max。 (这点有没有想起GAN的....)
(2)优化算法使用:momentum、NAG、RMSProp。
(3)改变rnn的结构: LSTM(主要解决梯度消失的问题)。
LSTM的结构如下图所示:
主要包含三个门:
(1)遗忘门(如下图所示): 它决定了上一时刻的单元状态 c_t-1 有多少保留到当前时刻 c_t。 (有没有发现有点attention的意思,有没有看出点残差的额意思)
(2)输入门(如下图所示): 它决定了当前时刻网络的输入 x_t 有多少保存到单元状态 c_t。
(3)输出门: 控制单元状态 c_t 有多少输出到 LSTM 的当前输出值 h_t。
最终lstm后向传播是为了学习8组参数,如下图:
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Game Programming Patterns
Robert Nystrom / Genever Benning / 2014-11-2 / USD 39.95
The biggest challenge facing many game programmers is completing their game. Most game projects fizzle out, overwhelmed by the complexity of their own code. Game Programming Patterns tackles that exac......一起来看看 《Game Programming Patterns》 这本书的介绍吧!