機器學習 [白板推導](十二)[卡曼濾波、粒子濾波]

15. 線性動態系統(卡曼濾波,Kalman Filter)

15.1. 概述

15.1.1. 背景介紹

??變量隨時間變化的系統叫做動態系統,其中隱變量取值離散的是隱馬爾可夫模型(HMM),而隱變量取值連續的分為線性動態系統和粒子濾波(Particular Filter),前者各變量和變量各時刻滿足線性關系和高斯分布,后者則不滿足。

??線性關系:時刻之間:zt=A?zt?1+B+εz_t=A\cdot z_{t-1}+B+\varepsilonzt?=A?zt?1?+B+ε;變量之間:xt=C?zt+D+δx_t=C\cdot z_{t}+D+\deltaxt?=C?zt?+D+δ;其中 ε,δ\varepsilon,\deltaε,δ 是噪聲,在線性動態系統中服從高斯分布。

15.1.2. 模型定義

??設噪聲 ε~N(0,Q)\varepsilon \sim \mathcal{N}(0,Q)εN(0,Q)δ~N(0,R)\delta \sim \mathcal{N}(0,R)δN(0,R),同時設初始狀態 z1~N(μ1,Σ1)z_1\sim \mathcal{N}(\mu_1,\Sigma_1)z1?N(μ1?,Σ1?),則可以通過高斯分布依次計算 zt∣zt?1~N(A?zt?1+B,Q)z_t|z_{t-1}\sim \mathcal{N}(A\cdot z_{t-1}+B,Q)zt?zt?1?N(A?zt?1?+B,Q)xt∣zt~N(C?zt+D,R)x_t|z_{t}\sim \mathcal{N}(C\cdot z_{t}+D,R)xt?zt?N(C?zt?+D,R) 得到所有變量的分布,因此模型參數為 θ=(A,B,C,D,Q,R,μ1,Σ1)\theta =(A,B,C,D,Q,R,\mu_1,\Sigma_1)θ=(A,B,C,D,Q,R,μ1?,Σ1?).

??線性動態系統和HMM一樣,也服從一階齊次馬爾可夫假設和觀測獨立假設(見上篇筆記機器學習 [白板推導](十一))。

15.2. Filtering

??首先,filtering公式為 P(zt∣x1:t)P(z_t|x_{1:t})P(zt?x1:t?),是一種Online算法,通過 t 時刻及之前的觀測變量來推測當前狀態,這既是模型求解(Learning)的必要信息,同時也是對prediction結果 P(zt∣x1:t?1)P(z_t|x_{1:t-1})P(zt?x1:t?1?) 的修正(Correction)。

??filtering也可以遞推求解,推導為:
P(zt∣x1:t)=P(zt,x1:t)P(x1:t)=P(xt∣zt,x1:t?1)?P(xt∣zt)?P(zt,x1:t?1)P(x1:t)=P(xt∣zt)?P(zt∣x1:t?1)?P(x1:t?1)P(x1:t)=P(xt∣zt)?Emission?Probability?P(zt∣x1:t?1)?Prediction?of?t-1?P(x1:t?1)P(x1:t)?Constant,(15.1)\begin{aligned} P(z_t|x_{1:t})&=\frac{P(z_t,x_{1:t})}{P(x_{1:t})}=\frac{\overset{P(x_t|z_t)}{\overbrace{P(x_t|z_t,x_{1:t-1})}}\cdot P(z_t,x_{1:t-1})}{P(x_{1:t})}\\ &=\frac{P(x_t|z_t)\cdot P(z_t|x_{1:t-1})\cdot P(x_{1:t-1})}{P(x_{1:t})}\\ &=\underset{\text{Emission Probability}}{\underbrace{P(x_t|z_t)}}\cdot \underset{\text{Prediction of t-1}}{\underbrace{P(z_t|x_{1:t-1})}}\cdot \underset{\text{Constant}}{\underbrace{\frac{P(x_{1:t-1})}{P(x_{1:t})}}},\tag{15.1} \end{aligned} P(zt?x1:t?)?=P(x1:t?)P(zt?,x1:t?)?=P(x1:t?)P(xt?zt?,x1:t?1?)?P(xt?zt?)??P(zt?,x1:t?1?)?=P(x1:t?)P(xt?zt?)?P(zt?x1:t?1?)?P(x1:t?1?)?=Emission?ProbabilityP(xt?zt?)???Prediction?of?t-1P(zt?x1:t?1?)???ConstantP(x1:t?)P(x1:t?1?)???,?(15.1)
其中Prediction可以求解為:
P(zt∣x1:t?1)=∫zt?1P(zt,zt?1∣x1:t?1)dzt?1=∫zt?1P(zt∣zt?1,x1:t?1)?P(zt∣zt?1)?State?Transition?Probability?P(zt?1∣x1:t?1)?Filtering?of?t-1dzt?1,(15.2)\begin{aligned} P(z_t|x_{1:t-1})&=\int_{z_{t-1}}P(z_t,z_{t-1}|x_{1:t-1})dz_{t-1}\\ &=\int_{z_{t-1}}\underset{\underset{\text{State Transition Probability}}{\underbrace{P(z_t|z_{t-1})}}}{\underbrace{P(z_t|z_{t-1},x_{1:t-1})}}\cdot \underset{\text{Filtering of t-1}}{\underbrace{P(z_{t-1}|x_{1:t-1})}}dz_{t-1},\tag{15.2} \end{aligned} P(zt?x1:t?1?)?=zt?1??P(zt?,zt?1?x1:t?1?)dzt?1?=zt?1??State?Transition?ProbabilityP(zt?zt?1?)??P(zt?zt?1?,x1:t?1?)???Filtering?of?t-1P(zt?1?x1:t?1?)??dzt?1?,?(15.2)
因此可以通過 t?1t-1t?1 時刻的filtering計算 ttt 時刻的prediction,進而計算t時刻的filtering,循環迭代進行求解。

