视频链接
- [长短期记忆网络LSTM]www.bilibili.com/video/BV1JU…
- [代码]www.bilibili.com/video/BV1JU…
- [QA]www.bilibili.com/video/BV1JU…
注解
一、LSTM跟GRU的区别
01:06 LSTM的效果与GRU的效果类似,但它的结构更加的复杂,它有三个门,分别为:
- 遗忘门(Forget gate):将值朝0减少
- 输入门(Input gate):决定是否忽略输入数据
- 输出门(Output gate):决定是否使用隐藏状态
给出公式:
这三个门的计算方式与GRU相同,不同的是,LSTM引入了一个候选记忆单元(Candidate Memory Cell)
观察这个公式,发现它与RNN的该层的隐藏状态相同,是没有经过任何门处理的,LSTM就是在RNN原来隐状态的基础上,加入门处理得到新的隐藏状态;而GRU是直接将上一层的隐状态与输入经过门处理得到新的隐藏状态
二、遗忘门与输入门的作用
04:36 通过上文计算出的,我们加入遗忘门和输入门操作,可以得到记忆单元
是控制是否遗忘或者遗忘“多少”上一层的隐藏状态的信息(0是遗忘,1是记住),是控制是否使用或者使用“多少”候选记忆单元中的信息。这个式子也和GRU中更新门求得隐藏状态时的式子很相似,但是GRU中只是用了一个门进行控制,那是一种”非黑即白“的控制,LSTM与之不同的是,我们是可以”既要又要“的,而GRU却做不到
三、为什么要反复做?
05:59 那么将记忆单元再通过输出门,即可得到隐状态
这里有一个小疑问,在计算时已经做了一次,为什么还要对再做一次? 这是由于计算之后计算时,我们不能保证运算之后的值还是处于之间,因此还要做一次
四、输出门的作用
07:12 控制门是用于控制是否输出,当趋于0时,代表不输出,说人话就是过去的所有我们都丢掉,也就相当于”重置“了