HMM 模型适用于隐变量是离散的值的时候,对于连续隐变量的 HMM,常用线性动态系统描述线性高斯模型的态变量,使用粒子滤波来表述非高斯非线性的态变量。
LDS 又叫卡尔曼滤波,其中,线性体现在上一时刻和这一时刻的隐变量以及隐变量和观测之间:
%5C%5C%0A%5Cdelta%26%5Csim%5Cmathcal%7BN%7D(0%2CR)%0A%5Cend%7Balign%7D%0A#card=math&code=%5Cbegin%7Balign%7D%0Azt%26%3DA%5Ccdot%20z%7Bt-1%7D%2BB%2B%5Cvarepsilon%5C%5C%0Ax_t%26%3DC%5Ccdot%20z_t%2BD%2B%5Cdelta%5C%5C%0A%5Cvarepsilon%26%5Csim%5Cmathcal%7BN%7D%280%2CQ%29%5C%5C%0A%5Cdelta%26%5Csim%5Cmathcal%7BN%7D%280%2CR%29%0A%5Cend%7Balign%7D%0A#crop=0&crop=0&crop=1&crop=1&id=Klnqi&originHeight=110&originWidth=198&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
类比 HMM 中的几个参数:
%26%5Csim%5Cmathcal%7BN%7D(A%5Ccdot%20z%7Bt-1%7D%2BB%2CQ)%5C%5C%0Ap(x_t%7Cz_t)%26%5Csim%5Cmathcal%7BN%7D(C%5Ccdot%20z_t%2BD%2CR)%5C%5C%0Az_1%26%5Csim%5Cmathcal%7BN%7D(%5Cmu_1%2C%5CSigma_1)%0A%5Cend%7Balign%7D%0A#card=math&code=%5Cbegin%7Balign%7D%0Ap%28z_t%7Cz%7Bt-1%7D%29%26%5Csim%5Cmathcal%7BN%7D%28A%5Ccdot%20z_%7Bt-1%7D%2BB%2CQ%29%5C%5C%0Ap%28x_t%7Cz_t%29%26%5Csim%5Cmathcal%7BN%7D%28C%5Ccdot%20z_t%2BD%2CR%29%5C%5C%0Az_1%26%5Csim%5Cmathcal%7BN%7D%28%5Cmu_1%2C%5CSigma_1%29%0A%5Cend%7Balign%7D%0A#crop=0&crop=0&crop=1&crop=1&id=OE6U3&originHeight=83&originWidth=291&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
在含时的概率图中,除了对参数估计的学习问题外,在推断任务中,包括译码,证据概率,滤波,平滑,预测问题,LDS 更关心滤波这个问题:#card=math&code=p%28z_t%7Cx_1%2Cx_2%2C%5Ccdots%2Cx_t%29#crop=0&crop=0&crop=1&crop=1&id=quEye&originHeight=26&originWidth=169&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)。类似 HMM 中的前向算法,我们需要找到一个递推关系。
%3Dp(x%7B1%3At%7D%2Cz_t)%2Fp(x%7B1%3At%7D)%3DCp(x%7B1%3At%7D%2Cz_t)%0A#card=math&code=p%28z_t%7Cx%7B1%3At%7D%29%3Dp%28x%7B1%3At%7D%2Cz_t%29%2Fp%28x%7B1%3At%7D%29%3DCp%28x_%7B1%3At%7D%2Cz_t%29%0A#crop=0&crop=0&crop=1&crop=1&id=RF8aW&originHeight=26&originWidth=390&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
对于 #card=math&code=p%28x_%7B1%3At%7D%2Cz_t%29#crop=0&crop=0&crop=1&crop=1&id=X47zW&originHeight=26&originWidth=85&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=):
%26%3Dp(xt%7Cx%7B1%3At-1%7D%2Czt)p(x%7B1%3At-1%7D%2Czt)%3Dp(x_t%7Cz_t)p(x%7B1%3At-1%7D%2Czt)%5Cnonumber%5C%5C%0A%26%3Dp(x_t%7Cz_t)p(z_t%7Cx%7B1%3At-1%7D)p(x%7B1%3At-1%7D)%3DCp(x_t%7Cz_t)p(z_t%7Cx%7B1%3At-1%7D)%5C%5C%0A%5Cend%7Balign%7D%0A#card=math&code=%5Cbegin%7Balign%7Dp%28x%7B1%3At%7D%2Cz_t%29%26%3Dp%28x_t%7Cx%7B1%3At-1%7D%2Czt%29p%28x%7B1%3At-1%7D%2Czt%29%3Dp%28x_t%7Cz_t%29p%28x%7B1%3At-1%7D%2Czt%29%5Cnonumber%5C%5C%0A%26%3Dp%28x_t%7Cz_t%29p%28z_t%7Cx%7B1%3At-1%7D%29p%28x%7B1%3At-1%7D%29%3DCp%28x_t%7Cz_t%29p%28z_t%7Cx%7B1%3At-1%7D%29%5C%5C%0A%5Cend%7Balign%7D%0A#crop=0&crop=0&crop=1&crop=1&id=rjrtt&originHeight=56&originWidth=577&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
我们看到,右边除了只和观测相关的常数项,还有一项是预测任务需要的概率。对这个值:
%26%3D%5Cint%7Bz%7Bt-1%7D%7Dp(zt%2Cz%7Bt-1%7D%7Cx%7B1%3At-1%7D)dz%7Bt-1%7D%5Cnonumber%5C%5C%0A%26%3D%5Cint%7Bz%7Bt-1%7D%7Dp(zt%7Cz%7Bt-1%7D%2Cx%7B1%3At-1%7D)p(z%7Bt-1%7D%7Cx%7B1%3At-1%7D)dz%7Bt-1%7D%5Cnonumber%5C%5C%0A%26%3D%5Cint%7Bz%7Bt-1%7D%7Dp(zt%7Cz%7Bt-1%7D)p(z%7Bt-1%7D%7Cx%7B1%3At-1%7D)dz%7Bt-1%7D%0A%5Cend%7Balign%7D%0A#card=math&code=%5Cbegin%7Balign%7D%0Ap%28z_t%7Cx%7B1%3At-1%7D%29%26%3D%5Cint%7Bz%7Bt-1%7D%7Dp%28zt%2Cz%7Bt-1%7D%7Cx%7B1%3At-1%7D%29dz%7Bt-1%7D%5Cnonumber%5C%5C%0A%26%3D%5Cint%7Bz%7Bt-1%7D%7Dp%28zt%7Cz%7Bt-1%7D%2Cx%7B1%3At-1%7D%29p%28z%7Bt-1%7D%7Cx%7B1%3At-1%7D%29dz%7Bt-1%7D%5Cnonumber%5C%5C%0A%26%3D%5Cint%7Bz%7Bt-1%7D%7Dp%28zt%7Cz%7Bt-1%7D%29p%28z%7Bt-1%7D%7Cx%7B1%3At-1%7D%29dz_%7Bt-1%7D%0A%5Cend%7Balign%7D%0A#crop=0&crop=0&crop=1&crop=1&id=jqPLs&originHeight=170&originWidth=490&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
我们看到,这又化成了一个滤波问题。于是我们得到了一个递推公式:
,
#card=math&code=p%28z_1%7Cx_1%29#crop=0&crop=0&crop=1&crop=1&id=sTAXN&originHeight=26&originWidth=74&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=),称为 update 过程,然后计算
#card=math&code=p%28z_2%7Cx_1%29#crop=0&crop=0&crop=1&crop=1&id=U5IS6&originHeight=26&originWidth=74&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=),通过上面的积分进行,称为 prediction 过程。
,
#card=math&code=p%28z_2%7Cx_2%2Cx_1%29#crop=0&crop=0&crop=1&crop=1&id=Q2Nwc&originHeight=26&originWidth=105&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=) 和
#card=math&code=p%28z_3%7Cx_1%2Cx_2%29#crop=0&crop=0&crop=1&crop=1&id=gpNj8&originHeight=26&originWidth=105&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
我们看到,这个过程是一个 Online 的过程,对于我们的线性高斯假设,这个计算过程都可以得到解析解。
Prediction:
%3D%5Cint%7Bz%7Bt-1%7D%7Dp(zt%7Cz%7Bt-1%7D)p(z%7Bt-1%7D%7Cx%7B1%3At-1%7D)dz%7Bt-1%7D%3D%5Cint%7Bz%7Bt-1%7D%7D%5Cmathcal%7BN%7D(Az%7Bt-1%7D%2BB%2CQ)%5Cmathcal%7BN%7D(%5Cmu%7Bt-1%7D%2C%5CSigma%7Bt-1%7D)dz%7Bt-1%7D%0A#card=math&code=p%28z_t%7Cx%7B1%3At-1%7D%29%3D%5Cint%7Bz%7Bt-1%7D%7Dp%28zt%7Cz%7Bt-1%7D%29p%28z%7Bt-1%7D%7Cx%7B1%3At-1%7D%29dz%7Bt-1%7D%3D%5Cint%7Bz%7Bt-1%7D%7D%5Cmathcal%7BN%7D%28Az%7Bt-1%7D%2BB%2CQ%29%5Cmathcal%7BN%7D%28%5Cmu%7Bt-1%7D%2C%5CSigma%7Bt-1%7D%29dz%7Bt-1%7D%0A#crop=0&crop=0&crop=1&crop=1&id=NIU2a&originHeight=56&originWidth=827&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
其中第二个高斯分布是上一步的 Update 过程,所以根据线性高斯模型,直接可以写出这个积分:
%3D%5Cmathcal%7BN%7D(A%5Cmu%7Bt-1%7D%2BB%2CQ%2BA%5CSigma%7Bt-1%7DA%5ET)%0A#card=math&code=p%28zt%7Cx%7B1%3At-1%7D%29%3D%5Cmathcal%7BN%7D%28A%5Cmu%7Bt-1%7D%2BB%2CQ%2BA%5CSigma%7Bt-1%7DA%5ET%29%0A#crop=0&crop=0&crop=1&crop=1&id=cQkfP&originHeight=29&originWidth=398&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)Update:
%5Cpropto%20p(xt%7Cz_t)p(z_t%7Cx%7B1%3At-1%7D)%0A#card=math&code=p%28zt%7Cx%7B1%3At%7D%29%5Cpropto%20p%28xt%7Cz_t%29p%28z_t%7Cx%7B1%3At-1%7D%29%0A#crop=0&crop=0&crop=1&crop=1&id=d0uBc&originHeight=26&originWidth=278&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
同样利用线性高斯模型,也可以直接写出这个高斯分布。
