AutoBNN:使用组合贝叶斯神经网络进行概率时间序列预测

AutoBNN 将传统概率方法的可解释性与神经网络的可扩展性和灵活性相结合,使用复杂数据构建复杂的时间序列预测模型。

时间序列问题无处不在,从预测天气和交通模式到了解经济趋势。贝叶斯方法从对数据模式(先验概率)的假设开始,收集证据(例如,新的时间序列数据),并不断更新该假设以形成后验概率分布。传统的贝叶斯方法,如高斯过程(GP) 和结构时间序列,被广泛用于对时间序列数据进行建模,例如常用的莫纳罗亚 CO2数据集。然而,它们通常依赖于领域专家精心选择合适的模型组件,并且可能在计算上很昂贵。神经网络等替代方案缺乏可解释性,因此很难理解它们如何生成预测,并且不会产生可靠的置信区间。

为此,我们推出了AutoBNN ,这是一个用JAX编写的新开源包。AutoBNN 可自动发现可解释的时间序列预测模型,提供高质量的不确定性估计,并可有效扩展以用于大型数据集。我们描述了 AutoBNN 如何将传统概率方法的可解释性与神经网络的可扩展性和灵活性相结合。

自动 BNN

AutoBNN 基于一条研究路线, 该路线在过去十年中通过使用具有学习到的核结构的 GP 对时间序列进行建模,提高了预测准确性。 GP 的核函数对所建模函数的假设进行编码,例如是否存在趋势、周期性或噪声。 对于学习到的 GP 核,核函数是组合定义的:它要么是基本核(例如、、或),要么是使用、或 等运算符组合两个或多个核函数的复合核。 这种组合核结构有两个相关用途。首先,它足够简单,即使是数据专家(但不一定精通 GP)的用户可以为他们的时间序列构建合理的先验。 其次,可以使用序贯蒙特卡罗等技术对小结构进行离散搜索,并可以输出可解释的结果。 LinearQuadraticPeriodicMatérnExponentiatedQuadraticAdditionMultiplicationChangePoint

AutoBNN 改进了这些想法,用贝叶斯神经网络(BNN)取代了 GP,同时保留了组合核结构。BNN 是一种具有权重概率分布而非固定权重集的神经网络。这会在输出上产生分布,从而捕捉预测中的不确定性。与 GP 相比,BNN 具有以下优势:首先,训练大型 GP 的计算成本很高,而传统的训练算法会随着时间序列中数据点数量的立方而扩展。相比之下,对于固定宽度,训练 BNN 通常与数据点数量大致呈线性关系。其次,与 GP 训练操作相比,BNN 更适合 GPU 和TPU硬件加速。第三,组合 BNN 可以轻松与具有特征发现能力的传统深度 BNN相结合。可以想象“混合”架构,其中用户指定Add(Linear,, )的顶层结构,而深度 BNN 则用于学习来自潜在高维协变量信息的贡献Periodic。Deep

那么,如何将具有组合核的 GP 转换为 BNN?单层神经网络通常会随着神经元数量(或“宽度”)趋于无穷大而收敛为 GP 。最近,研究人员发现了相反的对应关系——许多流行的 GP核(例如Matern、ExponentiatedQuadratic或)可以通过选择适当的激活函数和权重分布获得无限宽度的 BNN。此外,即使宽度远小于无穷大,这些 BNN 仍然接近相应的 GP。例如,下图显示了观测值对之间的协方差差异,以及真实 GP 及其相应的宽度为 10 的神经网络版本的回归结果。PolynomialPeriodic

AutoBNN-4

真实 GP 核(上行)与其宽度为 10 的神经网络近似(下行)之间的Gram 矩阵比较。

AutoBNN-5

真实 GP 核(上行)与其宽度为 10 的神经网络近似(下行)之间的回归结果比较。

 

最后,使用 GP 上的和运算符的BNN 类似物完成转换,并输入扭曲以产生周期性内核。BNN 加法直接通过将组件 BNN 的输出相加给出。BNN 乘法是通过将 BNN 隐藏层的激活相乘,然后应用共享的密集层来实现的。因此,我们仅限于将具有相同隐藏宽度的 BNN 相乘。AdditionMultiplication

使用 AutoBNN

AutoBNN包在Tensorflow Probability中可用。它在JAX中实现并使用flax.linen神经网络库。它实现了迄今为止讨论过的所有基本内核和运算符(Linear、Quadratic、Matern、ExponentiatedQuadratic、Periodic、Addition)Multiplication,以及一个新内核和三个新运算符:

一个OneLayer内核,一个隐藏层ReLU BNN,

ChangePoint允许在两个内核之间平滑切换的运算符,

