天天看点

隐马尔可夫模型HMM学习备忘

隐马尔可夫模型HMM学习备忘

目录

    • 隐马尔可夫模型HMM学习备忘
      • 1、马尔可夫模型的理解
      • 2、隐马尔可夫模型
        • 2.1、HHM的组成
        • 2.2、HMM解决的三个基本问题

隐马尔可夫模型示意图如图[1]:

隐马尔可夫模型HMM学习备忘
隐马尔可夫模型HMM学习备忘

隐含状态转换关系示意图:

隐马尔可夫模型HMM学习备忘

1、马尔可夫模型的理解

包含 N N N个状态的系统,马尔可夫过程是状态 S i S_i Si​(在此 q t q_t qt​为状态 S i S_i Si​在时间 t t t的状态变量)变化转移过程,状态转移依赖前p个状态,与其他时刻状态无关,称之为p阶马尔可夫过程。

系统状态间不独立时有:

p ( q t = S i ∣ q t − 1 = S j , q t − 2 = S k , ⋯   , q t − N + 1 = S n ) = p ( q t = S i ∣ q t − 1 = S j , q t − 2 = S k , ⋯   , q t − p + 1 = S n ) , 其 中 , p < N p(q_t=S_i|q_{t-1}=S_j,q_{t-2}=S_k,\cdots,q_{t-N+1}=S_n)=p(q_t=S_i|q_{t-1}=S_j,q_{t-2}=S_k,\cdots,q_{t-p+1}=S_n),其中,p<N p(qt​=Si​∣qt−1​=Sj​,qt−2​=Sk​,⋯,qt−N+1​=Sn​)=p(qt​=Si​∣qt−1​=Sj​,qt−2​=Sk​,⋯,qt−p+1​=Sn​),其中,p<N

系统状态间独立时有:

p ( q t = S i ∣ q t − 1 = S j , q t − 2 = S k , ⋯   , q t − N + 1 = S n ) = p ( q t = S i ) p(q_t=S_i|q_{t-1}=S_j,q_{t-2}=S_k,\cdots,q_{t-N+1}=S_n)=p(q_t=S_i) p(qt​=Si​∣qt−1​=Sj​,qt−2​=Sk​,⋯,qt−N+1​=Sn​)=p(qt​=Si​)

2、隐马尔可夫模型

在隐马尔可夫模型(HMM)中,我们不知道模型具体的状态序列,只知道状态转移的概率,即模型的状态转换过程是不可观察的。

因此,该模型是一个双重随机过程,包括模型的状态转换和特定状态下可观察事件的随机[2]

2.1、HHM的组成

  • 状态数 N N N;
  • 每个状态可能的符号数 M i M_i Mi​;
  • 状态转移概率矩阵 A \boldsymbol{A} A(要素1);

    a i j a_{ij} aij​表示在任意时刻 t t t,若状态为 S i S_i Si​,则下一刻状态为 S j S_j Sj​的概率

  • 从状态观测到状态符号集下某个符号的概率转移矩阵 B \boldsymbol{B} B(要素2);

    b i j b_{ij} bij​表示任意时刻t,若状态为 S i S_i Si​,则状态下某个符号(观测值 O j O_j Oj​)被捕获的概率

  • 模型在初始时刻,状态 S i S_i Si​出现的概率,初始状态的概率分布 π i \pi_i πi​(要素3)。

相较于马尔可夫模型,隐马尔可夫模型多了各个状态状态下某个符号(观测值 O j O_j Oj​)的观测概率。

给定隐马尔可夫模型 λ = [ π , A , B ] \lambda=[\boldsymbol{\pi},\boldsymbol{A},\boldsymbol{B}] λ=[π,A,B],可按照如下过程产生观测序列 { X 1 , X 2 , ⋯   , , X n } {\{X_1,X_2,\cdots,,X_n\}} {X1​,X2​,⋯,,Xn​}

step1:设置 t = 1 t=1 t=1,并根据初始状态概率 π \boldsymbol{\pi} π选择初始状态 Y 1 Y_1 Y1​;

step2:根据状态值 Y t Y_t Yt​( S i S_i Si​)和输出观测概率 B \boldsymbol{B} B选择观测变量取值 X t X_t Xt​ (在特定状态符号集合内);

step3:根据观测变量取值 Y t Y_t Yt​和状态转移矩阵 A A A转移模型状态,即确定 Y t + 1 Y_{t+1} Yt+1​

2.2、HMM解决的三个基本问题

(1)评估:求解不同时刻对应不同状态(隐含状态 Y t Y_t Yt​)的观测序列(可见状态 X t X_t Xt​)的概率;(例如:给定一个天气的隐马尔可夫模型,包括第一天的天气概率分布,天气转移概率矩阵,特定天气下树叶的湿度概率分布。求第一天湿度为 1,第二天湿度为 2,第三天湿度为 3 的概率。)

  • 思路一:找到所有状态序列,得到各状态概率,得到每种状态概率对应的观察概率,求和。(找到每一个可能的隐藏状态 Y t Y_t Yt​,并且将这些隐藏状态下的观察序列概率相加。)
  • 思路二:采用动态规划[2]

(2)解码:已知不同时刻对应不同状态下观测序列(可见状态 X t X_t Xt​)的概率分布,求解不同时刻对应状态情况(隐含状态 Y t Y_t Yt​);(例如:给定一个天气的隐马尔可夫模型,包括第一天的天气概率分布,天气转移概率矩阵,特定天气下树叶的湿度概率分布。并且已知第一天湿度为 1,第二天湿度为 2,第三天湿度为 3。求得这三天的天气情况。)

  • 发现“最优”状态序列能够“最好地解释”观察序列
  • 每一个状态单独最优不一定使整体的状态序列最优,两个最优的状态之间的转移概率可能为 0
  • 采用Viterbi 搜索算法

(3)学习:观测序列 { X 1 , X 2 , ⋯   , , X n } {\{X_1,X_2,\cdots,,X_n\}} {X1​,X2​,⋯,,Xn​}求解HHM模型参数 A , B \boldsymbol{A},\boldsymbol{B} A,B; (例如:已知第一天湿度为 1,第二天湿度为 2,第三天湿度为 3。求得一个天气的隐马尔可夫模型,包括第一天的天气,天气转移概率矩阵,特定天气下树叶的湿度概率分布。)此过程也称之为学习。

  • 给定一个观察序列,得到一个隐马尔可夫模型
  • 如果产生观察序列 O 的状态已知(即存在大量标注的样本), 可以用最大似然估计来计算 μ \mu μ 的参数,Baum-Welch 算法(前向后向算法)描述,
  • 如果不存在大量标注的样本:期望值最大化算法(Expectation-Maximization, EM)

一个HMM的参考实例见[3]

参考:

[1]一文搞懂HMM(隐马尔可夫模型]

[2]隐马尔可夫模型(HMM)详解

[3]HMM隐马尔可夫模型详解

[4]隐马尔科夫模型HMM(一)HMM模型

继续阅读