LSTM//循环神经网络的个人理解

news2024/10/6 20:39:39

[TOP] LSTM/循环神经网络的理解

前言自省:

  • 作为一名已经研究深度学习网络多年的研究员,虽曾多次浅尝LSTM这种网络,但是都没有花时间对其进行深刻解读。
  • 本文只谈对LSTM在逻辑思想上的理解,不进行技术解析。

1. 经典LSTM原理图

在这里插入图片描述
这里边涉及“遗忘门”、“记忆门”、“输出门”,具体解析可以参考:

  1. 【知乎】LSTM - 长短期记忆递归神经网络

  2. “Understanding LSTM Networks.” Understanding LSTM Networks – Colah’s Blog

2. “长短时”记忆关于时间概念的理解

因为在pytorch里边,LSTM网络需要先定义输入的维度尺寸。
见下方代码,可以看到:

  • LSTM网络在没有预给定隐藏层状态 hidden时(A处)
    lstm在输出中包含隐藏层的状态,即hidden。可以看到这个hidden的维度和batch有关,而和seq_len无关。这不禁疑问,
  • 如此,在预定义隐藏层状态时(B处)
    定义的矩阵岂不是需要batch的信息。会略微麻烦。因为,一般地,我们都希望batch的信息和网络没有关系。
lstm = nn.LSTM(10, 20, 6, batch_first=True) # input_len, hidden_size, num_layers

x = torch.ones([2, 3, 10])  # [batch, seq_len, input_len]
y, hidden = lstm(x, )  # A
print(y.shape)
print('hidden:', hidden[0].shape, hidden[1].shape , len(hidden))
# >> torch.Size([6, 2, 20]) torch.Size([6, 2, 20]) 2
y, hidden = lstm(x, hidden)  # B
print(y.shape)
print('hidden:', hidden[0].shape, hidden[1].shape , len(hidden))
# >> torch.Size([6, 2, 20]) torch.Size([6, 2, 20]) 2

初理解: [LSTM最初是用于语义理解,即,解读文本预测与生成]
假如:

  • 每个句子长度为3,即有3个词/字。 ===> seq_len = 3
  • 每次输入网络的有2个句子。 ===> batch = 2
  • 所有使用的词/字种类为10种,即词向量维度为10。 ===> input_len=10

那么

  • 网络会依次读取这2个句子的第一个词,第二个词……
  • 循环3次(seq_len)次后结束

这里
循环的思想在于

LSTM会逐字读取

  • x_{t-1} 为句子中的上一个词,x_{t}为当前词;所以,每个词都会考虑到上一个词的影响

LSTM 句子间的关联

  • 按股票预测的案例(seq_len=1),每个batch内对于一个时间区内的 batch个时刻。每个时刻前后是有关联的,即,长短时记忆能力。
  • 因为hidden是可以选择保存到下一个batch使用的,因此,长时间记忆的功能在此体现。

但,说实话,一个batch内的时序关系,体现不是很明显。从hidden参数来看,它们共用一个矩阵,这更像是cnn的整体考量,而不是有时序关系的逐一考量。

自我感觉,本文对LSTM的体悟纯正一定的缺漏和不足,请读者海涵!

这里,还请大佬批评指正,谢谢!

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

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

相关文章

Unlimited “使用GPT-4 ”!它来了!

备注本文末尾附录注册登录过程 平台介绍: 聊天机器Chat.fore人front.ai是一为款基于人主工智能的题聊天的机器人主平台,旨在帮菜助企,业提可以高客户服务质是量和一效率。该平款台利用自然语精言处理技术和机器致学习的算法,能够自牛动排回答客,户的问题,提供个性化的服…

TensorFlow高阶API和低阶API

TensorFlow提供了众多的API,简单地可以分类为高阶API和低阶API. API太多太乱也是TensorFlow被诟病的重点之一,可能因为Google的工程师太多了,社区太活跃了~当然后来Google也意识到这个问题,在TensorFlow 2.0中有了很大的改善。本文…

Markdown常用数学公式

1 行内公式 在两个美元符号中输入公式即可。 如$Em\times c^2$ 效果: E m c 2 Em\times c^2 Emc2(注:\times是乘的意思) 2 整行公式 在四个美元符号中输入公式,如果想要给公式后面添加编号,那么在公式…

windows安装mongodb6.x并设置用户名密码

安装教程 下载安装设置账号密码利用连接工具设置配置文件重新连接 下载 官网下载地址:点击去下载 安装 这工具很好用的,页面美观,设置账号密码也必不可少,推荐勾选。 设置账号密码 利用连接工具设置 必须选择一个库 use adm…

史上最全Maven教程(三)

文章目录 🔥Maven工程测试_Junit使用步骤🔥Maven工程测试_Junit结果判定🔥Maven工程测试_Before、After🔥依赖冲突调解_最短路径优先原则🔥依赖冲突调解_最先声明原则🔥依赖冲突调解_排除依赖、锁定版本 &a…

onnx手动操作001:onnx.helper

使用onnx.helper可以进行onnx的制造组装操作: 对象描述ValueInfoProto 对象张量名、张量的基本数据类型、张量形状算子节点信息 NodeProto算子名称(可选)、算子类型、输入和输出列表(列表元素为数值元素)GraphProto对象用张量节点和算子节点组成的计算图对象ModelP…