一个LearnableChangePoint与 相同的运算符,ChangePoint除了位置和斜率被赋予先验分布并且可以从数据中学习之外,并且

一名WeightedSum操作员。

WeightedSum将两个或多个 BNN 与可学习的混合权重相结合,其中可学习的权重遵循狄利克雷先验。默认情况下,使用浓度为 1.0 的平坦狄利克雷分布。

WeightedSums允许“软”版本的结构发现,即一次训练许多可能模型的线性组合。与使用离散结构的结构发现(例如AutoGP )相比,这允许我们使用标准梯度方法来学习结构,而不是使用昂贵的离散优化。WeightedSum 允许我们并行评估潜在的组合结构,而不是连续评估它们。

为了轻松实现探索,AutoBNN 定义了许多包含顶层或内部的模型结构WeightedSums。这些模型的名称可用作任何估算器构造函数中的第一个参数,包括sum_of_stumps(WeightedSum所有基础内核的)和sum_of_shallow(将基础内核与所有运算符的所有可能组合相加)。

AutoBNN-3

sum_of_stumps 模型的图示。顶行中的条形图显示每个基本内核的贡献量,底行显示基本内核所代表的函数。结果加权和显示在右侧。

 

下图展示了M3数据集中 N374(自 1949 年开始的年度财务数据时间序列)的结构发现技术。六个基本结构分别是(与径向基函数核(简称RBFExponentiatedQuadratic )相同)、、、和核。该图显示了32个粒子集合的 MAP 权重估计值。所有高似然粒子都给予 组件较大的权重,给予、和较小的权重,并给予或较大的权重。MaternLinearQuadraticOneLayerPeriodicPeriodicLinearQuadraticOneLayerRBFMatern

AutoBNN-6

32 个粒子的基础核权重的MAP估计值的平行坐标图。 sum_of_stumps 模型在 M3 数据集的 N374 系列上进行训练(蓝色插入)。较深的线代表可能性较高的粒子。

 

通过使用WeightedSums作为其他运算符的输入,可以表达丰富的组合结构,同时保持模型紧凑且可学习权重的数量较少。例如,我们包括一个模型sum_of_products(如下图所示),它首先创建两个的成对乘积WeightedSums,然后创建两个乘积的总和。通过将一些权重设置为零,我们可以创建许多不同的离散结构。此模型中可能的结构总数为 2 16,因为有 16 个可以打开或关闭的基本内核。所有这些结构都可以通过仅训练这一个模型来隐式探索。

AutoBNN-2

“sum_of_products” 模型的图示。四个 WeightedSum 中的每一个都具有与“sum_of_stumps”模型相同的结构。

 

然而,我们发现某些核的组合(例如Periodic和的乘积Matern或ExponentiatedQuadratic)会导致许多数据集过度拟合。为了防止这种情况,我们定义了模型类,sum_of_safe_shallow在使用 进行结构发现时排除此类乘积WeightedSums。

对于训练,AutoBNN 提供AutoBnnMapEstimator和AutoBnnMCMCEstimator分别执行 MAP 和 MCMC 推理。任一估计器都可以与六个似然函数中的任何一个结合使用,其中四个基于具有不同噪声特征的连续数据的正态分布,两个基于计数数据的负二项分布。

AutoBNN-1-英雄

在我们的示例colab中,对Mauna Loa CO2数据集运行 AutoBNN 的结果。该模型捕捉了数据中的趋势和季节性成分。推断未来,平均预测略微低估了实际趋势,而 95% 置信区间则逐渐增加。

为了拟合如上图所示的模型,只需使用scikit-learn启发的估计器界面,编写以下 10 行代码:

导入 autobnn 作为 ab

模型 = ab.operators.Add(

    bnns=(ab.kernels.PeriodicBNN(宽度=50),

          ab.kernels.LinearBNN(宽度=50),

          ab.kernels.MaternBNN(宽度=50)))

估计器 = ab.estimators.AutoBnnMapEstimator(

    模型,'normal_likelihood_logistic_noise',jax.random.PRNGKey(42),

    周期=[12])

估计器.fit(我的训练数据xs,我的训练数据ys)

低,中,高 = 估计器.predict_quantiles(my_training_data_xs)

结论

AutoBNN提供了一个强大而灵活的框架,可用于构建复杂的时间序列预测模型。通过将 BNN 和 GP 的优势与组合核相结合,AutoBNN 为理解和预测复杂数据开辟了无限可能。我们邀请社区试用 colab ,并利用此库进行创新并解决现实世界的挑战。

致谢

AutoBNN 由 Colin Carroll、Thomas Colthurst、Urs Köster 和 Srinivas Vasudevan 编写。我们非常感谢 Kevin Murphy、Brian Patton 和 Feras Saad 提供的建议和反馈。


版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论