目标跟踪—卡尔曼滤波

目标跟踪—卡尔曼滤波

卡尔曼滤波引入

在这里插入图片描述

滤波是将信号中特定波段频率滤除的操作,是抑制和防止干扰的一项重要措施。是根据观察某一随机过程的结果,对另一与之有关的随机过程进行估计的概率理论与方法。

历史上最早考虑的是维纳滤波,后来R.E.卡尔曼和R.S.布西于20世纪60年代提出了卡尔曼滤波。现对一般的非线性滤波问题的研究相当活跃。

简单的理解滤波的作用是处理高斯噪声使得数据变得更加的平滑

适用系统

适用系统线性高斯系统:线性满足:叠加性齐次性即为:
y = a x 1 + b x 2 y=a x_{1}+b x_{2} y=ax1+bx2

高斯:噪声满足高斯分布。

一般情况下的理想状态为: 信号 x 1 + 噪声 x 0 在使用卡尔曼滤波的情况下。修正值= w1 x 估计值 + w2 x 观察值。

且满足 w1+ w2 = 1的条件

卡尔曼滤波基础准备

状态空间表达式

状态方程:

x k = A x k − 1 + B u k + ω k {x_{k}}=A x_{k-1}+B u_{k}+\omega_{k} xk=Axk1+Buk+ωk

  • xk:表示当前状态的当前值 K代表当前的状态信息
  • xk-1:表示上一个状态的当前值 K-1代表上一个状态信息
  • wk:表示过程噪声
  • uk:表示的是一个输入信息
  • A: 表示的是一个状态转移矩阵
  • B: 表示的是一个控制矩阵

观测方程:
y k = C x k + v k y_{k}=C x_{k}+v_{k} yk=Cxk+vk

  • yk:表示要观测的值
  • vk:表示一个过程噪声(与观察器误差有关可以简单理解为误差)
  • xk:表示当前状态的当前值 K代表当前的状态信息

参数分析

高斯白噪声:满足期望为0的高斯分布

w k ∈ N ( 0 ; Q k ) V k ∈ N ( 0 ; R k ) \begin{array}{l} w_{k} \in N\left(0 ; Q_{k}\right) \\ V_{k} \in N\left(0 ; R_{k}\right) \end{array} wkN(0;Qk)VkN(0;Rk)

其中Q:代表过程噪声的方差,R:代表观测噪声的方差。是在算法实现过程中的超参数

下面是卡尔曼滤波的直观图解
在这里插入图片描述

在这里插入图片描述

卡尔曼滤波的理论

卡尔曼滤波的理解:

实现过程: 使用上一次的最优结果预测当前的值,同时使用观测值****修正当前值,得到最优结果(可以简单理解为是一个递归的过程)

  1. 在预测过程中使用到的公式
    x ^ t − = F x ^ t − 1 + B u t − 1 P t − = F P t − 1 F T + Q \begin{array}{l} \hat{x}_{t}^{-}=F \hat{x}_{t-1}+B u_{t-1} \\ P_{t}^{-}=F P_{t-1} F^{T}+Q \end{array} x^t=Fx^t1+But1Pt=FPt1FT+Q

其中P(t)对应的是x的协方差矩阵,而其中的x-表示的就是一个预测估计

  1. 在更新过程中使用到的公式
    K t = P t − H T ( H P t − H T + R ) − 1 x ^ t = x ^ t − + K t ( z t − H x ^ t − ) P t = ( I − K t H ) P t − \begin{array}{l} K_{t}=P_{t}^{-} H^{T}\left(H P_{t}^{-} H^{T}+R\right)^{-1} \\ \hat{x}_{t}=\hat{x}_{t}^{-}+K_{t}\left(z_{t}-H \hat{x}_{t}^{-}\right) \\ P_{t}=\left(I-K_{t} H\right) P_{t}^{-} \end{array} Kt=PtHT(HPtHT+R)1x^t=x^t+Kt(ztHx^t)Pt=(IKtH)Pt

z(t)表示的就是一个观测值 K:表示的是卡尔曼增益,在更新的过程中就涉及到了预测值的更新,与协方差矩阵的更新

先验估计的简单理解

x ^ t − = F x ^ t − 1 + B u t − 1 \hat{x}_{t}^{-}=F \hat{x}_{t-1}+B u_{t-1} \\ x^t=Fx^t1+But1

其中的F即为状态转移矩阵 B即为控制矩阵

