PRML第十三章读书笔记——Sequential Data 状态空间模型、自回归模型/从左到右HMM/前向后向BW算法/和积算法/缩放因子/维特比算法、线性动态系统/卡尔曼滤波-平滑/粒子滤波

(这一章就是讲序列,顺序的数据,对应顺序的模型)

  • 区分静态和非静态序列分布:静态情况中,分布保持一致;非静态情况中,分不会随时间变换。这里只关注静态情况
  • 马尔可夫模型是一个简单的可处理的模型,每个时刻仅与上一个时刻有关。这样的模型局限性严重,通过引入潜在变量,可以得到更一般的框架,同时保持计算上可处理,引出状态空间模型state space models,两种典型的状态空间模型是(两者都是具有树结构的有向图,可以用和积算法高效推断):
    • 隐马尔可夫模型hiddenMarkov model:隐变量是离散的,观测可以是连续或离散的
    • 线性动态系统linear dynamical systems:隐变量和观测都是高斯分布(条件分布是线性高斯模型)

13.1 Markov Models

  • 一阶马尔可夫链first-order Markov chain:当前变量只和前一个有关
    在这里插入图片描述
  • 同质马尔可夫链homogeneous Markov chain:静态的序列分布
  • 二阶马尔可夫链:
    在这里插入图片描述
    在这里插入图片描述
    对于连续的 x x x
  • 可以采用线性高斯条件分布,均值是父结点们的线性函数,这也即自回归模型autoregressive (AR)
  • 可以把 p ( x n ∣ x n − M , ⋯   , x n − 1 ) p(\bm x_n|\bm x_{n-M},\cdots, \bm x_{n-1}) p(xnxnM,,xn1)设计成参数化模型,例如神经网络,这种方法也被称为tapped delay line,因为它对应存储前 M M M个观测值。这种方法的参数量远小于一个一般的模型,虽然会限制条件分布的形式

如果希望构造任意阶数的不受马尔可夫假设限制的序列模型,同时用较少参数量建模,可以引入额外隐变量,并假定隐变量服从马尔可夫链(这应该就是隐马尔可夫模型了)
在这里插入图片描述
对应联合概率为
在这里插入图片描述
在这里插入图片描述
上图中任意两个观测结点之间都不是独立的
HMM和线性动态系统LDS都可以用上图描述

13.2 Hidden Markov Models

HMM也可以看作是混合模型的扩展,只不过每个观测的混合分量不再独立
在这里插入图片描述
其中 A A A是马尔可夫矩阵,有 K ( K − 1 ) K(K-1) K(K1)个自由度
在这里插入图片描述
其中 ∑ k π k = 1 \sum _k \pi_k=1 kπk=1
隐变量之间的转移可以用晶格图lattic diagram(格子图 trellis diagram)表示,以3个状态为例,如图所示
在这里插入图片描述
观测变量通过 p ( x n ∣ z n , ϕ ) p(\bm x_n|\bm z_n, \bm \phi) p(xnzn,ϕ)来定义,这被称为发射概率emission probabilities(统计学习方法中叫做观测概率矩阵)
在这里插入图片描述
对于独立同分布数据集的混合模型,可以认为 A j k \bm A_{jk} Ajk中对于任意 j j j都是相等的,从而 p ( z n ∣ z n − 1 ) p(\bm z_n|\bm z_{n-1}) p(znzn1) z n − 1 \bm z_{n-1} zn1无关,即消除图13.5中的水平连线
联合分布为
在这里插入图片描述
从生成模型的角度看,如图所示
在这里插入图片描述

P613 从左到右left-to-right HMM