??總結來說,Filtering的過程可以寫作以下步驟:

  • t=1t=1t=1P(z1∣x1)=P(z1,x1)P(x1)=P(x1∣z1)?P(z1)∫z1P(x1∣z1)?P(z1)dz1P(z_1|x_1)=\frac{P(z_1,x_1)}{P(x_1)}=\frac{P(x_1|z_1)\cdot P(z_1)}{\int_{z_1}P(x_1|z_1)\cdot P(z_1)dz_1}P(z1?x1?)=P(x1?)P(z1?,x1?)?=z1??P(x1?z1?)?P(z1?)dz1?P(x1?z1?)?P(z1?)?,并用上面的公式計算Prediction P(z2∣x1)P(z_2|x_1)P(z2?x1?).
  • t=2t=2t=2,根據上面的遞推關系計算 P(z2∣x1,x2)P(z_2|x_1,x_2)P(z2?x1?,x2?)(作為filtering的更新,update,以及prediction的修正,correction)和 P(z3∣x1,x2)P(z_3|x_1,x_2)P(z3?x1?,x2?)(新的prediction)。
  • ……
  • t=Tt=Tt=T,計算 P(zT∣x1:T?1)P(z_T|x_{1:T-1})P(zT?x1:T?1?).

??在整個計算過程中,Filtering和Prediction的計算結果均為高斯分布,其參數(均值和標準差)可以通過之前時刻的計算結果以及模型參數算出,推導過程參考機器學習 [白板推導](一)中高斯分布的性質,這里不再詳細介紹。

16. 粒子濾波(Particular Filtering)

16.1. 背景介紹

??在15. 線性動態系統(卡曼濾波)中,可以通過filtering和prediction交替迭代的方法求得隱狀態序列,但應對非線性非高斯模型,無法求出解析解,只能通過采樣模擬的方法求出近似解,如此便誕生了粒子濾波。

??粒子濾波應用范圍非常之廣,且已經產生了許多研究成果和變體,這里只介紹最基本的粒子濾波算法。

16.2. 算法介紹

16.2.1. 重要度采樣及針對filtering的改進 —— 序列重要度采樣(Sequential Importance Sampling,SIS)

??首先回顧重要度采樣,給定一個復雜的分布 p(x)p(x)p(x),需要計算期望 E[f(x)]E[f(x)]E[f(x)] 時,直接從 p(x)p(x)p(x) 中采樣較為困難,此時可以設置一個簡單的建議分布 q(x)q(x)q(x),此時 E[f(x)]=∫z[f(x)p(x)]dz=∫z[f(x)?p(x)q(x)?q(x)]dzE[f(x)]=\int_z \left[f(x)p(x)\right]dz=\int_z \left[f(x)\cdot\frac{p(x)}{q(x)}\cdot q(x)\right]dzE[f(x)]=z?[f(x)p(x)]dz=z?[f(x)?q(x)p(x)??q(x)]dz,采樣變得容易。

