Backprop KF: Learning Discriminative Deterministic State Estimators 反向传播卡尔曼滤波:学习判别确定性状态估计器

摘要

基于概率滤波器和平滑器的生成状态估计器是机器人和自动车辆状态估计器中最流行的一类状态估计器。然而,生成模型处理丰富的传感器观察(如相机图像)的能力有限,因为它们必须对整个传感器读数分布进行建模。判别模型不受这种限制,但通常作为状态估计的潜在变量模型训练起来更为复杂。提出了一种将潜在状态分布参数直接优化为确定性计算图的方法,得到了一种简单有效的梯度下降算法来训练判别性估计量。我们证明,这个过程可以用来训练使用复杂输入的状态估计器,如原始相机图像,这些图像必须使用具有表现力的非线性函数逼近器(如卷积神经网络)来处理。我们的模型可以看作是一种递归神经网络,与概率滤波的连接使我们能够设计一个特别适合于状态估计的网络结构。我们评估了使用原始图像输入的合成跟踪任务和KITTI数据集中的视觉测程任务的方法。结果表明,与标准生成方法和规则递归神经网络相比,该方法有显著的改进。

I. 简介

状态估计是移动机器人应用的重要组成部分,包括自主驾驶和飞行[22]。基于概率滤波器和平滑器的生成状态估计器是最流行的状态估计器之一。然而,生成模型在处理丰富的观察结果(如相机图像)方面受到限制,因为它们必须对传感器读数上的全部分布进行建模。这使得直接合并图像、深度地图和其他高维观测变得困难。相反,最流行的基于视觉的状态估计方法(如SLAM[22])是基于领域知识和几何原理的。识别器不需要对传感器读数上的分布进行建模,但对状态估计的训练更为复杂。CRFs[16]等判别模型通常不使用潜在变量,这意味着训练数据必须包含完整的状态观察。大多数实际的状态估计问题设置只提供部分标签。例如,我们可能通过GPS传感器观测到有噪声的位置读数,并需要推断出相应的速度。虽然判别模型可以用潜在状态[18]来增强,但这通常使它们更难训练。
我们提出了一种高效、可扩展的状态估计器判别训练方法。我们没有在概率潜在变量模型中进行推理,而是构造了一个具有等价表示能力的确定性计算图。然后利用简单的反向传播和梯度下降方法对计算图进行端到端优化。这对应于一种递归神经网络模型,该模型的网络结构是由第30届神经信息处理系统会议(NIPS 2016)在西班牙巴塞罗那提出的。
该工作的主要贡献是将判别概率状态估计量与递归计算图联系起来,从而推导出一种新的判别确定性状态估计方法。从概率模型的角度,提出了一种通过将表达判别状态估计量重构为具有代表性的等确定性模型来训练表达判别状态估计量的方法。从递归神经网络的角度出发,提出了一种基于成功概率状态估计模型的神经网络结构设计方法。我们在视觉跟踪问题上评估了我们的方法,这需要处理原始图像和处理严重的遮挡,并从KITTI数据集[8]中的图像估计车辆姿态。结果表明,该方法比标准生成方法和标准递归神经网络都有明显的改进。

II. 相关工作

一些最成功的状态估计方法是基于滤波和平滑的概率生成状态空间模型(SSMs)(图1)。卡尔曼滤波器可能是最著名的状态估计器,它可以通过线性化和无迹变换推广到非线性动态的情况。非参数滤波方法,如粒子滤波,也常用于多模态后验任务。想要了解更多标准的状态估计问题,请参考文献[22].
Alt
上图中,以EKF为例,上一时刻的所有信息,都包含在上一时刻的估计状态中,即状态变量与协方差矩阵。
生成模型的目的是估计状态观测序列 o 1 : T o_{1:T} o1:T上的分布,该分布是由一些潜在的隐藏状态 x 1 : T x_{1:T} x1:T产生的,通常被认为是系统的状态空间。当观察空间非常高维时,当观察是一个复杂的、高度非线性的状态函数时,这就变得不切实际了,比如在基于视觉的状态估计中, o t o_t ot对应于从机器人机载相机上看到的图像。复杂的观测模型[14]或近似推理[15]可以缓解生成状态空间估计的挑战,但如何建立有效的图像生成模型仍然是一个具有挑战性的开放性问题.
作为生成模型的一种替代方法,条件随机域(CRFs)等判别模型可以直接估计p(xt |o1:t)[16]。许多CRFs和条件状态空间模型(CSSMs)被应用于状态估计[21、20、12、17、9],通常使用对数线性表示。最近,利用非线性神经网络观测[6]对生成模型进行判别微调,以及利用神经网络因子[7]对CRFs进行直接训练,使得非线性判别模型的训练成为可能。然而,这类模型还没有广泛地应用于状态估计。训练CRFs和CSSMs通常需要访问真正的状态标签,而生成模型只需要观察,这通常使它们对于真正的底层状态未知的物理系统更方便。虽然CRF也与潜在状态[18]相结合,但由于CRF推理的困难,使得潜在状态CRF模型难以训练。以前的工作也提出了优化SSM参数的相关辅助损失[1]。与此相反,我们的方法结合了丰富的感官观察,包括图像,并允许训练高度表达的判别模型。
该方法将状态估计器优化为确定性计算图,类似于递归神经网络(RNN)训练。使用递归神经网络(RNNs)进行状态估计已经在之前的几项工作中得到了探索[24,4,23,19],但通常仅限于简单的任务,没有复杂的感官输入,如图像。造成这种情况的部分原因是训练通用rnns的难度。近年来,通过长短时记忆(LSTM)[10]和门控递归单元(GRU)[5]等模型,创新的RNN体系结构成功地缓解了这一问题。LSTMs已与视觉结合用于感知任务,如活动识别[3]。然而,在状态估计领域,这种黑盒模型忽略了大量可用的领域知识。通过在滤波和递归网络之间建立联系,我们可以设计出特别适合于状态估计的递归计算图,并且如我们的评估所示,可以比标准LSTM模型获得更好的性能。

