1 如果只是学习怎么用LSTM,那么可以这么理解LSTM

LSTM可以看成一个仓库,而这个仓库有三个门卫,他们的功能分别是

  • 遗忘门。决定什么样的物品需要从仓库中丢弃。

  • 输入门。决定输入的什么物品用来存放在仓库。

  • 输出门。根据输入的物品和当前仓库的状态决定输出什么。

但这三个门外怎么判断遗忘什么,输入什么和输出什么呢?这需要他们通过从历史的数据中学习,这样当未来输入货物时,就知道如何处理。

这就是为什么LSTM能够从历史数据中学习并记住知识的原因,就是有了这三个门。

我在学习LSTM过程中一直混淆的几个概念是

1 多时间步长

图片来自:https://www.jiqizhixin.com/articles/2019-04-01-8?from=synced&keyword=LSTM

也就是使用t-2,t-1,t 的去预测 t+1时刻的值

2 多变量

也就是使用多个特征去预测,上图没有用到多时间步长

https://machinelearningmastery.com/multivariate-time-series-forecasting-lstms-keras/

这里有一片的博客,或许对你有帮助,其中需要注意的地方是:

他分别用多变量单步时长    和   多变量多步时长(Multiple Lag Timesteps)。

它们最大的不同点在于:

下图是单步时长:1

下面是多步时长:n_hours = 3 (可以设置为任何时长)

经过实践,发现多步时长的训练时间要长于单步的,准确率相比也有提高。相当于手动设置了要预测的值和之前多长时间中的值相关。有中上下文相关的意味。

3 预测未来多个时长

以上不管是多时步长还是单时步长,预测是输出值只有一个,如果我想输入当前值,预测未来多个值呢?

LSTM容易混淆的地方的更多相关文章

  1. this、new,容易混淆的地方

    this.new,容易混淆的地方 情况1 关系 情况2 new Foo() 等价于,推荐的写法是new Foo() new Foo new Foo() 不一样 Foo(), Foo()这种情况下,构造 ...

  2. pod和容器(容易混淆的地方)

    在Kubenetes中,所有的容器均在 pod 中运行,一个pod可以承载一个或者多个相关的docker容器(或rkt,以及用户自定义容器),同一个Pod中的容器可以部署在同一个物理机器(可以叫宿主机 ...

  3. Android 混淆与混淆过滤

    Android 中代码混淆一般用的是ProGuard.它除了混淆代码之后还有其它许多实用的功能.这里主要记录混淆相关的实现. 1.ProGuard的作用 删除无用代码,压缩和优化Class文件,缩小A ...

  4. android 通过eclipse混淆代码 打包 + proguard 总结

    android应用程序的混淆打包 1 . 在工程文件project.properties中加入下proguard.config=proguard.cfg , 如下所示: target=android- ...

  5. android 混淆配置

    proguard 原理Java代码编译成二进制class 文件,这个class 文件也可以反编译成源代码 ,除了注释外,原来的code 基本都可以看到.为了防止重要code 被泄露,我们往往需要混淆( ...

  6. a链接易混淆与form表单简易验证用法详解

    链接可以说遍布互联网,比如你想提供一个可以跳转到百度首页的链接给网友,那么代码如下: <a href="http://www.baidu.com">百度一下,你就知道& ...

  7. nasm汇编一些需要注意的地方

    经常用msam或tasm的童鞋一下转换到nasm下可能觉得不怎么适应,它们应该先去晓习一下gas的语法,然后就适应了-that's only a joke! :) section .data v101 ...

  8. LSTM时间序列预测及网络层搭建

    一.LSTM预测未来一年某航空公司的客运流量 给你一个数据集,只有一列数据,这是一个关于时间序列的数据,从这个时间序列中预测未来一年某航空公司的客运流量.数据形式: 二.实战 1)数据下载 你可以go ...

  9. [java基础]一文理解java多线程必备的sychronized关键字,从此不再混淆!

    java并发编程中最长用到的关键字就是synchronized了,这里讲解一下这个关键字的用法和容易混淆的地方. synchronized关键字涉及到锁的概念, 在java中,synchronized ...

随机推荐

  1. 用一行Python代码制作动态二维码

    在GitHub上发现了一个比较有意思的项目,只需要一行Python代码就可以快捷方便生成普通二维码.艺术二维码(黑白/彩色)和动态GIF二维码. GitHub网站参见:https://github.c ...

  2. Java设计模式:Factory Method(工厂方法)模式

    概念定义 工厂方法(Factory Method)模式,又称多态工厂(Polymorphic Factory)模式或虚拟构造器(Virtual Constructor)模式.工厂方法模式通过定义工厂抽 ...

  3. 前端之jquery1

    jquery介绍 jQuery是目前使用最广泛的javascript函数库.据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库.微软公司甚至把jQuery作为他们的官方库. ...

  4. PI对于两个SAP客户端通道的了解

    你把你的报文放到ESR的MM里面试一下就知道了 日期格式之类的,可能有转换的你要输入2019-05-13这种 OA到PI不选,都是到一个系统,由PI再来分流 如果你要做成由OA来选的,就要参考类似于  ...

  5. java基础(7):自定义类、ArrayList集合

    1. 引用数据类型(类) 1.1 引用数据类型分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类.Random类. 我们可以把类的类型为两种: 第一种,Java为我们提供好 ...

  6. python web框架Django——ORM

    ORM简介 MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库 ORM是“对象-关系-映射”的简称 ...

  7. FCC---Animate Elements Continually Using an Infinite Animation Count---设置animation-iteration-count的次数为无限,让小球一直跳动

    The previous challenges covered how to use some of the animation properties and the @keyframes rule. ...

  8. Android Studio当中的创建新方法的快捷键该如何使用?

    当有红线出现的时候,我们的代码并没有编译出错,则需要输入alt+enter则可以得到相应的神奇效果了.这个方法我竟然今天才知道,也真是丢脸了.比如说我们书写了一个新的没有创建的方法,我们直接输入alt ...

  9. Android框架Volley之:利用Imageloader和NetWorkImageView加载图片

    首先我们在项目中导入这个框架: implementation 'com.mcxiaoke.volley:library:1.0.19' 在AndroidManifest文件当中添加网络权限: < ...

  10. Linux 查找目录下大于*M的文件

    1. 查找指定文件夹下等于1M的文件 find ./ -size 1M | wc -l 2. 查找指定文件夹下大于1M的文件 find ./target_path -size +1M | wc -l