??將重要度采樣應用于動態系統的filtering問題時,對每個時刻 ttt 和每個樣本 xt(i)x_t^{(i)}xt(i)?,都需要計算重要度 wt(i)=p(zt(i)∣x1:t(i))q(zt(i)∣x1:t(i))w_t^{(i)}=\frac{p(z_t^{(i)}|x_{1:t}^{(i)})}{q(z_t^{(i)}|x^{(i)}_{1:t})}wt(i)?=q(zt(i)?x1:t(i)?)p(zt(i)?x1:t(i)?)?,而 p(zt(i)∣x1:t(i))p(z_t^{(i)}|x_{1:t}^{(i)})p(zt(i)?x1:t(i)?) 的計算是復雜的,還要計算N次(N個樣本)。

??將filtering問題的計算目標進行調整,由 p(zt(i)∣x1:t(i))p(z_t^{(i)}|x_{1:t}^{(i)})p(zt(i)?x1:t(i)?) 改為 p(z1:t(i)∣x1:t(i))p(z_{1:t}^{(i)}|x_{1:t}^{(i)})p(z1:t(i)?x1:t(i)?)(同樣可以達到目標),此時重要度為 wt(i)∝p(z1:t(i)∣x1:t(i))q(z1:t(i)∣x1:t(i))w_t^{(i)}\propto \frac{p(z_{1:t}^{(i)}|x_{1:t}^{(i)})}{q(z_{1:t}^{(i)}|x^{(i)}_{1:t})}wt(i)?q(z1:t(i)?x1:t(i)?)p(z1:t(i)?x1:t(i)?)?,分別推導分子和分母的遞推式,如果可以建立遞推關系,則可以簡化運算:

  • 對于分子,可以推導如下
    p(z1:t(i)∣x1:t(i))=p(z1:t(i),x1:t(i))p(x1:t(i))=p(xt(i)∣z1:t(i),x1:t?1(i))?p(xt(i)∣zt(i))?Emission?Probability?p(z1:t(i),x1:t?1(i))p(x1:t(i))=p(xt(i)∣zt(i))?p(zt(i)∣z1:t?1(i),x1:t?1(i))?p(zt(i)∣zt?1(i))?State?Transition?Probability?p(z1:t?1(i),x1:t?1(i))p(x1:t(i))=p(xt(i)∣zt(i))?p(zt(i)∣zt?1(i))?p(z1:t?1(i)∣x1:t?1(i))?p(x1:t?1(i))p(x1:t(i))=[p(x1:t?1(i))p(x1:t(i))?p(xt(i)∣zt(i))?p(zt(i)∣zt?1(i))]?p(z1:t?1(i)∣x1:t?1(i)),(15.3)\begin{aligned} p(z_{1:t}^{(i)}|x_{1:t}^{(i)})&=\frac{p(z_{1:t}^{(i)},x_{1:t}^{(i)})}{p(x_{1:t}^{(i)})}\\ &=\frac{\overset{\overset{\text{Emission Probability}}{\overbrace{p(x_t^{(i)}|z_t^{(i)})}}}{\overbrace{p(x_t^{(i)}|z_{1:t}^{(i)},x_{1:t-1}^{(i)})}}\cdot p(z_{1:t}^{(i)},x_{1:t-1}^{(i)})}{p(x_{1:t}^{(i)})}\\ &=\frac{p(x_t^{(i)}|z_t^{(i)})\cdot \overset{\overset{\text{State Transition Probability}}{\overbrace{p(z_t^{(i)}|z_{t-1}^{(i)})}}}{\overbrace{p(z_t^{(i)}|z_{1:t-1}^{(i)},x_{1:t-1}^{(i)})}}\cdot p(z_{1:t-1}^{(i)},x_{1:t-1}^{(i)})}{p(x_{1:t}^{(i)})}\\ &=\frac{p(x_t^{(i)}|z_t^{(i)})\cdot p(z_t^{(i)}|z_{t-1}^{(i)})\cdot p(z_{1:t-1}^{(i)}|x_{1:t-1}^{(i)})\cdot p(x_{1:t-1}^{(i)})}{p(x_{1:t}^{(i)})}\\ &=\left [\frac{p(x_{1:t-1}^{(i)})}{p(x_{1:t}^{(i)})}\cdot p(x_t^{(i)}|z_t^{(i)})\cdot p(z_t^{(i)}|z_{t-1}^{(i)}) \right ]\cdot p(z_{1:t-1}^{(i)}|x_{1:t-1}^{(i)}), \tag{15.3} \end{aligned} p(z1:t(i)?x1:t(i)?)?=p(x1:t(i)?)p(z1:t(i)?,x1:t(i)?)?=p(x1:t(i)?)p(xt(i)?z1:t(i)?,x1:t?1(i)?)?p(xt(i)?zt(i)?)?Emission?Probability???p(z1:t(i)?,x1:t?1(i)?)?=p(x1:t(i)?)p(xt(i)?zt(i)?)?p(zt(i)?z1:t?1(i)?,x1:t?1(i)?)?p(zt(i)?zt?1(i)?)?State?Transition?Probability???p(z1:t?1(i)?,x1:t?1(i)?)?=p(x1:t(i)?)p(xt(i)?zt(i)?)?p(zt(i)?zt?1(i)?)?p(z1:t?1(i)?x1:t?1(i)?)?p(x1:t?1(i)?)?=[p(x1:t(i)?)p(x1:t?1(i)?)??p(xt(i)?zt(i)?)?p(zt(i)?zt?1(i)?)]?p(z1:t?1(i)?x1:t?1(i)?),?(15.3)
  • 對于分母,可以設 q(z1:t(i)∣x1:t(i))q(z_{1:t}^{(i)}|x_{1:t}^{(i)})q(z1:t(i)?x1:t(i)?) 滿足 q(z1:t(i)∣x1:t(i))=q(zt(i)∣z1:t?1(i),x1:t(i))?q(z1:t?1(i)∣x1:t?1(i))q(z_{1:t}^{(i)}|x_{1:t}^{(i)})=q(z_{t}^{(i)}|z_{1:t-1}^{(i)},x_{1:t}^{(i)})\cdot q(z_{1:t-1}^{(i)}|x_{1:t-1}^{(i)})q(z1:t(i)?x1:t(i)?)=q(zt(i)?z1:t?1(i)?,x1:t(i)?)?q(z1:t?1(i)?x1:t?1(i)?).
  • 將分子分母帶入得,
    wt(i)∝p(z1:t(i)∣x1:t(i))q(z1:t(i)∣x1:t(i))=[p(x1:t?1(i))p(x1:t(i))?p(xt(i)∣zt(i))?p(zt(i)∣zt?1(i))]?p(z1:t?1(i)∣x1:t?1(i))q(zt(i)∣z1:t?1(i),x1:t(i))?q(z1:t?1(i)∣x1:t?1(i))=p(x1:t?1(i))p(x1:t(i))?Constant?[p(xt(i)∣zt(i))?p(zt(i)∣zt?1(i))q(zt(i)∣z1:t?1(i),x1:t(i))?q(zt(i)∣zt?1(i),x1:t(i))]?p(z1:t?1(i)∣x1:t?1(i))q(z1:t?1(i)∣x1:t?1(i))?wt?1(i)∝[p(xt(i)∣zt(i))?p(zt(i)∣zt?1(i))q(zt(i)∣zt?1(i),x1:t(i))]?wt?1(i),(15.4)\begin{aligned} w_t^{(i)}&\propto \frac{p(z_{1:t}^{(i)}|x_{1:t}^{(i)})}{q(z_{1:t}^{(i)}|x^{(i)}_{1:t})} \\ &=\frac{\left [\frac{p(x_{1:t-1}^{(i)})}{p(x_{1:t}^{(i)})}\cdot p(x_t^{(i)}|z_t^{(i)})\cdot p(z_t^{(i)}|z_{t-1}^{(i)}) \right ]\cdot p(z_{1:t-1}^{(i)}|x_{1:t-1}^{(i)})}{q(z_{t}^{(i)}|z_{1:t-1}^{(i)},x_{1:t}^{(i)})\cdot q(z_{1:t-1}^{(i)}|x_{1:t-1}^{(i)})}\\ &=\underset{\text{Constant}}{\underbrace{\frac{p(x_{1:t-1}^{(i)})}{p(x_{1:t}^{(i)})}}}\cdot \left [\frac{p(x_t^{(i)}|z_t^{(i)})\cdot p(z_t^{(i)}|z_{t-1}^{(i)}) }{\underset{q(z_{t}^{(i)}|z_{t-1}^{(i)},x_{1:t}^{(i)})}{\underbrace{q(z_{t}^{(i)}|z_{1:t-1}^{(i)},x_{1:t}^{(i)})}}}\right ]\cdot \underset{w_{t-1}^{(i)}}{\underbrace{\frac{p(z_{1:t-1}^{(i)}|x_{1:t-1}^{(i)})}{q(z_{1:t-1}^{(i)}|x_{1:t-1}^{(i)})}}} \\ &\propto \left [\frac{p(x_t^{(i)}|z_t^{(i)})\cdot p(z_t^{(i)}|z_{t-1}^{(i)}) }{q(z_{t}^{(i)}|z_{t-1}^{(i)},x_{1:t}^{(i)})}\right ]\cdot w_{t-1}^{(i)} ,\tag{15.4} \end{aligned} wt(i)??q(z1:t(i)?x1:t(i)?)p(z1:t(i)?x1:t(i)?)?=q(zt(i)?z1:t?1(i)?,x1:t(i)?)?q(z1:t?1(i)?x1:t?1(i)?)[p(x1:t(i)?)p(x1:t?1(i)?)??p(xt(i)?zt(i)?)?p(zt(i)?zt?1(i)?)]?p(z1:t?1(i)?x1:t?1(i)?)?=Constantp(x1:t(i)?)p(x1:t?1(i)?)?????q(zt(i)?zt?1(i)?,x1:t(i)?)q(zt(i)?z1:t?1(i)?,x1:t(i)?)??p(xt(i)?zt(i)?)?p(zt(i)?zt?1(i)?)???wt?1(i)?q(z1:t?1(i)?x1:t?1(i)?)p(z1:t?1(i)?x1:t?1(i)?)???[q(zt(i)?zt?1(i)?,x1:t(i)?)p(xt(i)?zt(i)?)?p(zt(i)?zt?1(i)?)?]?wt?1(i)?,?(15.4)
    如此便建立了遞推計算關系,可以通過蒙特卡洛的重要度采樣方法計算filtering問題。

