zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

(《机器学习》完整版系列)第14章 概率图模型——14.1 隐马尔可夫模型HMM(状态变量(隐的)、观测变量(可见))

机器学习变量 系列 模型 14 概率 完整版
2023-09-11 14:14:53 时间

概率图模型是机器学习的一个重要分支,其基础理论涉及到图论和概率论

利用图来表达“变量关系”,在此模型下讨论变量的联合分布或条件分布,即是概率图模型。

常用概率图模型分类:
图14.1 概率图模型

图14.1 概率图模型

HMM的三个基本问题:观测序列
x = { x 1 , x 2 , ⋯   , x n } \boldsymbol{\mathrm{x}}=\{x_1,x_2,\cdots,x_n\} x={x1,x2,,xn}、状态序列 y = { y 1 , y 2 , ⋯   , y n } \boldsymbol{\mathrm{y}}=\{y_1,y_2,\cdots,y_n\} y={y1,y2,,yn}以及参数 λ \lambda λ三者中,已知二者求另一个的问题。 仿真求值方法作为基本手段。

隐马尔可夫模型HMM

隐马尔可夫模型属于有向图,箭头表示依赖,因此,重点研究条件概率问题,利用条件概率公式【西瓜书式(7.7)】容易将联合分布转化为条件分布的积
P ( y 1 , y 2 , ⋯   , y n ) = P ( y 1 ) P ( y 2 , y 3 , ⋯   , y n   ∣   y 1 ) = P ( y 1 ) P ( y 2   ∣   y 1 ) P ( y 3 , y 4 , ⋯   , y n   ∣   y 1 , y 2 ) = P ( y 1 ) P ( y 2   ∣   y 1 ) P ( y 3   ∣   y 1 , y 2 ) P ( y 3 , y 4 , ⋯   , y n   ∣   y 1 , y 2 , y 3 ) = ⋯ = P ( y 1 ) P ( y 2   ∣   y 1 ) P ( y 3   ∣   y 1 , y 2 ) ⋯ P ( y n   ∣   y 1 , y 2 , ⋯   , y n − 1 ) = p ( y 1 ) ∏ i = 2 n P ( y i   ∣   y 1 , y 2 , ⋯   , y i − 1 ) \begin{align} & \quad P(y_1,y_2,\cdots,y_n)\notag \\ & =P(y_1)P(y_2,y_3,\cdots,y_n\,|\,y_1)\notag \\ & =P(y_1)P(y_2\,|\,y_1)P(y_3,y_4,\cdots,y_n\,|\,y_1,y_2)\notag \\ & =P(y_1)P(y_2\,|\,y_1)P(y_3\,|\,y_1,y_2)P(y_3,y_4,\cdots,y_n\,|\,y_1,y_2,y_3)\notag \\ & =\cdots\notag \\ & =P(y_1)P(y_2\,|\,y_1)P(y_3\,|\,y_1,y_2)\cdots P(y_n\,|\,y_1,y_2,\cdots,y_{n-1}) \tag{14.1} \\ & =p(y_1)\prod _{i=2}^nP(y_i\,|\,y_1,y_2,\cdots ,y_{i-1}) \tag{14.2} \end{align} P(y1,y2,,yn)=P(y1)P(y2,y3,,yny1)=P(y1)P(y2y1)P(y3,y4,,yny1,y2)=P(y1)P(y2y1)P(y3y1,y2)P(y3,y4,,yny1,y2,y3)==P(y1)P(y2y1)P(y3y1,y2)P(yny1,y2,,yn1)=p(y1)i=2nP(yiy1,y2,,yi1)(14.1)(14.2)
如何将无关的条件(或关系弱的条件)剔除呢?在一定的假设基础上,能实现这一需求,从而大大简化计算。 例如,对于有向图而言,假定结点 y i y_i yi仅与其父结点集 p a y i \mathrm{pa}_{y_i} payi相关,则
P ( y 1 , y 2 , ⋯   , y n ) = p ( y 1 ) ∏ i = 2 n P ( y i   ∣   p a y i ) \begin{align} P(y_1,y_2,\cdots,y_n) & =p(y_1)\prod _{i=2}^nP(y_i\,|\,\mathrm{pa}_{y_i}) \tag{14.3} \end{align} P(y1,y2,,yn)=p(y1)i=2nP(yipayi)(14.3)

(1)马尔可夫链

图14.2 马尔可夫链

图14.2 马尔可夫链

