Kalmannet:部分已知动力学的神经网络辅助Kalman滤波

文章提出了KalmanNet,一个结合深度学习的实时状态估计器,用于处理非线性动力学系统。它通过学习从数据中计算卡尔曼增益,避免了对噪声统计知识的依赖,克服了非线性系统和模型失配带来的挑战。在数值研究中,KalmanNet在多种场景下表现出优于传统方法的性能,尤其是在面对模型不确定性时,同时保持了低复杂度和可解释性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

全文翻译如下:

摘要

动态系统的实时状态估计是信号处理与控制的一项基本任务。对于由完全已知的线性高斯状态空间( SS )模型表示的系统,著名的卡尔曼滤波器( KF )是一个低复杂度的最优解。然而,无论是底层SS模型的线性性,还是对其准确的认识,在实际应用中往往都是无法实现的。在这里,我们提出KalmanNet,一个从数据中学习的实时状态估计器,用于在带有部分信息的非线性动力学下进行卡尔曼滤波。通过在KF的流程中融入结构化SS模型和专用循环神经网络模块,我们在隐式地从数据中学习复杂动态的同时,保留了经典算法的数据效率和可解释性。我们的数值实验表明KalmanNet克服了非线性和模型失配,优于同时使用失配和精确领域知识的经典滤波方法。

I. INTRODUCTION

动态系统的实时状态估计是信号处理中最基本的任务之一,也是各个科学界感兴趣的问题。Rudolf Kalman在其20世纪60年代的一系列论文[ 2 ] - [ 4 ]中介绍了卡尔曼滤波器( Kalman filter,KF ),一种最小均方误差估计( MMSE )估计器,它适用于具有加性高斯白噪声( AWGN )的状态空间( SS )模型的时变线性系统。KF的低复杂度实现,加上其良好的理论基础,使其迅速成为离散时间SS模型描述的系统中状态估计的主要工作。KF已应用于雷达目标跟踪[ 5 ]、弹道导弹轨迹估计[ 6 ]、Apollo计划中空间飞行器的位置和速度估计[ 7 ]等问题。迄今为止,KF及其变体在许多涉及跟踪和定位的实际应用中仍被广泛用作在线滤波算法[ 8 ]。