??為了采樣能收斂于真正的期望,需要對重要度進行歸一化,即保證 ∑i=1Nwt(i)=1\sum_{i=1}^N w_t^{(i)}=1i=1N?wt(i)?=1,這也就是為什么遞推關系中可以化簡常數,只要得到正比的關系即可。

??上述算法即為基礎的粒子濾波算法,其中對狀態值的每一次抽樣結果 zt(i)~q(zt(i)∣zt?1(i),x1:t(i))z_t^{(i)}\sim q(z_{t}^{(i)}|z_{t-1}^{(i)},x_{1:t}^{(i)})zt(i)?q(zt(i)?zt?1(i)?,x1:t(i)?) 被稱為一個粒子。

16.2.2. 重采樣

??在應用上述粒子濾波算法的過程中,很多時候存在粒子退化問題,即只有少數狀態擁有真正有效的重要度 wt(i)w_t^{(i)}wt(i)?,其他大多數狀態的重要度接近0,但算法每次都需要對所有 zt(i)z_t^{(i)}zt(i)?q(zt(i)∣zt?1(i),x1:t(i))q(z_{t}^{(i)}|z_{t-1}^{(i)},x_{1:t}^{(i)})q(zt(i)?zt?1(i)?,x1:t(i)?) 的概率抽樣,而 q(zt(i)∣zt?1(i),x1:t(i))q(z_{t}^{(i)}|z_{t-1}^{(i)},x_{1:t}^{(i)})q(zt(i)?zt?1(i)?,x1:t(i)?) 與重要度 wt(i)w_t^{(i)}wt(i)? 之間沒有關聯,這意味著可能有很多情況 q(zt(i)∣zt?1(i),x1:t(i))q(z_{t}^{(i)}|z_{t-1}^{(i)},x_{1:t}^{(i)})q(zt(i)?zt?1(i)?,x1:t(i)?) 較大,wt(i)w_t^{(i)}wt(i)? 較小,抽樣結果充斥著不重要的信息,或是反過來,有效信息在抽樣結果中占比很低,這些情況都會使計算資源浪費,模型難以收斂,效果變差等等。

