GRU和LSTM

Gated Recurrent Unit

看吴恩达老师的视频学习的GRU和LSTM,我概括一下。看这句话

The cat,which already ate…,was full.

was这个单词显然与cat相关,若是cats,则应该是were。也就是说前后隔了很远的单词之间有依赖关系,基本的RNN网络无法处理这种关系,GRU就是处理这种依赖关系的。

GRU的核心增加一个记忆单元,是当处理cat时,我们记住它是单数,也就是记住可能对后面有用的单词的特征,在处理which、already时,不更新这个记忆单元。控制是否要记住的东西叫做门 Γ u \Gamma_u Γu,门 Γ u \Gamma_u Γul来控制记忆单元是否更新, Γ u \Gamma_u Γu是多维向量,1bit记住cat是单数特征,一比特用来记住ate特征可能与吃饭有关…。下面看看怎么记忆以及记忆什么。

c N < t > = t a n h ( Γ r ∗ W c [ c < t − 1 > , x < t > ] + b c ] \large c^{N<t>}=tanh(\Gamma_r*W_c[c^{<t-1>},x^{<t>}]+b_c] cN<t>=tanh(ΓrWc[c<t1>,x<t>]+bc]

Γ u = s i g m o d ( W u [ c < t − 1 > , x < t > ] + b u ] \large \Gamma_u=sigmod(W_u[c^{<t-1>},x^{<t>}]+b_u] Γu=sigmod(Wu[c<t1>,x<t>]+bu]

c < t > = Γ u ∗ c N < t > + ( 1 − Γ u ) ∗ c < t − 1 > \large c^{<t>}=\Gamma_u*c^{N<t>}+(1-\Gamma_u)*c^{<t-1>} c<t>=ΓucN<t>+(1Γu)c<t1>

a t = c t \large a_t=c_t at=ct

c N < t > c^{N<t>} cN<t>是没有GRU或LSTM时 a < t > a^{<t>} a<t>的值。sigmod使得输出非常接近0或1, Γ u \Gamma_u Γu为0时,即不要更新记忆单元,那么 c < t > c^{<t>} c<t>就不变,等于上一步的 c < t > c^{<t>} c<t> Γ u \Gamma_u Γu为1是,则更新记忆单元。 Γ r \Gamma_r Γr就是用来控制更新记忆时与之前的记忆有多大关联。

Γ r = s i g m o d ( W r [ c < t − 1 > , x < t > ] + b r ] \large \Gamma_r=sigmod(W_r[c^{<t-1>},x^{<t>}]+b_r] Γr=sigmod(Wr[c<t1>,x<t>]+br]

Long Short-Term Memory

LSTMGRU 一样都是为了解决梯度消失问题,使网络能进行深层次的学习。
在这里插入图片描述
第一个公式即为 c N < t > c^{N<t>} cN<t>,第二个为 更新门,控制当前记忆存入。第三个为 遗忘门,控制对过去记忆的保留程度,在GRU中这一项由更新门来控制。第三项为 输出门,在GRU中 a < t > = c < t > a^{<t>}=c^{<t>} a<t>=c<t>,在LSTM中用一个输出门控制。

下面是 LSTM 的图解,我认为还是公式比较好理解。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值