首先以匀加速直线运动为例化为状态方程的形式来进行表示
P i = P i − 1 + v i − 1 ⋅ Δ t + a 2 Δ t 2 v i = v i − 1 + a ⋅ Δ t } ⇒ [ p i v i ] = [ 1 Δ t 0 1 ] [ p i − 1 v i − 1 ] + [ Δ t 2 2 Δ t ] a i \left.\begin{array}{l} P_{i}=P_{i-1}+v_{i-1} \cdot \Delta t+\frac{a}{2} \Delta t^{2} \\ v_{i}=v_{i-1}+a \cdot \Delta t \end{array}\right\} \Rightarrow\left[\begin{array}{l} p_{i} \\ v_{i} \end{array}\right]=\left[\begin{array}{cc} 1 & \Delta t \\ 0 & 1 \end{array}\right]\left[\begin{array}{l} p_{i-1} \\ v_{i-1} \end{array}\right]+\left[\begin{array}{c} \frac{\Delta t^{2}}{2} \\ \Delta t \end{array}\right] a_{i} Pi=Pi1+vi1Δt+2aΔt2vi=vi1+aΔt}[pivi]=[10Δt1][pi1vi1]+[2Δt2Δt]ai

先验估计的协方差

P t − = F P t − 1 F T + Q P_{t}^{-}=F P_{t-1} F^{T}+Q Pt=FPt1FT+Q

根据先验估计得到协方差的推导过程如下:

cov ⁡ ( x ^ t − , x ^ t − ) = cov ⁡ ( F x ^ t − 1 + B u t − 1 , F x ^ t − 1 + B u t − 1 ) + Q = F cov ⁡ ( x ^ t − 1 , x ^ t − 1 ) F ⊤ + Q \begin{array}{l} \operatorname{cov}\left(\hat{x}_{t}^{-}, \hat{x}_{t^{-}}\right)=\operatorname{cov}\left(F \hat{x}_{t-1}+B u_{t-1}, F \hat{x}_{t-1}+B u_{t-1}\right) \\ +Q=F \operatorname{cov}\left(\hat{x}_{t-1}, \hat{x}_{t-1}\right) F^{\top} +Q \\ \end{array} cov(x^t,x^t)=cov(Fx^t1+But1,Fx^t1+But1)+Q=Fcov(x^t1,x^t1)F+Q
从而得到了先验估计协方差的形式(带过程噪声的形式)

状态更新

通过修正估计得到卡尔曼滤波的最终值(最终滤波结果)

x ^ t = x ^ t − + K t ( z t − H x ^ t − ) P t = ( I − K t H ) P t − \hat{x}_{t}=\hat{x}_{t}^{-}+K_{t}\left(z_{t}-H \hat{x}_{t}^{-}\right) \\ P_{t}=\left(I-K_{t} H\right) P_{t}^{-} x^t=x^t+Kt(ztHx^t)Pt=(IKtH)Pt

核心需要用到卡尔曼增益与测量值,需要计算测量值-预测值*H
其中H表示观测矩阵的值

其中卡尔曼增益的表示形式为:

K t = p t − H ⊤ H p t − H ⊤ + R K_{t}=\frac{p_{t}^{-} H^{\top}}{H p_{t}^{-} H^{\top}+R} Kt=HptH+RptH

根据观测值和预测值的噪声调节对应的权重值k
P t − = F P t − 1 F − 1 + Q k = P t − H ⊤ H P t − H ⊤ + R } →  化简  k = P t − 1 + Q P t − 1 + Q + R \left.\begin{array}{l} P_{t}^{-}=F P_{t-1} F^{-1}+Q \\ k=\frac{P_{t}^{-} H^{\top}}{H P_{t}^{-} H^{\top}+R} \end{array}\right\} \xrightarrow{\text { 化简 }} k=\frac{P_{t-1}+Q}{P_{t-1}+Q+R} Pt=FPt1F1+Qk=HPtH+RPtH} 化简  k=Pt1+Q+RPt1+Q

卡尔曼滤波推导

首先建立已知的现实空间中的状态空间:

