1 GRU(门控循环单元)概述 LSTM 具有训练时间长、参数较多、内部计算复杂的缺点。Cho 等人在2014年在原本的LSTM网络的基础上将 LSTM 的遗忘门和输入门合成了一个单一的更新门去除掉了细胞状态使用隐藏状态来进行信息的传递提出了LSTM网络的变体GRU网络Gated Recurrent Unit门控循环单元网络。由于他的模型比标准LSTM模型更简单所以越来越受欢迎。GRU在LSTM的基础上改进主要点将遗忘门和输入门合并为一个门更新门此外另一门叫做重置门。不引入额外的内部状态C直接在当前状态ht和历史状态ht-1之间引入线性依赖关系。二者区别GRU 有两个门重置门与更新门而 LSTM 有三个门输入门、遗忘门和输出门。GRU 并不会控制并保留内部记忆且没有 LSTM 中的输出门。LSTM 中的输入与遗忘门对应于 GRU 的更新门重置门直接作用于前面的隐藏状态。在计算输出时GRU并不应用二阶非线性。2 GRU的更新门与重置门更新门z t z_tzt负责控制上一时刻状态信息h t − 1 h_{t-1}ht−1对当前时刻状态的影响更新门的值越大说明上一时刻的状态信息h t − 1 h_{t-1}ht−1带入越少。重置门r t r_trt负责控制忽略前一时刻的状态信息h t − 1 h_{t-1}ht−1的程度重置门的值越小说明忽略的越多。从直观上来说重置门决定了如何将新的输入信息与前面的记忆相结合更新门定义了前面记忆保存到当前时间步的量。如果我们将重置门设置为 1更新门设置为 0那么我们将再次获得标准 RNN 模型。3 GRU模型过程解析①更新门在时间步t tt我们首先需要使用以下公式计算更新门z t z_tzt其中x t x_txt为第t tt个时间步的输入向量即输入序列X XX的第t tt个分量它会经过一个线性变换与权重矩阵W ( z ) W^{(z)}W(z)相乘。h t − 1 h_{t-1}ht−1保存的是前一个时间步t − 1 t-1t−1的信息它同样也会经过一个线性变换。更新门将这两部分信息相加并投入到 Sigmoid 激活函数中因此将激活结果压缩到 0 到 1 之间。z t σ ( W ( z ) x t U ( z ) h t − 1 ) z_t\sigma(W^{(z)}x_tU^{(z)}h_{t-1})ztσ(W(z)xtU(z)ht−1)②重置门h t − 1 h_{t-1}ht−1和x t x_txt先经过一个线性变换再相加投入 Sigmoid 激活函数以输出激活值。该表达式与更新门的表达式是一样的只不过线性变换的参数和用处不一样而已。r t σ ( W ( r ) x t U ( r ) h t − 1 ) r_t\sigma(W^{(r)}x_tU^{(r)}h_{t-1})rtσ(W(r)xtU(r)ht−1)③当前记忆内容在重置门的使用中新的记忆内容将使用重置门储存过去相关的信息它的计算表达式为输入x t x_txt与上一时间步信息h t − 1 h_{t-1}ht−1先经过一个线性变换即分别右乘矩阵W WW和U UU。h ‾ t t a n h ( W x t r t ⊙ U h t − 1 ) \overline{h}_t tanh(Wx_tr_t \odot Uh_{t-1})httanh(Wxtrt⊙Uht−1)计算重置门r t r_trt与U h t − 1 Uh_{t-1}Uht−1的 Hadamard 乘积即r t r_trt与U h t − 1 Uh_{t-1}Uht−1的对应元素乘积。因为前面计算的重置门是一个由 0 到 1 组成的向量它会衡量门控开启的大小。例如某个元素对应的门控值为 0那么它就代表这个元素的信息完全被遗忘掉。该Hadamard 乘积将确定所要保留与遗忘的以前信息。 将这两部分的计算结果相加再投入双曲正切激活函数中。④当前时间步的最终记忆最后一步网络需要计算h t h_tht该向量将保留当前单元的信息并传递到下一个单元中。在这个过程中我们需要使用更新门它决定了当前记忆内容h ‾ t \overline{h}_tht和前一时间步h t − 1 h_{t-1}ht−1中需要收集的信息是什么。h t ( 1 − z t ) ⊙ h t − 1 z t ⊙ h ‾ t h_t(1-z_t)\odot h_{t-1} z_t \odot \overline{h}_tht(1−zt)⊙ht−1zt⊙htz t z_tzt为更新门的激活结果它同样以门控的形式控制了信息的流入。z t z_tzt与h t − 1 h_{t-1}ht−1的 Hadamard 乘积表示前一时间步保留到最终记忆的信息该信息加上当前记忆保留至最终记忆的信息就等于最终门控循环单元输出的内容。通过过程可以发现门控循环单元不会随时间而清除以前的信息它会保留相关的信息并传递到下一个单元因此它利用全部信息而避免了梯度消失问题。