HMM有许多变种,其中一种是left-to-right HMM,如果 k < j k<j k<j,则设定 A j k = 0 A_{jk}=0 Ajk=0. 如图所示
在这里插入图片描述
通常这种模型的 p ( z 11 ) = 1 p(\bm z_{11})=1 p(z11)=1,也即任意序列都是从状态 j = 1 j=1 j=1开始的,该模型还会进一步限制大转移不会出现,也即当 k > j + Δ k > j +\Delta k>j+Δ时, A j k = 0 A_{jk}=0 Ajk=0. 典型情况如下图所示
在这里插入图片描述
left-to-right HMM有很多应用,例如语音识别、在线字符识别。以,在线手写数字识别为例,每个数字都是笔画随时间的函数,和离线图像识别不同
在这里插入图片描述
其中 K = 16 K=16 K=16,每一个生成一个固定长度的线段,并有16个可能的角度中的一个。发射概率是 16 × 16 16\times 16 16×16的矩阵. 转移概率矩阵中除了保持不变的和状态+1,其他的转移概率都是0. 模型参数通过EM优化了25轮

  • HMM对于时间轴上的局部变形(压缩和拉伸)具有一定程度的不变性。例如上例手写数字“2”,不同的2大小不同,位置也不同。这可以通过hmm中状态转移和保持的数量来反映出来。在语音识别中,对时间轴的变形与语速的自然变化相关,隐马尔可夫模型可以适应这种变形,不会对这种变形过多惩罚

P615 HMM的最大似然

在这里插入图片描述
上式很难直接求出来,状态 Z \bm Z Z有指数多个,但是可以重排加和,和积算法解决
另一方面,上式直接最大化没有解析解,用EM
在这里插入图片描述
为了求E步中的后验,引入记号
在这里插入图片描述
在这里插入图片描述
把(13.10)代入(13.12),同时用 γ , ξ \gamma, \xi γ,ξ替换,得到
在这里插入图片描述
E步的目标是算 γ ( z n ) ,   ξ ( z n − 1 , z n ) \gamma(\bm z_n),\ \xi(\bm z_{n-1}, \bm z_n) γ(zn), ξ(zn1,zn). M步的目标是算 { π , A , ϕ } \{\bm \pi, \bm A, \bm \phi\} {π,A,ϕ}
M步好说,求导后得到
在这里插入图片描述
(上式分母好像就是 γ ( z n − 1 , j ) \gamma(z_{n-1,j}) γ(zn1,j)啊)

  • EM算法中,对于 π , A \bm\pi, \bm A π,A中0值的初始化,会在优化过程中,一直为0. 所以对于left-to-right HMM,EM算法没什么不同,把其中部分元素置为0就好

关于 ϕ \bm \phi ϕ,如果 p ( x ∣ ϕ k ) = N ( x ∣ μ k , Σ k ) p(\bm x|\bm \phi_k)=\mathcal N(\bm x|\bm \mu_k, \bm \Sigma_k) p(xϕk)=N(xμk,Σk),则M步得到
在这里插入图片描述
如果是离散情况的多项式分布:
在这里插入图片描述
则对应M步为
在这里插入图片描述

  • 初始化发射概率的一个方法是先把数据集当作iid,然后用极大似然拟合(感觉类似于混合高斯或混合伯努利分布),把结果当作初始参数

P618 前向-后向算法(Baum-Welch)