当原始的KF假设为线性SS模型时,实际中遇到的许多问题由非线性动力学方程来处理。因此,在引入原始KF后不久,就提出了KF的非线性变化,如扩展卡尔曼滤波( EKF ) [ 5 ]、无迹卡尔曼滤波( UKF ) [ 9 ]等。非线性SS模型的这些变化在理论上不是最优的,在面对强非线性时会发生严重的退化[ 10 ]。原始的KF及其变种是基于模型的( MB )算法;也就是说,它们依赖于对底层SS模型的准确了解。因此,这些MB方法的性能关键取决于该领域知识的有效性。在实际应用中,底层动力学往往是复杂的、非线性的,难以准确估计和刻画为易于处理的SS模型。
近年来,深度神经网络在实际应用中取得了显著的经验成功。这些数据驱动( Data-Driven,DD )参数化模型被证明能够捕捉真实生成过程的细微之处,并取代需要显式表征感兴趣的领域[ 11 ],[ 12 ]。因此,一种实现状态估计的替代策略- -不需要SS模型的显式和精确知识- -是使用深度学习从数据中学习这一任务。DNNs可以从大量数据中通过端到端的模型不可知的方式进行训练,以捕获复杂的动态。特别地,各种DNN架构,包括长短时记忆( Long Short-Term Memory,LSTM ) [ 13 ]和门控循环单元( Gated Recurrent Unit,GRU )细胞[ 14 ]等循环神经网络( Recurrent Neural Networks,RNNs )模型,以及注意力机制[ 15 ],已被证明可以学习进行时间序列预测。虽然这些DD架构在非结构化环境中表现很好,但它们缺乏MB方法的可解释性,即使对于看似简单的序列模型,也往往需要许多可训练的参数[ 16 ]。这些约束限制了高参数化深度模型在无人机、车载系统等硬件受限的移动设备中的实时状态估计应用。
MB卡尔曼滤波和DD状态估计的局限性激发了一种混合方法,利用了两个世界的最佳;即经典KF的稳健性和低复杂度,以及DNNs的模型不可知性。因此,我们基于之前在MB深度学习在信号处理和数字通信应用中的成功[ 17 ] - [ 20 ],提出了一种混合MB / DD在线递归滤波器KalmanNet。特别地,我们重点研究了连续值SS模型的实时状态估计,并为其设计了KF及其变体。我们假设噪声统计是未知的,并且潜在的SS模型是部分已知的或从系统动力学的物理模型中近似得到的。为了设计KalmanNet,我们将KF的卡尔曼增益( Kalman Gain,KG )计算识别为封装对噪声统计和领域知识依赖的关键组件,并将其替换为有限复杂度的紧凑RNN,集成到KF流程中。由此产生的系统利用标记数据学习以监督的方式进行卡尔曼滤波。
我们的主要贡献总结如下:
1 )我们设计了KalmanNet,它是一个可解释的、低复杂度的、数据有效的DNN辅助实时状态估计器。KalmanNet以KF的流程和理论原理为基础,在其运行过程中融入了底层SS模型的部分领域知识。
2 )通过学习KG,KalmanNet避免了KF对底层噪声统计知识的依赖,从而绕开了KF方程中涉及的数值问题矩阵求逆,克服了非线性系统需要定制解决方案的问题;例如,EKF中处理非线性的近似。
3)我们表明,KalmanNet学习以与序列长度不变的方式从数据中进行卡尔曼滤波。具体来说,我们提出了一种有效的监督训练方案,使得KalmanNet可以在任意长轨迹上进行推理,而只使用短轨迹进行训练。
4 )在线性和非线性SS模型中评估KalmanNet。实验场景包括合成装置、跟踪混沌Lorenz系统和使用密歇根NCLT数据集进行定位[ 21 ]。与纯DD架构相比,KalmanNet收敛速度更快,同时在面对模型失配和主要的非线性时,KalmanNet优于MB EKF。
本文的其余部分安排如下:第二节回顾了SS模型及其相关任务,并讨论了相关工作。第三节详细介绍了KalmanNet并进行了讨论。第四部分是数值研究。第五部分为总结和未来工作。在整个论文中,我们对向量使用粗体小写字母,对矩阵使用粗体大写字母。转置、 ℓ 2 \ell_{2} 2范数和随机期望分别用 { ⋅ } ⊤ , ∥ ⋅ ∥ \{\cdot\}^{\top},\|\cdot\| { }, E [ ⋅ ] \mathbb{E}[\cdot] E[]表示。均值为 μ \mu μ,协方差为 Σ \Sigma Σ的高斯分布用 N ( μ , Σ ) \mathcal{N}(\mu, \Sigma) N(μ,Σ)表示。最后, R \mathbb{R} R Z \mathbb{Z} Z分别是实数和整数的集合.

Ⅱ.系统模型和预备知识

A .状态空间模型

我们考虑一个(可能)时变的动力系统,由一个非线性的,高斯的,连续的离散时间 t ∈ Z [ 22 ] t \in \mathbb{Z}[22] tZ[22]的SS演化模型表示[ 22 ]
x t = f ( x t − 1 ) + e t , e t ∼ N ( 0 , Q ) , x t ∈ R m , y t = h ( x t ) + v t , v t ∼ N ( 0 , R ) , y t ∈ R n . \begin{array}{lll} \mathbf{x}_{t}=\mathbf{f}\left(\mathbf{x}_{t-1}\right)+\mathbf{e}_{t}, & \mathbf{e}_{t} \sim \mathcal{N}(\mathbf{0}, \mathbf{Q}), & \mathbf{x}_{t} \in \mathbb{R}^{m}, \\ \mathbf{y}_{t}=\mathbf{h}\left(\mathbf{x}_{t}\right)+\mathbf{v}_{t}, & \mathbf{v}_{t} \sim \mathcal{N}(\mathbf{0}, \mathbf{R}), & \mathbf{y}_{t} \in \mathbb{R}^{n} . \end{array} xt=f(xt1)+et,yt=h(xt)+vt,etN(0,Q),vtN(0,R),xtRm,ytRn.
这里, x t \mathbf{x}_{t} xt是系统在t时刻的隐状态向量,它由一个(可能的)非线性状态演化函数 f ( ⋅ ) f(\cdot) f()和一个没有控制信号的AWGN e t e_{t} et演化。这个SS模型在图1中以因子图的形式进行了图形化描述。
过程噪声 e t \mathbf{e}_{t} et通常对状态演化函数和未知外部输入建模不准确。系统是部分可观测的;也就是说,观测值 y t \mathbf{y}_{t} yt在t时刻的向量是由一个(可能)非线性函数 h ( ⋅ ) \mathbf{h}(\cdot) h() x t \mathrm{x}_{t} xt生成的,具有 A W G N v t A W G N \mathrm{v}_{t} AWGNvt。在实际中,状态演化模型( 1a )由底层系统的复杂动力学决定,而观测模型( 1b )由观测的类型和质量决定。例如, x t \mathbf{x}_{t} xt可以确定车辆的位置、速度和加速度,而 y t \mathbf{y}_{t} yt是由多个传感器获得的测量值。这些模型的参数- -如协方差矩阵 Q \mathbf{Q} Q R \mathbf{R} R - -可能难以准确获取,往往由于模型失配导致性能下降。

