2
长短期记忆(LSTM)递归神经网络背后的直觉是什么?
循环神经网络(RNN)背后的想法对我很清楚。我以以下方式理解它:我们有一系列观察()(或换句话说,多元时间序列)。每个单个观测是一个维数值向量。在RNN模型中,我们假定下一个观测值是先前观测值以及先前的“隐藏状态”,其中隐藏状态也由数字表示向量(观察状态和隐藏状态的尺寸可以不同)。还假定隐藏状态本身取决于先前的观察和隐藏状态:o⃗ 1,o⃗ 2,…,o⃗ nØ→1个,Ø→2,…,Ø→ñ\vec o_1, \vec o_2, \dots, \vec o_no⃗ iØ→一世\vec o_iNñNo⃗ i+1Ø→一世+1个\vec o_{i+1}o⃗ iØ→一世\vec o_{i}h⃗ iH→一世\vec h_i Ø⃗ 一世,小时⃗ 一世= F(o⃗ i − 1,小时⃗ i − 1)Ø→一世,H→一世=F(Ø→一世-1个,H→一世-1个)\vec o_i, \vec h_i = F (\vec o_{i-1}, \vec h_{i-1}) 最后,在RNN模型中,函数FFF被假定为神经网络。我们使用可用数据(观察序列)训练(拟合)神经网络。我们训练的目标是能够使用先前的观察结果尽可能准确地预测下一个观察结果。 现在,LSTM网络是对RNN网络的修改。据我了解,LSTM背后的动机是解决RNN特有的短存储问题(常规RNN在相关事件之间存在时间间隔过长的问题)。 我了解LSTM网络是如何工作的。这是我发现的LSTM的最佳解释。基本思想如下: 除了隐藏状态向量之外,我们还引入了一种所谓的“单元状态”向量,该向量具有与隐藏状态向量(C⃗ 一世C→一世\vec c_i)相同的大小(维数)。我认为引入了“细胞状态”向量来建模长期记忆。与常规RNN一样,LSTM网络将观察到的和隐藏的状态作为输入。使用此输入,我们可以通过以下方式计算新的“单元状态”: C⃗ 我+ 1= ω⃗ 1个(o⃗ 一世,小时⃗ 一世)⋅ …