??重采樣的思想用于解決上述問題,具體來說,當使用概率 q(zt(i)∣zt?1(i),x1:t(i))q(z_{t}^{(i)}|z_{t-1}^{(i)},x_{1:t}^{(i)})q(zt(i)?zt?1(i)?,x1:t(i)?) 完成抽樣后,計算每個粒子的重要度,并對重要度計算CDF,再在0-1的均勻分布上抽取N個分裂因子 μt(i)\mu_t^{(i)}μt(i)?,每個 μt(i)\mu_t^{(i)}μt(i)? 落在CDF的哪個粒子區間內,就把哪個粒子復制一次(有時也叫粒子分裂)。

??例如,抽樣得到的結果為z1,z2,z3(從小到大排列),三者的重要度分別為0.1,0.1,0.8,計算CDF為0-0.1、0.1-0.2、0.8-1.0三段,則需要抽取三個分裂因子,假設為0.15,0.38,0.54,第一個落入z2區間(0.1-0.2),則z2復制一次,另外兩個落入z3區間(0.2-0.8),則z3復制兩次,通過這個方法盡可能讓每次抽樣的粒子擁有接近1/N的重要度(或者說重要度高的粒子分裂的次數也多,更加能被有效利用,而重要度低的粒子可以適當舍棄)。

