粒子滤波-从重要性采样(IS)到序列重要性采样(SIS)再到序列重要性重采样(SIR)

  • Post author:
  • Post category:其他




Basic Monte Carlo Sampling

Fig 1



应用场所

粒子滤波:针对非线性、非高斯分布的模型,用采到的样本表示概率分布(target PDF),求解



p

(

z

t

x

1

:

t

)

p(z_t | x_{1:t})






p


(



z










t






















x











1


:


t



















)





(根据1到t时刻的观测变量x求解t时刻隐变量z)



重要性采样(IS)

  • 目标:计算服从于target PDF分布的函数



    f

    (

    z

    )

    f(z)






    f


    (


    z


    )





    的期望,通过应用Monte Carlo方法在概率分布中抽取N个样本,则





    p

    (

    y

    )

    =

    E

    [

    f

    (

    z

    )

    ]

    1

    N

    i

    =

    1

    N

    f

    (

    z

    i

    )

    p(\mathbf{y})=E[f(z)] \approx\frac{1}{N}\sum_{i=1}^{N}f(z_i)






    p


    (


    y


    )




    =








    E


    [


    f


    (


    z


    )]
























    N














    1































    i


    =


    1



















    N




















    f


    (



    z










    i


















    )







    但如果概率分布比较复杂,则可以通过q(z)(proposal distribution)作为桥梁(importance sampling):





    E

    [

    f

    (

    z

    )

    ]

    =

    z

    f

    (

    z

    )

    p

    (

    z

    )

    d

    z

    =

    z

    f

    (

    x

    )

    p

    (

    z

    )

    q

    (

    z

    )

    q

    (

    z

    )

    d

    z

    =

    i

    =

    1

    N

    f

    (

    z

    i

    )

    p

    (

    z

    i

    )

    q

    (

    z

    i

    )

    E[f(z)] = \int_zf(z)p(z)dz = \int_zf(x)\frac{p(z)}{q(z)}q(z)dz = \sum_{i=1}^Nf(z_i)\frac{p(z_i)}{q(z_i)}






    E


    [


    f


    (


    z


    )]




    =




















    z




















    f


    (


    z


    )


    p


    (


    z


    )


    d


    z




    =




















    z




















    f


    (


    x


    )













    q


    (


    z


    )














    p


    (


    z


    )




















    q


    (


    z


    )


    d


    z




    =

















    i


    =


    1


















    N



















    f


    (



    z










    i


















    )













    q


    (



    z










    i


















    )














    p


    (



    z










    i


















    )

























    直接采样,然后对每个样本应用权重得到期望的近似估计,最后进行权重归一化。

  • 在滤波问题求解



    p

    (

    z

    t

    x

    1

    :

    t

    )

    p(z_t | x_{1:t})






    p


    (



    z










    t






















    x











    1


    :


    t



















    )





    时,权重表达式:





    w

    t

    i

    =

    p

    (

    z

    t

    i

    x

    1

    :

    t

    )

    q

    (

    z

    t

    i

    x

    1

    :

    t

    )

    w_t^i = \frac{p(z_{t}^i | x_{1:t})}{q(z_{t}^i| x_{1:t})}







    w










    t








    i




















    =



















    q


    (



    z











    t









    i






















    x











    1


    :


    t



















    )














    p


    (



    z











    t









    i






















    x











    1


    :


    t



















    )























  • 例子

    在这里插入图片描述

    先从q分布得到L个样本



    y

    ~

    (

    )

    \tilde{\mathbf{y}}^{(\ell)}














    y







    ~


























    (





    )













    ,然后计算权重



    w

    (

    )

    w^{(\ell)}







    w











    (





    )













    ,最后进行权重归一化得到每个样本对应的权重



    w

    ~

    (

    )

    \tilde{w}^{(\ell)}














    w







    ~

















    (





    )














序列重要性采样(SIS)

  • 求解



    p

    (

    z

    1

    :

    t

    x

    1

    :

    t

    )

    p(z_{1:t} | x_{1:t})






    p


    (



    z











    1


    :


    t























    x











    1


    :


    t



















    )










    w

    t

    i

    p

    (

    z

    1

    :

    t

    x

    1

    :

    t

    )

    q

    (

    z

    1

    :

    t

    x

    1

    :

    t

    )

    w_t^i \propto \frac{p(z_{1:t} | x_{1:t})}{q(z_{1:t}| x_{1:t})}







    w










    t








    i








































    q


    (



    z











    1


    :


    t























    x











    1


    :


    t



















    )














    p


    (



    z











    1


    :


    t























    x











    1


    :


    t



















    )



























