目录
-
- 1.门控循环单元 GRU
-
- 关注一个序列
- 门
- 候选隐状态(candidate hidden state)
- 隐状态
- 总结
- 从零开始代码实现
- 代码简洁实现
- 2.长短期记忆网络 LSTM
-
- 门
- 候选记忆单元(candidate memory cell)
- 记忆单元
- 隐状态
- 代码
1.门控循环单元 GRU
GRU 是最近几年提出来的,在 LSTM 之后,是一个稍微简化的变体,通常能够提供同等的效果,并且计算速度更快
在某些情况下,希望存在某些机制能够实现:
- 希望某些机制能够在一个记忆元里存储重要的早期信息
- 希望某些机制能够跳过隐状态表示中的此类词元
- 希望某些机制能够重置内部状态表示
做 RNN 的时候处理不了太长的序列
- 因为序列信息全部放在隐藏状态中,当时间到达一定长度的时候,隐藏状态中会累积过多的信息,不利于相对靠前的信息的抽取
关注一个序列
在观察一个序列的时候,不是每个观察值都同等重要
- 对于一个猫的图片的序列突然出现一只老鼠,老鼠的出现很重要,第一次出现猫也很重要,但是之后再出现猫就不那么重要了
- 在一个句子中,可能只是一些关键字或者关键句比较重要
- 视频处理中,其实帧与帧之间很多时候都差不多,但是在切换场景的时候,每次的切换是比较重要的
在 RNN 中没有特别关心某些地方的机制,对于它来讲仅仅是一个序列,而门控循环单元可以通过一些额外的控制单元,使得在构造隐藏状态的时候能够挑选出相对来说更加重要的部分**(注意力机制在这方面强调得更多一点)**
- 更新门(update gate)