计算E步中的 γ ( z n k ) , ξ ( z n − 1 , j , z n k ) \gamma(z_{nk}), \xi(z_{n-1,j},z_{nk}) γ(znk),ξ(zn1,j,znk)
模型是树状有向图,所以可以用两阶段信息传递算法。在HMM中,这称之为前向-后向算法,或Baum-Welch算法。基本算法有很多变体,每个变体可以通过链传播得到精确边缘概率,这里关注变体中最广泛的一个:alpha-beta算法
找隐变量的后验和 p ( x ∣ z ) p(\bm x|\bm z) p(xz)的具体形式无关,而和 p ( x n ∣ z n ) p(\bm x_n|\bm z_n) p(xnzn)的值有关
下式列出一堆条件独立性
在这里插入图片描述
用贝叶斯公式
在这里插入图片描述
p ( X ) p(\bm X) p(X) θ o l d \bm \theta^{old} θold有关,表示似然函数
上式可以写成
在这里插入图片描述
在这里插入图片描述

  • α ( z n ) \alpha (\bm z_n) α(zn)表示 K K K个数字组成的集合,用KaTeX parse error: Expected '}', got 'EOF' at end of input: \alpha(z_{nk)表示 z n k = 1 z_{nk}=1 znk=1时的 α ( z n ) \alpha(\bm z_n) α(zn)概率(这个符号用的总感觉有点迷)。类似统计学习方法,得到
    在这里插入图片描述
    上式计算复杂度为 O ( K 2 ) \mathcal O(K^2) O(K2),因为 z n \bm z_n zn的每个状态都要算。所以计算整个链的复杂度为 O ( K 2 N ) \mathcal O(K^2N) O(K2N)
    初始条件为
    在这里插入图片描述
    在这里插入图片描述
    另一边
    在这里插入图片描述
    在这里插入图片描述
    对初始化的最后一项,观察式13.33中如果 n = N n=N n=N仍然成立的话,那么 β ( z N ) = 1 \beta(\bm z_N)=1 β(zN)=1(也可以认为这个初始化就是一种规定)
    在M步更新参数中, p ( X ) p(\bm X) p(X)可以在分子分母消掉,所以并不影响优化。但如果优化中很关心似然函数 p ( X ) p(\bm X) p(X)的话,也很好算
    在这里插入图片描述
    n n n可以任意选,这和第8章的和积算法是一致的。选右端是最好算的
    在这里插入图片描述

  • 而关于 ξ ( z n − 1 , z n ) \xi(\bm z_{n-1}, \bm z_n) ξ(zn1,zn)
    在这里插入图片描述
    也是直接能通过 α , β \alpha, \beta α,β得来

  • 上式只考虑了一个序列,可以使用多个较短的序列,尤其是对于left-to-right HMM的训练. 对应更新公式要稍作修改,参考习题13.12

  • 关于预测,也是一个很重要的问题。给定 X \bm X X,预测 x N + 1 \bm x_{N+1} xN+1
    在这里插入图片描述

  • 上式中关于 z N \bm z_N zN的求和结果可以存起来,一旦观测到 x N + 1 \bm x_{N+1} xN+1,可以用于递归计算 α \alpha α,并预测下一步 x N + 2 \bm x_{N+2} xN+2. **
    此外,上式中 x 1 \bm x_1 x1 x N \bm x_N xN的信息已经存储在了 α ( z N ) \alpha(\bm z_N) α(zN)中**,可以在实时系统中,使用固定量的存储空间向前推进

  • 参数 π , A , ϕ \bm \pi, \bm A, \bm \phi π,A,ϕ可以上先验,E步不变,M步需要加对数先验概率
    此外,也可以使用变分方法,给出完全贝叶斯的HMM,对参数分布进行边缘化。和最大似然类似,得到two-pass的前向后向递归算法计算后验分布

P625 HMM中的和积算法

和积算法和Baum-Welch算法的本质是一致的
在这里插入图片描述
先把有向图变成因子图,但是我们只关心给定 x \bm x x的各种条件概率,所以可以简化为下图(感觉是把上图中 ψ n , g n \psi_n,g_n ψn,gn收在一起成 f n f_n fn
在这里插入图片描述
其中
在这里插入图片描述
为了进行alpha-beta算法,把 z N \bm z_N zN当作根节点. 应用式8.66和8.69
在这里插入图片描述
其中,可以消去 μ z n − 1 → f n ( z n − 1 ) \mu_{\bm z_{n-1}\to f_n}(\bm z_{n-1}) μzn1fn(zn1),得到
在这里插入图片描述
如果定义
在这里插入图片描述
那么就得到了alpha的递归式13.36,注意 α ( z 1 ) = h ( z 1 ) = p ( z 1 ) p ( x 1 ∣ z 1 ) \alpha(\bm z_1)=h(\bm z_1)=p(\bm z_1)p(\bm x_1|\bm z_1) α(z1)=h(z1)=p(z1)p(x1z1),和式13.37的初始值也一致.
另一方面,对于反向
在这里插入图片描述
类似地消去了 z → f \bm z\to f zf. 定义
在这里插入图片描述
初始化为 μ z N → f N ( z N ) = 1 \mu_{\bm z_N \to f_N}(\bm z_N)=1 μzNfN(zN)=1,这里感觉应该虚拟出一个 μ f N + 1 → z N ( z N ) = 1 \mu_{f_{N+1}\to \bm z_N}(\bm z_N)=1 μfN+1zN(zN)=1更好理解,得到式13.38
利用式8.63,得到联合概率
在这里插入图片描述

P627 缩放因子

式13.36, α ( z n ) \alpha(\bm z_n) α(zn)要通过 α ( z n − 1 ) \alpha(\bm z_{n-1}) α(zn1)迭代计算,其中的概率通常远小于1,导致数值下溢, α ( z n ) \alpha(\bm z_n) α(zn)会以指数速度降到0附近
在iid的数据集中,通过取对数的似然,隐式避开了这个问题(对啊,这也是对数似然的一个功能!),但是这里不行
解决方法是重新缩放 α ( z n ) \alpha(\bm z_n) α(zn) β ( z n ) \beta(\bm z_n) β(zn),定义一个normalized版本的 α \alpha α
在这里插入图片描述
上式不是一堆随机变量的联合分布,所以概率是数值正常的。为了降两个不同的 α \alpha α关联,引入一个由条件分布定义的缩放因子
在这里插入图片描述
根据乘法法则
在这里插入图片描述
在这里插入图片描述
带入式13.36,得到
在这里插入图片描述
上式需要求出 c n c_n cn,这很好算,从另一个角度来看这个事情,两侧对 z n \bm z_n zn的各种取值求和,右侧即 c n c_n cn. (所以 c n c_n cn其实能看成是迭代中的归一化系数)
类似方法处理 β \beta β
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其中 c n c_{n} cn在算 α \alpha α的过程中得到
最后数据的似然函数可以通过 c n c_n cn求出
在这里插入图片描述
从式13.33和13.43中得到
在这里插入图片描述
在这里插入图片描述

  • 前向后向算法有另一种形式,后向传递由 γ ( z n ) \gamma(\bm z_n) γ(zn)给出,而不是使用 β ^ ( z n ) \hat \beta(\bm z_n) β^(zn) α − γ \alpha-\gamma αγ版本需要前向先完成, α − β \alpha-\beta αβ版本则不需要. 两者计算代价可比。HMM中 α − β \alpha-\beta αβ常简,线性动态系统LDS中 α − γ \alpha-\gamma αγ常见

P629 维特比算法 the viterbi algorithm

问题:根据观测,找最可能出现的隐变量序列
统计学习方法中给出了一种近似算法,假定隐变量之间相互独立。先运行前向-后向算法,然后找到 γ ( z n ) \gamma(\bm z_n) γ(zn),单独最大化每个概率。不过这种近似算法得到的状态序列没有考虑转移,所以甚至可能实际后验概率为0
维特比算法是第8章最大和算法的一个实例,是一个需要后向回溯追踪的算法。该算法中不需要重新缩放,因为是直接操作的对数似然
在这里插入图片描述
回顾第8章最大和算法,这里把 z N \bm z_N zN当作根,从而信息传递为
在这里插入图片描述
消去 μ z n → f n + 1 ( z n ) \mu_{\bm z_n\to f_{n+1}}(\bm z_n) μznfn+1(zn),并把 f n + 1 f_{n+1} fn+1代成13.46,得到
在这里插入图片描述
其中 ω ( z n ) ≡ μ f n → z n ( z n ) \omega(\bm z_n)\equiv \mu _{f_n \to \bm z_n}(\bm z_n) ω(zn)μfnzn(zn),初始化为
在这里插入图片描述

  • 另一种导出维特比算法的方法是直接处理式13.6
    在这里插入图片描述

定义回溯函数 ψ ( k n ) \psi(k_n) ψ(kn),其中 k ∈ { 1 , … , K } k\in \{1,\dots, K\} k{1,,K},如果找到了最大概率 z N \bm z_N zN,可以回溯整个链
在这里插入图片描述

P631 HMM的各种扩展

  • 图13.11中的手写数字,隐马尔可夫看起来不是一个好的生成式模型。如果目标是序列分类,那么在确定隐马尔可夫模型参数时,使用判别式方法而不是最大似然会更好。假定有一个训练集,由 R R R个观测序列 X r \bm X_r Xr组成,其中 r = 1 , … , R r=1,\dots,R r=1,,R,每个序列根据类别 m m m进行标记, m = 1 , … , M m=1,\dots,M m=1,,M. 对每个类别,有一个独立的隐马尔可夫模型和对应参数 θ m \bm \theta_m θm. (看起来像是混合马尔可夫),用交叉熵优化
    在这里插入图片描述
    贝叶斯公式得到
    在这里插入图片描述
    优化上式难过最大似然,需要对训练序列在每个模型下计算概率来获得分母
  • HMM的一个限制是关于隐变量保持不变的时长表示方法,假定隐变量在状态 k k k保持了 T T T步,然后迁移到其他状态,这种事情发生的概率为
    在这里插入图片描述
    T T T指数衰减. 对于许多应用,这非常不现实,一种修改方法为直接对状态持续时间建模 p ( T ∣ k ) p(T|k) p(Tk) A k k A_{kk} Akk直接设为0,时间到了,状态直接转移。在这 T T T步时间中,模型发射了 T T T个观测值 x t \bm x_t xt,并可以直接假设独立,联合概率密度为 ∏ t = 1 T p ( x t ∣ k ) \prod_{t=1}^T p(\bm x_t|k) t=1Tp(xtk). 毕竟这 T T T个隐变量已经全部给出了。该算法需要对EM做出一定修改
  • 另一个限制是HMM很难捕捉长期相关性,因为需要修改一阶马尔可夫的隐变量状态。一种可操作的方式是自回归隐马尔可夫autoregressive hidden Markov model
    如果 x n \bm x_n xn是连续的,则可以建模为一堆父结点的线性高斯
    在给定 z n \bm z_n zn的条件下, z n − 1 \bm z_{n-1} zn1 z n + 1 \bm z_{n+1} zn+1是独立的。所以EM算法中的E步中,仍然可以用前向-后向递归算后验分布。M步也是对标准M步小改一下
    在这里插入图片描述
    arHMM是标准HMM在概率图的自然扩展,实际上概率图模型启发了许多变种。例如input-output HMM(Bengio and Frasconi,1995),该模型中,有一列观测变量 u \bm u u和输出变量 x \bm x x,其中 u \bm u u会影响发射概率和转移概率。这将HMM推广到了有监督学习的领域(感觉这个模型和第一点那个混合马尔可夫很像,不过第一点中好像每一个链是一类的,这里每一个时刻都各自一类)。该模型中,式13.5的马尔可夫性仍然是保持的。特别的,可以通过最大化 p ( X ∣ U , θ ) p(\bm X|\bm U, \bm \theta) p(XU,θ)来决定 θ \bm \theta θ. (这是最大似然吧),其中 U \bm U U的行是 u n T \bm u_n^T unT. 该式可用EM算法优化,E步有前向-后向算法(习题13.17、13.18)
    在这里插入图片描述
  • 因子隐马尔可夫模型factorial HMM,有多个独立的马尔可夫链隐变量,观测数据是在给定当前时刻所有隐变量下的。如下图所示。该方法的motivation是,如果每一时刻有10bit信息需要编码在隐变量中,那么需要1024个隐状态,而factorial HMM只需要用10个二进制隐变量即可。该方法的缺点是不好训。M步好说,主要是E步不好训,如图所示,给定 z n ( 1 ) \bm z_n^{(1)} zn(1)的条件下, x n − 1 \bm x_{n-1} xn1 x n + 1 \bm x_{n+1} xn+1不独立。除非是把一个时刻的隐变量全给了,这就退化成了标准HMM。但是往往隐变量的联合状态爆炸多,无法处理。一种方式是用第11章的采样。或者用变分——让隐变量完全分解,更好的做法是让变分分布由独立的马尔可夫链描述,对应原始模型中的隐变量链,此时,变分推断涉及到每个链上独立运行前向-后向递归,计算高效,同时能描述一个链上的相关性(细节我也不懂……)
    在这里插入图片描述

总的来说,概率图模型提供了一种更通用的技术来启发、描述、分析这一类结构;变分推断则提供了一个更强大的框架对无法精确解的模型推断。

13.3 Linear Dynamical Systems

问题:测量未知变量 z \bm z z,在只观测到 x \bm x x的情况下,其中 x \bm x x z \bm z z加零均值高斯噪声。在单观测下,最好的猜测就是 z = x \bm z=\bm x z=x,在多个观测下,可以取均值。但如果 z \bm z z也在随时间变化呢?

  • z \bm z z变化缓慢,噪声大时,可以选一个距离当前时刻长的窗口,进行平均;当 z \bm z z变化快速,噪声小时,可以只用 x N \bm x_N xN来估计 z N \bm z_N zN. 更好的做法是取加权平均。线性动态系统linear dynamical system是一种更加系统化的方式

LDS和HMM都采用图13.5作为有向图。推断算法和HMM一样,只不过隐变量是连续的,所以和积算法中求和变成了积分。为了好积,这里分布形式不能太复杂。指数族分布是一个好选择,进一步通常考虑线性高斯模型

  • 有趣的是,历史上,LDS和HMM是独立研究的,但是一旦用图模型表达,其背后的深层联系立马出现
  • LDS可以看作是概率PCA和因子分析的扩展,每一对 { z n , x n } \{\bm z_n, \bm x_n\} {zn,xn}是线性高斯模型,不过这里 { z n } \{\bm z_n\} {zn}不是独立的

LDS的前向递归算法(类比HMM中的 α \alpha α信息传递)称为卡尔曼滤波方程Kalman filter equations;后向递归算法(类比HMM中的 β \beta β信息传递)称为卡尔曼平滑方程Kalman smoother equations,或Rauch-Tung-Striebel(RTS)方程

  • 卡尔曼滤波在许多实时追踪应用中常用

模型形式化为
在这里插入图片描述
初始状态为
在这里插入图片描述
线性高斯中所有概率都是高斯,所以单独最大化每一个时刻的隐变量和整体优化一个序列是一样的,所以并不需要类似维特比算法之类的(习题13.19)
上述形式可以加入偏置项,并对隐变量进行增广(习题13.24)
上述的等价表示为
在这里插入图片描述
在这里插入图片描述
所有的参数包括 θ = { A , Γ , C , Σ , μ 0 , V 0 } \bm \theta=\{\bm A, \bm \Gamma, \bm C, \bm \Sigma, \bm \mu_0, \bm V_0\} θ={A,Γ,C,Σ,μ0,V0},通过EM算法求解最大似然来得到,E步用和积算法推断隐变量后验

P636 LDS推断

在给定观测下,找隐变量的边缘分布,或者预测下一个时间的 z n \bm z_n zn x n \bm x_n xn
HMM和LDS有一样的因子分解方式
在这里插入图片描述
考虑和积算法,对于 p ( z n ∣ x 1 , … , x n ) p(\bm z_n|\bm x_1, \dots, \bm x_n) p(znx1,,xn),表示为
在这里插入图片描述
类比式13.59,得到
在这里插入图片描述
p ( z n ∣ z n − 1 ) , p ( x n ∣ z n ) p(\bm z_n|\bm z_{n-1}), p(\bm x_n|\bm z_n) p(znzn1),p(xnzn)带入,得到
在这里插入图片描述
利用线性高斯模型的结论
在这里插入图片描述
其中
在这里插入图片描述
进一步得到
在这里插入图片描述
其中定义了卡尔曼增益矩阵Kalman gain matrix
在这里插入图片描述
注意 c n = p ( x n ∣ x 1 , … , x n − 1 ) c_n=p(\bm x_n|\bm x_1,\dots, \bm x_{n-1}) cn=p(xnx1,,xn1),给定 μ n − 1 , V n − 1 , x n \mu_{n-1},\bm V_{n-1}, \bm x_n μn1,Vn1,xn,就可以求 z n \bm z_n zn后验的参数 μ n , V n \bm \mu_n, \bm V_n μn,Vn. (看上去 V n \bm V_n Vn x n \bm x_n xn无关,而 c n , μ n c_n,\bm \mu_n cn,μn则和 x n \bm x_n xn有关)
该过程的初始状态为
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
似然函数 p ( X ) p(\bm X) p(X)则可以采用式13.63的方式给出
在这里插入图片描述
式13.89可以解释为 A μ n − 1 \bm A\bm \mu_{n-1} Aμn1 提供了 z n \bm z_n zn的后验均值预测,该预测将给出 C A z n − 1 \bm C\bm A\bm z_{n-1} CAzn1 x n \bm x_n xn观测,所以式13.89中的 x n − C A μ n − 1 \bm x_n - \bm C\bm A\bm \mu_{n-1} xnCAμn1可以看作是在观测到 x n \bm x_n xn后,对后验均值的一个修正,修正的系数是卡尔曼增益矩阵 K n \bm K_n Kn
所以卡尔曼滤波可以看作是不断预测,并用新观测来修正的过程,如图所示
在这里插入图片描述

  • 如果观测噪声相比于隐变量转移速度很小,那么 z n \bm z_n zn将会只依赖于当前的观测 x n \bm x_n xn,和本节开篇结论一致;如果隐变量转移速度很小,观测噪声很大, z n \bm z_n zn则倾向于平均所有的观测(习题13.27)

卡尔曼滤波常用于追踪,如图所示
在这里插入图片描述

中间隐变量状态推断

考虑另一个问题,如果已经观测到 x 1 , … , x N \bm x_1,\dots, \bm x_N x1,,xN,如何推断 z n \bm z_n zn. 该问题虽没有实际预测意义,但是有助于参数学习。类比HMM,该问题可以用反向信息传播,再结合 α ^ ( z n ) \hat \alpha(\bm z_n) α^(zn)得到
在LDS文献中,经常反向传播 γ ( z n ) = α ^ ( z n ) β ^ ( z n ) \gamma(\bm z_n)=\hat \alpha(\bm z_n)\hat \beta(\bm z_n) γ(zn)=α^(zn)β^(zn),而不是 β ^ ( z n ) \hat \beta(\bm z_n) β^(zn)
γ ( z n ) \gamma(\bm z_n) γ(zn)是高斯,可以写成
在这里插入图片描述
首先由式13.62
在这里插入图片描述
两边乘 α ^ ( z n ) \hat \alpha (\bm z_n) α^(zn),得到(习题13.29,我没有算,这太复杂了。。)
在这里插入图片描述
其中定义了
在这里插入图片描述
后向过程需要先把前向算完,得到 μ n , V n \bm\mu_n, \bm V_n μn,Vn,才能继续算
为了进行EM,还需要得到
在这里插入图片描述
可以算出 ξ ( z n − 1 , z n ) \xi(\bm z_{n-1}, \bm z_n) ξ(zn1,zn)是高斯分布,均值为 γ ( z n − 1 ) \gamma(\bm z_{n-1}) γ(zn1) γ ( z n ) \gamma(\bm z_n) γ(zn),协方差为
在这里插入图片描述

P642 LDS学习

学习中,采用EM,需要用上一节的方法推断出 p ( Z ∣ X , θ o l d ) p(\bm Z|\bm X,\bm \theta^{old}) p(ZX,θold),更准确地说,需要局部后验分布,包括如下几项
在这里插入图片描述
考虑完全数据的对数似然
在这里插入图片描述
对全数据对数似然求关于 p ( Z ∣ X , θ o l d ) p(\bm Z|\bm X,\bm \theta^{old}) p(ZX,θold)的期望,这也是EM中M步的标准操作
在这里插入图片描述
该式要对 θ \bm \theta θ最大化(后面这一堆结果我都没算)
首先考虑 μ 0 , V 0 \bm \mu_0, \bm V_0 μ0,V0
在这里插入图片描述
最大化得到(参考2.3.4节和习题13.32)
在这里插入图片描述
关于 A , Γ \bm A,\bm \Gamma A,Γ最大化得到
在这里插入图片描述
关于 C , Σ \bm C, \bm \Sigma C,Σ最大化得到
在这里插入图片描述

  • 该方法也可以引入先验,求MAP,或者用近似推断得到完整的贝叶斯方法

P644 LDS的各种扩展

以下是几种扩展

  • 一种扩展是 z 1 \bm z_1 z1初始化时,采用混合高斯(后面的细节书上没有细讲)
  • 把发射概率密度变成混合高斯
  • 如果引入与线性高斯模型差异过大的分布,可能没法处理。可以采用精确近似,例如期望传播、密度过滤density filtering,或者用采样方法(下一节的粒子滤波particle filters)。也可以在预测分布的均值附近进行线性近似,产生推广的Kalman滤波extended Kalman filter
  • 切换状态空间模型switching state space model:扩展LDS图表示。是HMM和一系列LDS的组合,模型有多个线性高斯隐变量链LDS,以及一个HMM用于随机选择当前时刻用哪个LDS链。该模型不能精确推断,但可以用变分方法,得到前向-后向的高效推断。如果我们把其中的LDS换成HMM,再用另一个HMM去嵌套选择,则得到切换隐马尔科夫模型switching hidden Markov model

P645 粒子滤波 particle filter

动态系统中,如果不用线性高斯建模,可以用采样方法处理。尤其是采样-重要性-重采样方法,由此得到序列蒙特卡洛方法,称为粒子滤波(没有懂粒子滤波为什么是采样-重要性-重采样方法)
在状态空间模型的有向图中,给定 X n = ( x 1 , … , x n ) \bm X_n=(\bm x_1, \dots,\bm x_n) Xn=(x1,,xn),希望从 p ( z n ∣ X n ) p(\bm z_n|\bm X_n) p(znXn) L L L个样本
贝叶斯定理得到
在这里插入图片描述
其中 { z n ( l ) } \{\bm z_n^{(l)}\} {zn(l)} p ( z n ∣ X n − 1 ) p(\bm z_n|\bm X_{n-1}) p(znXn1)中采样,系数满足
在这里插入图片描述
此时, p ( z n ∣ x n ) p(\bm z_n|\bm x_n) p(znxn)已经被集合 { z n ( l ) } \{\bm z_n^{(l)}\} {zn(l)}代替,注意权重系数求和为1. 如果考虑上这些系数,实际上 ∑ l = 1 L w n ( l ) δ ( z n − z n ( l ) ) \sum_{l=1}^L w_n^{(l)}\delta(\bm z_n - \bm z_n^{(l)}) l=1Lwn(l)δ(znzn(l))就是近似了 p ( z n ∣ X n ) p(\bm z_n|\bm X_n) p(znXn),而且 p ( x n ∣ z n ( l ) ) p(\bm x_n|\bm z_n^{(l)}) p(xnzn(l))越高,系数越大,且成正比
我们想找一个顺序采样方法,假设在时刻 n n n已经得到了一组采样和权重,然后观测到了 x n + 1 \bm x_{n+1} xn+1,希望从 p ( z n + 1 ∣ X n ) p(\bm z_{n+1}|\bm X_n) p(zn+1Xn)采样,利用式13.118
在这里插入图片描述
可以看出13.119是一个混合分布,采样可以通过先从 l l l个分量中采一个分量,然后从该分量中依据 p ( z n + 1 ∣ z n ( l ) ) p(\bm z_{n+1}|\bm z_n^{(l)}) p(zn+1zn(l))采样本. 这样就能迭代了
看上去这个过程需要给出 p ( x n ∣ z n ) p(\bm x_n|\bm z_n) p(xnzn) p ( z n + 1 ∣ z n ) p(\bm z_{n+1}|\bm z_n) p(zn+1zn)的形式,但是并不要求是高斯.
(上述13.119的采样过程就是CVMLI19.5.1节的时间演化过程。而19.5.2节的测量合并则是PRML上式13.118的重新计算系数 w w w,也即近似了 p ( z n ∣ X n ) p(\bm z_n|\bm X_n) p(znXn)后验分布,这里借用一张CVMLI的图)
在这里插入图片描述
PRML的图
在这里插入图片描述
参考文献:
[1] Christopher M. Bishop. Pattern Recognition and Machine Learning. 2006

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PRML(模式识别与机器学习)算法的Matlab实现是指使用Matlab编程语言实现PRML书中提到的各种算法模型PRML算法是一种广义的模型学习算法,可以用于模式识别、机器学习和数据挖掘等问题。 PRML算法的Matlab实现可以包括以下内容: 1. 数据预处理:对原始数据进行清洗、归一化、征提取等预处理操作,为后续模型训练做准备。 2. 模型选择:根据具体问题选择适当的模型,包括朴素贝叶斯、支持向量机、决策树、聚类分析等算法。 3. 参数估计:使用PRML中介绍的最大似然估计、贝叶斯估计等方法,通过训练数据得到模型的参数估计。 4. 模型训练:使用已估计得到的模型参数,对训练数据进行训练,得到最优的模型。 5. 模型评估:对训练得到的模型进行评估,使用评价指标如准确率、召回率、F1值等来判断模型性能。 6. 模型预测:使用训练得到的模型对新的未知数据进行预测,得到相应的结果。 在Matlab中,可以使用相关的函数和工具箱来实现PRML算法,例如Statistics and Machine Learning Toolbox、Pattern Recognition Toolbox等。这些工具箱提供了各种算法模型的实现函数,也提供了数据处理、评估和预测的函数,方便开发者实现PRML算法。 实现PRML算法的Matlab代码需要具备一定的编程能力和数学基础,了解相关的算法原理和数学推导。可以通过阅读PRML书籍中的算法推导、Matlab官方文档和相关学术论文等资源,来学习和理解PRML算法的Matlab实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值