LSTM的前向和反向传播

一:LSTM结构

复杂版:
在这里插入图片描述
简单版:
在这里插入图片描述

(一)结构剖析

  lstm结构:三个门的特殊结构。lstm靠一些门的结构,让信息有选择性的影响循环神经网络中每个 时刻的状态。所谓的门的结构,就是一个使用sigmoid神经网络和一个按位做乘法的操作。这两个操作结合在一起,就是一个门的结构。之所以称为门的结构,是因为sigmoid 作为激活函数的全连接神经网络,输出结果为0到1之间的数值,他就能描述当前有多少信息可以通过这个结构。因此类似一道门。


  从上图我们可以看出lstm除了隐藏状态h(t)以外,还多了一个隐藏状态C(t),如图中上面的长横线。这个隐藏状态我们一般称为细胞状态(Cell State)。

遗忘门

遗忘门和输入门是lstm结构的核心。遗忘门的作用就是让循环神经网络忘记之前没用的信息。根据上一时刻的输出
h(t-1)和当下时序号的输入xt来计算出一个假设状态为C的n维向量f = sigmoid(w1xt+w2h(t-1)),f在每个
维度上的输出都处于(0,1)之间,再将上一时刻的状态C(t-1)与f按位相乘,那么得到的f的取值信息若趋近
于0则会被忘记,趋近于1的信息则会被保留。

结构图:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
候选值

概念:

候选值是包含当前时间步长信息的张量, 它可能会存储在当前单元状态中.

传递候选值的哪些部分取决于更新门.

候选值是一个张量, 它的范围从 - 1 到 1.

代字号 “” 用于将候选值与单元状态区分开.

公式:
在这里插入图片描述
公式的解释:

'tanh’函数产生的值介于-1和+1之间。
在代码中的变量名:
cct: 候选值

更新门
概念:

我们使用更新门来确定候选的哪些部分要添加到单元状态中。
更新门是包含0到1之间值的张量。
当更新门中的单位接近于0时,它将阻止候选值中的相应值传递到。
当更新门中的单位接近1时,它允许将候选的值传递到。
注意,我们使用下标“i”而不是“u”来遵循文献中使用的约定。
公式:

在这里插入图片描述
公式的解释:

类似于遗忘门(此处为),用sigmoid函数乘后值就落在了0到1之间。
将更新门与候选元素逐元素相乘,并将此乘积()用于确定单元状态。
在代码中的变量名:

在代码中,我们将使用学术文献中的变量名。这些变量不使用“ u”表示“更新”。

wi是更新门的权重
bi是更新门的偏差
it是更新门
单元状态

概念:

单元状态是传递到未来时间步长的“记忆/内存(memory)”。
新单元状态是先前单元状态和候选值的组合。
公式:
在这里插入图片描述
公式的解释:

之前的单元状态通过遗忘门调整(加权)。
候选值通过更新门调整(加权)。
在代码中的变量名:

c: 单元状态,包含所有的时间步长,c的shape是(na, m, T)
c_next: 下一个时间步长的单元状态,的shape (na, m)
c_prev: 之前的单元状态,的shape (na, m)

输出门
概念:

输出门决定时间步长要输出的预测值。
输出门与其他门一样,它包含从0到1的值。

在这里插入图片描述
公式的解释:

输出门由之前的隐藏状态和当前的输入 决定。
sigmoid函数让值的范围在0到1之间。
在代码中的变量名:

wo: 输出门的权重
bo: 输出门的偏差
ot: 输出门

隐藏状态
概念:

隐藏状态:将传递到LSTM单元的下一个时间步长。
它用于确定下一个时间步长的三个门()。
隐藏状态也用于预测。
公式:

公式的解释:
隐藏状态由单元状态结合输出门确定。
单元状态通过“ tanh”函数把值缩放到-1和+1之间。
输出门的作用就像一个“掩码mask”,它既可以保留的值,也可以使这些值不包含在隐藏状态中。
在代码中的变量名:

a: 隐藏状态,包含时间步长,shape (na, m, Tx)
a_prev: 前一步的隐藏状态,的shape (na, m)
a_next: 下一步的隐藏状态,的shape (na, m)
预测值

概念:

此用例的预测是分类,所以我们用softmax。
公式:
在这里插入图片描述

在代码中的变量名:

y_pred: 预测,包含所有的时间步长,的shape (ny, m, Tx),注意,本例中Tx=Ty。
yt_pred: 当前时间步长t的预测值,shape是(ny, m)

二:LSTM前向传播算法

在这里插入图片描述

三: LSTM反向传播

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
LSTM 的局限性

LSTM 有效的截断版本无法轻松解决类似于「强延迟的异或(strongly delayed XOR)」这样的问题。

每个记忆单元模块都需要一个输入门和一个输出门。并不一定需要其它循环方法。

在记忆单元内穿过「常量误差传送带(Constant Error Carrousels)」的常量误差流可以得到与传统的前馈架构(会一次性获得整个输入串)一样的效果。

和其它前馈方法一样,LSTM 也有「regency」概念上的缺陷。如果需要精密的计数时间步骤,那么可能就需要额外的计数机制。

LSTM 的优点

该算法桥接长时间滞后的能力来自其架构的记忆单元中的常量误差反向传播。

LSTM 可以近似有噪声的问题域、分布式表征和连续值。

LSTM 可以很好地泛化其所考虑的问题域。这是很重要的,因为有的任务无法用已有的循环网络解决。

在问题域上对网络参数进行微调看起来是不必要的。

在每个权重和时间步的更新复杂度方面,LSTM 基本上就等于 BPTT。

LSTM 很强大,在机器翻译等领域实现了当前最佳的结果。

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
LSTM(长短期记忆网络)是一种递归神经网络(RNN)的变体,它在处理时间序列数据时表现出色。LSTM通过使用门控单元来解决传统RNN中的梯度消失和梯度爆炸问题。在LSTM中,反向传播算法用于优化网络参数。 反向传播(Backpropagation)是一种用于训练神经网络的优化算法。在LSTM中,反向传播通过计算损失函数对每个神经元的权重和偏置的梯度,并通过梯度下降法更新这些参数来最小化损失函数。 具体来说,在LSTM中,反向传播算法通过以下步骤来计算梯度并更新参数: 1. 向传播:输入一个序列数据,通过LSTM的各个层进行向传播,计算输出。 2. 计算损失:将模型预测的输出与实际值进行比较,计算损失函数(如平均误差)。 3. 反向传播:从输出层开始,计算每个神经元的权重和偏置的梯度。这是通过链式法则来实现的,将误差从输出层向后传播到每个神经元。 4. 参数更新:使用梯度下降法来更新每个神经元的权重和偏置。通过将梯度乘以学习率来确定参数更新的幅度。 5. 重复步骤1-4:重复以上步骤,直到达到停止条件(如达到最大迭代次数或损失函数收敛)。 通过反向传播算法,LSTM能够学习时间序列数据中的长期依赖关系,并进行优化。这使得LSTM在处理许多任务(如语言模型、机器翻译、情感分析等)上表现出色。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值