??當樣本的維度過高時粒子退化問題將更加可怕,此時重采樣的必要性更高;

16.2.3. Sampling-Importance-Resampling(SIR)

??除了重采樣外,還有一種方法可以解決上文中提到的粒子退化問題,就是設置一個更加合理的 q(zt(i)∣zt?1(i),x1:t(i))q(z_{t}^{(i)}|z_{t-1}^{(i)},x_{1:t}^{(i)})q(zt(i)?zt?1(i)?,x1:t(i)?),有一個方法是令 q(zt(i)∣zt?1(i),x1:t(i))=p(zt(i)∣zt?1(i))q(z_{t}^{(i)}|z_{t-1}^{(i)},x_{1:t}^{(i)})=p(z_t^{(i)}|z_{t-1}^{(i)})q(zt(i)?zt?1(i)?,x1:t(i)?)=p(zt(i)?zt?1(i)?),此時重要度的遞推關系為 wt(i)=p(xt(i)∣zt(i))?wt?1(i)w_t^{(i)}=p(x_t^{(i)}|z_t^{(i)})\cdot w_{t-1}^{(i)}wt(i)?=p(xt(i)?zt(i)?)?wt?1(i)?,這種改進版的粒子濾波再加上重采樣,可以進一步提升算法性能,叫做SIR.

??為什么要令 q(zt(i)∣zt?1(i),x1:t(i))=p(zt(i)∣zt?1(i))q(z_{t}^{(i)}|z_{t-1}^{(i)},x_{1:t}^{(i)})=p(z_t^{(i)}|z_{t-1}^{(i)})q(zt(i)?zt?1(i)?,x1:t(i)?)=p(zt(i)?zt?1(i)?),其實是邏輯上的考慮,filtering的目標為計算 p(zt(i)∣x1:t(i))p(z_t^{(i)}|x_{1:t}^{(i)})p(zt(i)?x1:t(i)?)(或 p(z1:t(i)∣x1:t(i))p(z_{1:t}^{(i)}|x_{1:t}^{(i)})p(z1:t(i)?x1:t(i)?)),而這個問題中粒子濾波的方案是要對 zt(i)z_t^{(i)}zt(i)? 進行采樣來計算均值,一個很簡單的思想是,在已知 xt(i)x_t^{(i)}xt(i)? 的前提下,p(xt(i)∣zt(i))p(x_t^{(i)}|z_t^{(i)})p(xt(i)?zt(i)?) 越大的 zt(i)z_t^{(i)}zt(i)? 很多時候越有可能成為真正的狀態,因此應該賦予其越高的權重,這就是要設置一個特殊的 q(zt(i)∣zt?1(i),x1:t(i))=p(zt(i)∣zt?1(i))q(z_{t}^{(i)}|z_{t-1}^{(i)},x_{1:t}^{(i)})=p(z_t^{(i)}|z_{t-1}^{(i)})q(zt(i)?zt?1(i)?,x1:t(i)?)=p(zt(i)?zt?1(i)?) 的原因,就是為了湊出 wt(i)=p(xt(i)∣zt(i))?wt?1(i)w_t^{(i)}=p(x_t^{(i)}|z_t^{(i)})\cdot w_{t-1}^{(i)}wt(i)?=p(xt(i)?zt(i)?)?wt?1(i)?,然而這是一個樸素的思想,后人對這個建議分布的取法進行了很多研究,這里只介紹最基本的粒子濾波,因此不做贅述。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/93553.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/93553.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/93553.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

