一、自回归LSTM(ARLSTM)
ARLSTM是由 Google Deep-Mind 构建的,用于创建WaveNet(一种生成原始音频序列的模型)。在时间序列的背景下,允许预测具有不同尺度的时间序列,如小时、天或月,同时避免不得不重新训练一个新模型。它的缺点是错误的积累,由于预测和实际值之间总是存在一些差异,在ARLSTM中随着反馈回模型而累积,这意味着后来的预测会比先前的预测有更大的误差。
二、ARLSTM的使用
1、ARLSTM模型类封装
ARLSTM模型主要包括三层,首先第一层位LSTMCell,其具备访问如状态和预测等更细力度的信息,然后是第二层RNN层,训练上一层LSTMCell的结果,最后将输出通过第三层Dense层进行数据预测。下面将该模型封装至AutoRegressive类,该类同样继承自Keras中的Model 类。
class AutoRegressive(Model):
def __init__(self, units, out_steps):
super().__init__()
self.out_steps = out_steps
self.units = units
self.lstm_cell = LSTMCell(units)
self.lstm_rnn = RNN(self.lstm_cell, return_state=True)
self.dense = Dense(train_df.shape[1])
由于每轮的预测会继续作为输入反馈至模型中继续生成预测,因此在AutoRegressive类中需要定义一个单独的方法