HMM隐马尔可夫模型

观察序列与观察值

  • 时间序列:某些应用中,识别对象是一个动态的过程,无法用静态的矢量描述
    • 这些动态过程往往与时间相关,一般采用时间序列来描述
  • 观察序列:识别对象(样本)需要用一个长度为TT的观察序列来描述

VT=v1,v2,,vTV^T=v_1,v_2,\dots,v_T

  • 观察值:观察序列中的元素vtv_t对应时刻tt的观察值,t=1,,Tt=1,\dots,T
    • 观察值描述了时刻tt的特征,一般用一个特征矢量描述
    • 语音信号,一般用一个采样帧的频谱特征作为观察矢量
    • 视频信号,可以用每一帧图像的特征作为观察矢量

一阶Markov模型

状态序列

  • M个状态w1,,wMw_1,\dots,w_M
  • 时刻tt,模型处于状态w(t)w(t),并发生一次状态转移w(t)>w(t+1)w(t)->w(t+1)
  • 经过TT个状态,得到状态转移序列

WT=w(1)w(T)W^T=w(1)\dots w(T)

两个规定

  • 模型在时刻tt处于状态w(t)=wjw(t)=w_j的概率完全由t1t-1时刻的状态w(t1)=wiw(t-1)=w_i决定,与之前及以后的其他状态无关

P(w(t)WT)=P(w(t)w(1),,w(T))=P(w(t)w(t1))P(w(t)|W^T) = P(w(t)|w(1),\dots,w(T))=P(w(t)|w(t-1))

  • 由状态wiw_i转移到wjw_j的概率,与时刻tt无关。

P(w(t)=wjw(t1)=wi)=aijP(w(t)=w_j|w(t-1)=w_i) = a_{ij}

模型参数

θ=(π,A)\theta=(\pi,A)

  • 模型初始位于状态wiw_i的概率用πi\pi_i表示

π=(π1,,πM)t\pi=(\pi_1,\dots,\pi_M)^t

  • 状态转移概率矩阵:

[a11a12a1Ma21a22a2MaM1aM2aMM]\begin{bmatrix}a_{11}&a_{12}&\cdots&a_{1M}\\a_{21}&a_{22}&\cdots&a_{2M}\\\vdots&\vdots&\ddots&\vdots\\a_{M1}&a_{M2}&\cdots&a_{MM}\end{bmatrix}

一阶MarkovMarkov模型输出状态序列的概率

  • 给定参数θ=(π,A)\theta=(\pi,A),可以很容易地计算一阶MarkovMarkov模型输出特定状态转移序列的概率
  • 模型输出状态序列的概率可以由初始状态概率与各次状态
    转移概率相乘得到
  • 例如,模型输出序列𝑊5=𝑤1𝑤1𝑤3𝑤1𝑤2𝑊^5 = 𝑤_1𝑤_1𝑤_3𝑤_1𝑤_2的概率:

𝑃(𝑊5)=𝜋1𝑎11𝑎13𝑎31𝑎12𝑃(𝑊^5) = 𝜋_1𝑎_{11}𝑎_{13}𝑎_{31}𝑎_{12}

一阶MarkovMarkov模型在时刻tt的状态概率𝑃(w(t)=𝑤𝑖)𝑃(w(t)=𝑤_𝑖)

P(w(t)=wi)=j=1NP(w(t1)=wj)ajiP(w(t)=w_i)=\sum\limits^N_{j=1}{P(w(t-1)=w_j)a_{ji}}

HMM:Hidden Markov Model

  • HMM 包含一个一阶 Markov 模型,但模型的状态以及状态
    转移过程是隐含的,不可见的
  • HMM 在时刻tt由隐状态w(t)w(t) 输出观察值w(t){𝑣1,,𝑣K}w(t)∈ \{𝑣_1,\dots, 𝑣_K\}
  • 经过𝑇𝑇 个时刻之后,可以观察到 HMM 输出一个观察序列:

𝑉T=𝑣(1)𝑣(2)𝑣(𝑇)𝑉^T = 𝑣(1)𝑣(2)\dots𝑣(𝑇)

三个假设

  • 对于一个随机事件,有一个观察值序列:𝑣1,,𝑣T𝑣_1,\dots, 𝑣_T
  • 该事件隐含着一个状态序列𝑤1,,𝑤T𝑤_1,\dots,𝑤_T
  • 假设1:马尔可夫假设(状态构成一阶马尔可夫链)

𝑃𝑃(𝑤𝑖𝑤𝑖1𝑤1)=𝑃(𝑤𝑖𝑤𝑖1)𝑃𝑃(𝑤_𝑖|𝑤_{𝑖−1}\dots 𝑤_1) = 𝑃(𝑤_𝑖|𝑤_{𝑖−1})

  • 假设2:不动性假设(状态转移概率与具体时间无关)
  • 假设3:输出独立性假设(输出仅与当前状态有关)

𝑃(𝑣1,,𝑣𝑇𝑤1,,𝑤𝑇)=t=1TP(𝑣𝑡𝑤𝑡)𝑃(𝑣_1,\dots,𝑣_𝑇|𝑤_1,\dots, 𝑤_𝑇)=\prod\limits_{t=1}^TP(𝑣_𝑡|𝑤_𝑡)

模型参数θ=(π,A,B)\theta=(\pi,A,B)

  • 初始状态概率:𝜋𝜋,𝑀𝑀 维矢量

π=(π1,,πM)t\pi=(\pi_1,\dots,\pi_M)^t

  • 状态转移概率矩阵:𝐴𝐴,𝑀𝑀 ×𝑀𝑀 维矩阵
    A=(aij)MxMA=(a_{ij})_{MxM}
    aij=P(w(t)=wjw(t1)=wi)a_{ij}=P(w(t)=w_j|w(t-1)=w_i)
  • 输出概率矩阵:𝐵𝐵,𝑀𝑀 × 𝐾𝐾 维矩阵
    • M为状态数,K为观测值数
    • BB的元素𝑏𝑖𝑘𝑏_{𝑖𝑘} 表示状态𝑤𝑖𝑤_𝑖 输出观察值𝑣𝑘𝑣_𝑘 的概率,与时刻𝑡𝑡 无关
      B=(bikMxK)B=(b_{ik}{MxK})
      bik=P(v(t)=vkw(t)=wi)b_{ik}=P(v(t)=v_k|w(t)=w_i)