LSTM(长短期记忆网络)的设计灵感和数学表达式

1、设计灵感

       LSTM(长短期记忆网络)的设计灵感来源于传统的人工神经网络在处理序列数据时存在的问题,特别是梯度消失和梯度爆炸的问题。

       在传统的RNN(循环神经网络)中,信息在网络中的传递是通过隐状态向量进行的。然而,在处理长序列数据时,由于反向传播过程中梯度的不断乘积,会导致梯度消失或梯度爆炸的问题,使得网络无法有效地学习到长期依赖关系。

       为了解决这个问题,Hochreiter和Schmidhuber提出了LSTM网络。LSTM网络引入了“门”的概念,包括输入门、遗忘门和输出门,这些门可以控制信息在神经元之间的流动,并允许网络在需要的时候存储和更新长期记忆。

       具体来说,LSTM网络中的每个单元包含一个细胞状态,该状态可以在时间步之间传递并被修改。输入门、遗忘门和输出门分别控制细胞状态的更新、清除和读取操作。通过这三个门的巧妙设计,LSTM网络能够在处理长序列数据时有效地避免梯度消失和梯度爆炸的问题,同时保留长期依赖关系的信息。

       因此,LSTM的设计灵感主要来自于对传统RNN在处理序列数据时存在问题的深入理解和解决思路,以及对如何更好地模拟人类大脑处理序列信息机制的探索和创新。

2、数学表达式

       下面我们来具体看看输入门、遗忘门和输出门以及记忆细胞元的数学表达式:

假设有h个隐藏单元,批量大小为n,输入数为d。因此,输入为\textbf{X}_{t}\in \mathbb{R}^{n\times d},前一个时间步的隐状态为\textbf{H}_{t-1}\in \mathbb{R}^{n\times h}。时间步t的门被定义为:输入门\textbf{I}_{t}\in \mathbb{R}^{n\times h},遗忘门\textbf{F}_{t}\in \mathbb{R}^{n\times h},输出门\textbf{O}_{t}\in \mathbb{R}^{n\times h}。各种门的计算方法如下:

\textbf{I}_{t}=\sigma \left ( \mathbf{X}_{t}\mathbf{W}_{xi}+\mathbf{H}_{t-1}\mathbf{W}_{hi}+\mathbf{b}_{i} \right )

\textbf{F}_{t}=\sigma \left ( \mathbf{X}_{t}\mathbf{W}_{xf}+\mathbf{H}_{t-1}\mathbf{W}_{hf}+\mathbf{b}_{f} \right )

\textbf{O}_{t}=\sigma \left ( \mathbf{X}_{t}\mathbf{W}_{xo}+\mathbf{H}_{t-1}\mathbf{W}_{ho}+\mathbf{b}_{o} \right )

其中,\textbf{W}_{xi},\textbf{W}_{xf},\textbf{W}_{xo}\in \mathbb{R}^{d\times h}​​​​​​​​​​​和​​​​​​​\textbf{W}_{hi},\textbf{W}_{hf},\textbf{W}_{ho}\in \mathbb{R}^{h\times h}是权重参数,\textbf{b}_{i},\textbf{b}_{f},\textbf{b}_{o}\in \mathbb{R}^{1\times h}是偏置参数。

       候选记忆细胞元\widetilde{\textbf{C}}_{t}\in \mathbb{R}^{n\times h}的计算表达式为:

\widetilde{\textbf{C}}_{t}=tanh \left ( \mathbf{X}_{t}\mathbf{W}_{xc}+\mathbf{H}_{t-1}\mathbf{W}_{hc}+\mathbf{b}_{c} \right )

其中,\textbf{W}_{xc}\in \mathbb{R}^{d\times h}\textbf{W}_{hc}\in \mathbb{R}^{h\times h}是权重参数,\textbf{b}_{c}\in \mathbb{R}^{1\times h}是偏置参数。

       记忆元细胞\textbf{C}_{t}\in \mathbb{R}^{n\times h}的计算表达式为:

\textbf{C}_{t}=\textbf{F}_{t}\bigodot \textbf{C}_{t-1}+\textbf{I}_{t}\bigodot\widetilde{\textbf{C}}_{t}

在上述设计中,输入门\textbf{I}_{t}控制采用多少来自\widetilde{\textbf{C}}_{t}的新数据,而遗忘门\textbf{F}_{t}控制保留多少过去的记忆元\textbf{C}_{t-1}\in\mathbb{R}^{n\times h}的内容。

