Questions tagged «lstm»

LSTM代表长期短期记忆。大多数时候,当我们使用这个术语时,我们指的是递归神经网络或更大网络的一部分(一部分)。

1
使用LSTM进行时间序列预测:使时间序列平稳的重要性
在关于平稳性和差分的链接中,已经提到诸如ARIMA之类的模型需要平稳的时间序列进行预测,因为其统计特性(例如均值,方差,自相关等)随时间是恒定的。由于RNN具有更好的学习非线性关系的能力(如此处给出:用于时间序列预测的递归神经网络),并且在数据量较大时,其性能要优于传统的时间序列模型,因此了解平稳性至关重要数据会影响其结果。我需要知道答案的问题如下: 对于传统的时间序列预测模型,时间序列数据的平稳性使其更易于预测,原因和方式如何? 在使用LSTM建立时间序列预测模型的同时,使时间序列数据平稳是否重要?如果是这样,那为什么呢?

2
滑动窗是否导致LSTM过度装配?
如果我通过滑动窗口方法训练LSTM,我会过拟合吗?为什么人们似乎并没有使用它LSTMs? 为了简化示例,假设我们必须预测字符序列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 如果我继续用以下迷你批次训练LSTM是不好的(还是更好的?): A B C D E F G H I J K L M N, backprop, erase the cell B C D …


4
LSTM时间序列预测的预测间隔
是否有一种方法可以根据LSTM(或其他递归)神经网络在时间序列预测周围计算预测间隔(概率分布)? 假设举例来说,根据最近观察到的10个样本(t-9至t),我预测了10个样本(t + 1至t + 10),我希望在t + 1的预测会更多比t + 10时的预测准确。通常,可能会在预测周围绘制误差线以显示间隔。使用ARIMA模型(在正态分布误差的假设下),我可以围绕每个预测值计算预测间隔(例如95%)。我可以从LSTM模型中计算出相同的值(或与预测间隔有关的值)吗? 我一直在Keras / Python的LSTMs,下面很多来自例子machinelearningmastery.com,从我的示例代码(见下文)的基础上的。我正在考虑将问题重新分类为离散的分类,因为这会使每个类产生置信度,但这似乎是一个糟糕的解决方案。 有几个类似的主题(例如以下主题),但是似乎没有什么可以直接解决LSTM(或其他)神经网络的预测间隔问题: /stats/25055/how-to-calculate-the-confidence-interval-for-time-series-prediction 使用ARIMA和LSTM进行时间序列预测 from keras.models import Sequential from keras.layers import Dense from keras.layers import LSTM from math import sin from matplotlib import pyplot import numpy as np # Build an LSTM network and train def fit_lstm(X, y, …

3
Keras的model.predict函数的输出是什么意思?
我建立了一个LSTM模型来预测Quora官方数据集上的重复问题。测试标签为0或1。1表示问题对重复。使用建立模型后model.fit,我将model.predict在测试数据上使用模型进行测试。输出是一个值数组,如下所示: [ 0.00514298] [ 0.15161049] [ 0.27588326] [ 0.00236167] [ 1.80067325] [ 0.01048524] [ 1.43425131] [ 1.99202418] [ 0.54853892] [ 0.02514757] 我只显示数组中的前10个值。我不明白这些值是什么意思,每个问题对的预计标签是什么?