在这里插入图片描述

B.关联任务

SS模型在文献中的研究是在几种不同的任务背景下进行的。这些任务大致可以分为两大类:
观测生成与去噪和隐藏状态恢复。

  • 与SS模型相关的第一类任务涉及部分观测信号的估计。这可以对应于,例如,给定过去观测对未来观测的预测;给定块中缺失观测值的填补生成;以及观测值的去噪。虽然这类任务关注于观测信号 y t \mathbf{y}_{t} yt的估计,但它们利用了潜在SS模型的存在。
  • 第二类任务考虑从服从SS模型的噪声观测中恢复预定义结构的隐藏状态 x t \mathbf{x}_{t} xt。状态恢复任务族包括离线恢复,也称为平滑,其中给定整个观测块 { x ι } t = 1 T \left\{\mathrm{x}_{\iota}\right\}_{t=1}^{T} { xι}t=1T,整个块的恢复为 { y l } l = 1 T \left\{\mathbf{y}_{l}\right\}_{l=1}^{T} { yl}l=1T。或者,滤波任务只关注从过去的观测 { y τ } τ = 1 t \left\{\mathbf{y}_{\tau}\right\}_{\tau=1}^{t} { yτ}τ=1t中恢复 x l \mathrm{x}_{l} xl,对应于实时状态估计。
    在本工作中,我们主要关注过滤任务,下面给出具体的公式。

C.数据辅助滤波问题的建立

滤波问题是实时跟踪的核心,它必须以在线的方式根据每个传入观测提供一个瞬时状态估计。这里,在每个时刻实例t,我们有机会获得一个新的观测 y t \mathbf{y}_{t} yt。给定初始状态 x 0 \mathbf{x}_{0} x0,目标是跟踪当前隐藏状态 x t \mathrm{x}_{t} xt,并对其产生估计值 x ^ t \hat{\mathbf{x}}_{t} x^t
我们关注的是对系统模型有部分了解的情形,即已知(或近似为)的演化函数 f ( ⋅ ) f(\cdot) f()和观测函数 h ( ⋅ ) \mathbf{h}(\cdot) h() .对于现实世界的应用,这些知识来源于我们对系统动力学及其物理设计和传感器模型的理解。与 K F \mathrm{KF} KF中的经典假设相反,噪声统计量 Q \mathbf{Q} Q R \mathbf{R} R是未知的。相反,我们可以访问一个有标签的数据集,该数据集包含一系列观测值及其对应的真实状态。在各种感兴趣的场景中,人们可以假设在设计阶段获得一些真实的测量值。例如,在野外实验中,可以在内部或外部增加额外的传感器来收集训练所需的地面真相。这些传感器在部署时不会成为系统的一部分。也可以使用离线和更计算密集的算法来计算真实数据。
我们的目标是设计一个在SS模型中结合可用数据和部分领域知识进行过滤的系统。特别地,对于SS模型,如式( 1 )所示,实时状态估计器需要能够从数据中学习以从过去的观测值 { y τ } τ = 1 t \left\{\mathbf{y}_{\tau}\right\}_{\tau=1}^{t} { yτ}τ=1t中恢复 x t \mathbf{x}_{t} xt,其中:

  • 噪声信号 e t \mathbf{e}_{t} et v t \mathbf{v}_{t} vt的分布的知识不可得。
  • 函数 f ( ⋅ ) \mathbf{f}(\cdot) f() h ( ⋅ ) \mathbf{h}(\cdot) h() 可以是非线性的。
  • 函数 f ( ⋅ ) f(\cdot) f() h ( ⋅ ) \mathbf{h}(\cdot) h()可能是不精确已知的。

最后,DD状态估计器的推理复杂度应与MB滤波器(如EKF )的推理复杂度(且最好较小)相同。

D.相关工作

