简介
- GRU是LSTM网络的一种效果很好的变体,它较LSTM网络的结构更加简单,而且效果也很好,因此也是当前非常流形的一种网络。GRU既然是LSTM的变体,因此也是可以解决RNN网络中的长依赖问题。
- GRU与LSTM相比,少了一个gate,由此就少了一些矩阵乘法,GRU虽与LSTM的效果较近,但却因此在训练中节省了很多时间,在文本类处理中,相比用LSTM,更建议用GRU来训练。
GRU原理:
在LSTM中引入了三个门函数:输入门、遗忘门和输出门来控制输入值、记忆值和输出值。而在GRU模型中只有两个门:分别是更新门和重置门。具体结构如下图所示:
图中的zt和rt分别表示更新门和重置门。更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门的值越大说明前一时刻的状态信息带入越多。重置门控制前一状态有多少信息被写入到当前的候选集 h~t 上,重置门越小,前一状态的信息被写入的越少。
GRU前向传播计算:
根据上面的GRU的模型图,我们来看看网络的前向传播公式:
LSTM与GRU对比:
- 对memory 的控制
LSTM: 用output gate 控制,传输给下一个unit。
GRU:直接传递给下一个unit,不做任何控制。 - input gate 和reset gate 作用位置不同
LSTM:计算new memory 时,不对上一时刻的信息做任何控制,而是用forget gate 独立的实现这一点。
GRU: 计算new memory 时利用reset gate 对上一时刻的信息 进行控制。
而它们最大的相似之处就是, 在从t 到 t-1 的更新时都引入了加法。
这个加法的好处在于能防止梯度弥散,因此LSTM和GRU都比一般的RNN效果更好。