III 预备知识

用生成模型直接使用高维观测(如相机图像)进行状态估计是非常困难的,因为这些观测通常是由一个复杂且高度非线性的过程产生的。然而,在实际中,可以从 o t o_t ot中提取出一个低维向量 z t z_t zt,它可以完全捕获观测结果对系统潜在状态的依赖关系。让 x t x_t xt表示这个状态,让 y t y_t yt表示我们希望从 o t o_t ot中推断出的状态的一些标记。例如, o t o_t ot可能对应于一辆汽车上的一对摄像机图像, z t z_t zt对应于它的速度, y t y_t yt对应于汽车的位置。在这种情况下,我们可以先训练判别模型 g θ ( o t ) g_θ(o_t) gθ(ot), 以前馈方式从 o t o_t ot中预测 z t z_t zt,然后通过滤波预测输出所需的状态标签 y 1 : t y_{1: t} y1:t。例如,可以训练一个隐藏状态为 x t x_t xt的卡尔曼滤波器,将预测的 z t z_t zt作为观测值,然后在测试时对 x t x_t xt y t y_t yt进行推理。这种用高维观测进行状态估计的标准方法如图2a所示。图2(a)标准两步工程方法,用于高维观测滤波。生成部分有隐状态 x t x_t xt和两个观测, y t y_t yt z t z_t zt, z t z_t zt实际上是第二个判别模型的的输出 z t = g ( o t ) z_t = g(o_t) zt=g(ot), 该过程用虚线表示,且进行显示训练。(b)计算图联合优化优化(a)中的两个模型,包括判别性映射 g t g_t gt和一个确定性的滤波器.将整个过程看成一个确定性计算图,则可以利用第四节中介绍的后向传播算法进行训练.
在这里插入图片描述
虽然这种方法可能被视为一个工程解决方案,并没有概率的解释, 该方法的优势在于 g ( o t ) g(o_t) g(ot)是利用判别模式训练,训练的模型条件依赖于原始观测 o t o_t ot. x t x_t xt作为一个内部的潜在变量。这就是为什么模型不需要显式地表示观测值的分布。然而,函数 g ( o t ) g(o_t) g(ot)将原始观测映射到低维预测值 z t z_t zt, 它并不是在训练最优状态估计。相反,它被训练去预测一个中间变量 z t z_t zt,这个变量可以很容易地集成到生成滤波器中。

IV 判别确定性状态估计

我们的贡献是基于状态估计的泛化视角,该视角包含了上一节讨论的朴素的、分段训练的模型,并允许使用简单且可伸缩的随机梯度下降方法对它们进行端到端训练。在朴素方法中, 观测 g ( o t ) g_(o_t) g(ot)是直接被训练了来预测 z t z_t zt的,因为标准生成滤波器模型并没有提供直接的方法来根据滤波器的精度优化 g ( o t ) g_(o_t) g(ot). 但是,过滤器可以看作是一个随时间展开的计算图,如图2b所示。在这个图中,滤波器的内部状态由 x t x_t xt的后验概率定义。例如,在以高斯后验的卡尔曼滤波器中, 内部状态可以用 ( u , Σ ) (u, \Sigma) (u,Σ)表示。通常,我们使用 s t s_t st来表示任何滤波器的状态。我们也增加这张计算图的输出函数 q ( s t ) = ϕ y t q(s_t) = \phi_{y_t} q(st)=ϕyt, 该函数输出分布的参数。在卡尔曼滤波器的情况下,我们有 q ( s t ) = ( C u , C Σ C ) q(s_t) = (Cu, C\Sigma C) q(st)=(Cu,CΣC), 即:矩阵C定义了一个线性观测函数。
以这种方式,将滤波器看做是一个计算图, g ( o t ) g(o_t) g(ot)可以通过整个流程被训练出来.而不仅仅是在一步上进行训练.令 l l l为计算图的输出的损失函数,一种形式是 l = − l o g p ( y ) l = -logp(y) l=logp(y). 令 L = Σ l ( y ) L = \Sigma l(y) L=Σl(y)表示整个序列的损失函数.通过滤波器,观测,就可以计算出下一个状态.通过递归就可以计算出损失函数关于变量的偏导数.具体过程如下图所示
在这里插入图片描述
符号意义

符号意义一般表示
g图像到速度的函数v
o图像I
s内部状态X, P
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值