图14.2 中,时间系列随机变量( y 1 , y 2 , ⋯   , y k , y k + 1 , ⋯ y_1,y_2,\cdots,y_k,y_{k+1},\cdots y1,y2,,yk,yk+1,)中, y k + 1 y_{k+1} yk+1仅与最近的过去 y k y_k yk相关,即
P ( y k + 1   ∣   y 1 , y 2 , ⋯   , y k ) = P ( y k + 1   ∣   y k ) \begin{align} P(y_{k+1}\,|\,y_1,y_2,\cdots,y_k)=P(y_{k+1}\,|\,y_k) \tag{14.4} \end{align} P(yk+1y1,y2,,yk)=P(yk+1yk)(14.4)
由此式,可推导出联合分布公式
P ( y 1 , y 2 , ⋯   , y n ) = P ( y 1 , y 2 , ⋯   , y n − 1 ) P ( y n   ∣   y 1 , y 2 , ⋯   , y n − 1 ) = P ( y 1 , y 2 , ⋯   , y n − 1 ) P ( y n   ∣   y n − 1 ) (由式(14.4)) = ⋯ = P ( y 1 ) P ( y 2   ∣   y 1 ) P ( y 3   ∣   y 2 ) ⋯ P ( y n   ∣   y n − 1 ) = p ( y 1 ) ∏ i = 2 n P ( y i   ∣   y i − 1 ) \begin{align} P(y_1,y_2,\cdots,y_n) & =P(y_1,y_2,\cdots,y_{n-1})P(y_n\,|\,y_1,y_2,\cdots,y_{n-1})\notag \\ & =P(y_1,y_2,\cdots,y_{n-1})P(y_n\,|\,y_{n-1})\quad \text{(由式(14.4))}\notag \\ & =\cdots\notag \\ & =P(y_1)P(y_2\,|\,y_1)P(y_3\,|\,y_2)\cdots P(y_n\,|\,y_{n-1})\notag \\ & =p(y_1)\prod _{i=2}^nP(y_i\,|\,y_{i-1}) \tag{14.5} \end{align} P(y1,y2,,yn)=P(y1,y2,,yn1)P(yny1,y2,,yn1)=P(y1,y2,,yn1)P(ynyn1)(由式(14.4)==P(y1)P(y2y1)P(y3y2)P(ynyn1)=p(y1)i=2nP(yiyi1)(14.5)
由式(14.2)也可以得到式(14.5),只不过是二者在过程中处理的方向不同:

∙ \bullet 前者“ y 1 ⟶ y n y_1\longrightarrow y_n y1yn”(式(14.2)的第一个等式是处理 P ( y 1 ) P(y_1) P(y1)

∙ \bullet 后者“ y 1 ⟵ y n y_1\longleftarrow y_n y1yn”(式(14.5)的第一个等式是处理 P ( y n   ∣   y 1 , y 2 , ⋯   , y n − 1 ) P(y_n\,|\,y_1,y_2,\cdots,y_{n-1}) P(yny1,y2,,yn1))。

(2)隐马尔可夫链

现在设图14.2 中的 y i y_i yi是不可见的(隐),但可观测它的某种表现 x i x_i xi,形成图14.3 :
图14.3 隐马尔可夫模型

图14.3 隐马尔可夫模型

图中的箭头线“ A → B A\rightarrow B AB”表示父子关系,即“ A A A产生 B B B”或表述为“ B B B依赖于 A A A”,在时间窗口 t = i t=i t=i时,有一对变量 ( y i , x i ) (y_i,x_i) (yi,xi) y i y_i yi称为状态变量(隐的)、 x i x_i xi称为观测变量(或在时刻 i i i的观测值)(符号 x i x_i xi到底是变量名还是变量的值,需要从上下文中理解)。 观测变量 x i x_i xi仅依赖于当前的状态变量 y i y_i yi,即
P ( x i   ∣   y 1 , y 2 , ⋯   , y i ) = P ( x i   ∣   y i ) \begin{align} P(x_i\,|\,y_1,y_2,\cdots,y_i)=P(x_i\,|\,y_i) \tag{14.6} \end{align} P(xiy1,y2,,yi)=P(xiyi)(14.6)

在时刻 i i i,未来的状态 y i + 1 , y i + 2 , ⋯   , y n y_{i+1},y_{i+2},\cdots,y_{n} yi+1,yi+2,,yn并不影响 x i x_i xi,即
P ( x i   ∣   y 1 , y 2 , ⋯   , y i , ⋯   , y n ) = P ( x i   ∣   y 1 , y 2 , ⋯   , y i ) = P ( x i   ∣   y i ) \begin{align} P(x_i\,|\,y_1,y_2,\cdots,y_i,\cdots,y_n) & =P(x_i\,|\,y_1,y_2,\cdots,y_i)\notag \\ & =P(x_i\,|\,y_i) \tag{14.7} \end{align} P(xiy1,y2,,yi,,yn)=P(xiy1,y2,,yi)=P(xiyi)(14.7)

在时刻 n n n时的联合分布概率
P ( ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x n , y n ) ) = P ( ( x 1 , x 2 , ⋯   , x n ) , ( y 1 , y 2 , ⋯   , y n ) ) = P ( y 1 , y 2 , ⋯   , y n ) P ( x 1 , x 2 , ⋯   , x n   ∣   y 1 , y 2 , ⋯   , y n ) \begin{align} & \quad P((x_1,y_1),(x_2,y_2),\cdots,(x_n,y_n))\notag\\ & =P((x_1,x_2,\cdots,x_n),(y_1,y_2,\cdots,y_n))\notag \\ & =P(y_1,y_2,\cdots,y_n)P(x_1,x_2,\cdots,x_n\,|\,y_1,y_2,\cdots,y_n) \tag{14.8} \end{align} P((x1,y1),(x2,y2),,(xn,yn))=P((x1,x2,,xn),(y1,y2,,yn))=P(y1,y2,,yn)P(x1,x2,,xny1,y2,,yn)(14.8)

简记 y = ( y 1 , y 2 , ⋯   , y n ) \boldsymbol{y}=(y_1,y_2,\cdots,y_n) y=(y1,y2,,yn),则 式(14.8) 中的条件概率
P ( x 1 , x 2 , ⋯   , x n   ∣   y 1 , y 2 , ⋯   , y n ) = P ( x 1 , x 2 , ⋯   , x n   ∣   y ) = P ( x 1 , x 2 , ⋯   , x n − 1   ∣   y ) P ( x n   ∣   y , x 1 , x 2 , ⋯   , x n − 1 ) = P ( x 1 , x 2 , ⋯   , x n − 1   ∣   y ) P ( x n   ∣   y ) = ⋯ = P ( x 1   ∣   y ) P ( x 2   ∣   y ) ⋯ P ( x n   ∣   y ) = P ( x 1   ∣   y 1 ) P ( x 2   ∣   y 2 ) ⋯ P ( x n   ∣   y n ) (由式(14.7)) = ∏ i = 1 n P ( x i   ∣   y i ) \begin{align} & \quad P(x_1,x_2,\cdots,x_n\,|\,y_1,y_2,\cdots,y_n)\notag \\ & =P(x_1,x_2,\cdots,x_n\,|\,\boldsymbol{y})\notag \\ & =P(x_1,x_2,\cdots,x_{n-1}\,|\,\boldsymbol{y})P(x_{n}\,|\,\boldsymbol{y},x_1,x_2,\cdots,x_{n-1})\notag \\ & =P(x_1,x_2,\cdots,x_{n-1}\,|\,\boldsymbol{y})P(x_{n}\,|\,\boldsymbol{y})\notag \\ & =\cdots\notag \\ & =P(x_{1}\,|\,\boldsymbol{y})P(x_{2}\,|\,\boldsymbol{y})\cdots P(x_{n}\,|\,\boldsymbol{y})\notag \\ & =P(x_{1}\,|\,y_1)P(x_{2}\,|\,y_2)\cdots P(x_{n}\,|\,y_n)\quad \text{(由式(14.7))}\notag \\ & =\prod _{i=1}^nP(x_{i}\,|\,y_i) \tag{14.9} \end{align} P(x1,x2,,xny1,y2,,yn)=P(x1,x2,,xny)=P(x1,x2,,xn1y)P(xny,x1,x2,,xn1)=P(x1,x2,,xn1y)P(xny)==P(x1y)P(x2y)P(xny)=P(x1y1)P(x2y2)P(xnyn)(由式(14.7)=i=1nP(xiyi)(14.9)

将式(14.5)及式(14.9)代入式(14.8)即得【西瓜书式(14.1)】。

(3)隐马尔可夫模型的参数

观察隐马尔可夫模型(HMM)【西瓜书式(14.1)】,它有三类式子,对应于三组参数。

(i) P ( y 1 ) P(y_1) P(y1):在初始时刻,取各状态的概率。

设状态变量 y y y的取值范围为: Y = { s 1 , s 2 , ⋯   , s N } \mathcal{Y} =\{s_1,s_2,\cdots,s_N\} Y={s1,s2,,sN},初始状态 y 1 y_1 y1可以取 Y \mathcal{Y} Y中任意值(依概率)。

π i = P ( y 1 = s i ) i ⩽ i ⩽ N \begin{align} \pi _i=P(y_1=s_i)\quad \quad i\leqslant i \leqslant N \tag{14.10} \end{align} πi=P(y1=si)iiN(14.10)

∑ i = 1 N π i = 1 \begin{align} \sum_{i=1}^N\pi _i=1 \tag{14.11} \end{align} i=1Nπi=1(14.11)

π = ( π 1 , π 2 , ⋯   , π N ) \boldsymbol{\pi}=(\pi _1,\pi _2,\cdots,\pi _N) π=(π1,π2,,πN)为一组参数,称为初始状态概率。

(ii) P ( y i   ∣   y i − 1 ) P(y_i\,|\,y_{i-1}) P(yiyi1):它反映状态之间的转换。


a i j = P ( y t + 1 = s j   ∣   y t = s i ) \begin{align} a_{ij}=P(y_{t+1}=s_j\,|\,y_t=s_i) \tag{14.12} \end{align} aij=P(yt+1=sjyt=si)(14.12)
则对应的转换表(矩阵)为
A = ( [ a i j ] ) N × N \begin{align} \mathbf{A}=([a_{ij}])_{N\times N} \tag{14.13} \end{align} A=([aij])N×N(14.13)
对应有状态转移图(有向图),如图14.4 ,图中的有向线对应于矩阵 A \mathbf{A} A中的非零值。
图14.4 状态转移图

图14.4 状态转移图

参数 A \mathbf{A} A称为状态转移概率(矩阵)。

(iii) P ( x i   ∣   y i ) P(x_i\,|\,y_{i}) P(xiyi):它反映在状态 s i s_i si时获得观测值 o j o_j oj的概率。


b i j = P ( x t = o j   ∣   y t = s i ) \begin{align} b_{ij}=P(x_{t}=o_j\,|\,y_t=s_i) \tag{14.14} \end{align} bij=P(xt=ojyt=si)(14.14)
其中, x x x的取值范围为: X = { o 1 , o 2 , ⋯   , o M } \mathcal{X} =\{o_1,o_2,\cdots,o_M\} X={o1,o2,,oM}

则对应的矩阵
B = ( [ b i j ] ) N × M \begin{align} \mathbf{B}=([b_{ij}])_{N\times M} \tag{14.15} \end{align} B=([bij])N×M(14.15)
称为输出观测值概率(矩阵)。

综上,HMM的参数为: λ = [ A , B , π ] \lambda =[\mathbf{A},\mathbf{B},\boldsymbol{\pi}] λ=[A,B,π],给定了参数 λ \lambda λ,则确定了该HMM。

(4)仿真求值

7.7 贝叶斯网络推断中,我们讨论了:已知事件概率,如何产生事件?以及已知样本的概率分布,如何采样生成样本?由此思路,即可在已知 λ \lambda λ的情况下,可以仿真出HMM所产生的观测序列 { x 1 , x 2 , ⋯   , x n } \{x_1,x_2,\cdots,x_n\} {x1,x2,,xn}

(5)HMM的三个基本问题

【西瓜书p.321】讨论了HMM的三个基本问题,简言之:观测序列
x = { x 1 , x 2 , ⋯   , x n } \boldsymbol{\mathrm{x}}=\{x_1,x_2,\cdots,x_n\} x={x1,x2,,xn}、状态序列 y = { y 1 , y 2 , ⋯   , y n } \boldsymbol{\mathrm{y}}=\{y_1,y_2,\cdots,y_n\} y={y1,y2,,yn}以及参数 λ \lambda λ三者中,已知二者求另一个的问题。 上述仿真求值方法是作为基本手段。

注:我们以 x \boldsymbol{\mathrm{x}} x表示以序列 { x 1 , x 2 , ⋯   , x n } \{x_1,x_2,\cdots,x_n\} {x1,x2,,xn}形成的向量,而不用一般的向量符 x \boldsymbol{x} x表示,因为,在图中它实际上是一个结点,从时间维才体现成向量。

本文为原创,您可以:

  • 点赞(支持博主)
  • 收藏(待以后看)
  • 转发(他考研或学习,正需要)
  • 评论(或讨论)
  • 引用(支持原创)
  • 不侵权

上一篇:13.6 半监督聚类(k均值算法+约束)
下一篇:14.2 马尔可夫随机场(无向图,“团”与“极大团”,MRF的“三性”)