循环序列模型 —— 1.10 长短期记忆(LSTM)

前面我们介绍了GRU,得到了很多公式,具体表示如下: c ~ < t > = t a n h ( W c [ Γ r ∗ c < t − 1 > , x < t > ] + b c ) \tilde{c}^{<t>}=tanh(W_c[\Gamma_r*c^{<t-1>},x^{<t>}]+b_c) c~<t>=tanh(Wc[Γrc<t1>,x<t>]+bc) Γ u = σ ( W u [ c < t − 1 > , x < t > ] + b u ) \Gamma_u=\sigma (W_u[c^{<t-1>},x^{<t>}]+b_u) Γu=σ(Wu[c<t1>,x<t>]+bu) Γ r = σ ( W r [ c < t − 1 > , x < t > ] + b r ) \Gamma_r=\sigma(W_r[c^{<t-1>},x^{<t>}]+b_r) Γr=σ(Wr[c<t1>,x<t>]+br) c < t > = Γ u ∗ c ~ < t > + ( 1 − Γ u ) ∗ c < t − 1 > c^{<t>}=\Gamma_u*\tilde{c}^{<t>}+(1-\Gamma_u)*c^{<t-1>} c<t>=Γuc~<t>+(1Γu)c<t1> c < t > = a < t > c^{<t>}=a^{<t>} c<t>=a<t>对于GRU我们有 c < t > = a < t > c^{<t>}=a^{<t>} c<t>=a<t>,还有两个门,更新门 Γ u \Gamma_u Γu和相关门 Γ r \Gamma_r Γr c ~ < t > \tilde{c}^{<t>} c~<t>是代替记忆细胞的候选值,然后我们使用更新门 Γ u \Gamma_u Γu来决定是否要用 c ~ < t > \tilde{c}^{<t>} c~<t>更新 c < t > c^{<t>} c<t>

LSTM甚至是一个比GRU更加强大和通用的版本,介绍一下LSTM的主要公式,我们继续回到记忆细胞 c < t > c^{<t>} c<t>和更新它的 c ~ < t > \tilde{c}^{<t>} c~<t>上,其公式如下所示: c ~ < t > = t a n h ( W c [ a < t − 1 > , x < t > ] + b c ) \tilde{c}^{<t>}=tanh(W_c[a^{<t-1>},x^{<t>}]+b_c) c~<t>=tanh(Wc[a<t1>,x<t>]+bc)注意在LSTM中不再有 a < t > = c < t > a^{<t>}=c^{<t>} a<t>=c<t>的情况,这是现在我们用的公式,我们不再用 Γ r \Gamma_r Γr

我们像以前那样,有一个更新门 Γ u \Gamma_u Γu和表示更新的参数 W u W_u Wu,公式表示如下: Γ u = σ ( W u [ a < t − 1 > , x < t > ] + b u ) \Gamma_u=\sigma(W_u[a^{<t-1>},x^{<t>}]+b_u) Γu=σ(Wu[a<t1>,x<t>]+bu)一个LSTM的新特性是不只有一个更新门控制,我们将用不同的项来替代它们,要用别的项来取代公式 c < t > = Γ u ∗ c ~ < t > + ( 1 − Γ u ) ∗ c < t − 1 > c^{<t>}=\Gamma_u*\tilde{c}^{<t>}+(1-\Gamma_u)*c^{<t-1>} c<t>=Γuc~<t>+(1Γu)c<t1>中的 Γ u \Gamma_u Γu 1 − Γ u 1-\Gamma_u 1Γu,这里我们用 Γ u \Gamma_u Γu Γ f \Gamma_f Γf,所以这个 Γ f \Gamma_f Γf门就是一个sigmoid函数,其计算公式为 Γ f = σ ( W f [ a < t − 1 > , x < t > ] + b f ) \Gamma_f=\sigma(W_f[a^{<t-1>},x^{<t>}]+b_f) Γf=σ(Wf[a<t1>,x<t>]+bf)然后我们有一个新的sigmoid的输出门,其计算公式为 Γ o = σ ( W o [ a < t − 1 > , x < t > ] + b o ) \Gamma_o=\sigma(W_o[a^{<t-1>},x^{<t>}]+b_o) Γo=σ(Wo[a<t1>,x<t>]+bo)于是记忆细胞的更新值。

于是记忆细胞的更新公式为 c < t > = Γ u ∗ c ~ < t > + ( Γ f ) ∗ c < t − 1 > c^{<t>}=\Gamma_u*\tilde{c}^{<t>}+(\Gamma_f)*c^{<t-1>} c<t>=Γuc~<t>+(Γf)c<t1>所以这给了记忆细胞选择权去维持旧的值 c < t − 1 > c^{<t-1>} c<t1>或者加上新的值 c ~ < t > \tilde{c}^{<t>} c~<t>,所以这里用了单独的更新门和遗忘门。

