1. 什么是GRU
GRU(Gate Recurrent Unit)是循环神经网络(Recurrent Neural Network, RNN)的一种。和LSTM(Long-Short Term Memory)一样,也是为了解决长期记忆和反向传播中的梯度等问题而提出来的。
GRU和LSTM在很多情况下实际表现上相差无几,那么为什么我们要使用新人**GRU(2014年提出)而不是相对经受了更多考验的LSTM(1997提出)**呢。
引用论文中的一段话来说明GRU的优势所在:
简单来说就是贫穷限制了我们的计算能力…
相比LSTM,使用GRU能够达到相当的效果,并且相比之下更容易进行训练,能够很大程度上提高训练效率,因此很多时候会更倾向于使用GRU。
OK,那么为什么说GRU更容易进行训练呢,下面开始介绍一下GRU的内部结构。
2. GRU浅析
2.1 GRU的输入输出结构
GRU的输入输出结构与普通的RNN是一样的。
那么,GRU到底有什么特别之处呢?下面来对它的内部结构进行分析!
2.2 GRU的内部结构
这里的
h
′
h'
h′ 主要是包含了当前输入的
x
t
x^t
xt 数据。有针对性地将
h
′
h'
h′ 添加到当前的隐藏状态(下图中
h
t
h^t
ht的计算里包含有
h
′
h'
h′),相当于“记忆了当前时刻的状态”。先看下面的总体的更新公式,再回头记忆这个公式会好记一点。
GRU必须先看上面的这个更新表达式,然后再对
h
′
h'
h′进行展开理解!!!
3. LSTM与GRU的关系
4. 总结
GRU输入输出的结构与普通的RNN相似,其中的内部思想与LSTM相似。
与LSTM相比,GRU内部少了一个”门控“,参数比LSTM少,但是却也能够达到与LSTM相当的功能。考虑到硬件的计算能力和时间成本,因而很多时候我们也就会选择更加”实用“的GRU啦。
在实践中,一般认为LSTM和GRU之间并没有明显的优胜者。因为GRU具有较少的参数,所以训练速度快,而且所需要的样本也比较少。而LSTM具有较多的参数,比较适合具有大量样本的情况,可能会获得较优的模型。
在Andrew的课程中表示,如果只能选择一个模型,那么LSTM是大家的default RNN。