p

(

z

1

:

t

x

1

:

t

)

p

(

x

1

:

t

,

z

1

:

t

)

=

p

(

x

t

z

1

:

t

,

x

1

:

t

1

)

p

(

z

1

:

t

,

x

1

:

t

1

)

=

p

(

x

t

z

t

)

p

(

z

t

z

1

:

t

1

,

x

1

:

t

1

)

p

(

z

1

:

t

1

,

x

1

:

t

1

)

=

p

(

x

t

z

t

)

p

(

z

t

z

t

1

)

p

(

z

1

:

t

1

,

x

1

:

t

1

)

p

(

x

t

z

t

)

p

(

z

t

z

t

1

)

p

(

z

1

:

t

1

x

1

:

t

1

)

p(z_{1:t} | x_{1:t}) \propto p(x_{1:t}, z_{1:t}) =p(x_t |z_{1:t},x_{1:t-1})p(z_{1:t}, x_{1:t-1}) \\=p(x_t | z_t)p(z_t|z_{1:t-1},x_{1:t-1})p(z_{1:t-1},x_{1:t-1}) \\=p(x_t | z_t)p(z_t|z_{t-1})p(z_{1:t-1},x_{1:t-1}) \\ \propto p(x_t | z_t)p(z_t|z_{t-1})p(z_{1:t-1}|x_{1:t-1})






p


(



z











1


:


t























x











1


:


t



















)













p


(



x











1


:


t



















,





z











1


:


t



















)




=








p


(



x










t






















z











1


:


t



















,





x











1


:


t





1



















)


p


(



z











1


:


t



















,





x











1


:


t





1



















)








=








p


(



x










t






















z










t


















)


p


(



z










t






















z











1


:


t





1



















,





x











1


:


t





1



















)


p


(



z











1


:


t





1



















,





x











1


:


t





1



















)








=








p


(



x










t






















z










t


















)


p


(



z










t






















z











t





1



















)


p


(



z











1


:


t





1



















,





x











1


:


t





1



















)

















p


(



x










t






















z










t


















)


p


(



z










t






















z











t





1



















)


p


(



z











1


:


t





1























x











1


:


t





1



















)





指定



q

(

z

1

:

t

x

1

:

t

)

=

q

(

z

t

z

1

:

t

1

,

x

1

:

t

)

q

(

z

1

:

t

1

x

1

:

t

1

)

q(z_{1:t}| x_{1:t})=q(z_{t}|z_{1:t-1}, x_{1:t})q(z_{1:t-1}|x_{1:t-1})






q


(



z











1


:


t























x











1


:


t



















)




=








q


(



z











t























z











1


:


t





1



















,





x











1


:


t



















)


q


(



z











1


:


t





1























x











1


:


t





1



















)






得到:





w

t

i

p

(

z

1

:

t

x

1

:

t

)

q

(

z

1

:

t

x

1

:

t

)

p

(

x

t

z

t

)

p

(

z

t

z

t

1

)

p

(

z

1

:

t

1

x

1

:

t

1

)

q

(

z

t

z

1

:

t

1

x

1

:

t

)

q

(

z

1

:

t

1

x

1

:

t

1

)

=

p

(

x

t

z

t

)

p

(

z

t

z

t

1

)

q

(

z

t

z

1

:

t

1

x

1

:

t

)

w

t

1

i

w_t^i \propto \frac{p(z_{1:t} | x_{1:t})}{q(z_{1:t}| x_{1:t})} \propto \frac{p(x_t | z_t)p(z_t|z_{t-1})p(z_{1:t-1}|x_{1:t-1})}{q(z_{t}|z_{1:t-1} x_{1:t})q(z_{1:t-1}|x_{1:t-1})} = \frac{p(x_t | z_t)p(z_t|z_{t-1})}{q(z_{t}|z_{1:t-1} x_{1:t})} w_{t-1}^i







w










t








i








































q


(



z











1


:


t























x











1


:


t



















)














p


(



z











1


:


t























x











1


:


t



















)










































q