最后的 c < t > = a < t > c^{<t>}=a^{<t>} c<t>=a<t>公式变为 a < t > = Γ o ∗ t a n h   c < t > a^{<t>}=\Gamma_o*tanh\space c^{<t>} a<t>=Γotanh c<t>以上就是LSTM的主要的式子了。LSTM中有三个门而不是两个门,整理一下,LSTM中用到的所有式子如下图所示.
在这里插入图片描述
用下面的图片稍微解释一下
在这里插入图片描述
以上就是LSTM,你可能会想到,这里和一般使用的版本会有所不同,最常用的版本可能是,门值不仅取决于 a < t − 1 > a^{<t-1>} a<t1> x < t > x^{<t>} x<t>,有时候也可以偷窥一下 c < t − 1 > c^{<t-1>} c<t1>的值,这叫做窥视孔连接。窥视孔连接,其实意思就是门值不仅仅取决于 a < t − 1 > a^{<t-1>} a<t1> x < t > x^{<t>} x<t>,也取决于上一个记忆细胞的值,然后窥视孔连接就可以结合这三个门来计算了。

如你所见,LSTM主要的区别在于一个技术上的细节,比如有一个100维的向量,有一个100维的隐藏的记忆细胞单元,然后比如第50个 c < t − 1 > c^{<t-1>} c<t1>元素只会影响第50个元素对应的那个门,所以关系是一对一的,于是并不是任意的这100维的 c < t − 1 > c^{<t-1>} c<t1>可以影响所有的门元素,相反的,第一个 c < t − 1 > c^{<t-1>} c<t1>元素只能影响门的第一个元素,第二个元素影响对应的第二个元素,如此类推。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 长短期记忆模型LSTM)是一种递归神经网络(RNN),在时间序列预测分析中被广泛应用。LSTM对于处理长期依赖性和记忆性具有优势,能够捕捉到时间序列数据中复杂的时序关系。 在使用LSTM进行时间序列预测分析时,首先需要准备好输入数据。时间序列数据通常有时间步和相应的特征值组成。可以使用滑动窗口的方式,将时间步作为输入特征,根据需要预测的时间步确定输出特征。这样就能够构建训练集和测试集。 接下来,需要搭建LSTM模型LSTM模型由多个LSTM单元组成,每个LSTM单元包含输入门、遗忘门和输出门。通过设置合适的参数和层次结构,可以提高模型的预测性能。 在训练模型时,使用训练集对LSTM模型进行训练,通过将输入数据传入LSTM网络,将输出与实际值进行比较,并通过损失函数进行误差计算。使用反向传播算法进行权重更新,不断调整模型参数。 模型训练完成后,可以使用测试集对模型进行评估和预测。将测试集输入到已经训练好的LSTM模型中,获取对应的预测结果。通过比较预测结果和真实值,可以评估模型的准确性和性能。 LSTM模型适用于各种时间序列预测任务,如股票价格预测、天气预测、销售预测等。它的优势在于能够处理长期依赖性,准确地捕捉到时间序列数据中的模式和趋势。在实际应用中,我们可以根据具体场景和数据特点,调整LSTM模型的参数和结构,以获得更好的预测效果。 ### 回答2: 长短期记忆模型LSTM)是一种递归神经网络(RNN)的变种,专门用于处理和预测时间序列数据。通过LSTM模型,我们能够捕捉和学习时间序列数据中的长期依赖关系,同时能够避免梯度消失和梯度爆炸等问题。 在时间序列预测分析中,LSTM模型可以被用来推测未来的数据点,并且能够对序列中的趋势进行建模。这一过程通常可以通过以下步骤来实现: 1. 数据准备:首先,将时间序列数据准备成适合LSTM模型输入的格式。一般将数据划分为训练集和测试集,并对数据进行归一化处理,以消除数据间的差异。 2. 构建模型:通过LSTM模型的网络结构,可以定义和训练一个适合时间序列预测的模型LSTM模型中的记忆单元可以捕捉到序列中过去的信息,并将其应用于当前的预测。 3. 模型训练:将准备好的训练数据输入到LSTM模型中,通过反向传播算法来更新模型的权重,以减小预测误差。可以使用适当的损失函数(如均方误差)和优化算法(如随机梯度下降)来优化模型。 4. 预测分析:使用训练好的LSTM模型对测试数据进行预测。通过将模型对过去数据的学习应用于新的数据点,模型可以生成时间序列的未来预测。 LSTM模型在时间序列预测分析中具有较好的性能,特别适用于处理需要考虑长期依赖关系的数据。与传统的方法相比,LSTM能够更好地捕捉到时间序列数据中的非线性、非平稳和周期性等特征,对于金融、气象、股市、销售等领域的时间序列预测非常有用。通过对模型的不断调优和改进,LSTM模型在时间序列预测分析中具有广泛的应用前景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值