梯度消失问题是指在深度神经网络中,反向传播时梯度随着层数的增加逐渐变小,导致早期层的权重更新非常缓慢,甚至几乎不更新。这个问题在长序列的循环神经网络(RNN)中尤为明显。
为了缓解这个问题,门控循环单元(GRU)和长短期记忆网络(LSTM)引入了门控机制,使得网络能够更好地控制信息的流动。下面我们将通过数学推导来说明为什么GRU和LSTM可以缓解梯度消失问题。
LSTM的数学推导
LSTM的核心是引入了三个门:输入门、遗忘门和输出门。LSTM的单元状态更新公式如下:
-
遗忘门:
\[f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) \] -
输入门:
\[i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i) \]\[\tilde{C}_t = \tanh(W_C \cdot [h_{t-1}, x_t] + b_C) \] -
单元状态更新:
\[C_t = f_t \cdot C_{t-1} + i_t \cdot \tilde{C}_t \] -
输出门:
\[o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o) \]\[h_t = o_t \cdot \tanh(C_t) \]
其中,\(\sigma\)是sigmoid函数,\(\tanh\)是双曲正切函数。
在反向传播时,LSTM的梯度更新公式为:
由于遗忘门\(f_t\)的值在0到1之间,它可以直接控制梯度在反向传播时的缩放。如果遗忘门接近1,梯度可以几乎不变地传递下去,从而避免了梯度消失问题。
GRU的数学推导
GRU是LSTM的简化版本,它合并了遗忘门和输入门,并引入了更新门和重置门。GRU的单元状态更新公式如下:
-
更新门:
\[z_t = \sigma(W_z \cdot [h_{t-1}, x_t]) \] -
重置门:
\[r_t = \sigma(W_r \cdot [h_{t-1}, x_t]) \] -
候选隐藏状态:
\[\tilde{h}_t = \tanh(W \cdot [r_t \cdot h_{t-1}, x_t]) \] -
隐藏状态更新:
\[h_t = (1 - z_t) \cdot h_{t-1} + z_t \cdot \tilde{h}_t \]
在反向传播时,GRU的梯度更新公式为:
由于更新门\(z_t\)的值在0到1之间,它可以直接控制梯度在反向传播时的缩放。如果更新门接近1,梯度可以几乎不变地传递下去,从而避免了梯度消失问题。
总结
通过引入门控机制,LSTM和GRU能够在反向传播时更好地控制梯度的流动,从而缓解了梯度消失问题。这使得它们能够在处理长序列数据时表现得更好。
\(c^{\left<t\right>}\)就可以记很多个信息,不仅可以记主语是单数还是复数,也许还记下了文章的主题等等