返回介绍

数学基础

统计学习

深度学习

工具

Scala

一、隐马尔可夫模型HMM

发布于 2023-07-17 23:38:25 字数 4026 浏览 0 评论 0 收藏 0

  1. 隐马尔可夫模型(Hidden Markov model,HMM)是可用于序列标注问题的统计学模型,描述了由隐马尔可夫链随机生成观察序列的过程,属于生成模型。

  2. 隐马尔可夫模型:隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观察而产生观察随机序列的过程。

    • 隐藏的马尔可夫链随机生成的状态的序列称作状态序列。
    • 每个状态生成一个观测,而由此产生的观测的随机序列称作观测序列。
    • 序列的每一个位置又可以看作是一个时刻。

1.1 基本概念

  1. 设 $ MathJax-Element-48 $ 是所有可能的状态的集合, $ MathJax-Element-49 $ 是所有可能的观测的集合,其中 $ MathJax-Element-176 $ 是可能的状态数量, $ MathJax-Element-51 $ 是可能的观测数量。

    • $ MathJax-Element-52 $ 是状态的取值空间, $ MathJax-Element-53 $ 是观测的取值空间 。
    • 每个观测值 $ MathJax-Element-54 $ 可能是标量,也可能是一组标量构成的集合,因此这里用加粗的黑体表示。状态值的表示也类似。
  2. 设 $ MathJax-Element-55 $ 是长度为 $ MathJax-Element-282 $ 的状态序列, $ MathJax-Element-57 $ 是对应的观测序列。

    • $ MathJax-Element-58 $ 是一个随机变量,代表状态 $ MathJax-Element-59 $ 。
    • $ MathJax-Element-60 $ 是一个随机变量,代表观测 $ MathJax-Element-61 $ 。
  3. 设 $ MathJax-Element-62 $ 为状态转移概率矩阵

    $ \mathbf A=\begin{bmatrix} a_{1,1} & a_{1,2} & \cdots & a_{1,Q} \\ a_{2,1} & a_{2,2} & \cdots & a_{2,Q} \\ \vdots &\vdots &\vdots&\vdots \\ a_{Q,1} & a_{Q,2} & \cdots & a_{Q,Q} \end{bmatrix} $

    其中 $ MathJax-Element-63 $ ,表示在时刻 $ MathJax-Element-417 $ 处于状态 $ MathJax-Element-418 $ 的条件下,在时刻 $ MathJax-Element-373 $ 时刻转移到状态 $ MathJax-Element-270 $ 的概率。

  4. 设 $ MathJax-Element-91 $ 为观测概率矩阵

    $ \mathbf B=\begin{bmatrix} b_1(1) & b_1(2) & \cdots & b_1(V) \\ b_2(1) & b_2(2) & \cdots & b_2(V) \\ \vdots &\vdots &\vdots&\vdots \\ b_Q(1) & b_Q(2) & \cdots & b_Q(V) \end{bmatrix} $

    其中 $ MathJax-Element-69 $ ,表示在时刻 $ MathJax-Element-417 $ 处于状态 $ MathJax-Element-270 $ 的条件下生成观测 $ MathJax-Element-72 $ 的概率。

  5. 设 $ MathJax-Element-85 $ 是初始状态概率向量: $ MathJax-Element-74 $ 是时刻 $ MathJax-Element-400 $ 时处于状态 $ MathJax-Element-418 $ 的概率。

    根据定义有: $ MathJax-Element-77 $ 。

  6. 隐马尔可夫模型由初始状态概率向量 $ MathJax-Element-85 $ 、状态转移概率矩阵 $ MathJax-Element-90 $ 以及观测概率矩阵 $ MathJax-Element-91 $ 决定。因此隐马尔可夫模型 $ MathJax-Element-123 $ 可以用三元符号表示,即 : $ MathJax-Element-419 $ 。其中 $ MathJax-Element-83 $ 称为隐马尔可夫模型的三要素:

    • 状态转移概率矩阵 $ MathJax-Element-90 $ 和初始状态概率向量 $ MathJax-Element-85 $ 确定了隐藏的马尔可夫链,生成不可观测的状态序列。
    • 观测概率矩阵 $ MathJax-Element-91 $ 确定了如何从状态生成观测,与状态序列一起确定了如何产生观测序列。
  7. 从定义可知,隐马尔可夫模型做了两个基本假设:

    • 齐次性假设:即假设隐藏的马尔可夫链在任意时刻 $ MathJax-Element-417 $ 的状态只依赖于它在前一时刻的状态,与其他时刻的状态和观测无关,也与时刻 $ MathJax-Element-417 $ 无关,即:

      $ P({i}_t\mid {i}_{t-1},{o}_{t-1},\cdots,{i}_1,{o}_1)=P({i}_t\mid {i}_{t-1}),\quad t=1,2,\cdots,T $
    • 观测独立性假设,即假设任意时刻的观测值只依赖于该时刻的马尔可夫链的状态,与其他观测及状态无关,即:

      $ P({o}_t\mid {i}_T,{o}_T,\cdots,{i}_{t+1},{o}_{t+1},{i}_{t},{i}_{t-1},{o}_{t-1},\cdots,{i}_1,{o}_1)=P({o}_t\mid {i}_t),\quad t=1,2,\cdots,T $

      .

1.2 生成算法

  1. 隐马尔可夫模型可以用于标注问题:给定观测的序列,预测其对应的状态序列。 如:词性标注问题中,状态就是单词的词性,观测就是具体的单词。在这个问题中:

    • 状态序列:词性序列 。

    • 观察序列:单词序列 。

    • 生成方式:

      • 给定初始状态概率向量 $ MathJax-Element-96 $ ,随机生成第一个词性。
      • 根据前一个词性,利用状态转移概率矩阵 $ MathJax-Element-90 $ 随机生成下一个词性。
      • 一旦生成词性序列,则根据每个词性,利用观测概率矩阵 $ MathJax-Element-91 $ 生成对应位置的观察,得到观察序列。
  2. 一个长度为 $ MathJax-Element-282 $ 的观测序列的 HMM 生成算法:

    • 输入:

      • 隐马尔可夫模型 $ MathJax-Element-93 $
      • 观测序列长度 $ MathJax-Element-282 $
    • 输出:观测序列 $ MathJax-Element-389 $

    • 算法步骤:

      • 按照初始状态分布 $ MathJax-Element-96 $ 产生状态 $ MathJax-Element-97 $ 。

      • 令 $ MathJax-Element-400 $ ,开始迭代。迭代条件为: $ MathJax-Element-99 $ 。迭代步骤为:

        • 按照状态 $ MathJax-Element-104 $ 的观测概率分布 $ MathJax-Element-101 $ 生成 $ MathJax-Element-102 $ , $ MathJax-Element-103 $ 。
        • 按照状态 $ MathJax-Element-104 $ 的状态转移概率分布 $ MathJax-Element-300 $ 产生状态 $ MathJax-Element-106 $ 。
        • 令 $ MathJax-Element-107 $ 。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文