机器学习与SS模型的结合,更具体地说是KF的使用,是越来越多研究关注的焦点。为了在现有文献的背景下框定当前的工作,我们接下来简要概述这方面的相关工作。我们首先介绍了经典文献中的主要MB方法,然后讨论了当前将深度学习与SS模型相结合的主要方法。
1 )经典的MB方法:当原始的KF假设为线性SS模型时,实际中遇到的许多问题由非线性动力学方程来处理。在引入原始KF后不久,基于SS模型的解析线性化提出了KF的非线性变化;这些变体被称为准线性KF或EKF [ 5 ]。对于高斯噪声下的非线性动力学KF,最近的一个扩展是基于数值积分的UKF [ 9 ];其他依赖于数值积分的KF变体有Gauss - Hermite Quadrature [ 23 ]和求体积法KF [ 24 ]。基于递归贝叶斯估计的实时状态估计的另一种方法是使用基于蒙特卡洛的滤波器。该方法容纳了序列粒子滤波( PF )及其变体,不局限于高斯噪声的假设[ 25 ] [ 26 ]。所有这些MB估计量都需要对潜在的SS模型有准确的了解,并且在存在模型失配的情况下,它们的性能通常会下降。
2 )深度学习方法:面向SS模型推理的深度学习方法可以大致分为与第II - B小节相同的主要类别,即考虑观测生成任务的方法和考虑状态恢复任务的方法。前者通常处理高维观测,使用深度学习将高维观测编码到一个潜在状态,在这个潜在状态上可以使用KF及其变体进行有效的推断。这通常使用深度生成模型来实现,最常见的是变分自编码器,结合SS感知的潜在表示处理[ 27 ] - [ 32 ]。这类方法通常不能直接应用于状态恢复,正如我们在这里所考虑的,并且学习过程往往是复杂的,容易出现近似误差。
在状态估计方面,一种方法是使用机器学习方法直接估计SS模型参数,然后将其代入KF (或特定的变体)中,如[ 33 ] - [ 36 ]所做。该策略的缺点是仅限于所考虑的SS模型的具体形式,如线性高斯SS模型。另一种方法是利用深度学习模块提取特征,用于使用卡尔曼滤波或其他形式的SS模型推断[ 37 ] - [ 41 ]。这种形式的学习滤波通常是针对未知或高度复杂的SS模型设计的,例如在计算机视觉中遇到的SS模型[ 41 ],而我们关注的是具有部分领域知识的设置,详见第II - C节。与此相关的还有工作[ 42 ],该工作侧重于离线状态估计,将图神经网络与卡尔曼平滑器并联,通过神经增强提高其精度。由于估计是通过在整个时间范围内传递的迭代消息来完成的,因此不能以较低的复杂度用于滤波任务。

E.基于模型的卡尔曼滤波

我们提出的KalmanNet是基于 M B K F \mathrm{MB} \mathrm{KF} MBKF的,它是一种线性递推估计器。在每一时间步t,KF只利用前一个估计 x ^ t − 1 \hat{\mathbf{x}}_{t-1} x^t1为充分统计量)和新的观测 y t \mathbf{y}_{t} yt,产生一个新的估计 x l \mathrm{x}_{l} xl。因此,KF的计算复杂度不会随时间增长。
该算法对非线性模型的直接扩展是EKF,将SS模型线性化。EKF可以通过两步过程来描述:预测和更新,其中每一步我们计算一阶和二阶统计矩。
1 )第一步基于前面的后验估计值预测统计矩。具体来说,一阶矩通过预测
x ^ t ∣ t − 1 = f ( x ^ t − 1 ) \hat{\mathbf{x}}_{t | t-1}=\mathbf{f}\left(\hat{\mathbf{x}}_{t-1}\right) x^tt1=f(x^t1),
y ^ t ∣ t − 1 = h ( x ^ t ∣ t − 1 ) \hat{\mathbf{y}}_{t | t-1}=\mathbf{h}\left(\hat{\mathbf{x}}_{t | t-1}\right) y^tt1=h(x^tt1)
一阶统计矩通过非线性传播,二阶统计矩通过一阶泰勒级数展开进行估计。当 f ( ⋅ ) f(\cdot) f() h ( ⋅ ) h(\cdot) h()可微时,可以利用它们的偏导数( Jacobian )矩阵将它们线性化,分别记为 J f ( ⋅ ) \mathbf{J}_{f}(\cdot) Jf() and J h ( ⋅ ) \mathbf{J}_{h}(\cdot) Jh(),分别在 x ^ t − 1 \hat{\mathrm{x}}_{t-1} x^t1 and x ^ t ∣ t − 1 \hat{\mathrm{x}}_{t | t-1} x^tt1处取值。即通过写作
F ^ t = J f ( x ^ t − 1 ) , H ^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值