RNN

1. 门控循环单元GRU

    梯度裁剪可以应对梯度爆炸,但无法解决梯度衰减的问题。通常由于这个原因,循环神经网络在实际中较难捕捉时间序列中时间步距离较大的依赖关系。

    门控循环神经网络的提出(2014年提出)正是为了更好地捕捉时间序列中时间步距离较大的依赖关系。它通过可以学习的门来控制信息的流动。其中,门控循环单元是一种常用的门控循环神经网络。门控循环神经单元引入了重置门和更新门的概念,从而修改了循环神经网络中隐藏状态的计算方式。重置门和更新门的激活函数是sigmoid函数,可以将元素的值变换到0到1之间,因为重置门$R_t$和更新们$Z_t$中每个元素的值域都是[0,1]。

1.1. 候选隐藏状态

    候选隐藏状态用来辅助后面的隐藏状态计算。重置门为0,意味着重置对应隐藏状态元素为0,即丢弃上一时间步的隐藏状态。如果重置门为1,表示保留上一时间步的隐藏状态。重置门控制了上一时间步的隐藏状态如何流入当前时间步的候选隐藏状态。而上一时间步的隐藏状态可能包含了时间序列截至上一时间步的全部历史信息。因此,重置门可以用来丢弃和预测无关的历史信息。

1.2. 隐藏状态

    时间步$t$的隐藏状态$H_t$的计算使用当前时间步的更新们$Z_t$来对上一时间步的隐藏状态$H_t-1$和当前时间步的候选隐藏状态$\tilde{H}_{t}$做组合。
    更新门控制了包含当前时间步信息的候选隐藏状态如何流入隐藏状态。

    假设更新门$Z_t$在t时刻为1,那么时间步$t$的输入信息没有流入当前时间步的隐藏状态$H_t$,实际上,上一时间步的隐藏状态$H_{t-1}$保存并传递到当前时间步$t$。这个设计可以应对循环神经网络中的梯度衰减问题,并更好地捕捉时间序列中时间步距离较大的依赖关系。

1.3. 总结

  • 重置门有助于捕捉时间序列里短期的依赖关系。重置门控制了上一时间步的隐藏状态如何流入当前时间步的候选隐藏状态。而上一时间步的隐藏状态可能包含了时间序列截至上一时间步的全部历史信息。因此,重置门可以用来丢弃和预测无关的历史信息。
  • 更新门有助于捕捉时间序列里长期的依赖关系。更新门$Z_t$在t时刻为1,那么时间步$t$的输入信息没有流入当前时间步的隐藏状态$H_t$,实际上,上一时间步的隐藏状态$H_{t-1}$保存并传递到当前时间步$t$。这个设计可以应对循环神经网络中的梯度衰减问题,并更好地捕捉时间序列中时间步距离较大的依赖关系。
  • 为什么叫GRU也叫做循环神经网络,因为门控循环单元中上一时间步的隐藏状态会传到当前时间步,体现了循环的性质。

2. 长短期记忆LSTM

    另外一种常用的门控循环神经网络是LSTM(1997年提出),比门控循环单元的结构稍微复杂一些。
    GRU中的术语是:重置门,更新门,候选隐藏状态,隐藏状态。
    LSTM的术语是:输入门,遗忘门,输出门,候选记忆细胞(与候选隐藏状态形状相同),记忆细胞(与隐藏状态形状相同),隐藏状态。
    输入门$I_t$,遗忘门$F_t$,输出门$O_t$,候选记忆细胞$\tilde{C}_t$,记忆细胞$C_t$。
    其中输入门$I_t$,遗忘门$F_t$,输出门$O_t$,候选记忆细胞$\tilde{C}_t$取决于$X_t和H_{t-1}$,记忆细胞$C_t$取决于$遗忘门F_t,C_{t-1},输入门I_t,\tilde{C}_t$

RNN

循环神经网络(RNN,LSTM,GRU)的时间步长都是固定的。句子中词的个数表示时间步个数,如果句子长度不一样,需要补0进行padding。
构造样本时,一个样本是2维的,表示(时间步*特征数)

参考资料:https://www.zhihu.com/question/41949741

打赏
0%