首页 > 其他 > 详细

隐马尔可夫模型

时间:2019-11-24 23:34:46      阅读:106      评论:0      收藏:0      [点我收藏+]

马尔可夫过程

  • 无后效性随机过程
  • 定义:\(t_n\)时刻的状态\(x_n\)的条件分布,仅仅与前一个状态\(x_{n-1}\)有关,即\(P(x_n|x_1,\cdots,x_{n-1})=p(x_n|x_{n-1})\)
  • 时间和状态的取值都是离散的马尔可夫过程称为马尔可夫链

隐马尔可夫模型

隐马尔可夫模型\(\lambda\)可以用三元符号表示
\[\lambda=(A,b,\pi)\]
其中,\(A\)是状态转移概率矩阵,\(B\)是观测概率矩阵,\(\pi\)是初始状态概率向量

  • 包括概率计算问题、预测问题、学习问题三个基本问题:
    • 概率计算问题:给定模型\(\lambda\),计算观测序列\(O\)出现的概率,可用前向和后向算法求解
    • 预测问题:也称为解码问题,已知模型参数和观测序列\(O\),计算最可能的隐状态\(I\),可用维特比算法
    • 学习问题:给定观测序列\(O\),估计模型\(\lambda\)的参数,可使用Baum-Welch算法进行参数学习
  • 中文分词
    • 有监督:对语料进行标注得到语料所有的隐状态信息,然后使用简单计数法对模型概率分布进行极大似然估计
    • 无监督:Baum-Welch算法,同时优化隐状态序列和模型对应概率分布
  • 对联合概率\(P(x,y)\)进行建模

概率计算问题

前向算法

前向概率定义:
给定模型\(\lambda\),定义到时刻\(t\)部分观测序列为\(o_1,o_2,\cdots,o_t\)且状态为\(q_i\)的概率为前向概率,记作:
\[\alpha_t(i)=P(o_1,o_2,\cdots,o_t,i_t=q_i|\lambda)\]

观测序列概率的前向算法:

  • 输入:模型\(\lambda\),观测序列\(O\)
  • 输出:观测序列概率\(P(O|\lambda)\)
    1. 初始化前向概率,是初始时刻的状态\(i_1=q_i\)和观测\(o_1\)的联合概率
      \[\alpha_1(i)=\pi_ib_i(o_1),\qquad i=1,2,\cdots,N\]

    2. 递推:对\(t=1,2,\cdots,T-1\),
      \[\alpha_{t+1}(i)=\left[\sum \limits_{j=1}^N \alpha_t(j)a_{ji}\right]b_i(o_{t+1})\]
      其中,\(a_{ji}\)是转移概率,\(b_i\)是发射概率

    3. 终止
      \[P(O|\lambda)=\sum\limits_{i=1}^N \alpha_T(i)\]

后向算法

后向概率定义:
给定模型\(\lambda\),定义在时刻\(t\)状态为\(q_i\)的条件下,从\(t+1\)\(T\)的部分观测序列为\(o_{t+1},o_{t+2},\cdots,o_T\)的概率为后向概率,记作:
\[\beta_t(i)=P(o_{t+1},o_{t+2},\cdots,o_T|i_t=q_i,\lambda)\]

观测序列概率的后向算法:

  • 输入:模型\(\lambda\),观测序列\(O\)
  • 输出:观测序列概率\(P(O|\lambda)\)
    1. 初始化后向概率,对最终时刻的所有状态\(q_i\)规定\(\beta_T(i)=1\)
      \[\beta_T(i)=1,\qquad i=1,2,\cdots,N\]

    2. 递推:对\(t=T-1,T-2,\cdots,1\),
      \[\beta_{t}(i)=\sum \limits_{j=1}^N a_{ij}b_j(o_{t+1})\beta_{t+1}(i)\]
      其中,\(a_{ij}\)是转移概率,\(b_j\)是发射概率

    3. 终止
      \[P(O|\lambda)=\sum\limits_{i=1}^N \pi_ib_i(o_1)\beta_1(i)\]

学习问题

监督学习算法

假设已给训练数据集包含\(S\)个长度相同的观测序列和对应的状态序列\(\{(O_1,I_1),\cdots,(O_S,I_S)\}\),那么模型参数可以用极大似然估计求得

但是人工标注数据代价高,所以会利用非监督学习方法

Baum-Welch算法