如果遗忘门始终为1且输入门始终为0, 则过去的记忆元\textbf{C}_{t-1}将随时间被保存并传递到当前时间步。 引入这种设计是为了缓解梯度消失问题, 并更好地捕获序列中的长距离依赖关系。

        隐状态\textbf{H}_{t}\in \mathbb{R}^{n\times h}的计算表达式为:

\textbf{H}_{t}=\textbf{O}_{t}\bigodot tanh\left (\textbf{C}_{t} \right )

       在上述设计中,只要输出门接近1,我们就能够有效地将所有记忆信息传递给预测部分, 而对于输出门接近0,我们只保留记忆元内的所有信息,而不需要更新隐状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

个人博客代码_Jekyll + Github Pages 搭建个人免费博客

今天亲手通过 Jekyll 搭建了一套免费博客,搭建步骤其实超级简单。你不需要购买域名,也不需要购买服务器,就可以轻松拥有你自己的博客。Jekyll 的核心是一个文本转换引擎。它的方便之处在于支持多种文本标记语言:Markdown&#xff…

js计算排名_今天,我们讲一下,快速排名与黑帽SEO

做个有心人(第7篇)在Web3.0时代,想要获得流量,就必须使用广告手段,用什么广告手段,需要切合自身情况来做,比如说:SEO是免费的,而SEM就是付费的。而SEO快速排名是什么鬼?真的快吗?快速排名究竟…

黑马h5学习代码_如何零基础制作酷炫实用的H5页面

H5页面已经成为了当下移动端主要的宣传方式,一个好的H5页面有极高的营销价值,无论是企业还是个人都非常需要。制作一个炫酷的H5页面一定要会写代码吗,下面千锋网络营销小编就给大家分享如何零基础制作炫酷实用的H5页面。支持H5的Web APP迅猛发展很重要的一点就是APP中的内容产生…

bin文件如何编辑_如何为高通固件创建rawprogram0和patch0文件

这是一个分步教程,显示如何为Qualcomm固件创建rawprogram0.xml和patch0.xml文件。要求下载并安装Python https://www.python.org/downloads/release/python-2710/下载高通GPTtool [ 登录/注册免费下载]下载Notepad https://notepad-plus-plus.org/downloads/来自…

iframe 页面富文本框数据怎么保存_文字太多PPT怎么做都丑?估计是没注意这些细节!...

秋叶 PPT 双 11 大促返场最后 1 天全场精品课享年度超值价千万别错过啦!作者:洁洁编辑:躺糖大家好,我是洁洁!作为每天倾听你们的困惑的小编之一,我 get 到了一个你们平常做 PPT 会碰到的最头疼的问题&#…

835 由于安全层无法对远程计算机进行身份验证_vscode 插件Remote-ssh远程wsl调试python

解决远程ssh端口非22的问题,见文末参考文献:Developing on Remote Machines using SSH and Visual Studio Code​code.visualstudio.com使用SSH进行远程开发Developing on Remote Machines using SSH and Visual Studio Code使用SSH进行远程开发在Visual…

vue实现查询多条记录_vue.js 实现天气查询

效果预览:http://songothao.gitee.io/weather_query_based_on_vuejs/ 项目已上传码云:叁贰壹/vuejs实现天气查询知乎视频​www.zhihu.com一、使用 axios vue.js:axios-get请求:axios.get(地址?keyvalue&key2value2).then(function(resp…

idea序列化自动生成_serialVersionUID在数据序列化中重要性

作用用于判断序列化文件是否已经失效(过期)。序列化的时候会把这个ID写到文件里。读的时候会把这个ID和代码里的ID比较,如果不一致,表示文件里的已经失效。(will result in an InvalidClassException.)值写为多少你可以写为1L,也可以让IDEA帮…

python找与7相关的数_用python统计并输出1000以内所有能同时被3和7整除的数的个数?...

展开全部 len([i for i in range(1,1001) if i%3i%70]) #!/usr/bin/python3 for i in range(1, 100): if i % 3 0 and i % 7 0: print(i) 100以内能同时被21133&#xff0c;5&#xff0c;7整除的数&#xff0c;除非是52610。 #include int main() {int i,n0; for(i0;i<100…

贝塞尔曲线 java_贝塞尔曲线理论及实现——Java篇