x k = A x k − 1 + B u k − 1 + w k − 1 , P ( w ) ∼ ( 0 , Q ) , Q = E [ w w T ] z k = H x k + v k , P ( v ) ∼ ( 0 , R ) E [ w w T ] = E [ ( w 1 w 2 ) ( w 1 w 2 ) ] = [ E ( w 1 2 ) E ( w 1 w 2 ) E ( w 1 w 2 ) E ( w 2 2 ) ] = [ σ ( w 1 2 ) σ ( w 1 w 2 ) σ ( w 1 w 2 ) σ ( w 2 2 ) ] \begin{array}{c} x_{k}=A x_{k-1}+B u_{k-1}+w_{k-1}, \mathrm{P}(\mathrm{w}) \sim(0, \mathrm{Q}), \mathrm{Q}=\mathrm{E}\left[\mathrm{w} w^{T}\right] \\ z_{k}=H x_{k}+v_{k}, \mathrm{P}(\mathrm{v}) \sim(0, \mathrm{R}) \\ \mathrm{E}\left[\mathrm{w} w^{T}\right]=\mathrm{E}\left[\binom{w_{1}}{w_{2}}\left(\begin{array}{ll} w_{1} & \left.w_{2}\right) \end{array}\right]=\left[\begin{array}{cc} E\left(w_{1}^{2}\right) & E\left(w_{1} w_{2}\right) \\ E\left(w_{1} w_{2}\right) & E\left(w_{2}{ }^{2}\right) \end{array}\right]=\left[\begin{array}{cc} \sigma\left(w_{1}^{2}\right) & \sigma\left(w_{1} w_{2}\right) \\ \sigma\left(w_{1} w_{2}\right) & \sigma\left(w_{2}^{2}\right) \end{array}\right]\right. \end{array} xk=Axk1+Buk1+wk1,P(w)(0,Q),Q=E[wwT]zk=Hxk+vk,P(v)(0,R)E[wwT]=E[(w2w1)(w1w2)]=[E(w12)E(w1w2)E(w1w2)E(w22)]=[σ(w12)σ(w1w2)σ(w1w2)σ(w22)]

其中核心在于Q表示的是协方差矩阵,可以通过w向量的形式写成,协方差矩阵的形式

同理vk也符合同样的分布模型

实际的状态空间模型

x ^ k ′ = A x ^ k − 1 + B u k − 1 z k = H x k → x ^ k = H ′ z k ′ \begin{array}{c} \hat{x}_{k}{ }^{\prime}=A \widehat{x}_{k-1}+B u_{k-1} \\ z_{k}=H x_{k} \rightarrow \widehat{x}_{k}=H^{\prime} z_{k^{\prime}} \end{array} x^k=Ax k1+Buk1zk=Hxkx k=Hzk

我们建模中不知道的便是 ω \omega ω v v v , 其余的矩阵是已知的, 而我们通过 X k = A X k − 1 + B U k − 1 X_{k}=A X_{k-1}+B U_{k-1} Xk=AXk1+BUk1 这个公式得到的 X ^ k \hat{X}_{k} X^k 其实是不正确的,在这里在上面增加一个小小的负号, 表明它是先验估计值。
X ^ k − = A X ^ k − 1 + B U k − 1 , ( 这里的 X ^ k − 1 也是估计值 ) \hat{X}_{k}^{-}=A \widehat{X}_{k-1}+B U_{k-1} , (这里的 \widehat{X}_{k-1} 也是估计值) X^k=AX k1+BUk1,(这里的X k1也是估计值)
由于我们是知道测试结果(测量得到) Z k , Z_{k} , Zk,
那么在不考虑测量噪音的情况下, 可以大体得到一个估计的 X ^ k \hat{X}_{k} X^k ,
那么我们令这个估计的 X ^ k 命名为 X ^ k m \hat{X}_{k} 命名为 \hat{X}_{k_{m}} X^k命名为X^km , 表示这是根据测试结果估计得到的 X ^ k \hat{X}_{k} X^k
那么, 根据公式 Z k = H X ^ k Z_{k}=H \hat{X}_{k} Zk=HX^k , 可以得到
X ^ k mea  = H − 1 Z k , ( 由于是可以观测的系统 , 因此 H 一定是可逆的 ) \hat{X}_{k_{\text {mea }}}=H^{-1} Z_{k} , (由于是可以观测的系统, 因此 \mathrm{H} 一定是可逆的) X^kmea =H1Zk,(由于是可以观测的系统,因此H一定是可逆的)

因此我们得到了两个不同的关于Xk的结果,一个是先验结果xk-(算出来的),另一个是测出来的结果xkmca(测出来的),但是着两个其实都是不准确的,因为其没有考虑噪声的影响我们真正要求的是xk(表示后验),包含了噪声的影响。

引入数据融合的概念

结合数据融合的概念可以得到