RH134 訪問網絡附加存儲知識點

1. NFS 的主要功能是什么?答:NFS是一種分布式文件系統協議,主要功能包括:允許遠程計算機通過網絡訪問共享文件。 實現文件系統在客戶端和服務器之間的透明訪問。支持文件的共享、讀取和寫入,使得多個 …

組合模式及優化

組合模式是一種結構型設計模式,其核心思想是將對象組合成樹形結構,以表示“部分-整體”的層次關系,使得用戶對單個對象和組合對象的使用具有一致性。 一、介紹 核心角色 組合模式包含以下3個關鍵角色: 抽象組件(Compon…

【wmi異常】關于taskkill命令提示“錯誤:找不到” 以及無法正常獲取設備機器碼的處理辦法

記錄一下我的解決方案。 我先查閱了這篇博客:https://blog.csdn.net/qq_45698181/article/details/138957277 發現他寫的批處理不知怎么執行不了,后來問了ai又可以執行了,估計是csdn防盜版格式問題 這里寫一下我跟ai的對話,大家可…

制造裝配、倉儲搬運、快遞裝卸皆適配!MinkTec 彎曲形變傳感器助力,讓人體工學改變勞動生活

【導語】Minktec 最新實驗顯示:將Minktec 柔性彎曲形變傳感器FlexTail 貼于受試者背部,記錄 1 分鐘內從洗碗機取餐具的動作,結合配套的flexlib -專用Python庫分析,不僅量化出 “越低越傷腰” 的結論,更為制造裝配、物流…

Nginx蜘蛛請求智能分流:精準識別爬蟲并轉發SEO渲染服務

> 一招解決搜索引擎爬蟲無法解析現代前端框架的痛點,提升網站收錄率與SEO排名! **痛點場景**:你的網站采用Vue/React等前端框架構建,頁面內容依賴JavaScript動態渲染。搜索引擎爬蟲訪問時,只能抓取到空HTML骨架,無法獲取真實內容,導致網站收錄率低、SEO效果差。 --…

鏈表。。。

目錄 5.1 鏈表的結點 5.2 插入 5.3 鏈表長度 5.4 查找 5.5 指定位置刪除 5.6 代碼 5.1 鏈表的結點 一個結點包括:值和指向下一個結點的指針。 package com.qcby.鏈表;public class Node {int value;Node next;public Node(int val){valueval;}Overridepublic…

私人AI搜索新突破:3步本地部署Dify+Ollama+QwQ,搜索能力MAX

1.安裝Docker容器 本地部署Dify要先安裝Docker桌面版,跟Ollama一樣簡單,也是去官網下載對應版本文件,直接安裝就OK。 2:安裝Dify 安裝 Dify 簡單的方式就是git clone,復制其github地址github.com/langgenius/dify&am…

(2-10-1)MyBatis的基礎與基本使用

目錄 0.前置小節 1. MyBatis 框架介紹 1.1 軟件開發中的框架 1.2 使用框架的好處 1.3 SSM 開發框架 1.4 什么是 MyBatis 1.5 MyBatis 的開發流程 2. MyBatis 的開發流程 2.0 MyBatis的工作流程 2.1 引入 MyBatis 依賴 00.base(目錄、pom、單元測試、Junit4) 01.Cal…

StarRocks集群部署

Starrocks 是一款基于 MPP 架構的高性能實時分析型數據庫,專為 OLAP(聯機分析處理)場景 設計,尤其擅長處理海量數據的實時分析、復雜查詢和多維統計。 硬件 CPU:StarRocks依靠AVX2指令集充分發揮其矢量化能力。因此&am…

【CPP】自己實現一個CPP小工具demo,可以擴展其他選項

自己寫CPP腳本小工具1. 思路描述2. 代碼實現2.1 代碼文件CppTool.cpp2.2 CMakeLists.txt3. 工具示例3.1 幫助信息3.2 工具用法3.3 實際使用1. 思路描述 實現一個簡單的命令行工具。內容包括: 命令幫助信息參數檢查,參數解析等功能。執行其他命令。將指…

如何使用嵌入模型創建本地知識庫Demo

為data目錄下的txt文檔用阿里百煉的文本嵌入模型創建一個本地知識庫import os from llama_index.core import ,Settings, SimpleDirectoryReader, VectorStoreIndex from llama_index.core.node_parser import SentenceSplitter from llama_index.llms.dashscope import DashSc…

SpringBoot 整合 Langchain4j:系統提示詞與用戶提示詞實戰詳解

> 掌握提示詞工程的核心技巧,讓你的AI應用效果提升300%! **真實痛點**:為什么同樣的模型,別人的應用精準專業,而你的卻答非所問?關鍵在于提示詞工程!本文將揭秘如何通過系統提示詞與用戶提示詞的巧妙配合,打造專業級AI應用。 --- ### 一、Langchain4j 核心概念…

Sklearn 機器學習 郵件文本分類 加載郵件數據

??親愛的技術愛好者們,熱烈歡迎來到 Kant2048 的博客!我是 Thomas Kant,很開心能在CSDN上與你們相遇~?? 本博客的精華專欄: 【自動化測試】 【測試經驗】 【人工智能】 【Python】 Sklearn 機器學習 郵件文本分類 - 加載郵件數據 在自然語言處理(NLP)中,郵件文本分…

騰訊云開發小程序工具箱使用心得

一、核心優勢與使用體驗 作為首批使用騰訊云開發(CloudBase)工具箱的開發者,我深刻感受到其通過CloudBase AI與MCP服務重構開發范式的創新價值。結合微信小程序開發場景,該平臺在以下維度表現突出: 1. AI驅動的全棧開發…

機械加工元件——工業精密制造的璀璨明珠

在工業制造的宏大畫卷中,機械加工元件猶如璀璨的明珠,以其卓越的性能和精湛的工藝,為各行各業的發展注入了源源不斷的動力。它們雖形態各異,功能不同,卻在無數產品中攜手合作,展現出科技與柔性的完美融合。…

【八股】Redis-中小廠精要八股

Redis 基礎 redis為什么這么快 (高) [!NOTE] 最首要的是Redis是純內存操作, 比磁盤要快3個數量級同時在與內存操作中采用了非阻塞I/O多路復用機制來提高并發量并且基于Redis的IO密集型,采用單線程操作, 免去了線程切換開銷Redis 內置了多種優化過后的數據結構實現…

C++字符串(string)操作解析:從基礎到進階

1. 字符串基礎&#xff1a;大小與容量cppvoid test1() {string s1("Hello World");cout << "size : " << s1.size() << endl; // 輸出字符串長度cout << "capacity " << s1.capacity() << endl; // 輸出字…

蘑兔音樂:音樂創作的魔法棒

在這個充滿創意與可能的時代&#xff0c;人人都有一顆渴望表達音樂之心。但傳統音樂創作&#xff0c;復雜的樂理、昂貴的設備&#xff0c;總讓人望而卻步。別擔心&#xff01;蘑兔 AI 音樂強勢來襲&#xff0c;它就是那個能讓音樂小白也能搞創作的神奇工具&#xff01;?靈感模…

從傳統到智能:RFID 技術如何重構壓縮機生產線

從傳統到智能&#xff1a;RFID 技術如何重構壓縮機生產線在工業 4.0 與中國制造 2025 戰略的深入推進下&#xff0c;作為空調核心部件的壓縮機制造業正加速從傳統生產模式向智能化轉型。壓縮機生產以高精度、大批量為顯著特點&#xff0c;長期面臨生產數據斷層、柔性化不足、質…

HTML5二十四節氣網站源碼

一. 二十四節氣文化主題網站概述 本網站以中國傳統文化瑰寶“二十四節氣”為核心&#xff0c;通過現代Web技術打造沉浸式文化體驗平臺&#xff0c;融合視覺美學與交互創新&#xff0c;全方位展現節氣的自然規律與人文內涵。網站采用響應式布局設計&#xff0c;適配多終端設備&…