LSTM容易混淆的地方

Posted zhxuxu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LSTM容易混淆的地方相关的知识,希望对你有一定的参考价值。

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容易混淆的地方的主要内容,如果未能解决你的问题,请参考以下文章

Scrum与LeSS容易混淆的几个地方

js 变量声明易混淆的几点知识

混淆矩阵只需要 0 和 1 类

android 混淆 不完整版

容易混淆的点

容易混淆的 i++ 与 ++i