深度学习LSTM_理论

1、什么是LSTM

  • LSTM(Long short-term memory)是一种在深度学习中广泛使用的RNN结构,擅长捕捉长期的依赖关系,适合序列预测。(为什么能捕捉长期依赖关系?)
  • 和传统的神经网络不同,LSTM包含反馈连接,(带来的好处是)能够处理全部的数据序列,而不是单个的数据点,使得在时间序列、文本、话音等序列数据中有较强的性能。

2、LSTM的结构

  • LSTM可以解决RNN反向传播中的梯度消失问题(什么是梯度消失问题?为什么RNN有梯度消失问题?为什么LSTM可以解决?)
  • 下面是LSTM网络的内部结构,包含三个部分:
    在这里插入图片描述
  • 第一部分:选择决定前一个时间戳的信息是记还是不记(遗忘门 the forget gate
  • 第二部分:将新的信息选择性的记录到记忆单元中(输入门 the input gate
  • 第三部分:传递从当前时间戳学习到的新的信息给下一个时间戳(输出门 the output gate
    这三个门控制了lstm cell或者memory cell的信息进出,一个LSTM unit(包括这三个门和一个lstm cell)可以被视为传统的前馈神经网络的一层神经元,每一个神经元都有一个隐藏层和一个当前状态。(什么是lstm cell?)
    在这里插入图片描述
    和RNN一样,LSTM需要前一个时间戳的隐藏层状态 H ( t − 1 ) H(t-1) H(t1),用来得到当前时间戳的隐藏层状态 H ( t ) H(t) H(t),RNN的公式就是: H ( t ) = f ( U ∗ X ( t ) + W ∗ H ( t − 1 ) ) H(t)=f(U\ast X(t)+W \ast H(t-1)) H(t)=f(UX(t)+WH(t1))(短期记忆 short term memery)

和RNN的区别,LSTM引入了一个记忆单元,携带了所有时间戳的所有信息,用 C ( t − 1 ) C(t-1) C(t1) C ( t ) C(t) C(t)表示。(长期记忆 long term memery)
在这里插入图片描述
更细节的结构:
在这里插入图片描述

3、遗忘门 Forget gate

“Bob is a nice person. Dan, on the Other hand, is evil.
对于使用句号分开的两个句子,很明显,在第一句中,我们谈论的是Bob,一遇到句号(.),我们就开始谈论Dan。
当我们从第一句话转到第二句话时,我们的网络应该意识到我们不再谈论Bob。现在我们的主题是Dan。
在这里,LSTM网络的遗忘门会忘记Bob。

功能:选择决定前一个时间戳的信息是记还是不记
在这里插入图片描述

遗忘门的公式:
f t = σ ( x t ⋅ U f + H t − 1 ⋅ W f ) f t = σ ( W f ⋅ [ h t − 1 , x t ] + b f ) f_t =\sigma(x_t \cdot U_f+H_{t-1} \cdot W_f)\\ f_t =\sigma(W_f \cdot [h_{t-1},x_t]+b_f)\\ ft=σ(xtUf+Ht1Wf)ft=σ(Wf[ht1,xt]+bf)
其中:

  • x t x_t xt:当前时间戳的输入
  • U f U_f Uf:权重矩阵
  • H t − 1 H_{t-1} Ht1:前一个时间戳的隐藏层状态
  • W f W_f Wf:权重矩阵
  • σ \sigma σ:限制 f t f_t ft在0到1之间
  • f t f_t ft之后会元素乘上 C t − 1 C_{t-1} Ct1,如果 f t = 1 f_t=1 ft=1,那么说明过去的记忆(上一个时间戳)要保留,否则删除。
    C t − 1 ∗ f t = 0 (忘记全部) C t − 1 ∗ f t = C t − 1 (记住全部) C_{t-1} \ast f_t=0 (忘记全部)\\ C_{t-1} \ast f_t=C_{t-1}(记住全部) Ct1ft=0(忘记全部)Ct1ft=Ct1(记住全部)
    • ∗ \ast 或者 ⊙ \odot :元素乘,哈达玛积(Hadamard product)哈达玛积首先保证矩阵的结构相同,把对应位置的数值相乘。
      • 在这里插入图片描述

4、输入门 Input gate

“Bob knows swimming. He told me over the phone that he had served the navy for four long years.”
这两句话谈论的都是Bob,但是谈论的内容是不同的。第一句我们知道了Bob会游泳,第二句我们知道了他是用电话告知他在海军服役四年。
对于第一句我们知道了Bob会游泳的这个内容,在第二句中的两个信息“使用电话告知”和“在海军服役四年”中,他是否使用电话或任何其他通信媒介来传递信息并不重要。他在海军服役的事实是重要的信息,这是我们希望我们的模型在未来的计算中记住的。这是输入门的任务。

功能:量化输入所携带的新信息的重要性,选择性的记录到记忆单元中
在这里插入图片描述

包含两个部分:

(1)、sigmoid层(输入门层):从当前输入判断哪些信息比较重要

i t = σ ( x t ⋅ U i + H t − 1 ⋅ W i ) (或者) i t = σ ( W i ⋅ [ H t − 1 , x t ] + b i ) i_t=\sigma(x_t \cdot U_i+H_{t-1} \cdot W_i)(或者)\\ i_t=\sigma(W_i\cdot [H_{t-1},x_t]+b_i) it=σ(xtUi+Ht1Wi)(或者)it=σ(Wi[Ht1,xt]+bi)
其中:

  • x t x_t xt:当前时间戳的输入
  • U i U_i Ui:权重矩阵
  • H t − 1 H_{t-1} Ht1:前一个时间戳的隐藏层状态
  • W i W_i Wi:权重矩阵
  • σ \sigma σ:限制 i t i_t it在0到1之间,0就代表信息很重要,1就代表信息不重要

(2)、tanh层:对提取的有效信息做出筛选

创建一个候选者向量 C ~ t \tilde C_t C~t
C ~ t = t a n h ( x t ⋅ U c + H t − 1 ⋅ W c ) (或者) C ~ t = t a n h ( W c ⋅ [ h t − 1 , x t ] + b c ) \tilde C_t=tanh(x_t \cdot U_c +H_{t-1} \cdot W_c)(或者)\\ \tilde C_t=tanh(W_c \cdot [h_{t-1},x_t]+b_c) C~t=tanh(xtUc+Ht1Wc)(或者)C~t=tanh(Wc[ht1,xt]+bc)
其中:

  • x t x_t xt:当前时间戳的输入
  • U c U_c Uc:权重矩阵
  • H t − 1 H_{t-1} Ht1:前一个时间戳的隐藏层状态
  • W c W_c Wc:权重矩阵
  • t a n h tanh tanh:限制 C ~ t \tilde C_t C~t在-1到1之间,如果 C ~ t < 0 \tilde C_t <0 C~t<0,那么将把信息从记忆单元中删掉,反之则加上这个信息。

(3)、更新记忆单元状态 Cell state

在这里插入图片描述

  • f t f_t ft元素乘上上一个时间戳的记忆单元 C t − 1 C_{t-1} Ct1,如果值为0,那么记忆单元的值就要被丢弃。
  • i t i_t it元素乘上候选值 C ~ t \tilde C_t C~t,​如果值为0,代表记忆单元的值不大重要,就被丢弃掉
  • 最后将上面两个输出结果元素加,更新记忆单元状态 C t C_t Ct
    C t = f t ∗ C t − 1 + i t ∗ C ~ t C_t=f_t \ast C_{t-1}+i_t \ast \tilde C_t Ct=ftCt1+itC~t

f t f_t ft表示忘记上一次的信息 C t − 1 C_{t-1} Ct1的程度
i t i_t it表示要将候选值 C ~ t \tilde C_t C~t​加入的程度
这一步我们真正实现了移除哪些旧的信息(比如上一句的主语),增加哪些新信息(海军),最后得到了记忆单元的状态 C t C_t Ct

5、输出门 Output gate

Bob single-handedly fought the enemy and died for his country. For his contributions, brave______.”
在这项任务中,我们必须完成第二句话。现在,当我们看到brave这个词的那一刻,我们就知道我们在谈论一个人。在句子中,只有Bob是brave的,我们不能说enemy是勇敢的或country是勇敢的。因此,基于目前的推测,我们必须给出一个相关的词来填补空白。

功能:确定下一个隐藏状态的值
在这里插入图片描述

(1)、sigmoid层(输出门层):决定哪些信息可以通过输出门

o t = σ ( x t ⋅ U o + H t − 1 ⋅ W o ) (或者) o t = σ ( W t ⋅ [ H t − 1 , x t ] + b t ) o_t=\sigma(x_t \cdot U_o+H_{t-1} \cdot W_o)(或者)\\ o_t=\sigma(W_t \cdot [H_{t-1},x_t]+b_t) ot=σ(xtUo+Ht1Wo)(或者)ot=σ(Wt[Ht1,xt]+bt)
其中:

  • x t x_t xt:当前时间戳的输入
  • U o U_o Uo:权重矩阵
  • H t − 1 H_{t-1} Ht1:前一个时间戳的隐藏层状态
  • W o W_o Wo:权重矩阵
  • σ \sigma σ:限制 o t o_t ot在0到1之间

(2)、tanh层:获得最终的输出

h t = o t ∗ t a n h ( C t ) h_t=o_t \ast tanh(C_t) ht=ottanh(Ct)

最后,新的记忆单元状态和新的隐藏层状态被转移到下一个时间戳。

6、LSTM的更直观的结构图

各个变量的关系图:
在这里插入图片描述在这里插入图片描述

补充知识:

(1)、tanh函数

在这里插入图片描述

  • 非线性函数
  • 值在-1到1之间

(2)、sigmoid函数

在这里插入图片描述

  • 非线性函数
  • 值在0到1之间
  • 它有助于网络更新或忘记数据。如果相乘结果为0,则认为该信息已被遗忘。类似地,如果值为1,则信息保持不变。

参考链接:
1、元素乘法
2、LSTM结构讲解
3、Introduction to LSTM Units in RNN
4、What is LSTM? Introduction to Long Short-Term Memory

  • 26
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: LSTM(Long Short-Term Memory)是一种循环神经网络(RNN)结构,它主要用于处理序列数据,具有长期记忆和避免梯度消失的能力。LSTM通过使用门控单元来控制信息的流动,从而有效地处理输入序列中的长期依赖关系。 贝叶斯深度学习是将贝叶斯统计方法与深度学习模型相结合的方法。传统的深度学习模型基于最大似然估计,它只能根据训练数据直接学习模型的参数,而无法捕捉不确定性信息。贝叶斯深度学习引入了贝叶斯推断的思想,可以在训练数据不足或噪声较多的情况下,更好地估计模型的不确定性。 将LSTM和贝叶斯深度学习结合起来,可以获得强大的序列建模和不确定性估计能力。首先,LSTM作为处理序列数据的强大工具,可以识别和捕捉输入序列中的长期依赖关系。其次,贝叶斯深度学习LSTM模型加入了不确定性估计能力,通过对模型参数引入先验分布,并使用贝叶斯推断方法,可以更好地量化模型预测的不确定性。 LSTM贝叶斯深度学习在一些任务中具有广泛的应用,例如自然语言处理、语音识别和时间序列预测。在这些任务中,模型需要对输入序列进行建模,并且对预测结果的不确定性有一定的要求。LSTM贝叶斯深度学习的结合为这些任务提供了一种有效的方法,它不仅可以提高模型的预测准确性,还可以提供对不确定性的更准确估计,为更好地决策和应用提供了支持。 ### 回答2: LSTM模型是一种具有长期记忆和短期记忆能力的循环神经网络,它在处理序列数据时表现出色。LSTM通过三个门控单元(输入门、遗忘门和输出门)来控制信息的流动,因此具有较强的记忆能力和处理能力。 贝叶斯是一种概率模型,它基于贝叶斯公式和贝叶斯理论,可以根据先验知识和观测数据来计算后验概率。贝叶斯方法可以用于解决分类、回归、聚类等问题,并且可以通过更新先验概率来不断优化模型的效果。 深度学习是一种基于神经网络的机器学习方法,它可以通过多层神经元的连接来建立大规模的非线性模型,从而实现对复杂问题的建模和解决。 将LSTM与贝叶斯方法相结合,可以从两个方面提升深度学习模型的效果。首先,LSTM作为一种能够处理序列数据的模型,在文本、时间序列等领域具有广泛的应用。通过引入贝叶斯方法,可以利用已有的先验知识来更好地建模序列数据,提升模型的准确性和鲁棒性。 其次,贝叶斯方法可以用于模型的参数估计和不确定性推断。在深度学习中,参数估计常常会面临过拟合等问题,而贝叶斯方法可以通过引入先验知识和后验分布来减少过拟合的风险。此外,使用贝叶斯方法进行不确定性推断可以提供更全面的模型解释和决策依据。 综上所述,LSTM与贝叶斯方法的结合可以提高深度学习模型在序列数据处理和参数估计方面的性能,并提供更全面的模型解释和不确定性推断能力。这种方法在自然语言处理、语音识别、机器翻译等领域具有重要的应用价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭小儒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值