GRU学习理解

一般RNN模型是
a<t> = g(Wa[a<t-1>,x<t>] + ba)
g是激活函数,一般用Tanh函数。图可表示为:
在这里插入图片描述
而简化的GRU主要是为了解决在深层RNN神经网络中的梯度消失问题以及提供前后记忆能力,例如,The cat,which already ate…,was full.和The cats,which already ate…,were full.如何让网络知道我们用的是was还were,因此就需要一个参数c表示记忆细胞,此时可以认为ct = at。则GRU公式可表示为:
c ~ \widetilde{c} c t = Tanh(Wc[c<t-1>,x<t>] + ba)
Γ \Gamma Γu = σ \sigma σ(Wu[c<t-1>,x<t>] + bu)
ct = Γ \Gamma Γu * c ~ \widetilde{c} c t + (1 - Γ \Gamma Γu) * c<t-1>
可用简单图表示:
在这里插入图片描述
其中 c ~ \widetilde{c} c t是一个候选值,暂时代替ct,而 Γ \Gamma Γu是一个GRU中一个重要思想,就是门,u代表更新门,即表示c的值是否更新,此值在0-1之间,因为经过sigmod函数。显然在第3个式子中可以看到表示当 Γ \Gamma Γu = 1时表示更新,当 Γ \Gamma Γu = 0时表示不更新。
它的优点是,通过更新门,当从左到有扫描一个序列时,这个时机是要更新记忆细胞还是不更新,直到需要更新时,而更新门 Γ \Gamma Γu,很容易得一个非常接近0的数值,而在式子中就很好的解决了梯度消失的问题。
以上是为了方便理解,简化的GRU,下面则是真正的GRU,
c ~ \widetilde{c} c t = Tanh(Wc[ Γ \Gamma Γr * c<t-1>,x<t>] + ba)
Γ \Gamma Γu = σ \sigma σ(Wu[c<t-1>,x<t>] + bu)
Γ \Gamma Γr = σ \sigma σ(Wr[c<t-1>,x<t>] + br)
ct = Γ \Gamma Γu * c ~ \widetilde{c} c t + (1 - Γ \Gamma Γu) * c<t-1>
Γ \Gamma Γr是表示相关性的门,表示c<t-1> c ~ \widetilde{c} c t的计算相关性有多大,吴恩达的课程中将其称为相关门,但是其他博客中一般称为重置门。
可能大家疑惑为什么不用上面的简化的GRU,因基于大量的研究人员的研究实践发现加入相关门,能够更好的解决深度网络中的记忆问题,以及梯度消失问题,因此设计了后面的GRU。

参考学习:
吴恩达《深度学习工程师》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值