查看原文
其他

用状态空间法(卡尔曼滤波)解决深度高斯过程问题

丹师 PaperWeekly 2022-07-04


©作者 | 丹师

单位 | 伯明翰大学

研究方向 | 机器学习


本文来自于一篇博士论文,上周查阅 Cross Validated 时候发现的。这篇论文让我眼前一亮是使用 Kalman filter(卡尔曼滤波)去解决机器学习(Deep Gaussian Process, DGP)的问题。而且论文的外审专家和答辩评委(pre-examiner, opponent)是 David Duvenaud 和 Manfred Opper,两人都是机器学习 GP 和 SDE 的大牛,论文的质量应该是有保证的。论文比较长而且其第 2,3 章的内容不是我的专业而且和 GP 没多大关系,因此只讨论第四章。第四章的内容貌似大部分来源于这个论文。


论文标题:

State-space deep Gaussian processes with applications

关键词:

高斯过程,状态空间,卡尔曼滤波

论文链接:

https://github.com/zgbkdlm/dissertation/blob/main/dissertation.pdf

https://link.springer.com/article/10.1007/s11222-021-10050-6

https://aaltodoc.aalto.fi/handle/123456789/111268

代码链接:

https://github.com/zgbkdlm/dissertation


这也是笔者第一次写学习笔记,花了好长时间阅读,如有错误请大佬评论区指出勿喷。



背景介绍


高斯过程(Gaussian process),以下简称 GP [1],是一种广泛应用于机器学习中的概率模型。如果一个过程 是 GP 的话,我们一般我们用以下公式来表示:




上述公式中,C 是核函数(kernel function),也叫协方差函数(covariance function),另外 C 有两个超参数 需要人工设定或者从数据集中学习、估计。e 代表观测的高斯噪声。以下我们假设 f 的均值函数(mean function)是 0。

GP 的优势主要是因为他是 Infinite-dimensional 模型。怎么理解呢?设想神经网络,其网络权值需要从数据中学习,而且学到的值是 deterministic 固定的。而 GP 是 non-parametric,从数据中学到是一个分布,是一个关于函数的后验分布,因此包含无限种取值可能性。但相应的,这牺牲了 GP 的计算复杂度。

GP 主要有两个问题:

1. 计算复杂度高;
2. 对非稳态(non-stationary)的数据表现不好。

这也是这篇论文所关注的问题。我们先看一下这两个问题怎么回事:

假设我们有一个数据集 ,那么后验分布也是个高斯过程,而且后验分布的均值和方差为 [1]


▲ GP posterior, 图片来源于[1].

可以看到,上公式有个矩阵求逆,而且这个矩阵的大小是和数据的数量 N 有关的,因此 GP 回归问题的计算复杂度为 。如果 N 特别大的话 GP 会很耗时。解决这个问题的典型方法有比如 sparse GP 等模型。

那么另外一个 non-stationary 的问题是什么意思的?我们平常最常用的 kernel,比如 squared exponential, Matern 等都是构建 stationary GP。这个  stationary 意思是 ,也就是说 GP 的概率分布是平移不变的(translation invariant)。通俗点说,stationary 假设 GP 的“特征(比如平滑性、频率等)”随时间是不会变化的。

这个假设对很多应用不切合实际。比如说,方波在跳变处会有特征的变化,图像在物体边缘处也会有明显的特征变化。解决这个 stationary 的问题那就是使用 non-stationary GP,主要思路就是使超参数 是随时间变化的。目前有 GP experts [2] 及其他方法 [3][4][5]。当然,还有一种方法那就是用深度高斯过程(Deep Gaussian Process,以下简称 DGP)[6]

我们下面介绍这篇论文是怎么解决这两个问题的。



主要做了什么


如前所述,这篇论文主要是为了解决 GP 计算复杂度和引入 non-stationarity 的问题。根据我的理解,论文作者的思路是用随机微分方程(stochastic differential equations,以下简称 SDE)来构建 GP。

如果要构建 non-statioanry GP,那就使用多层级联 SDE 来构建一个系统,在这系统中,GP 的参数(及其参数的参数, 如此类推)也由 SDE 构建。这就是论文作者所称的 state-space deep Gaussian process(以下简称 SS-DGP)。

如果 GP 或者 SS-DGP 是用 SDE 来表达的,那么他们就是马尔科夫过程(Markov process),因此可以使用(non-linear)卡尔曼滤波(Kalman filter)去解决他们的回归 regression 问题。卡尔曼滤波的计算是非常快的,计算复杂度是线性只有 ,因此也就解决了计算复杂度的问题。



正文


我们先从如何构建 DGP 来引入 non-stationary 的问题。假设 是一个 GP,用前面的公式表示也就是:



这里有两个参数 。那么为了引入 non-stationarity,我们可以让参数也随时间变化,比如:



那么以此类推是不是也可以让 也随时间变化?我们因此可以构建一个深层结构:


这就是所谓的一种深度高斯过程(Deep Gaussian Process, DGP)。这里需要注意三点:

1. 这种 DGP 和 Damianou 等人在 2013 提出的 DGP [6] 有些许区别。此处的 DGP 是基于 parameterization,而 Damianou 等人的 DGP 是基于 composition 的。详情见 [7] 或者论文的 Introduction 有介绍。

2. kernel 的选择很局限。普通的 kernel 比如,squared exponential 和 matern 等其实并不允许其参数 随时间变化,否则的话 covariance 不能保证正定。而能让参数变化的 kernel 目前并不多 [4]。这也是后面要讲的 SS-DGP 的优点之一,因为并不受限于选择合适的 kernel 函数。

