长短期记忆网络LSTM

ops/2024/11/2 3:19:02/

背景:

RNN中存在梯度爆炸和梯度消失问题,梯度消失问题严重

设计思路:

RNN希望将所有的信息记住,不论是有效信息还是无效信息

LSTM设计一个记忆细胞,具备选择性记忆的功能,可以选择记忆重要信息,过滤掉噪声信息,减轻记忆负担

前向传播:

与RNN对比:

RNN串联的通过一个箭头串联

LSTM通过两个箭头将每个时间步相连接,称为记忆细胞

门:

\sigma:代表门控单元,输出在[0,1]之间

f_{t}遗忘门:将值向0减少;尽可能将无关记忆遗忘,通过对应元素相乘将C_{t-1}中对应位置所记忆的内容调整,为“0”的记忆遗忘,为“1”的记忆保留

i_{t}更新门/输入门:决定不是忽略掉输入数据;对C_{t}新记忆作用,但C_{t}中不是所有内容都有效,更新门将无用的信息过滤掉,记住相关内容

o_{t}输出门:决定是不是使用隐藏状态;作用于\tanh \left ( C_{t} \right ),拿归一化评分系统乘现在的记忆,去评价现在的记忆学的好不好,决定输出哪些

候选记忆单元:

计算C类似于RNN中计算H,没有用到gate

记忆单元:

上一时刻的记忆单元会作为状态放入,LSTM与RNN、GRU不同的地方在于其状态里有C和H

F_{t}若变为“0”,则尽量不要去记住C_{t-1}

I_{t}若为“1”,则尽量使用\widetilde{C_{t}}I_{t}若为“0”,尽量把现在的记忆单元丢掉

使用两个独立的状态量,既可以用前状态,又可以使用当前状态,两者相互独立

隐状态:

记忆细胞:

在LSTM的每个时间步里,都有一个记忆cell,记忆cell给予了LSTM选择记忆的功能,使得LSTM有能力自由选择每个时间步里面记忆的内容

对候选记忆单元再做一个tanh\left ( \right )原因:

tanh\left ( \right )可以把值变到正一和负一之间

F_{t}I_{t}的值域为[0,1],C_{t-1}\widetilde{C_{t}}的值域在[0,1],但根据公式:

C_{t}的值域为[-2,2]

所以需要tanh\left ( \right )H_{t}的值域位于[-1,1],O_{t}用来控制是否要使用C_{t}

反向传播:

总结:


http://www.ppmy.cn/ops/130309.html

相关文章

C语言中的main函数:命令行参数的工作原理

在C语言中,main函数是程序的入口点。它不仅可以接受返回值,还能处理命令行参数,允许用户在运行程序时传递数据。命令行参数是用户在启动程序时通过命令行界面提供的输入。C语言允许通过main函数的参数来访问这些输入。   int main(int argc…

如何理解PostgreSQL全页写?

读了很多PostgreSQL的FullPageWrite过程,结果思考时把自己绕进去了。每次感觉读懂了,但是都没能理解,其实是一个很简单的逻辑。   全页写发生在PG的Checkpoint时候,不要过于考虑全页写在checkpoint中的过程,而是单纯…

奥数与C++小学四年级(第十六题 魔法学院)

参考程序代码&#xff1a; #include <iostream>int main() {int maxStudentsPerSubject 9; // 每个科目最多有9个比哈利高的学生int students maxStudentsPerSubject * 3; // 三个科目// 加上哈利自己int totalStudents students 1;std::cout << "最大学…

静态路由实现路由互通

静态路由 实现 pc1 ping通 pc2&#xff0c;展示静态路由效果。 默认 pc1 无法ping通 pc2 ar1 ar2 互相添加静态路由 sy Enter system view, return user view with CtrlZ. [ar1]ip route-static 2.2.2.0 255.255.255.0 12.1.1.2 sy Enter system view, return user view wit…

爬虫ip与反爬虫的“猫鼠游戏”

大家好&#xff01;在网络世界中&#xff0c;爬虫和反爬虫就像汤姆和杰瑞一样&#xff0c;他们在里面上演着一场场精彩绝伦又硝烟弥漫的“猫鼠游戏”&#xff0c;今天小蝌蚪就来带大家看看这部精彩的“猫和老鼠”。 爬虫简单来说是一种智能程序&#xff0c;它的使命就是从无数…

WPF+MVVM案例实战(十四)- 封装一个自定义消息弹窗控件(下)

文章目录 1、案例效果2、弹窗控件使用1.引入用户控件2、按钮命令实现 3、总结4、源代码获取 1、案例效果 2、弹窗控件使用 1.引入用户控件 打开 Wpf_Examples 项目&#xff0c;在引用中添加用户控件库&#xff0c;在 MainWindow.xaml 界面引用控件库&#xff0c;代码如下&…

python之爬虫遇到返回内容乱码

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言解决思路 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 问题复现&#xff1a; import requestsheaders {"Accept": &quo…

IntelliJ IDEA使用技巧与插件推荐

IntelliJ IDEA是一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;它提供了丰富的功能和工具&#xff0c;帮助开发者提高编码效率。本文将介绍一些IntelliJ IDEA的使用技巧以及实用的插件推荐。 一、IntelliJ IDEA使用技巧 快捷键操作 IntelliJ IDEA支持大量…