(



z











t























z











1


:


t





1




















x











1


:


t



















)


q


(



z











1


:


t





1























x











1


:


t





1



















)














p


(



x










t






















z










t


















)


p


(



z










t






















z











t





1



















)


p


(



z











1


:


t





1























x











1


:


t





1



















)






















=



















q


(



z











t























z











1


:


t





1




















x











1


:


t



















)














p


(



x










t






















z










t


















)


p


(



z










t






















z











t





1



















)





















w











t





1









i





















  • 在t-1时刻采样并计算权重
  • t时刻根据



    q

    (

    z

    t

    z

    1

    :

    t

    1

    x

    1

    :

    t

    )

    q(z_{t}|z_{1:t-1} x_{1:t})






    q


    (



    z











    t























    z











    1


    :


    t





    1




















    x











    1


    :


    t



















    )





    采样得到N个样本



    z

    t

    i

    z_t^i







    z










    t








    i





















    ,并计算得到N个权重

  • 权重归一化



SIS 应用于Filtering

在这里插入图片描述

通常Filtering问题求解目标为t时刻隐变量的后验



p

(

z

t

x

1

:

t

)

p(z_t | x_{1:t})






p


(



z










t






















x











1


:


t



















)





,但SIS为了简化运算求解目标为



p

(

z

1

:

t

x

1

:

t

)

p(z_{1:t} | x_{1:t})






p


(



z











1


:


t























x











1


:


t



















)




  • 根据隐变量z的状态转移方程得到先验分布



    p

    (

    z

    t

    z

    t

    1

    )

    p(z_t|z_{t-1})






    p


    (



    z










    t






















    z











    t





    1



















    )




  • 根据观测变量x和隐变量z的状态转移方程得到似然函数



    p

    (

    x

    t

    z

    1

    :

    t

    )

    p(x_t | z_{1:t})






    p


    (



    x










    t






















    z











    1


    :


    t



















    )




  • 设定proposal distribution



    q

    (

    z

    )

    q(z)






    q


    (


    z


    )





    为隐变量z的先验分布



    p

    (

    z

    t

    z

    t

    1

    )

    p(z_t|z_{t-1})






    p


    (



    z










    t






















    z











    t





    1



















    )




  • 计算t时刻第



    \ell












    个样本的权重



    w

    (

    )

    w^{(\ell)}







    w











    (





    )













    然后进行权重归一化



SIS 存在的问题及改善(SIR)

  • 问题:权重退化

    一段时间后,大部分样本的权重会逼近0
  • 加入重采样(Resampling):

    Sequential importance resampling(SIR) or

    Sequential importance sampling and resampling(SIS/R)):

    思路是将权重作为概率分布,得到累计概率密度函数(CDF),然后在CDF上取点。

在这里插入图片描述

算法流程:

  • 输入:

    L个SIS产生的



    y

    ~

    (

    )

    \tilde{\mathbf{y}}^{(\ell)}














    y







    ~


























    (





    )













    和对应的权重



    w

    (

    )

    w^{(\ell)}







    w











    (





    )












  • 初始化:

    新的样本集合



    s

    t

    s_t







    s










    t





















    为空

    样本权重



    w

    (

    )

    w^{(\ell)}







    w











    (





    )













    的累积密度函数cdf 的第一个值



    c

    1

    c_1







    c










    1





















    为0。

    i为1

  1. 计算权重



    w

    (

    )

    w^{(\ell)}







    w











    (





    )













    的cdf

  2. 从(0,



    1

    L

    \frac{1}{L}


















    L
















    1
























    )区间采样



    u

    1

    u_1







    u










    1




















  3. 根据



    u

    1

    u_1







    u










    1





















    为L个样本生成对应的



    u

    u_{\ell}







    u

































  4. 遍历输入样本和权重,如果第



    {\ell}














    个样本的



    u

    u_{\ell}







    u


































    大于



    c

    i

    c_i







    c










    i





















    ,则i+1,并将第i个样本放入新的样本集合



    s

    t

    s_t







    s










    t





















    ,新的权重为



    1

    L

    \frac{1}{L}


















    L
















    1























总结:SIR算法为SIS得到样本和权重之后应用重采样,得到新的L个样本,并且每个样本的权重都是



1

L

\frac{1}{L}


















L
















1

























版权声明:本文为weixin_38224810原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。