Python 基于TensorFlow的时间序列分类初始化LSTM

Python 基于TensorFlow的时间序列分类初始化LSTM,python,machine-learning,tensorflow,time-series,lstm,Python,Machine Learning,Tensorflow,Time Series,Lstm,我正在TensorFlow上开发一个模型,将连续标签赋予时间序列的每个时间步。该模型旨在用于实时数据,以便在以前的时间步长上观察到的时间序列值将对LSTM属于当前时间步长的标签产生影响。为此,我使用了tf.contrib.rnn.LSTMCell 我的数据以每天的时间序列为基础,每分钟都有分辨率。时间序列的总长度始终相同下面,在左边的蓝色图中,您可以找到我的数据的示例 我想用+1和-1之间的浮点值对输入时间序列进行分类,这样+1对应于时间序列的最大值,-1对应于最小值,而任何其他值(在+1和-

我正在TensorFlow上开发一个模型,将连续标签赋予时间序列的每个时间步。该模型旨在用于实时数据,以便在以前的时间步长上观察到的时间序列值将对LSTM属于当前时间步长的标签产生影响。为此,我使用了
tf.contrib.rnn.LSTMCell

我的数据以每天的时间序列为基础,每分钟都有分辨率。时间序列的总长度始终相同下面,在左边的蓝色图中,您可以找到我的数据的示例

我想用+1和-1之间的浮点值对输入时间序列进行分类,这样+1对应于时间序列的最大值,-1对应于最小值,而任何其他值(在+1和-1之间)对应于介于两者之间的值。因此,我希望LSTM根据之前时间步长上观察到的值,预测我们是处于时间序列的最大值还是最小值目标标签的示例可以在上面的右图中看到,绿色

现在,为了成功,我需要给LSTM一个初始标签的估计值。否则,正如我获得的结果上面红色部分所示,,由于LSTM在时间序列上没有以前的上下文,初始预测标签将被大量删除


说到这里,我正在寻找关于初始化LSTM的最佳方法的意见。
LSTMCell
模块有一个
initializer
属性,但它用于初始化LSTM的状态,而不是确定初始标签应该是什么。例如,对于我上面展示的时间序列,如何配置LSTM,使其初始标签属性为0.75(初始目标标签的值)?

如果您有足够的序列(或者甚至有足够大的初始示例列表),那么您的模型应该调整其权重,以使初始值有意义

也就是说,您还可以尝试将初始状态训练为变量,如下所述

如果您不想预测初始值,但只想让模型从一个合理的值开始,则可以使用另一个选项。其思想是在初始值上运行模型(不进行预测),在处理该输入后获得模型的状态,并将状态作为初始状态提供给模型,以预测序列的其余部分。关于具体的例子,请看一下这个