【时序预测】浅谈为什么NeurIPS 24 CycleNet不适用工业时序数据集?
·
论文链接:[2409.18479] CycleNet: Enhancing Time Series Forecasting through Modeling Periodic Patterns
我们来看一下CycleNet的关键代码:
class RecurrentCycle(torch.nn.Module):
def __init__(self, cycle_len, channel_size):
super(RecurrentCycle, self).__init__()
self.cycle_len = cycle_len
self.channel_size = channel_size
self.data = torch.nn.Parameter(torch.zeros(cycle_len, channel_size), requires_grad=True)
def forward(self, index, length):
gather_index = (index.view(-1, 1) + torch.arange(length, device=index.device).view(1, -1)) % self.cycle_len
return self.data[gather_index]
其中,self.data即作者文章提到的Q,也就是说作者假设所有样本共享一个周期模式。
我们简单想一想,工业时序数据集是不可能出现所有样本都是完美的具有一样周期的波(就算你对数据预处理,也无法保证每一个样本具有相同的周期模式)。其次,要从一个随机参数拟合出所有样本共享的周期模式的难度可想而知。
以下呈现CycleNet和Dlinear工业负载时序数据上的预测结果:

CycleNet预测结果

DLinear预测结果
可以看出,CycleNet给出了非常糟糕的预测结果,这让我大跌眼镜,究其原因,是在这个负载数据集中,每个样本的周期是不一致的,而且每个样本不是完美的正弦波,以至于Q学到的几乎是噪声,从而预测的差也合理。
CycleNet严苛的假设让它在工业时序数据集上实现可靠预测几乎不可能。
更多推荐
所有评论(0)