3. 求后验分布 很耗时也很复杂。可以使用 variational inference 估计,也可以用 MCMC 采样。

然后论文作者稍微泛化了一下这种 DGP:

▲ 原文公式4.17


▲ 原文公式4.17

然后定义 为 DGP。上式中带上下标的 代表每层的 GP,而 代表每层 GP 的参数 GP(应该是这样,说实话我没怎么看懂这部分的 notation 和那些上下标)。

然后重点来了,用随机微分方程(SDE)怎么表示这种 DGP 呢?

▲ 原文公式4.20


上式 SDE 系统中的每一个子 SDE 都是 conditionally 线性 SDE,也就是对应每个 GP。这就是 SS-DGP。对比普通的 DGP,SS-DGP 有什么优势呢?

1. SS-DGP 是 Markov process,也就是说后验分布可以通过非线性卡尔曼滤波解决,当然需要对 SDE 离散化以得到离散的状态空间如 这种。

2. 不需要指定 kernel ,只需要指定 SDE 的函数如上式的 ,... 等,因此不用担心 covariance 的正定问题。论文还探讨了这种 SS-DGP 构建的解的存在和唯一性(solution existence and uniqueness),由于不是笔者的专业,因此不作评。

论文有一个特殊例子可以更方便理解,可以看到, 被两个下层 GP 来表示它的


Example 4.16 所示的 SS-DGP 的样本如下所示:

▲ 可以看到 ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍有‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍很明显的 non-stationarity,其特征随时间随机变化。比如黑线在0~2s左右很平稳,但7~10s时震荡的很厉害。蓝线在2~4s和5~6s很震荡,但其他时间很平稳。这些特性在 stationary GP 中是几乎不会出现的。

滤波方面不是笔者的强项,总之公式 4.38 也就是 SS-DGP 可以用非线性卡尔曼滤波求后验分布(第二章应该有介绍怎么对这种系统滤波的)。

最后放一下论文中 SS-DGP 的一些 regression 实验:

▲ 可以看到 SS-DGP 对信号跳变的处理很好。右图:粒子滤波和平滑的估计

▲ 可以看到 SS-DGP 对信号频率的变化也处理的很好。图中 EKFS 是扩展卡尔曼滤波

我能理解的大概也就这么多吧。最后做个总结和评价。

▲ 笔者认为的各种 GP, DGP 模型的关系。因为并不是所有的 GP 都能用状态空间 SDE 表达,因此 SS-DGP 要比 DGP“小”一些。



个人评价

正面:用状态空间法(如 non-linear kalman filters 等)去解决 DGP 的问题这个思路很新颖,可以看做是经典控制论和机器学习的相结合。解决 DGP 目前流行的方法多为 varitional inference 和 MCMC, 但这些方法大多计算耗时复杂,此文的方法确实提供了一个崭新的思路,而且计算非常快( 复杂度)。我认为这个计算优势特别重要,因为传统的 DGP 模型的复杂度会随着深度的增加而大幅增加,但是 SSDGP 的复杂度仍然还是 ,增加的只是状态空间的维度。

负面/疑问:

1. 我很想看到和其它 DGP 解决方法的比较比如 [6][8],尤其是计算时间的比较,我觉得这很重要但作者的论文并没有给出;

2. 其次我认为所谓的 DGP 模型可能有些 overkill:真的有必要去用多层?什么应用情况下我们用多层?增加层数出会怎样影响复杂度?关于这一点论文作者并没有给出充足的实验或者经验性/定性的讨论;

3. 当前的 SS-DGP 模型只适用于一维输入的数据,也既是时序列 time series。GP 中的 x 维度为一。如何推广到多维 ?或者 spatio-temporal ?论文最后好像对此有讨论,但说实话,没看懂。

声明:

此文中的图片、援引公式均为原论文作者所有。此文不违反原作者声明的 license。



参考文献

[1] abCarl Edward Rasmussen and Christopher K. I. Williams. Gaussian Processes for Machine Learning http://www.gaussianprocess.org/gpml/

[2] Carl Edward Rasmussen and Zoubin Ghahramani. Infinite Mixtures of Gaussian Process Experts https://proceedings.neurips.cc/paper/2001/file/9afefc52942cb83c7c1f14b2139b09ba-Paper.pdf

[3] Markus et al. Non-Stationary Gaussian Process Regression with Hamiltonian Monte Carlo http://proceedings.mlr.press/v51/heinonen16.pdf

[4] abPaciorek. NONSTATIONARY GAUSSIAN PROCESSES FOR REGRESSION AND SPATIAL MODELLING https://www.stat.berkeley.edu/~paciorek/diss/paciorek-thesis.pdf

[5] Christian Plagemann et al. Nonstationary Gaussian Process Regression using Point Estimates of Local Smoothness http://ais.informatik.uni-freiburg.de/publications/papers/plagemann08ecml.pdf

[6] abcAndreas C. Damianou Neil D. Lawrence. Deep Gaussian Processes http://proceedings.mlr.press/v31/damianou13a.pdf

[7] Dunlop et al., How Deep Are Deep Gaussian Processes? https://arxiv.org/abs/1711.11280

[8] Hugh Salimbeni, Marc Deisenroth. Doubly Stochastic Variational Inference for Deep Gaussian Processes https://arxiv.org/abs/1705.08933



特别鸣谢

感谢 TCCI 天桥脑科学研究院对于 PaperWeekly 的支持。TCCI 关注大脑探知、大脑功能和大脑健康。



更多阅读




#投 稿 通 道#

 让你的文字被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。


📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算


📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿


△长按添加PaperWeekly小编




🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧



·

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存