(这一章就是讲序列,顺序的数据,对应顺序的模型)
目录
- 区分静态和非静态序列分布:静态情况中,分布保持一致;非静态情况中,分不会随时间变换。这里只关注静态情况
- 马尔可夫模型是一个简单的可处理的模型,每个时刻仅与上一个时刻有关。这样的模型局限性严重,通过引入潜在变量,可以得到更一般的框架,同时保持计算上可处理,引出状态空间模型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(xn∣xn−M,⋯,xn−1)设计成参数化模型,例如神经网络,这种方法也被称为tapped delay line,因为它对应存储前 M M M个观测值。这种方法的参数量远小于一个一般的模型,虽然会限制条件分布的形式
如果希望构造任意阶数的不受马尔可夫假设限制的序列模型,同时用较少参数量建模,可以引入额外隐变量,并假定隐变量服从马尔可夫链(这应该就是隐马尔可夫模型了)
对应联合概率为
上图中任意两个观测结点之间都不是独立的
HMM和线性动态系统LDS都可以用上图描述
13.2 Hidden Markov Models
HMM也可以看作是混合模型的扩展,只不过每个观测的混合分量不再独立
其中
A
A
A是马尔可夫矩阵,有
K
(
K
−
1
)
K(K-1)
K(K−1)个自由度
其中
∑
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(xn∣zn,ϕ)来定义,这被称为发射概率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(zn∣zn−1)和
z
n
−
1
\bm z_{n-1}
zn−1无关,即消除图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), ξ(zn−1,zn). M步的目标是算
{
π
,
A
,
ϕ
}
\{\bm \pi, \bm A, \bm \phi\}
{π,A,ϕ}
M步好说,求导后得到
(上式分母好像就是
γ
(
z
n
−
1
,
j
)
\gamma(z_{n-1,j})
γ(zn−1,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),ξ(zn−1,j,znk)
模型是树状有向图,所以可以用两阶段信息传递算法。在HMM中,这称之为前向-后向算法,或Baum-Welch算法。基本算法有很多变体,每个变体可以通过链传播得到精确边缘概率,这里关注变体中最广泛的一个:alpha-beta算法
找隐变量的后验和
p
(
x
∣
z
)
p(\bm x|\bm z)
p(x∣z)的具体形式无关,而和
p
(
x
n
∣
z
n
)
p(\bm x_n|\bm z_n)
p(xn∣zn)的值有关
下式列出一堆条件独立性
用贝叶斯公式
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) ξ(zn−1,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})
μzn−1→fn(zn−1),得到
如果定义
那么就得到了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(x1∣z1),和式13.37的初始值也一致.
另一方面,对于反向
类似地消去了
z
→
f
\bm z\to f
z→f. 定义
初始化为
μ
z
N
→
f
N
(
z
N
)
=
1
\mu_{\bm z_N \to f_N}(\bm z_N)=1
μzN→fN(zN)=1,这里感觉应该虚拟出一个
μ
f
N
+
1
→
z
N
(
z
N
)
=
1
\mu_{f_{N+1}\to \bm z_N}(\bm z_N)=1
μfN+1→zN(zN)=1更好理解,得到式13.38
利用式8.63,得到联合概率
P627 缩放因子
式13.36,
α
(
z
n
)
\alpha(\bm z_n)
α(zn)要通过
α
(
z
n
−
1
)
\alpha(\bm z_{n-1})
α(zn−1)迭代计算,其中的概率通常远小于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)
μzn→fn+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)≡μfn→zn(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(T∣k), 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(xt∣k). 毕竟这 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} zn−1和 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(X∣U,θ)来决定 θ \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}
xn−1与
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(zn∣x1,…,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(zn∣zn−1),p(xn∣zn)带入,得到
利用线性高斯模型的结论
其中
进一步得到
其中定义了卡尔曼增益矩阵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(xn∣x1,…,xn−1),给定
μ
n
−
1
,
V
n
−
1
,
x
n
\mu_{n-1},\bm V_{n-1}, \bm x_n
μn−1,Vn−1,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μn−1 提供了
z
n
\bm z_n
zn的后验均值预测,该预测将给出
C
A
z
n
−
1
\bm C\bm A\bm z_{n-1}
CAzn−1的
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}
xn−CAμn−1可以看作是在观测到
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)
ξ(zn−1,zn)是高斯分布,均值为
γ
(
z
n
−
1
)
\gamma(\bm z_{n-1})
γ(zn−1)和
γ
(
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(Z∣X,θold),更准确地说,需要局部后验分布,包括如下几项
考虑完全数据的对数似然
对全数据对数似然求关于
p
(
Z
∣
X
,
θ
o
l
d
)
p(\bm Z|\bm X,\bm \theta^{old})
p(Z∣X,θ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(zn∣Xn)采
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(zn∣Xn−1)中采样,系数满足
此时,
p
(
z
n
∣
x
n
)
p(\bm z_n|\bm x_n)
p(zn∣xn)已经被集合
{
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)δ(zn−zn(l))就是近似了
p
(
z
n
∣
X
n
)
p(\bm z_n|\bm X_n)
p(zn∣Xn),而且
p
(
x
n
∣
z
n
(
l
)
)
p(\bm x_n|\bm z_n^{(l)})
p(xn∣zn(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+1∣Xn)采样,利用式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+1∣zn(l))采样本. 这样就能迭代了
看上去这个过程需要给出
p
(
x
n
∣
z
n
)
p(\bm x_n|\bm z_n)
p(xn∣zn)和
p
(
z
n
+
1
∣
z
n
)
p(\bm z_{n+1}|\bm z_n)
p(zn+1∣zn)的形式,但是并不要求是高斯.
(上述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(zn∣Xn)后验分布,这里借用一张CVMLI的图)
PRML的图
参考文献:
[1] Christopher M. Bishop. Pattern Recognition and Machine Learning. 2006