GRU 和 LSTM 的对比
- GRU 是 LSTM 变动较大的变体
- LSTM 能够解决循环神经网络因长期依赖带来的梯度消失和梯度爆炸问题,但是 LSTM 有三个不同的门,参数较多,训练起来比较困难。GRU 只含有两个门控结构,且在超参数全部调优的情况下,二者性能相当,但是 GRU 结构更为简单,训练样本较少,易实现。
GRU 在 LSTM 的基础上主要做出了两点改变:
- GRU 只有两个门。GRU 将 LSTM 中的输入门和遗忘门合二为一,称为更新门(update gate),下图中的z(t),控制前边记忆信息能够继续保留到当前时刻的数据量,或者说决定有多少前一时间步的信息和当前时间步的信息要被继续传递到未来;GRU 的另一个门称为重置门(reset gate),下图中的r(t),控制要遗忘多少过去的信息。
- 取消进行线性自更新的记忆单元(memory cell),而是直接在隐藏单元中利用门控直接进行线性自更新。GRU 的逻辑图如下图所示。
- 利用重置门重置记忆信息
GRU 不再使用单独的记忆细胞存储记忆信息,而是直接利用隐藏单元记录历史状态。利用重置门控制当前信息和记忆信息的数据量,并生成新的记忆信息继续向前传递。 - 利用更新门计算当前时刻隐藏状态的输出
隐藏状态的输出信息由前一时刻的隐藏状态信息h_(t-1)和当前时刻的隐藏状态输出h_t ,利用更新门控制这两个信息传递到未来的数据量。
分别对应下图的四个公式
总结:
GRU 输入输出的结构与普通的 RNN 相似,其中的内部思想与 LSTM 相似。与 LSTM 相比,GRU 内部少了一个”门控“,参数比LSTM 少,但是却也能够达到与 LSTM 相当的功能。考虑到硬件的计算能力和时间成本,因而很多时候我们也就会选择更加”实用“的 GRU 啦。