GRU和LSTM

        GRU是在LSTM后提出的,效果上GRU和LSTM差不多,用谁都差不多。两网络本质都是在权衡要不要忘记过去的状态,尽量去看现在的输入数据。GRU和LSTM就是在隐状态的计算上和RNN不同,其他都一样,所以下文重点关注和RNN的不同之处,即Ht的计算上。

目录

门控循环单元 GRU(Gate Recurrent Unit)

长短期记忆网络 LSTM( Long Short Term Memory)


门控循环单元 GRU(Gate Recurrent Unit)

        首先了解我们为什么需要“门控”,RNN处理不了太长的序列信息,因为历史信息放在隐藏状态h里,当时间很长,隐藏状态累积太多东西,对于很久以前的信息就不好抽取出来。同时我们注意到,一个序列的各个观察值x并不同等重要,但之前的RNN并没有机制去特别关心某些信息,遗忘某些信息。因此我们需要“门控”,GRU中的gate,可以通过额外的控制单元(即更新门和重置门),使得在构造隐藏状态h时可以关注于某一部分。
        那么“门”是什么?GRU中有两种门/控制单元:更新门update gate,能关注的机制,意思是若这个数据重要,那么相关信息尽量放入隐藏状态;遗忘门/重置门reset gate,能遗忘的机制。这两个门都是和隐藏状态h长度相等的向量,向量中每个元素都是0~1之间的数。

两个门的计算

        上图是GRU中两个门的计算方式,可以看出门R和Z是和隐藏状态H长度一样的向量,由公式可以看出其计算方式和RNN中计算隐藏状态的方式一样,只是各自有自己的权重。其中\sigma是指的sigmoid函数,可以将数值变到0~1之间。 

        有了两个门后,再来看如何用这两个门计算隐藏状态,GRU的做法是先利用Rt得到候选隐状态\tilde{H}_{t},再由Zt和候选隐状态得到隐状态Ht,

计算候选隐状态

⊙是按元素做乘法,如果Rt向量中一些元素经过sigmoid之后数值接近0,就会把隐藏状态里一些信息忘掉。

计算隐状态

这里,Zt越接近1,表示越不更新隐藏状态。

        总结,GRU的可学习的权重参数是RNN三倍。当Zt全0,Rt全1时就回到之前的RNN。两个极端:Zt全1,表示不更新隐藏状态不更新历史信息,不看输入Xt;Rt全0,过去全部遗忘,只看Xt。

总结

长短期记忆网络 LSTM( Long Short Term Memory)

        LSTM和RNN,GRU不一样的地方在于,其状态有两个,一个是C(下面会提到记忆单元),一个是H(就是之前的隐状态)。

        LSTM比起RNN,也是在隐状态的计算上做了创新。和GRU类似,它当然也有门的概念,LSTM有三种门:

LSTM三种门

这三个门分别为:忘记门F_{t},将值朝0减少;输入门I_{t},决定要不要忽略输入信息;输出门O_{t},决定要不要用隐藏状态。

        先利用上一时刻隐状态和输入计算候选记忆单元,

计算候选记忆单元

 
候选记忆单元,取值-1到1,观察公式,计算和RNN里算Ht没有区别。

        利用忘记门,输入门,候选记忆单元算记忆单元,这个记忆单元的范围比较大,无法保证范围一定在某个区间,所以计算隐状态需要用个tanh来限制范围

记忆单元
计算隐状态

        总结LSTM中Ht的计算:

总结
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值