【深層学習】LSTM-Long-Short Term Memory

【深層学習】LSTM:Long-Short Term Memory

Structure

其实就是RNN的进化版,从图中可以看出朴素RNN是当前的输出结果不仅和当前时刻的输入有关,还和上层的隐藏层计算结果有关,而LSTM中还加入了$c$,因此LSTM有2个传递状态$h\text{(hidden state)}$与$c\text{(cell state)}$
Alt text

LSTM利用某时刻输入$x_t$和上一时刻隐藏状态$h_{t-1}$经过运算得到4个状态
Alt text
Alt text
Alt text

Details

遗忘门$z_f$

遗忘门决定了应丢弃或保留哪些信息。来自先前隐藏状态的信息和来自当前输入的信息通过sigmoid函数传递。值介于0和1之间,越接近0意味着忘记,越接近1意味着要保持。
avatar
Alt text
由输出和上一层的隐藏状态来决定遗忘哪些

输入门$z_i$与$z$

输入门要更新单元状态,首先,我们将先前的隐藏状态和当前输入传递给sigmoid函数。这决定了通过将值转换为0到1来更新哪些值:0表示不重要,1表示重要。接着你还要将隐藏状态和当前输入传递给tanh函数,以便在-1和1之间取值以帮助调节网络。然后将tanh输出与sigmoid输出相乘。sigmoid输出将决定哪些信息对于输出很重要
输出门决定下一个隐藏状态应该是什么。请记住,隐藏状态包含有关先前输入的信息,隐藏状态也可用于预测。首先,我们将先前的隐藏状态和当前输入传递给sigmoid函数。然后我们将新修改的单元状态传递给tanh函数。我们将tanh输出与sigmoid输出相乘,以确定隐藏状态应携带的信息,输出的是隐藏状态。然后将新的细胞状态和新的隐藏状态转移到下一个时间步。

Alt text

cell state

现在我们应该有足够的信息来计算细胞状态。首先,细胞状态逐点乘以遗忘向量。如果它乘以接近0的值,则有可能在单元状态中丢弃。然后我们从输入门获取输出并进行逐点相加,将神经网络发现的新值更新为细胞状态中,这就给了我们新的细胞状态。
avatar
Alt text

输出门$z_o$

输出门决定下一个隐藏状态应该是什么。请记住,隐藏状态包含有关先前输入的信息,隐藏状态也可用于预测。首先,我们将先前的隐藏状态和当前输入传递给sigmoid函数。然后我们将新修改的单元状态传递给tanh函数。我们将tanh输出与sigmoid输出相乘,以确定隐藏状态应携带的信息,输出的是隐藏状态。然后将新的细胞状态和新的隐藏状态转移到下一个时间步。
avatar
Alt text
Alt text
Alt text

-------------End of this passage-------------