问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

LSTM原理详解

创作时间:
作者:
@小白创作中心

LSTM原理详解

引用
CSDN
1.
https://blog.csdn.net/qq_31278903/article/details/88690959

LSTM(长短时记忆网络)是一种改进后的循环神经网络,能够有效解决传统RNN无法处理长距离依赖的问题。本文将从基本原理出发,详细解析LSTM的工作机制,并通过具体公式和示例代码帮助读者深入理解这一重要模型。

LSTM

长短时记忆网络(Long Short Term Memory Network, LSTM),是一种改进之后的循环神经网络,可以解决RNN无法处理长距离的依赖的问题,目前比较流行。

长短时记忆网络的思路:

原始 RNN 的隐藏层只有一个状态,即h,它对于短期的输入非常敏感。
再增加一个状态,即c,让它来保存长期的状态,称为单元状态(cell state)。

把上图按照时间维度展开:

在 t 时刻,LSTM 的输入有三个:当前时刻网络的输入值
X_t
、上一时刻 LSTM 的输出值 h_
t-1
、以及上一时刻的单元状态
C_t-1

LSTM 的输出有两个:当前时刻 LSTM 输出值 h
_t
、和当前时刻的单元状态
C_t
.

关键问题是:怎样控制长期状态 c ?

方法是:使用三个控制开关
第一个开关,负责控制继续保存长期状态c;
第二个开关,负责控制把即时状态输入到长期状态c;
第三个开关,负责控制是否把长期状态c作为当前的LSTM的输出。

如何在算法中实现这三个开关?

方法:用 门(gate)
定义:gate 实际上就是一层全连接层,输入是一个向量,输出是一个 0到1 之间的实数向量。
公式为:
也就是:
gate 如何进行控制?
方法:用门的输出向量按元素乘以我们需要控制的那个向量
原理:门的输出是 0到1 之间的实数向量,当门输出为 0 时,任何向量与之相乘都会得到 0 向量,这就相当于什么都不能通过;
输出为 1 时,任何向量与之相乘都不会有任何改变,这就相当于什么都可以通过。

LSTM 的前向计算

一共有 6 个公式

遗忘门(forget gate)
它决定了上一时刻的单元状态
c_t-1
有多少保留到当前时刻
c_t

输入门(input gate)
它决定了当前时刻网络的输入
x_t
有多少保存到单元状态
c_t

输出门(output gate)
控制单元状态
c_t
有多少输出到 LSTM 的当前输出值
h_t

遗忘门的计算为:

遗忘门的计算公式中:
W_f
是遗忘门的权重矩阵,
[h_t-1, x_t]
表示把两个向量连接成一个更长的向量,
b_f
是遗忘门的偏置项,
σ
是 sigmoid 函数。

输入门的计算:

根据上一次的输出和本次输入来计算当前输入的单元状态:

当前时刻的单元状态
c_t
的计算:由上一次的单元状态
c_t-1
按元素乘以遗忘门
f_t
,再用当前输入的单元状态
c_t
按元素乘以输入门
i_t
,再将两个积加和:这样,就可以把当前的记忆
c_t
和长期的记忆
c_t-1
组合在一起,形成了新的单元状态
c_t
。由于遗忘门的控制,它可以保存很久很久之前的信息,由于输入门的控制,它又可以避免当前无关紧要的内容进入记忆。

输出门的计算:

关于它的 Tuning 有下面几个建议:

LSTM的变种

由Cho介绍的门控循环单元(或GRU)
多层LSTM

LSTM的手写识别源码链接

【参考】
https://www.jianshu.com/p/dcec3f07d3b5
https://www.cnblogs.com/wangduo/p/6773601.html?utm_source=itdadao&utm_medium=referral
https://www.jianshu.com/p/4b4701beba92
Stacked Long Short-Term Memory Networks

【注】有关LSTM前向传播以及反向传播误差修正部分值得关注!

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号