2
如何在Keras中实现“一对多”和“多对多”序列预测?
我很难解释一对一(例如,单个图像的分类)和多对多(例如,图像序列的分类)序列标签的Keras编码差异。我经常看到两种不同的代码: 类型1是没有应用TimeDistributed的地方,如下所示: model=Sequential() model.add(Convolution2D(nb_filters, kernel_size[0], kernel_size[1], border_mode="valid", input_shape=[1, 56,14])) model.add(Activation("relu")) model.add(Convolution2D(nb_filters, kernel_size[0], kernel_size[1])) model.add(Activation("relu")) model.add(MaxPooling2D(pool_size=pool_size)) model.add(Reshape((56*14,))) model.add(Dropout(0.25)) model.add(LSTM(5)) model.add(Dense(50)) model.add(Dense(nb_classes)) model.add(Activation("softmax")) 类型2是应用TimeDistributed的地方,如下所示: model = Sequential() model.add(InputLayer(input_shape=(5, 224, 224, 3))) model.add(TimeDistributed(Convolution2D(64, (3, 3)))) model.add(TimeDistributed(MaxPooling2D((2,2), strides=(2,2)))) model.add(LSTM(10)) model.add(Dense(3)) 我的问题是: 我的假设是正确的,类型1是一对多类型,类型2是多对多类型吗?还是TimeDistributed在这方面没有关联? 在一对多或多对多的情况下,最后一个密集层应为1个节点“长”(依次仅发出一个值), 而先前的循环层负责确定有多少个 1长发射的价值?或者最后一个密集层应该由N个节点组成,其中N=max sequence length?如果是这样, 当我们可以 使用N个并行“原始”估计量产生具有多个输出的相似输入时,在这里使用RNN 有什么意义? 如何定义RNN中的时间步数?它是某种程度上 与输出序列长度相关,还是只是 需要调整的超参数? 上面我的Type …
13 keras  rnn  lstm  sequence 

1
多维和多元时间序列预测(RNN / LSTM)Keras
我一直在尝试了解如何使用Keras(或TensorFlow)来表示和塑造数据以进行多维和多变量时间序列预测,但是在阅读了许多有关如何在Web站点中呈现数据的博客文章/教程/文档后,我仍然不清楚。正确的形状(大多数示例略少一些) 我的数据集: 几个城市 我有关于温度,汽车通行性,湿度的信息 可以说最近2年(每天1条记录) 我想做的事情: 我想使用温度,汽车通行和湿度的滞后版本来预测每个城市明年的平均气温(当然会有更多功能,但这只是一个思想示例)。 我感到困惑的是: 如果我有2个城市,并且在365天内记录了3个要素。我应该如何调整我的输入,以便模型可以输出这两个城市365天的预报(即365天的2个时间序列的温度)? 直观上,张量形状将(?, 365, 3)持续365天和3个特征。但是我不确定该坚持第一维度是什么,最重要的是,如果一定要针对城市数量,我会感到惊讶。但与此同时,我也不知道如何在模型中指定必须正确理解尺寸的模型。 任何指针都会有所帮助。我对问题的其余部分非常熟悉(即,您如何在Keras中构建网络等,因为我已经为其他神经网络完成了此操作,但更具体地说是如何最好地编码所需输入的序列)。 哦,而且,我想我可以对每个城市进行独立的培训和预测,但是我敢肯定,每个人都会同意有可能要学习的东西并不是每个城市所独有的,只有在考虑其中的几个时才能看到,因此,为什么我认为在模型中对其进行编码很重要。
12 python  keras  rnn  lstm 

1
那么LSTM有什么收获呢?
我正在扩展我对Keras软件包的了解,并且一直在使用一些可用的模型作为工具。我有一个NLP二进制分类问题,我正在尝试解决,并且一直在应用不同的模型。 在获得了一些结果并越来越多地了解LSTM之后,看来这种方法远远优于我尝试过的任何方法(跨多个数据集)。我一直在想自己,“为什么/何时不使用LSTM?”。在某些模型的梯度逐渐消失之后,使用LSTM固有的附加门对我来说非常有意义。 那么LSTM有什么收获呢?他们在哪里做得不好?我知道没有“一刀切”的算法,因此LSTM必须有一个缺点。