2023年测试岗,自动化测试我该如何进阶?卷出方向...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 先编程语言打好基…

BPMN2.0 网关

网关(gateway)用于控制执行的流向(或者按BPMN 2.0的用词:执行的“标志(token)”)。网关可以消费(consuming)与生成(generating)标志。 网关用其中带有图标的菱形表示。 排他网关 排他网关(exclusive gateway)(也叫异或网关 XOR gateway,或者更专业的,基于数据…

怎么把pdf压缩的小一点 这3种方式都很简单

在日常工作中,我们常常会遇到PDF文件太大无法上传的情况。这种情况在通过聊天工具传输工作PDF文件资料或在发送附件邮件时尤为常见。如果你也遇到过类似的问题,那么怎么把pdf压缩的小一点?网上的方法虽然很多但是查找起来也是非常费心费力的。…

【正点原子Linux连载】第三章 RKMedia编译和使用 摘自【正点原子】ATK-DLRV1126系统开发手册

第三章 RKMedia编译和使用 5.1 RKMedia编译 Rkmedia是RK官方封装一层简易的API,把RGA、MPP、RKNN等等这些接口封装成高级的接口。在SDK官方的源码目录下,运行以下命令进行跳转: cd external/rkmedia/examples/ ls 运行命令结果如下所示&…

激光雷达“进阶战”:谁在引领新风向?

激光雷达正进入新的发展阶段。 高工智能汽车注意到,伴随激光雷达在2022年第一波小规模前装导入,市场正尝试向中端车型渗透,以逐步迈向快速增长期。在这一阶段,谁能解决成本可控、性能提升的难题,同时帮车企用好激光雷…

鸟哥的Linux私房菜——基础学习篇(第三版) (6-10章)

基础学习篇 第六章 :Linux 的档案权限与目录配置第七章 :档案与目录管理第八章 :Linux 磁盘与文件系统管理第九章 :文件与文件系统的压缩与打包第十章 :Vim程序编辑器 第六章 :Linux 的档案权限与目录配置 …

浅述 国产仪器仪表 6121A 音频分析仪

6121A是具有音频信号产生和音频信号分析功能的测试仪器,适用于语音性能测试和音频功放测试等领域,满足电台、移动通信、音响设备和水声通信设备对频响、谐波失真和信噪比等指标的测试需求,是音频信号性能测试的常备仪器。 6121A音频分析仪具…

Hadoop2.x集群搭建(centos7、VMware、finalshell)

第一章 Hadoop集群安装 1.1 集群规划 集群规划规划操作系统Mac、Windows虚拟软件Parallels Desktop(Mac)、VMWare(Windows)虚拟机主机名: c1, IP地址: 192.168.10.101主机名: c2, IP地址: 192.168.10.102主机名: c3, IP地址: 192.168.10.103软件包上传路径/root/softwares软件…

持续集成下接口自动化测试实践

目录:导读 引言 接口自动化测试工具介绍 接口自动化测试在持续集成中的运用 小结 引言 目前很多持续集成项目都需要执行接口层的测试,当你了解其基本概念,理解了接口协议、如何传参、测试原理后,无需 掌握程序语言&#xff0…

【MySQL高级】——目录结构数据库和文件系统的关系

一、目录结构 <1> 主要目录结构 find / -name mysql<2> 数据库文件目录 目录&#xff1a;/var/lib/mysql/ 配置方式&#xff1a;show variables like ‘datadir’; <3> 相关命令目录 目录&#xff1a;/usr/bin&#xff08;mysqladmin、mysqlbinlog、my…

软件著作权申请流程待发放多久就能到已发放拿到纸质证书?

软件著作权申请一般有两种途径 1、代理 代理机构有加急通道&#xff0c;软件著作权交件后最快20-30工作日内出&#xff0c;待发放到已发放只要3工作日拿到就可以邮寄纸质证书给你了。 2、版权中心官网自己登记 流程比较缓慢&#xff0c;而且最要命的是&#xff0c;证书是用邮…

数据划分方法简述:数据离散化和均值标准差分级法(含python代码)

文章目录 1 问题缘起2. 数据离散化等距离散等频离散聚类离散其他 3. 均值标准差分级 1 问题缘起 在数学建模中&#xff0c;我经常遇到这样一个问题&#xff1a; 在某一步中&#xff0c;需要把数据分成好几个类别或者是按照数据大小分级划分。 放到一维数据中形象一点解释就是…

InstructGPT原理讲解及ChatGPT类开源项目

InstructGPT原理讲解及ChatGPT类开源项目 Generative Pre-Trained Transformer&#xff08;GPT&#xff09; 是OpenAI的提出的生成式预训练语言模型&#xff0c;目前已经发布了GPT-1、GPT-2、GPT-3和GPT-4&#xff0c;未来也将发布GPT-5。 最近非常火的ChatGPT是基于Instruct…

【ChatGPT】稳定性好响应速度快可部署到国内服务器的ChatGPT 强力推荐!

朋友们&#xff0c;大家好&#xff0c;我是 jonssonyan。今天分享一个免费开源的 ChatGPT 项目&#xff0c;它的表现无论是响应速度还是稳定性都比 ChatGPT Plus 还要优秀&#xff0c;只需要有个 Access Token 或者使用热心网友提供的共享账号 就可以免费在线体验&#xff0c;也…