在许多机器学习文献中,被建模的系统是瞬时的。Inputs -> outputs
,没有来自过去值的影响的概念。
在某些系统中,来自先前时间步长的输入是相关的,例如因为系统具有内部状态/存储。例如,在水文模型中,您有输入(雨、太阳、风)和输出(流量),但您也有不同深度的地表和土壤存储。在基于物理的模型中,您可以将这些状态建模为离散的桶,流入、流出、蒸发、泄漏等都根据物理定律。
如果您想在纯粹的经验意义上对流量进行建模,例如使用神经网络,您可以创建一个瞬时模型,并且您会得到好的初步近似结果(实际上在地表建模中,您可以轻松地做得比基于物理的模型...)。但是你会错过很多相关的信息——例如,水流本身相对于降雨量是滞后的。
解决这个问题的一种方法是包含输入特征的滞后变体。例如,如果您的数据是每小时的,则包括rain over the last 2 days
, rain over the last month
。根据我的经验,这些输入确实改善了模型结果,但对于您如何选择适当的滞后,这基本上是一个经验和反复试验的问题。有大量可能的滞后变量需要包括(直接滞后数据、滞后平均值、指数移动窗口等;多个变量,具有交互作用,并且通常具有高协方差)。我想理论上可以对最佳模型进行网格搜索,但这会非常昂贵。
我想知道a)是否有一种合理、便宜且相对客观的方法可以从几乎无限的选择中选择要包含的最佳滞后,或者b)是否有更好的方法在纯经验机器中表示存储池-学习模式。