已知 X ^ k − , X ^ k mea  那么 X ^ k = X ^ k − + G ( X ^ k mea  − X ^ k − ) , ( G 是方阵也就是要推导和卡尔曼增益 ) 已知 \hat{X}_{k}{ }^{-}, \hat{X}_{k_{\text {mea }}} 那么 \hat{X}_{k}=\hat{X}_{k}^{-}+G\left(\hat{X}_{k_{\text {mea }}}-\hat{X}_{k}^{-}\right),(\mathrm{G} 是方阵 也就是要推导和卡尔曼增益 ) 已知X^k,X^kmea 那么X^k=X^k+G(X^kmea X^k),(G是方阵也就是要推导和卡尔曼增益)

X ^ k mea  = H − 1 Z k , 那么 X ^ k = X ^ k − + G ( H − 1 Z k − X ^ k − ) , 那么令 K k = G H − 1 , 便可以得到 X ^ k = X ^ k − + K k ( Z k − H X ^ k − ) , 那么在此时 K k ∉ ( 0 , 1 ) , 而是 K k ∉ ( 0 , H − 1 ) , \hat{X}_{k_{\text {mea }}}=H^{-1} Z_{k} , 那么 \hat{X}_{k}=\hat{X}_{k}^{-}+G\left(H^{-1} Z_{k}-\widehat{X}_{k}^{-}\right) , 那么令 K_{k}=G H^{-1} , 便可以得到 \hat{X}_{k}=\hat{X}_{k}^{-}+K_{k}\left(Z_{k}-H \hat{X}_{k}{ }^{-}\right) , 那么在此时 K_{k} \notin(0,1) , 而是 K_{k} \notin\left(0, H^{-1}\right) , X^kmea =H1Zk,那么X^k=X^k+G(H1ZkX k),那么令Kk=GH1,便可以得到X^k=X^k+Kk(ZkHX^k),那么在此时Kk/(0,1),而是Kk/(0,H1),

推导卡尔曼增益

因此我们的目标就变得十分清晰了,就是求使得考虑了噪声之后的估计值趋近于真实值,

那么此时引入误差: e k = X k − X ^ k e_{k}=X_{k}-\hat{X}_{k} ek=XkX^k

 同理P  ( e k ) ∼ ( 0 , P ) , P  也是那个协方差矩阵  \text { 同理P }\left(e_{k}\right) \sim(0, P), P \text { 也是那个协方差矩阵 }  同理(ek)(0,P),P 也是那个协方差矩阵 

而当在不同的维度上的方差越小,那么说明这个e越接近0,因此估计值和真实值也就是最相近的。所以,要选择合适的K使得tr(P)(矩阵对角线相加)最小,那么优化问题就变成了下面这个公式。

P = E ( e k e k T ) = E ( ( X k − X ^ k ) ( X k − X ^ k ) T ) ,  将  X ^ k = X ^ k − + K k ( Z k − H X ^ k − ) 代入,   可以得到  P = E ( ( X k − ( X ^ k − + K k ( Z k − H X ^ k − ) ) ) ( X k − ( X ^ k − + K k ( Z k − H X ^ k − ) ) ) T ) ,  \begin{array}{l} \mathrm{P}=\mathrm{E}\left(e_{k} e_{k}{ }^{T}\right)=\mathrm{E}\left(\left(X_{k}-\hat{X}_{k}\right)\left(X_{k}-\hat{X}_{k}\right)^{T}\right), \\ \text { 将 } \hat{X}_{k}=\hat{X}_{k}^{-}+K_{k}\left(Z_{k}-H \hat{X}_{k}^{-}\right) \text {代入, } \\ \text { 可以得到 } \mathrm{P}=\mathrm{E}\left(\left(X_{k}-\left(\hat{X}_{k}^{-}+K_{k}\left(Z_{k}-H \hat{X}_{k}^{-}\right)\right)\right)\left(X_{k}-\left(\hat{X}_{k}^{-}+K_{k}\left(Z_{k}-H \hat{X}_{k}^{-}\right)\right)\right)^{T}\right) \text {, } \\ \end{array} P=E(ekekT)=E((XkX^k)(XkX^k)T),  X^k=X^k+Kk(ZkHX^k)代入 可以得到 P=E((Xk(X^k+Kk(ZkHX^k)))(Xk(X^k+Kk(ZkHX^k)))T)

那么此时将 Z k = H X k + v k , 进行替换。 那么此时将 Z_{k}=H X_{k}+v_{k} , 进行替换。 那么此时将Zk=HXk+vk,进行替换。

那么 X k − X ^ k = X k − X ^ k − − K k X_{k}-\hat{X}_{k}=X_{k}-\hat{X}_{k}^{-}-K_{k} XkX^k=XkX^kKk ( H X k + v k ) + K k H X ^ k − = X k − X ^ k − − K k \left(H X_{k}+v_{k}\right)+K_{k} H \hat{X}_{k}^{-}=X_{k}-\hat{X}_{k}^{-}-K_{k} (HXk+vk)+KkHX^k=XkX^kKk

