HMM 隐马尔可夫模型

抄录自 周志华. 机器学习 (北京: 清华大学出版社) 第 133− 137 页 Zhou ZH 2016[J]. Machine Learning, 2016.

隐马尔可夫模型是结构最简单的动态贝叶斯网,是一种有向图模型,主要用于时序数据建模。隐马尔可夫模型中变量可以分为两组。第一组谁状态变量,\left \{ y_{1}, y_{2}, ..., y_{n} \right \},其中y_{i}表示第i时刻的系统状态,通常假定状态变量是隐藏的,不可以 观测的,因此状态变量也称为隐变量(hidden variable)。第二组是观测变量\left \{ x_{1}, x_{2}, ..., x_{n} \right \}, 其中x_{i} \in \chi表示第i时刻的观测值。系统通常在多个状态\left \{ s_{1},s_{2},..,s_{n} \right \}之间转换,因此状态变量y_{i}的取值范围(状态空间)Y通常有N个可能取值的离散空间。观测变量x_{i}可以 是离散型也可以是连续型的,这里仅考虑离散型观测变量,并假定取值范围\left\{ o_{1}, o_{2},...,o_{M} \right\}

图中的箭头表示变量间的依赖关系。在任一时刻,观测变量的取值仅依赖于状态变量,即(观测变量)x_{t}由(状态变量)y_{t}确定,与其他状态变量以及观测变量的取值无关。同时,t时刻的状态y_{t}仅依赖与t-1时刻的状态y_{t-1},与其余n-2的状态无关,这就是所谓的马尔可夫链。即系统的下一时刻的状态仅由当前状态决定,不依赖任何以往的任何状态。基于这种依赖关系,所有变量的联合概率分布为:

P(x_{1},y_{1},...,x_{n},y_{n})=p(y_{1})p(x_{1}|y_{1})\prod_{i=2}^{n}p(y_{i}|y_{i-1})p(x_{i}|y_{i})

除了结构信息,想要确定一个隐马尔可夫模型还需要以下三组参数。

  1. 状态转移概率:模型在各个状态之间转换的概率,通常记作矩阵A =[a_{ij}]_{N \times N},其中a_{ij}= P(y_{t+1}=s_{j}|y_{t}=s_{i})1 \leq i, j \leq N表示在任意时刻t,若状态为s_{i},则在下一时刻状态为s_{j}的概率。
  2. 输出观测概率:模型根据当前状态获得各个观测值的概率,通常记作为矩阵B=[b_{ij}]_{N \times N},其中b_{ij}=P(x_{t}=o_{j}|y_{t}=s_{i})1\leq i \leq N,1\leq j \leq M表示在任意时刻,若状态为s_{i},则观测值o_{j}被获取的概率。
  3. 初始状态概率:模型在初始时刻各个状态出现的概率,通常记作\pi =\left\{ \pi_{1},\pi_{2},...,\pi_{n} \right\},其中\pi_{i}=P(y_{1}=s_{i})1 \leq i \leq N,表示模型初始状态为s_{i}的概率。

通过指定状态空间,观测空间,和上述三组参数,就能确定一个隐马尔可夫模型,通常用\lambda = [A, B, \pi]来指代。给定隐马尔可夫模型,它按照如下过程产生观测序列:\left\{ x_{1}, x_{2}, ...,x_{n} \right\}:

(1) 设置t=1,根据初始状态概率\pi选择初始状态y_{1}.

(2) 根据状态y_{t}和输出观测概率B选择观测变量值x_{t}.

(3) 根据状态y_{t}和状态转移矩阵A转移模型状态,即确定y_{t+1}

(4) 若t<n,设置t=t+1,并转到第2步,否则停止。

其中,y_{t} \in \left\{s_{1},s_{2},...,s_{N}\right\}, x_{t} \in \left\{ o_{1}, o_{2},...,o_{M} \right\}分别是t时刻的状态和观测值。

在实际应用中,人们常关注隐马尔可夫模型的三个基本问题:

(1)如何根据观测序列推断出隐藏的模型状态。即给定模型\lambda = [A, B, \pi],和观测序列\mathbf{x} = \left\{ x_{1}, x_{2}, ...,x_{n} \right\},如何找到与此观测序列最匹配的状态序列\mathbf{y} = \left \{ y_{1}, y_{2}, ..., y_{n} \right \}?

(2)如何训练模型,使它能够最好地描述观测数据?即给定观测序列\mathbf{x} = \left\{ x_{1}, x_{2}, ...,x_{n} \right\},如何调整模型参数使该观测序列出现的概率P(x|\lambda)最大?

(3)如何评估模型与观测序列之间的匹配程度?即给定模型\lambda = [A, B, \pi],如何有效计算其产生观测序列\mathbf{x} = \left\{ x_{1}, x_{2}, ...,x_{n} \right\}的概率P(x|\lambda)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值