机器学习-线性动态系统-卡尔曼滤波(Kalman Filtering)
Dynamic Model
观测值:设有一系列观测值y1,y2⋯yny_1,y_2 \cdots y_ny1,y2⋯yn,不可以互换顺序,观测之间是相关的,有联系的。
状态空间模型(state-based-model):引入隐状态x1,x2⋯xnx_1,x_2 \cdots x_nx1,x2⋯xn.在给定系列隐状态的条件下,观测之间变为相互独立
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gCnjpbgV-1636796568836)(C:\Users\nth12\AppData\Roaming\Typora\typora-user-images\image-20211112171837873.png)]
- 绿色的箭头指示了p(xt∣xt−1)−−transsisonprobp(x_t | x_{t-1})--transsison probp(xt∣xt−1)−−transsisonprob
- 红色箭头指示了p(yt∣xt)−−measurementprob,emissionprobp(y_t|x_t)--measurement prob,emission probp(yt∣xt)−−measurementprob,emissionprob
- 描述HMM:p(x1)−−init prob,p(xt∣xt−1),p(yt∣xt)∀tp(x_1)--init \ prob,p(x_t|x_{t-1}),p(y_t|x_t)\quad \forall tp(x1)−−init prob,p(xt∣xt−1),p(yt∣xt)∀t
离散状态模型(Discrete state Dynamic Model)
-
HMM(隐马尔可夫模型)-所有隐状态即xtx_txt离散
-
p(xt∣xt−1)p(x_t | x_{t-1})p(xt∣xt−1)由A矩阵给出,其中A矩阵满足
Axt−1,xt=p(xt∣xt−1) A_{x_{t-1},x_t} = p(x_t|x_{t-1}) Axt−1,xt=p(xt∣xt−1) -
p(yt∣xt)p(y_t|x_t)p(yt∣xt)—任何形式。yty_tyt可以是离散的,可以是连续的。
-
p(x1)p(x_1)p(x1)由π\piπ向量确定。
线性+高斯噪音模型(Linear Guass Dynamic Model)
-
卡尔曼滤波
-
p(xt∣xt−1)p(x_t|x_{t-1})p(xt∣xt−1)转移概率不能用矩阵表示,使用函数表示
p(xt∣xt−1)∼N(Axt−1+B,Q) p(x_t|x_{t-1}) \sim N(Ax_{t-1}+B,Q) p(xt∣xt−1)∼N(Axt−1+B,Q) -
p(yt∣xt)p(y_t|x_{t})p(yt∣xt)也是线性的,使用函数表示:
p(yt∣xt)∼N(Hxt−1+C,R) p(y_t|x_t) \sim N(Hx_{t-1}+C,R) p(yt∣xt)∼N(Hxt−1+C,R) -
p(x1)∼N(μ0,σ0)p(x_1) \sim N(\mu_0,\sigma_0)p(x1)∼N(μ0,σ0)
非线性,非高斯的动态模型
-
粒子滤波
-
p(xt∣xt−1)p(x_t|x_{t-1})p(xt∣xt−1)任意函数f(xt−1)f(x_{t-1})f(xt−1)
-
p(yt∣xt)∼N(Hxt−1+C,R)p(y_t|x_t) \sim N(Hx_{t-1}+C,R)p(yt∣xt)∼N(Hxt−1+C,R)也是任意函数
-
p(x1)p(x_1)p(x1)也是任意函数
基本任务
- eval:求解p(y1,y2,⋯yn)p(y_1,y_2,\cdots y_n)p(y1,y2,⋯yn)
- parameter learning:argmaxθ logp(y1,⋯yn∣θ)argmax_\theta \ logp(y_1,\cdots y_n | \theta)argmaxθ logp(y1,⋯yn∣θ)
- state decoding:argmaxx1,x2⋯xn p(x1,x2⋯xn∣y1,y2,⋯yn)argmax_{x_1,x_2\cdots x_n} \ p(x_1,x_2 \cdots x_n | y_1,y_2,\cdots y_n)argmaxx1,x2⋯xn p(x1,x2⋯xn∣y1,y2,⋯yn)
- filtering:求解p(xt∣y1⋯yt)p(x_t | y_1 \cdots y_t)p(xt∣y1⋯yt)
卡尔曼滤波
动机
- 飞机、雷达的实时定位和参数测量都受到各种各样的随机干扰,要想正确的得到实时状态参数,只能根据观测到的信号
来预测真实状态 - 最优估计问题:希望估值误差尽可能小,产生了最优估计问题
- 目标:无偏性,估计方差最小,实时性
概述
-
转移概率p(xt∣xt−1)=N(Axt−1+B,Q)p(x_t|x_{t-1}) = N(Ax_{t-1}+B,Q)p(xt∣xt−1)=N(Axt−1+B,Q)
- 这等价于:p(xt∣xt−1)=Axt−1+B+wp(x_t|x_{t-1}) = Ax_{t-1} + B + wp(xt∣xt−1)=Axt−1+B+w,其中w∼N(0,Q)w \sim N(0,Q)w∼N(0,Q)
-
measurement prob:p(yt∣xt)=N(Hxt+C,R)p(y_t|x_t) = N(Hx_t+C,R)p(yt∣xt)=N(Hxt+C,R)
- 这等价于:p(yt∣xt)=Hxt+C+V,V∼N(0,R)p(y_t | x_t) = Hx_t + C + V,V \sim N(0,R)p(yt∣xt)=Hxt+C+V,V∼N(0,R)
-
所以其中的参数有:A,B,Q,R,C,H;
-
现在假设A=IA=IA=I,B=(2,2)TB = (2,2)^TB=(2,2)T
- p(yt∣xt)=Ixt+V,V∼N(0,I)p(y_t|x_t) = Ix_t+ V,V \sim N(0,I)p(yt∣xt)=Ixt+V,V∼N(0,I)
- p(xt∣xt−1)=Ixt−1+(2,2)T+wp(x_t | x_{t-1}) = Ix_{t-1} + (2,2)^T + wp(xt∣xt−1)=Ixt−1+(2,2)T+w,w∼N(0,I)w \sim N(0,I)w∼N(0,I)
- 假设x1=(0,0)Tx_1 = (0,0)^Tx1=(0,0)T
- 则x2x_2x2的位置为以(2,2)为中心的,I为方差的范围内。
- 其中x2x_2x2位于(2,2)(2,2)(2,2)的概率密度是最大的,因为w=0w = 0w=0的对应概率密度最大。
- 再由式子p(y2∣x2)p(y_2 | x_2)p(y2∣x2)确定y2y_2y2的取值,y2y_2y2取值范围为x2x_2x2为中心,方差为I的高斯分布。
- 现在欲求解的问题是,我们观测到了y1,y2⋯yty_1,y_2\cdots y_ty1,y2⋯yt,欲求p(xt∣y1⋯yt)p(x_t | y_1 \cdots y_t)p(xt∣y1⋯yt)
-
物体运动的实例:设一小车在直线上运动,其加速度a∼N(0,σ)a \sim N(0,\sigma)a∼N(0,σ)
- 这里的yty_tyt在t时刻的位置(数轴上的位置坐标)
- 状态向量x‾t=(xt,xt,)T\overline x_t = (x_t,x_t^,)^Txt=(xt,xt,)T,(与前面的向量进行区分)其中前一个分量表示汽车的真实位置,后一个分量表示汽车的真实速度
- 则有:xt=xt−1+xt−1,Δt+12aΔt2x_t = x_{t-1} + x_{t-1}^,\Delta t+\frac{1}{2}a\Delta t^2xt=xt−1+xt−1,Δt+21aΔt2,xt,=xt−1,+aΔtx^,_{t} = x^,_{t-1} + a \Delta txt,=xt−1,+aΔt.使用这两个等式来表示卡尔曼滤波中的参数。
基本假设
方程
xk=Axk−1+Buk−1+qk−1yk=Hxk+rk
x_k = Ax_{k-1}+Bu_{k - 1}+q_{k-1} \\
y_k = Hx_k + r_k
xk=Axk−1+Buk−1+qk−1yk=Hxk+rk
-
其中xkx_kxk是k时刻系统的状态;yky_kyk是k时刻系统的测量值。uku_kuk是k时刻对系统的控制量
-
A,B是系统参数,对于多模型系统,他们为矩阵;
-
H为测量系统的参数,对于多测量系统,H为矩阵
-
qkq_kqk和rkr_krk表示过程和测量的噪声。
-
被假设称高斯白噪声(white guass noisewhite\ guass \ noisewhite guass noise),协方差矩阵分别为Q,RQ,RQ,R
-
假设他们不随系统状态的变化而变化
-
高斯白噪声:功率谱密度服从均匀分布,幅度服从高斯分布
-
若N(t)为一个具有零均值的平稳随机过程,其功率谱密度均匀分布在−∞,+∞-\infty,+\infty−∞,+∞ 的整个频率区间,即
SN(ω)=12N0 S_N(\omega) = \frac{1}{2}N_0 SN(ω)=21N0
其中N0N_0N0为一正实数。
-
- 以最小均方误差为估计的最佳准则
- 利用前一时刻的估计值和现时刻的观测值来更新对状态变量的估计
原理推导
设线性系统的状态方程为
xk=Axk−1+Buk−1+qk−1
x_k = Ax_{k-1} + Bu_{k - 1}+q_{k-1}
xk=Axk−1+Buk−1+qk−1
- 其中xxx为系统的状态变量,大小为(n,1)(n,1)(n,1)。
- A为转换矩阵,维度为(n,n)。
- u为系统输入,维度为(k,1).
- B是将输入转换为状态的矩阵,维度为(n,k)。
- q为随机变量,系统噪声。假设服从分布q∼N(0,Q)q\sim N(0,Q)q∼N(0,Q)
在概率论中,前面预测的结果称为先验,后面测量出的结果称为后验。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LqqOrZWW-1636796568843)(C:\Users\nth12\AppData\Roaming\Typora\typora-user-images\image-20211112162753126.png)]
测量值为后验,给出的公式为
zk=Hxk+rk
z_k = Hx_k +r_k
zk=Hxk+rk
其中zkz_kzk的维度为(m,1),矩阵H的维度为(m,n),随机变量r为测量噪声,r∼N(0,R)r \sim N(0,R)r∼N(0,R),且与Q互相独立。
存中…(img-LqqOrZWW-1636796568843)]
测量值为后验,给出的公式为
zk=Hxk+rk
z_k = Hx_k +r_k
zk=Hxk+rk
其中zkz_kzk的维度为(m,1),矩阵H的维度为(m,n),随机变量r为测量噪声,r∼N(0,R)r \sim N(0,R)r∼N(0,R),且与Q互相独立。