H ( X k − X ^ k − ) − K k v k = ( I − K k H ) ( X k − X ^ k − ) − K k v k , H\left(X_{k}-\hat{X}_{k}^{-}\right)-K_{k} v_{k}=\left(I-K_{k} H\right)\left(X_{k}-\hat{X}_{k}^{-}\right)-K_{k} v_{k} , H(XkX^k)Kkvk=(IKkH)(XkX^k)Kkvk,
由于 e k = X k − X ^ k e_{k}=X_{k}-\widehat{X}_{k} ek=XkX k , 因此也可以命名 X k − X ^ k − 为 e k X_{k}-\widehat{X}_{k}^{-} 为 e_{k} XkX kek 的先验, 记为 e k − , e_{k}{ }^{-} , ek,

 因此  P  可改写: P = E ( e k e k T ) = E ( ( ( I − K k H ) e k − − K k v k ) ( ( I − K k H ) e k − − K k v k ) T ) ,  \text { 因此 } \mathrm{P} \text { 可改写:} \mathrm{P}=\mathrm{E}\left(e_{k} e_{k}{ }^{T}\right)=\mathrm{E}\left(\left(\left(I-K_{k} H\right) e_{k}{ }^{-}-K_{k} v_{k}\right)\left(\left(I-K_{k} H\right) e_{k}^{-}-K_{k} v_{k}\right)^{T}\right) \text {, }  因此 P 可改写:P=E(ekekT)=E(((IKkH)ekKkvk)((IKkH)ekKkvk)T)

= E [ ( I − k k H ) e k ′ e k T T ( I − k k H ) T − ( I − k k H ) e k ′ v k T k k T − k k v k e k r T ( I − k k H ) T + k k v k v k T k k T ] = E [ ( I − k k H ) e k ′ e k ′ T ( I − k k H ) T ] − E [ ( I − k k H ) e k ′ v k T k k T ] − E [ k k v k e k ′ T ( I − k k H ) T ] + E [ k k v k v k T k k T ] \begin{array}{c} =\mathrm{E}\left[\left(I-k_{k} H\right) e_{k}^{\prime} e_{k}^{T T}\left(I-k_{k} H\right)^{T}-\left(I-k_{k} H\right) e_{k}^{\prime} v_{k}{ }^{T} k_{k}{ }^{T}-k_{k} v_{k} e_{k}^{r T}\left(I-k_{k} H\right)^{T}+k_{k} v_{k} v_{k}{ }^{T} k_{k}{ }^{T}\right] \\ =\mathrm{E}\left[\left(I-k_{k} H\right) e_{k}^{\prime} e_{k}^{\prime T}\left(I-k_{k} H\right)^{T}\right]-E\left[\left(I-k_{k} H\right) e_{k}^{\prime} v_{k}{ }^{T} k_{k}{ }^{T}\right]-E\left[k_{k} v_{k} e_{k}^{\prime T}\left(I-k_{k} H\right)^{T}\right] \\ +E\left[k_{k} v_{k} v_{k}{ }^{T} k_{k}{ }^{T}\right] \end{array} =E[(IkkH)ekekTT(IkkH)T(IkkH)ekvkTkkTkkvkekrT(IkkH)T+kkvkvkTkkT]=E[(IkkH)ekekT(IkkH)T]E[(IkkH)ekvkTkkT]E[kkvkekT(IkkH)T]+E[kkvkvkTkkT]

