周志华《机器学习》
1 概率图模型:描述随机过程的一个工具
- 节点表示随机变量,边表示变量之间的概率关系;
- 分类:
2 马尔可夫模型
- 每个结点的随机变量是可观测的;
- 给定一个随机序列:
S
:
s
1
,
s
2
,
s
3
.
.
.
s
T
S:s_1,s_2,s_3...s_T
S:s1,s2,s3...sT,其联合概率分布为:
P ( s 1 , s 2 , s 3 . . . s T ) = P ( s 1 ) ⋅ P ( s 2 ∣ s 1 ) ⋅ P ( s 3 ∣ s 2 ) ⋅ ⋅ ⋅ ⋅ P ( s T ∣ s T − 1 ) P(s_1,s_2,s_3...s_T)=P(s_1)\cdot P(s_2|s_1)\cdot P(s_3|s_2)\cdot \cdot \cdot\cdot P(s_T|s_{T-1}) P(s1,s2,s3...sT)=P(s1)⋅P(s2∣s1)⋅P(s3∣s2)⋅⋅⋅⋅P(sT∣sT−1) - 其中的所有条件概率都可以在概率图模型中查到:
图片来源:https://zhuanlan.zhihu.com/p/46160757
3 隐马尔可夫模型:动态贝叶斯网
3.1 两组随机变量、两个空间
- 每个节点的状态是不可观测(隐藏)的,但是每个节点的随机变量会生成一个观测变量,这个观测变量是可观测的。
- 状态变量(隐变量): { y 1 , y 2 , y 3 , . . . , y n } , y i ∈ Y = { s 1 , s 2 , s 3 , . . . , s N } \{y_1, y_2 , y_3 ,...,y_n \}, \quad y_i\in\mathcal{Y}=\{s_1, s_2 , s_3 ,...,s_N \} {y1,y2,y3,...,yn},yi∈Y={s1,s2,s3,...,sN} (状态空间)
- 观测变量: { x 1 , x 2 , x 3 , . . . , x n } , x i ∈ X = { o 1 , o 2 , o 3 , . . . , o M } \{x_1, x_2 , x_3 ,...,x_n \}, \quad x_i\in\mathcal{X}=\{o_1, o_2 , o_3 ,...,o_M \} {x1,x2,x3,...,xn},xi∈X={o1,o2,o3,...,oM}(观测空间)
3.2 两个基本假设
- 马尔可夫性假设:系统下一时刻的状态仅由当前状态决定, 即 y i + 1 y_{i+1} yi+1仅依赖于 y i y_{i} yi
- 观测独立性假设:任一时刻,观测变量的取值仅依赖于状态向量,即 x i x_i xi仅依赖于 y i y_i yi
3.3 三组模型参数
- 所有变量的联合概率分布为:
P ( y 1 , y 2 , y 3 . . . y n , x 1 , x 2 , x 3 . . . x n ) = P ( y 1 ) P ( x 1 ∣ y 1 ) ∏ i = 2 n P ( y i ∣ y i − 1 ) P ( x i ∣ y i ) P(y_1,y_2,y_3...y_n,x_1,x_2,x_3...x_n)=P(y_1) P(x_1|y_1)\prod_{i=2}^n P(y_i |y_{i-1})P(x_i|y_i) P(y1,y2,y3...yn,x1,x2,x3...xn)=P(y1)P(x1∣y1)i=2∏nP(yi∣yi−1)P(xi∣yi) - 因此,要确定联合概率分布,需要的参数有以下3组:
- 状态转移概率:记为矩阵
A
=
[
a
i
j
]
N
×
N
A=[a_{ij}]_{N\times N}
A=[aij]N×N
a i j = P ( s j ∣ s i ) , i , j ∈ [ 1 , N ] a_{ij}=P(s_j|s_i), \quad i,j\in [1,N] aij=P(sj∣si),i,j∈[1,N] - 输出观测概率:记为矩阵
B
=
[
b
i
j
]
N
×
M
B=[b_{ij}]_{N\times M}
B=[bij]N×M
b i j = P ( o j ∣ s i ) , i ∈ [ 1 , N ] , j ∈ [ 1 , M ] b_{ij}=P(o_j|s_i), \quad i\in[1,N], j\in [1,M] bij=P(oj∣si),i∈[1,N],j∈[1,M] - 初始状态概率:模型在初始时刻N个状态出现的概率,记为
π
=
(
π
1
,
π
2
,
.
.
.
,
π
N
)
\pi=(\pi_1,\pi_2,...,\pi_N)
π=(π1,π2,...,πN)
π i = P ( y 1 = s i ) , i ∈ [ 1 , N ] \pi_i = P(y_1=s_i),\quad i\in[1,N] πi=P(y1=si),i∈[1,N]
- 状态转移概率:记为矩阵
A
=
[
a
i
j
]
N
×
N
A=[a_{ij}]_{N\times N}
A=[aij]N×N
- 通过指定状态空间 Y \mathcal{Y} Y、观测空间 X \mathcal{X} X 还有三组模型参数,就能确定一个马尔可夫模型;
- 可以用 λ = [ A , B , π ] \lambda=[A,B,\pi] λ=[A,B,π]来表示一个马尔可夫模型;
4 隐马尔可夫模型的三个基本问题
- 给定模型 λ = [ A , B , π ] \lambda=[A,B,\pi] λ=[A,B,π],如何计算其产生观测序列 x = { x 1 , x 2 , x 3 , . . . , x n } x = \{x_1, x_2 , x_3 ,...,x_n \} x={x1,x2,x3,...,xn}的概率 P ( x ∣ λ ) P(x|\lambda) P(x∣λ) ?即如何评估模型与观测序列之间的匹配程度?
- 给定模型 λ = [ A , B , π ] \lambda=[A,B,\pi] λ=[A,B,π]和观测序列 x = { x 1 , x 2 , x 3 , . . . , x n } x = \{x_1, x_2 , x_3 ,...,x_n \} x={x1,x2,x3,...,xn},如何找到与此观测序列最匹配的状态序列 y = { y 1 , y 2 , y 3 , . . . , y n } y =\{y_1, y_2 , y_3 ,...,y_n \} y={y1,y2,y3,...,yn}?即如何根据观测序列推断隐藏状态?
- 给定观测序列 x = { x 1 , x 2 , x 3 , . . . , x n } x = \{x_1, x_2 , x_3 ,...,x_n \} x={x1,x2,x3,...,xn},如何调整参数 λ = [ A , B , π ] \lambda=[A,B,\pi] λ=[A,B,π]使得该序列出现的概率 P ( x ∣ λ ) P(x|\lambda) P(x∣λ)最大?即如何训练模型使其能最好的描述观测数据?
应用场景
- 预测推断:根据以往的观测序列 x = { x 1 , x 2 , x 3 , . . . , x n − 1 } x = \{x_1, x_2 , x_3 ,...,x_{n-1} \} x={x1,x2,x3,...,xn−1}来推测当前时刻最有可能的观测值 x n x_n xn,可以转化为第一个问题;
- 语音识别:观测值为语音信号,隐藏状态为文字,根据观测序列来推断最有可能的状态序列,即对应的文字,可以转化为第二个问题;
- 模型拟合:根据样本(状态值和观测值),训练最优模型参数,使得其最好的拟合观测数据,可以转化为第三个问题;
5 马尔可夫随机场 MRF
- 马尔可夫随机场是典型的马尔可夫网,是一种无向图模型;
团:对于图中结点的一个子集,若其中任意两结点之间都有边连接,则该子集成为一个“团”。若在一个团中加入任意一个其他结点都不再构成团,则该团称为“极大团”
- 马尔可夫随机场是生成式模型,因此对联合概率建模,MRF中,多个变量之间的联合概率分布能基于团分解为多个因子的乘积,也可以基于极大团来定义,假定所有极大团构成的集合为
C
∗
C^*
C∗:
P ( x ) = 1 Z ∗ ∏ Q ∈ C ∗ ϕ Q ( x Q ) P(x)=\frac{1}{Z^*}\prod_{Q\in C^*}\phi_Q(x_Q) P(x)=Z∗1Q∈C∗∏ϕQ(xQ)
Z ∗ Z^* Z∗为规范化因子, ϕ Q ( x Q ) \phi_Q(x_Q) ϕQ(xQ)是定义在团 x Q x_Q xQ上的势函数;