贝塞尔曲线贝塞尔曲线(The Bzier Curves)&#xff0c;是一种在计算机图形学中相当重要的参数曲线(2D&#xff0c;3D的称为曲面)。贝塞尔曲线于1962年&#xff0c;由法国工程师皮埃尔贝塞尔(Pierre Bzier)所发表&#xff0c;他运用贝塞尔曲线来为汽车的主体进行设计。线性曲线给…

java连接access_关于k8s下使用Ingress保持长连接的异常情况排查

写在前面的话应某位友人需求&#xff0c;帮整理下工作中的发生的一些值得记录的文章。于是在友人描述后&#xff0c;为其整理为了文章&#xff0c;供大家一起参考探讨。问题描述在我们中应用有一个使用到Http Long Poll的场景&#xff0c;它需要一个http请求保持最长30秒&#…

罗斯蒙特电磁流量计8723说明书_罗斯蒙特8732E电磁流量计对环境和温度的限制

今天我们来说说美国罗斯蒙特8732E电磁流量计对环境和温度的限制&#xff01;工作温度-40 到 60C(-40 到 140F)&#xff0c;无本地操作界面-20 到 60C(-4 到 140F)&#xff0c;有本地操作界面当温度低于 -20C 时&#xff0c;本地操作界面 (LOI) 将无显示储存-40 到 85C(-40 到 1…

python字符串定义符_python入门——定义字符串

坚持每天更新&#xff0c;帮助入门python。kali linux 小伙伴们&#xff0c;大家好&#xff0c;今下午我们一起学习在python中定义字符串。 那么什么是字符串呢&#xff1f;字符串或串(String)是由数字、字母、下划线组成的一串字符。说白了&#xff0c;就是一堆字符。 在pytho…

耳机不分主从是什么意思_开学必备高性价蓝牙耳机,学生党时尚配件推荐

耳机自从手机出世之后就一直伴随着我们&#xff0c;作为手机的最佳搭档被我们使用&#xff0c;像现如今流行的蓝牙耳机我们就经常使用&#xff0c;大学生也是差不多每天都用得着&#xff0c;听歌、散步、玩游戏、看剧等哪都看得到它的身影&#xff0c;当然蓝牙耳机价格也有高低…

11g java 驱动_Oracle 11g Java驱动包ojdbc6.jar安装到maven库,并查看jar具体版本号

ojdbc6.jar下载Oracle官方宣布的Oracle数据库11g的驱动jar包是ojdbc6.jarojdbc6.jar下载地址&#xff1a;https://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html (Oracle Database 11g Release 2 (11.2.0.4) JDBC Drivers & UCP Downlo…

功放音量调节原理_玩汽车音响,功放和喇叭,应该如何做好匹配?

原标题&#xff1a;玩汽车音响&#xff0c;功放和喇叭&#xff0c;应该如何做好匹配&#xff1f;功放和喇叭搭配使用&#xff0c;离不开合理匹配&#xff0c;那么如何做好两者匹配呢&#xff1f;功放和喇叭要做到三匹配&#xff1a;阻抗匹配、功率匹配和工作频率匹配。只有这样…

java seekbar_SeekBar的基本使用方法

a)什么是SeekBarb)使用SeekBar的步骤:i.在布局文件当中声明SeekBar: ii.定义一个OnSeekBarChangeListener: private class SeekBarListener implements SeekBar.OnSeekBarChangeListener{public void onProgressChanged(SeekBar seekBar,int progress,Boolean fromUser){System…

线程中如何使用对象_在 Flink 算子中使用多线程如何保证不丢数据?

简介&#xff1a; 本人通过分析痛点、同步批量请求优化为异步请求、多线程 Client 模式、Flink 算子内多线程实现以及总结四部分帮助大家理解 Flink 中使用多线程的优化及在 Flink 算子中使用多线程如何保证不丢数据。分析痛点笔者线上有一个 Flink 任务消费 Kafka 数据&#x…

linux回到桌面的命令符_三 基本的base shell 命令

1、启动shell进入 /etc/passwd 看到知道默认的是base shell ctrlaltt 或者双击终端&#xff0c;就进入如下图界面&#xff1b;如果你还是CLI新手&#xff0c;请记住&#xff0c;在输入shell命令之后&#xff0c;需要按回车键才能让shell执行你输入的命令。2、bash 手册man 命令…