因为 E [ e k − ] = 0 , E [ v k T ] = 0 上式可简化为 : = E [ ( I − k k H ) e k ′ e k T T ( I − k k H ) T ] + E [ k k v k v k T k k T ] = ( I − k k H ) E [ e k ′ e k T T ] ( I − k k H ) T + k k E [ v k v k T ] k k T 设 P k − = E [ e k ′ e k ′ T ] , R = E [ v k v k T ] , 于是有 : = ( I − k k H ) P k ′ ( I − k k H ) T + k k R k k T = ( P k ′ − k k H P k ′ ) ( I − k k H ) T + k k R k k T = ( P k ′ − k k H P k ′ ) ( I T − H T k k T ) + k k R k k T P k = P k ′ − k k H P k ′ − P k ′ H T k k T + k k H P k ′ H T k k T + k k R k k T 因为 P k ′ H T k k T = ( k k ( P k ′ H T ) ) T = ( k k H P k ′ T ) T tr ⁡ ( P k ) = tr ⁡ ( P k ′ ) − 2 tr ⁡ ( k k H P k ′ ) + tr ⁡ ( k k H P k ′ H T k k T ) + tr ⁡ ( k k R k k T ) 令 dtr ⁡ ( P k ) d k k = 0 又因为 : d t r ( A B ) d A = B T dtr ⁡ ( A B A T ) d A = A B + A B T 因为 R 、 H P k − H T 是对角矩阵 , 所以 : tr ⁡ ( k k H P k ′ H T k k T ) = 2 k k H P k ′ H T , tr ⁡ ( k k R k k T ) = 2 k k R 于是有。 因为 \mathrm{E}\left[e_{k}^{-}\right]=0, E\left[v_{k}{ }^{T}\right]=0 上式可简化为: \begin{array}{l} =\mathrm{E}\left[\left(I-k_{k} H\right) e_{k}^{\prime} e_{k}^{T T}\left(I-k_{k} H\right)^{T}\right]+E\left[k_{k} v_{k} v_{k}{ }^{T} k_{k}{ }^{T}\right] \\ =\left(I-k_{k} H\right) \mathrm{E}\left[e_{k}^{\prime} e_{k}{ }^{T T}\right]\left(I-k_{k} H\right)^{T}+k_{k} E\left[v_{k} v_{k}{ }^{T}\right] k_{k}{ }^{T} \end{array} 设 P_{k}^{-}=\mathrm{E}\left[e_{k}^{\prime} e_{k}^{\prime T}\right], R=E\left[v_{k} v_{k}{ }^{T}\right] ,于是有: \begin{array}{c} =\left(I-k_{k} H\right) P_{k}^{\prime}\left(I-k_{k} H\right)^{T}+k_{k} R k_{k}{ }^{T} \\ =\left(P_{k}^{\prime}-k_{k} H P_{k}^{\prime}\right)\left(I-k_{k} H\right)^{T}+k_{k} R k_{k}{ }^{T} \\ =\left(P_{k}^{\prime}-k_{k} H P_{k}^{\prime}\right)\left(I^{T}-H^{T} k_{k}{ }^{T}\right)+k_{k} R k_{k}{ }^{T} \\ \mathrm{P}_{k}=P_{k}^{\prime}-k_{k} H P_{k}^{\prime}-P_{k}^{\prime} H^{T} k_{k}{ }^{T}+k_{k} H P_{k}^{\prime} H^{T} k_{k}{ }^{T}+k_{k} R k_{k}{ }^{T} \end{array} 因为 P_{k}^{\prime} H^{T} k_{k}{ }^{T}=\left(k_{k}\left(P_{k}^{\prime} H^{T}\right)\right)^{T}=\left(k_{k} H P_{k}^{\prime T}\right)^{T} \operatorname{tr}\left(\mathrm{P}_{k}\right)=\operatorname{tr}\left(P_{k}^{\prime}\right)-2 \operatorname{tr}\left(k_{k} H P_{k}^{\prime}\right)+\operatorname{tr}\left(k_{k} H P_{k}^{\prime} H^{T} k_{k}{ }^{T}\right)+\operatorname{tr}\left(k_{k} R k_{k}{ }^{T}\right) 令 \frac{\operatorname{dtr}\left(\mathrm{P}_{k}\right)}{d k_{k}}=0 又因为: \begin{array}{c} \frac{\mathrm{dtr}(\mathrm{AB})}{d A}=B^{T} \\ \frac{\operatorname{dtr}\left(\mathrm{ABA}^{T}\right)}{d A}=A B+\mathrm{AB}^{T} \end{array} 因为 \mathrm{R} 、 H P_{k}^{-} H^{T} 是对角矩阵, 所以: \operatorname{tr}\left(k_{k} H P_{k}^{\prime} H^{T} k_{k}^{T}\right)=2 k_{k} H P_{k}^{\prime} H^{T}, \quad \operatorname{tr}\left(k_{k} R k_{k}^{T}\right)=2 k_{k} R 于是有。 因为E[ek]=0,E[vkT]=0上式可简化为:=E[(IkkH)ekekTT(IkkH)T]+E[kkvkvkTkkT]=(IkkH)E[ekekTT](IkkH)T+kkE[vkvkT]kkTPk=E[ekekT],R=E[vkvkT],于是有:=(IkkH)Pk(IkkH)T+kkRkkT=(PkkkHPk)(IkkH)T+kkRkkT=(PkkkHPk)(ITHTkkT)+kkRkkTPk=PkkkHPkPkHTkkT+kkHPkHTkkT+kkRkkT因为PkHTkkT=(kk(PkHT))T=(kkHPkT)Ttr(Pk)=tr(Pk)2tr(kkHPk)+tr(kkHPkHTkkT)+tr(kkRkkT)dkkdtr(Pk)=0又因为:dAdtr(AB)=BTdAdtr(ABAT)=AB+ABT因为RHPkHT是对角矩阵,所以:tr(kkHPkHTkkT)=2kkHPkHT,tr(kkRkkT)=2kkR于是有。

