循环神经网络之LSTM、GRU
1. 什么是 LSTM?
LSTM(Long short-term memory,长短期记忆)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单而言,LSTM是相比与普通RNN在更长序列数据中表现更好的一类循环神经网络。
2. 深入理解 LSTM 结构
首先使用 LSTM 的当前输入状态 x t x_t xt 和上一个传递下来的状态 h t − 1 h_{t-1} ht−1 拼接得到 4 个门控状态。
z f = σ ( W f ⋅ [ h t − 1 , x ] + b f ) = σ ( W f ⋅ h t − 1 + W f ⋅ x + b f ) z_f=\sigma(W_f \cdot[h_{t-1},x]+b_f)=\sigma(W_f \cdot h_{t-1} + W_f \cdot x+b_f) zf=σ(Wf⋅[ht−1,x]+bf)=σ(Wf⋅ht−1+Wf⋅x+bf)
z i = σ ( W i ⋅ [ h t − 1 , x ] ) + b i ) = σ ( W i ⋅ h t − 1 + W i ⋅ x + b i ) z_i=\sigma(W_i \cdot [h_{t-1},x]) + b_i)=\sigma(W_i \cdot h_{t-1}+W_i \cdot x + b_i) zi=σ(Wi⋅[ht−1,x])+bi)=σ(Wi⋅ht−1+Wi⋅x+bi)
z = t a n h ( W ⋅ [ h t − 1 , x t ] + b ) = t a n h ( W ⋅ h t − 1 + W ⋅ x t + b ) z=tanh(W \cdot [h_{t-1},x_t]+b)=tanh(W \cdot h_{t-1}+W \cdot x_t + b) z=tanh(W⋅[ht−1,xt]+b)=tanh(W⋅ht−1+W⋅x