GRU,LSTM

总结自吴恩达老师的网易深度学习工程师微专业

  • 介绍GRU之前,首先我们先直观的理解一下梯度消失(Gradient Vanishing)问题。

RNN在NLP中具有很大的应用价值,但是其存在一个很大的缺陷,那就是梯度消失的问题。例如下面的例句中:
The cat, which already ate …,was full;
The cats, which already ate …,were full.
在这两个句子中,cat对应着was,cats对应着were,(中间存在很多很长省略的单词),句子中存在长期依赖(long-term dependencies),前面的单词对后面的单词有很重要的影响。但是我们目前所见到的基本的RNN模型,是不擅长捕获这种长期依赖关系的。
和基本的深度神经网络结构类似,输出 y y y得到的梯度很难通过反向传播再传播回去,也就是很难对前面几层的权重产生影响,所以RNN也有同样的问题,也就是很难让网络记住前面的单词是单数或者复数,进而对后面的输出产生影响。
对于梯度消失问题,在RNN的结构中是我们首要关心的问题,也更难解决; 虽然梯度爆炸在RNN中也会出现,但对于梯度爆炸问题,因为参数会指数级的梯度,会让我们的网络参数变得很大,得到很多的Nan或者数值溢出,所以梯度爆炸是很容易发现的,我们的解决方法就是用梯度修剪(gradient clipping),也就是观察梯度向量,如果其大于某个阈值,则对其进行缩放,保证它不会太大。

1. GRU

  • 一个包含一个更新门 Γ u \Gamma_u Γu的GRU简化版本如下图示:
    在这里插入图片描述
    公式如下:
    c ~ &lt; t &gt; = t a n h ( W c [ c &lt; t − 1 &gt; , x &lt; t &gt; ] + b c ) \tilde c^{&lt;t&gt;}=tanh(W_c[c^{&lt;t-1&gt;},x^{&lt;t&gt;}]+b_c) c~<t>=tanh(Wc[c<t1>,x<t>]+bc)
    Γ u = σ ( W u [ c &lt; t − 1 &gt; , x &lt; t &gt; ] + b u ) \Gamma_u=\sigma(W_u[c^{&lt;t-1&gt;},x^{&lt;t&gt;}]+b_u) Γu=σ(Wu[c<t1>,x<t>]+bu)
    c &lt; t &gt; = Γ u ∗ c ~ &lt; t &gt; + ( 1 − Γ u ) ∗ c &lt; t − 1 &gt; c^{&lt;t&gt;}=\Gamma_u*\tilde c^{&lt;t&gt;}+(1-\Gamma_u)*c^{&lt;t-1&gt;} c<t>=Γ
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值