LSTM算法

前置知识:RNN循环神经网络

LSTM(Long Short Term Memory长短期记忆网络)——目前使用最多的时间序列算法。

LSTM是对RNN循环神经网络的一种优化,能够有效的延缓梯度爆炸以及梯度消失的问题。

普通的RNN在隐藏层中只传递一个状态值 h,而LSTM不仅传递 h,还新增了一个状态值 C,每一层隐藏层中的每一个神经元都接收上一时刻传递的 h{t-1} 和 c{t-1} ,经过计算得到 h{t} 和 c{t} 再传入下一时刻。

LSTM通过“”结构来去除或增加“细胞状态”的信息,实现对重要内容的保留和对不重要内容的去除. 通过Sigmoid层输出一个0到1之间的概率值,描述每个部分有多少量可以通过。

用于遗忘的门叫做"忘记门"(红色框), 用于信息增加的叫做"输入门"(绿色框),最后是用于输出的"输出门"(紫色框)。这三个门中一共包含3个sigmoid函数和2个tanh函数。

忘记门

忘记门的作用是把ht-1与 xt拼接,通过权值矩阵Wf转换后,加上偏置值bf,再由sigmoid函数映射到[0,1]空间中。

通过ft对Ct-1进行有选择的忘记,从而得到忘记门的输出。

C_{t-1}*f_t

输入门

输入门的作用是把ht-1与 xt拼接,通过权值矩阵Wf转换后,加上偏置值bi,再由sigmoid函数映射到[0,1]空间中。

输入数据是把ht-1与 xt拼接,通过权值矩阵Wf转换后,加上偏置值bc再由激活函数tanh映射到[-1,1],得到输入数据Ct~。

输入门的输出是

i_t*\tilde {C_t}

输出门

将忘记门与输入门的输出值相加就得到了此刻的Ct

C_t=C_{t-1}*f_t+i_t*\tilde {C_t}

输出门的作用是计算ht,计算出ht后即可计算t时刻的输出yt

y_t=g(V*h_t)

对于RNN算法优化的原因

事实上,我们得到的Ct是这样的一个值:

C_t=\sigma(W_f[h_{t-1},x_t]+b_f)C_{t-1}+ \sigma(W_i[h_{t-1},x_t]+b_i)tanh(W_c[h_{t-1},x_t]+b_c)

由此可知,

\frac{\partial C_t}{\partial C_{t-1}}=\sigma(W_f[h_{t-1},x_t]+b_f)

该值的范围在0~1之间,但是在实际参数更新的过程中,可以通过控制bf较大,使得该值接近于1。这样即使在多次连乘的情况下,梯度也不会消失。

变种

变种1:增加“peephole connections”层,让门层也接受细胞状态的输入。

变种2:通过耦合忘记门和更新输入门(第一个和第二个门);也就是不再单独的考虑忘记什么、增加什么信息,而是一起进行考虑。

EKF-LSTM算法是一种基于LSTM的自适应学习算法,用于处理序列数据。该算法结合了扩展卡尔曼滤波(EKF)和长短期记忆(LSTM)网络的优势,能够有效地处理长序列依赖问题。 EKF-LSTM算法的核心思想是将EKF应用于LSTM网络的训练过程中,以提高模型的学习效果。具体而言,EKF-LSTM算法通过对LSTM网络的参数进行迭代更新,使得网络能够更好地适应输入序列的特征。在每次迭代中,EKF-LSTM算法使用EKF来估计网络参数的梯度,并根据梯度信息更新参数。这样,算法可以在训练过程中动态地调整网络的权重,以适应不同的输入序列。 EKF-LSTM算法的优点在于它能够处理长序列依赖问题,并且具有较好的学习效果。通过结合EKF和LSTM的特点,该算法能够更好地捕捉序列数据中的长期依赖关系,从而提高模型的预测准确性。 以下是EKF-LSTM算法的一个示例代码[^1]: ```matlab % 初始化参数 theta = randn(1, 3); P = eye(3); % 迭代更新参数 for t = 1:T % 前向传播 [h, c] = lstm_forward(x(:, t), theta); % 计算梯度 [dtheta, dP] = lstm_backward(x(:, t), h, c, theta); % 更新参数 [theta, P] = ekf_update(theta, P, dtheta, dP); end ``` 以上代码展示了EKF-LSTM算法的基本流程。在每次迭代中,算法通过前向传播计算LSTM网络的输出,然后通过反向传播计算梯度。接下来,算法使用EKF来更新网络参数,并迭代进行训练。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

惊雲浅谈天

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

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

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

打赏作者

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

抵扣说明:

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

余额充值