此时隐马尔可夫模型可以看做一个含有隐变量的概率模型
\[P(O|\lambda)=\sum_IP(O|I,\lambda)P(I|\lambda)\]
其中,\(I\)是状态序列,不可观测。它的参数学习可以用EM算法实现。

  1. 确定完全数据的对数似然函数
    所有观测数据写成\(O=(o_1,o_2,\cdots,o_T)\),所有隐数据写成\(I=(i_1,i_2,\cdots,i_T)\),完全数据是\((O,I)=(o_1,\cdots,o_T,i_1,\cdots,i_T)\)。完全数据的对数似然函数是\(\log P(O,I|\lambda)\)

  2. EM算法的E步:求\(Q\)函数\(Q(\lambda,\overline{\lambda})=\sum_I[\log P(O,I|\lambda)|O,\overline{\lambda}]\)
    \[Q(\lambda,\overline{\lambda})=\sum_I\log P(O,I|\lambda)P(O,I|\overline{\lambda})\]
    其中\(\overline{\lambda}\)是当前参数估计值,\(\lambda\)是要最大化的参数。
    \[P(O,I|\lambda)=\pi_{i_1}b_{i_1}(o_1)a_{i_1 i_2}b_{i_2}(o_2)\cdots a_{i_{T-1}i_T}b_{i_T}(o_T)\]
    于是,\(Q\)函数可以写成:
    \[\begin{aligned} Q(\lambda,\overline{\lambda}) &=\sum_I \log \pi_{i_1}P(O,I|\overline{\lambda}) + \sum_I \left(\sum \limits_{t=1}^{T-1}\log a_{i_t i_{t+1}}\right)P(O,I|\overline{\lambda}) + \sum_I \left(\sum \limits_{t=1}^{T}\log b_{i_t}(o_t)\right)P(O,I|\overline{\lambda}) \end{aligned}\]

  3. EM算法的M步:极大化\(Q\)函数求模型参数\(A,B,\pi\)。由于要极大化的参数单独出现在三项中,所以只需对各项分别极大化,利用拉格朗日乘子法,得到\(\pi_i,a_{ij},b_j(k)\)

预测问题

近似算法

在每个时刻\(t\)选择在该时刻最有可能出现的状态\(i_t^*\),从而得到一个状态序列,将它作为预测的结果

优点是计算简单,缺点是不能保证预测状态序列整体是最有可能的序列,因为预测的状态序列可能有实际不发生的部分,可能存在转移概率为0的相邻状态。

维特比算法

用动态规划求概率最大路径(最优路径)。最优路径具有这样的特性:如果最优路径在时刻\(t\)通过节点\(i^*_t\),那么这一路径从节点\(i^*_t\)到终点\(i^*_T\)的部分路径,对于从\(i^*_t\)\(i^*_T\)的所有可能的部分路径来说,必须是最优的。根据这一原理,我们只需从时刻\(t=1\)开始,递推地计算在时刻\(t\)状态为\(i\)的各条部分路径的最大概率,直到得到时刻\(t=T\)状态为\(i\)的各条路径的最大概率。时刻\(t=T\)的最大概率即为最优路径的概率\(P^*\),最优路径的终结点\(i^*_T\)也同时得到。之后,从后向前逐步求得节点,得到最优路径。

最大熵马尔可夫模型

  • 去除了隐马尔可夫模型中观测状态相互独立的假设,考虑了整个观测序列

  • 直接对标注的后验概率\(P(y|x)\)进行建模

  • 最大熵马尔可夫模型建模如下

    \[p(x_{1\cdots n}|y_{1\cdots n})=\prod \limits_{i=1}^n p(x_i|x_{i-1}, y_{1 \cdots n})?\]
    对于\(p(x_i)?\),不仅考虑了\(p(x_{i-1})?\),还考虑了\(y_{1\cdots n}?\)

    其中\(p(x_i|x_{i-1},y_{1\cdots n})\)会在局部归一化,即枚举\(x_i\)的所有取值,计算公式为

    \[p(x_i|x_{i-1},y_{1 \cdots, n})=\frac{exp(F(x_i, x_{i-1}, y_{1\cdots n}))}{Z(x_{i-1}, y_{1 \cdots n})}\]

    其中\(Z\)为归一化因子\(Z(x_{i-1}, y_{1 \cdots n}) = \sum_{x_i}\exp(F(x_i, x_{i-1}, y_{1 \cdots n}))\)\(F\)\(x_i, x_{i-1}, y_{1,\cdots n}\)所有特征线性相加

  • 标注偏置问题:由于局部归一化,隐状态会倾向于转移到那些后续状态可能更少的状态上去,以提高整体的后验概率

  • 条件随机场使用全局归一化

    \[p(x_{1\cdots n}|y_{1\cdots n})=\frac{1}{Z(y_{1\cdots n})}\prod \limits_{i=1}^n \exp\{F(x_i|x_{i-1}, y_{1 \cdots n})\}\]

隐马尔可夫模型

原文:https://www.cnblogs.com/weilonghu/p/11924920.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!