3
是否有适用于python的好的即用型语言模型?
我正在为一个应用程序制作原型,我需要一个语言模型来计算一些生成的句子的困惑度。 我可以随时使用经过训练的python语言模型吗?简单的东西 model = LanguageModel('en') p1 = model.perplexity('This is a well constructed sentence') p2 = model.perplexity('Bunny lamp robert junior pancake') assert p1 < p2 我看过一些框架,但找不到我想要的。我知道我可以使用类似: from nltk.model.ngram import NgramModel lm = NgramModel(3, brown.words(categories='news')) 这在Brown Corpus上使用了很好的图林概率分布,但是我正在一些大型数据集(例如1b单词数据集)上寻找精心设计的模型。我可以真正相信一般领域的结果(不仅是新闻)
11 python  nlp  language-model  r  statistics  linear-regression  machine-learning  classification  random-forest  xgboost  python  sampling  data-mining  orange  predictive-modeling  recommender-system  statistics  dimensionality-reduction  pca  machine-learning  python  deep-learning  keras  reinforcement-learning  neural-network  image-classification  r  dplyr  deep-learning  keras  tensorflow  lstm  dropout  machine-learning  sampling  categorical-data  data-imputation  machine-learning  deep-learning  machine-learning-model  dropout  deep-network  pandas  data-cleaning  data-science-model  aggregation  python  neural-network  reinforcement-learning  policy-gradients  r  dataframe  dataset  statistics  prediction  forecasting  r  k-means  python  scikit-learn  labels  python  orange  cloud-computing  machine-learning  neural-network  deep-learning  rnn  recurrent-neural-net  logistic-regression  missing-data  deep-learning  autoencoder  apache-hadoop  time-series  data  preprocessing  classification  predictive-modeling  time-series  machine-learning  python  feature-selection  autoencoder  deep-learning  keras  tensorflow  lstm  word-embeddings  predictive-modeling  prediction  machine-learning-model  machine-learning  classification  binary  theory  machine-learning  neural-network  time-series  lstm  rnn  neural-network  deep-learning  keras  tensorflow  convnet  computer-vision 

2
LSTM在哪一层上辍学?
使用LSTM带缺失的多层,是否建议在所有隐藏层以及输出密集层上放置缺失?在欣顿的论文(提出了Dropout)中,他只将Dropout放在了Dense层上,但这是因为隐藏的内部层是卷积的。 显然,我可以测试我的特定模型,但是我想知道是否对此达成共识?


1
使用RNN(LSTM)进行手势识别系统
我正在尝试构建用于对ASL(美国手语)手势进行分类的手势识别系统,因此我的输入应该是来自摄像机或视频文件的帧序列,然后它检测到该序列并将其映射到对应的帧课堂(睡眠,帮助,饮食,跑步等) 事情是我已经建立了一个类似的系统,但是对于静态图像(不包括运动),它仅在构建CNN是直截了当的任务时才用于翻译字母,这是有用的,因为手不会动太多,并且数据集结构也很容易管理,因为我正在使用keras,也许仍然打算这样做(每个文件夹都包含一组用于特定符号的图像,并且文件夹的名称是该符号的类名,例如:A,B,C ,..) 我的问题是,如何组织我的数据集以便能够将其输入到keras中的RNN中,以及应使用哪些特定函数有效地训练我的模型和任何必要的参数,有些人建议使用TimeDistributed类,但我不这样做对如何使用它有利于我有一个清晰的想法,并考虑到网络中每一层的输入形状。 同样考虑到我的数据集将由图像组成,我可能需要一个卷积层,将conv层组合到LSTM层中是怎么可行的(我的意思是代码)。 例如,我想象我的数据集是这样的 名为“运行”的文件夹包含3个文件夹1、2和3,每个文件夹对应于其序列中的框架 所以RUN_1将包含一些图像集的第一帧,RUN_2第二帧和Run_3第三,我的模型的目标是这个顺序输出字的培训运行。

1
具有一维时间序列的Keras LSTM
我正在学习如何使用Keras,并使用Chollet的Python深度学习中的示例在标记数据集上取得了合理的成功。数据集是〜1000个时间序列,长度为3125,具有3个潜在类别。 我想超越基本的Dense层,该层为我提供了约70%的预测率,并且本书继续讨论LSTM和RNN层。 所有示例似乎都为每个时间序列使用了具有多个功能的数据集,因此我正在努力研究如何实现数据。 例如,如果我有1000x3125时间序列,如何将其输入到SimpleRNN或LSTM层中?我是否缺少有关这些层功能的一些基本知识? 当前代码: import pandas as pd import numpy as np import os from keras.models import Sequential from keras.layers import Dense from keras.layers import LSTM, Dropout, SimpleRNN, Embedding, Reshape from keras.utils import to_categorical from keras import regularizers from sklearn.model_selection import train_test_split import matplotlib.pyplot as plt def readData(): # …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.