Keras 用跳跃(异常值)预测输出的最佳标准化技术和LSTM结构是什么?

Keras 用跳跃(异常值)预测输出的最佳标准化技术和LSTM结构是什么?,keras,time-series,lstm,normalization,forecasting,Keras,Time Series,Lstm,Normalization,Forecasting,我有一个时间序列预测案例,有十个特征(输入),只有一个输出。我使用22个时间步(特征的历史记录)来使用LSTM进行一步超前预测。另外,我应用MinMaxScaler进行输入规范化,但不规范输出。输出包含一些罕见的跳跃(例如20、50或大于100),但其他值介于0和~5之间(所有值均为正值)。在这种情况下,正确预测正常和异常输出非常重要,这样我就不想错过预测模型中的跳跃。我认为如果我使用MinMaxScaler作为输出,大多数值将接近于零,但其他值(异常值)将接近于一 规范化输出的最佳方法是什么

我有一个时间序列预测案例,有十个特征(输入),只有一个输出。我使用22个时间步(特征的历史记录)来使用LSTM进行一步超前预测。另外,我应用
MinMaxScaler
进行输入规范化,但不规范输出。输出包含一些罕见的跳跃(例如20、50或大于100),但其他值介于0和~5之间(所有值均为正值)。在这种情况下,正确预测正常和异常输出非常重要,这样我就不想错过预测模型中的跳跃。我认为如果我使用
MinMaxScaler
作为输出,大多数值将接近于零,但其他值(异常值)将接近于一

  • 规范化输出的最佳方法是什么?我应该不正常化就离开吗

  • 处理此问题的最佳LSTM结构是什么?(目前,我使用带有
    relu
    的LSTM和带有
    relu
    的密集层作为最后一层,因此我的输出将是正值)。我认为我应该为这种情况正确选择激活功能


我认为,首先,你应该决定衡量绩效的指标。例如,您想使用MAE还是MSE?或者根据手头的任务确定其他指标。例如,对于“罕见跳跃”,您可以容忍更大的错误,但对于正常情况,则不能容忍,反之亦然。一旦确定了误差度量,理想情况下,应将其设置为LSTM网络将最小化的成本函数

现在的目标是最小化所需的错误度量。如果这是一个凸问题,那么输出的缩放就无关紧要了。但我们现在发现,复杂的深度学习体系结构并非如此。这意味着,在使用梯度下降最小化代价函数的同时,它可能会陷入局部极小值,从而导致延迟收敛。在这种情况下,规范化输出可能会有所帮助。怎么做

假设输出的平均值为5。最后一层参数初始化在零左右,偏差值为零(即relu的线性变换),网络需要了解偏差应在5左右。根据网络的复杂性,这可能需要一些时间。但是,如果将数据标准化,或将偏差初始化为5,则网络将从偏差的良好估计开始,从而收敛得更快

现在回到你的问题:

  • 我至少会使输出为零,并使用线性输出的密集层

  • 您拥有的架构看起来不错,如果您认为输入具有复杂的时间依赖性,可以尝试堆叠2-4个LSTM层

  • 请随时使用代码和您获得的性能来更新OP,我们可以讨论其他可以改进的地方