− P k ′ H T + k k ( H P k ′ H T + R ) = 0 k k ( H P k ′ H T + R ) = P k ′ H T k k = P k ′ H T H P k ′ H T + R \begin{array}{c} -P_{k}^{\prime} H^{T}+k_{k}\left(H P_{k}^{\prime} H^{T}+R\right)=0 \\ k_{k}\left(H P_{k}^{\prime} H^{T}+R\right)=P_{k}^{\prime} H^{T} \\ k_{k}=\frac{P_{k}^{\prime} H^{T}}{H P_{k}^{\prime} H^{T}+R} \end{array} PkHT+kk(HPkHT+R)=0kk(HPkHT+R)=PkHTkk=HPkHT+RPkHT

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/592498.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

nn.GRU层输出:state与output的关系

在 GRU(Gated Recurrent Unit)中,output 和 state 都是由 GRU 层的循环计算产生的,它们之间有直接的关系。state 实际上是 output 中最后一个时间步的隐藏状态。 GRU 的基本公式 GRU 的核心计算包括更新门(update gat…

从零开始学AI绘画,万字Stable Diffusion终极教程(四)

【第4期】图生图 欢迎来到SD的终极教程,这是我们的第四节课 这套课程分为六节课,会系统性的介绍sd的全部功能,让你打下坚实牢靠的基础 1.SD入门 2.关键词 3.Lora模型 4.图生图 5.controlnet 6.知识补充 在前面的课程中,我…

QT:QT窗口(一)

文章目录 菜单栏创建菜单栏在菜单栏中添加菜单创建菜单项添加分割线 工具栏创建工具栏设置停靠位置创建工具栏的同时指定停靠位置使用QToolBar类提供的setAllowedAreas函数来设置停靠位置 设置浮动属性设置移动属性 状态栏状态栏的创建在状态栏中显示实时消息在状态栏中显示永久…

数据结构-二叉树结尾+排序

一、二叉树结尾 1、如何判断一棵树是完全二叉树。 我们可以使用层序遍历的思路,利用一个队列,去完成层序遍历,但是这里会有些许的不同,我们需要让空也进队列。如果队列里到最后只剩下空那么这棵树就是完全二叉树。具体的实现如下…

工作问题记录React(持续更新中)

一、backdrop-filter:blur(20px); 毛玻璃效果,在安卓机上有兼容问题,添加兼容前缀也无效; 解决方案:让设计师调整渐变,不要使用该属性! 复制代码 background: radial-gradient(33% 33% at 100% 5%, #e9e5e5 0%, rgba…

本地部署大模型ollama+docker+open WebUI/Lobe Chat

文章目录 大模型工具Ollama下载安装运行Spring Ai 代码测试加依赖配置写代码 ollama的web&Desktop搭建部署Open WebUI有两种方式Docker DesktopDocker部署Open WebUIDocker部署Lobe Chat可以配置OpenAI的key也可以配置ollama 大模型的选择 本篇基于windows环境下配置 大模型…

线性数据结构-手写链表-LinkList

为什么需要手写实现数据结构? 其实技术的本身就是基础的积累和搭建的过程,基础扎实 地基平稳 万丈高楼才会久战不衰,做技术能一通百,百通千就不怕有再难得技术了。 一:链表的分类 主要有单向,双向和循环链表…

迎接AI时代:智能科技的社会责任与未来展望

AI智能体的社会角色、伦理挑战与可持续发展路径 引言: 在技术的浪潮中,AI智能体正逐步成为我们生活的一部分。它们在医疗、教育、交通等领域的应用,预示着一个全新的时代即将到来。本文将结合实际案例和数据分析,深入探讨AI智能体…

vue3--element-plus-抽屉文件上传和富文本编辑器

一、封装组件 article/components/ArticleEdit.vue <script setup> import { ref } from vue const visibleDrawer ref(false)const open (row) > {visibleDrawer.value trueconsole.log(row) }defineExpose({open }) </script><template><!-- 抽…

《MySQL45讲》读书笔记

重建表 alter table t engine InnoDB&#xff08;也就是recreate&#xff09;&#xff0c;而optimize table t 等于recreateanalyze&#xff0c;让表大小变小 重建表的执行流程 建立一个临时文件&#xff0c;扫描表 t 主键的所有数据页&#xff1b;用数据页中表 t 的记录生…

华为机考入门python3--(22)牛客22- 汽水瓶

分类&#xff1a;数字 知识点&#xff1a; 整除符号// 5//3 1 取余符号% 5%3 2 题目来自【牛客】 import sysdef calc_soda_bottles(n):if n 0: # 结束输入&#xff0c;不进行处理returnelse:# 循环进行汽水换算total_drunk 0 # 记录总共喝了多少瓶汽水while…

XSS注入漏洞解析(上)

XSS跨站脚本介绍 跨站脚本&#xff08;Cross-Site Scripting&#xff0c;XSS/CSS&#xff09;是一种经常出现在Web应用程序中的计算机安全漏洞&#xff0c;是 由于Web应用程序对用户的输入过滤不足而产生的。攻击者利用网站漏洞把恶意的脚本代码&#xff08;通常包括 HTML代码和…

深入浅出 BERT

Transformer 用于学习句子中的长距离依赖关系&#xff0c;同时执行序列到序列的建模。 它通过解决可变长度输入、并行化、梯度消失或爆炸、数据规模巨大等问题&#xff0c;比其他模型表现更好。使用的注意力机制是神经架构的一部分&#xff0c;使其能够动态突出显示输入数据的…

Meta Llama 3 使用 Hugging Face 和 PyTorch 优化 CPU 推理

原文地址&#xff1a;meta-llama-3-optimized-cpu-inference-with-hugging-face-and-pytorch 了解在 CPU 上部署 Meta* Llama 3 时如何减少模型延迟 2024 年 4 月 19 日 万众期待的 Meta 第三代 Llama 发布了&#xff0c;我想确保你知道如何以最佳方式部署这个最先进的&…

java基于云计算的SaaS医院his信息系统源码 HIS云平台源码

目录 云HIS功能模块 1、预约挂号&#xff1a; 2、药库管理&#xff1a; 3、门诊医生站&#xff1a; 4、门诊费用&#xff1a; 5、药房管理&#xff1a; 6、治疗室&#xff08;门诊护士工作站&#xff09;&#xff1a; 7、统计分析&#xff1a; 8、财务管理&#xff1a;…

vue快速入门(五十三)使用js进行路由跳转

注释很详细&#xff0c;直接上代码 上一篇 新增内容 几种常用的路由跳转方式演示 源码 App.vue <template><div id"app"><div class"nav"><!-- router-link 自带两个高亮样式类 router-link-exact-active和router-link-active区别&a…

《QT实用小工具·五十四》果冻弹出效果的动画按钮

1、概述 源码放在文章末尾 该项目实现动画按钮&#xff0c;鼠标放在按钮上可以弹性拉出的三个按钮&#xff0c;使用贝塞尔曲线实现&#xff0c;项目demo显示如下所示&#xff1a; 项目部分代码如下所示&#xff1a; #ifndef WATERCIRCLEBUTTON_H #define WATERCIRCLEBUTTON…

MySQL CRUD进阶

前言&#x1f440;~ 上一章我们介绍了CRUD的一些基础操作&#xff0c;关于如何在表里进行增加记录、查询记录、修改记录以及删除记录的一些基础操作&#xff0c;今天我们学习CRUD&#xff08;增删改查&#xff09;进阶操作 如果各位对文章的内容感兴趣的话&#xff0c;请点点小…

mac查看Linux服务器的性能

mac上安装 linux系统 如果有 linux服务器账号密码&#xff0c;那么上一部可忽略&#xff1b; 比如&#xff1a;直接连接阿里云或腾讯云账号 1. 安装termius 链接: https://pan.baidu.com/s/1iYsZPZThPizxqtkLPT89-Q?pwdbw6j 提取码: bw6j 官网 Termius - SSH platform for …

[Linux][网络][TCP][一][TCP基础][TCP报头]详细讲解

目录 1.TCP头部格式2.TCP协议的特点3.TCP如何封装与分用4.通过序列号和确认应答号提高可靠性1.32位序列号2.32位确认应答号3.保证可靠性4.为什么序列号和确认应答号是单独的字段 5.窗口大小1.TCP的发送和接收缓冲区2.窗口大小 6.连接管理机制 1.TCP头部格式 TCP全称为"传输…