zoukankan      html  css  js  c++  java
  • fromzhihuHMM

    机器学习-隐马尔科夫模型

    机器学习-隐马尔科夫模型

    隐马尔科夫模型

    1 基本概念

    状态序列(state sequence):隐藏的马尔可夫随机链生成的状态序列,不可观测

    观测序列(observation sequence):每个状态生成一个观测,由此产生观测的随机序列

    隐马尔科夫模型的三要素:

    1. 状态转移概率矩阵:[公式][公式]为所有可能的状态数
    2. 观测概率矩阵:[公式][公式]为所有的观测的集合
    3. 初始状态概率向量:[公式],其中,[公式]

    隐马尔可夫模型的表示:[公式]

    隐马尔科夫模型的两个基本假设:

    1. 齐次马尔可夫假设:[公式]
      假设隐藏的马尔可夫链在任意时刻[公式]的状态[公式]
      只依赖于其前一时刻的状态[公式]
      与其他时刻的状态 [公式]
      及观测无关 [公式]
      也与时刻[公式]无关 [公式]

    2. 观测独立性假设:[公式]
      假设任意时刻[公式]的观测[公式]
      只依赖于该时刻的马尔可夫链的状态 [公式]
      与其他观测 [公式]
      及状态无关 [公式]

    隐马尔科夫模型的三个基本问题:

    1. 概率计算问题:在模型[公式]下观测序列[公式]出现的概率[公式]
      输入:模型[公式],观测序列[公式] 输出:[公式]
    2. 学习问题:已知观测序列[公式],估计模型[公式]的参数,使观测序列概率[公式]最大,用极大似然法估计
      输入:观测序列 [公式] 输出:输出[公式]
    3. 预测问题,也称为解码问题(Decoding)
      输入:模型[公式],观测序列[公式] 输出:状态序列 [公式]

    标注问题,给定观测的序列预测对应的标记序列。状态对应着标记。

    2 概率计算问题

    2.1 直接计算法

    列举所有的可能状态序列[公式],长度为[公式]

    计算:[公式]

    计算量:[公式]阶的,故不可行

    2.2 前向算法

    前向概率:给定马尔可夫模型[公式],定义到时刻[公式]部分观测序列为[公式],且状态[公式]的概率

    记作:[公式]

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

    输入:[公式]
    输出:[公式]
    1. 初值:[公式],式中观测值为[公式][公式]的含义是对应状态[公式]
    2. 递推:[公式]
      式中,[公式][公式]时刻所处的状态,[公式][公式]时刻所处的状态,从中可以看出[公式]的含义
      转移矩阵[公式]维度[公式], 观测矩阵[公式]维度[公式],具体的观测值[公式]可以表示成one-hot形式,维度[公式]
      所以[公式]的维度:[公式]
    3. 终止:[公式]

    计算量:[公式]阶的,故可行

    前向算法高效的关键:局部计算前向概率,然后利用路径结构将前向的概率“递推”到全局,得到[公式],每一次计算直接引用前一时刻的计算结果,避免重复计算

    2.3 后向算法

    后向概率:给定马尔可夫模型[公式],定义到时刻[公式]状态为[公式]的条件下,从[公式][公式]的部分观测序列为[公式]的概率

    记作:[公式]

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

    输入: [公式] 输出:[公式]
    1. 终值:[公式],在[公式]时刻, 观测序列已经确定
    2. 从后往前递推:[公式]
      [公式]
      计算[公式]:到时刻[公式]状态为[公式]的条件下,从[公式]之后的观测序列为[公式]的后向概率,需要考虑三项:
      1. [公式]:在时刻[公式]所有可能的[公式]个状态[公式]的转移概率
      2. [公式]:在此状态下的观测[公式]的观测概率
      3. [公式]:考虑状态[公式]之后的观测序列的后向概率
    3. [公式]

    2.4 概率与期望

    1. 输入模型[公式]与观测[公式],输出在时刻[公式]处于状态[公式]的概率:[公式]
    2. 输入模型[公式]与观测[公式],输出在时刻[公式]处于状态[公式]且在时刻[公式]处于状态[公式]的概率:[公式]
    3. 在观测[公式]下状态[公式]出现的期望值:[公式]
    4. 在观测[公式]下状态[公式]转移的期望值:[公式]
    5. 在观测[公式]下状态[公式]转移到状态[公式]的期望值:[公式]

    3 学习问题

    3.1 监督学习算法

    提供训练数据包括观测序列和对应的状态序列,利用极大似然估计法来估计隐马尔可夫模型的参数

    人工标注训练数据成本很高

    3.2 Baum-Welch算法

    Baum-Welch算法是EM算法在隐马尔可夫模型学习中的具体实现,由Baum和Welch提出

    马尔可夫模型实际上是一个含有隐变量的概率模型:[公式]

    Baum-Welch算法:

    输入: 观测数据[公式]
    输出: 隐马尔可夫模型参数
    1. 初始化:对[公式],选取[公式],得到模型参数[公式]
    2. 递推:对[公式]

    [公式] [公式] [公式]

    3. 终止:得到模型参数[公式]

    4 预测算法

    4.1 近似算法

    每个时刻最有可能的状态[公式]是:[公式]

    得到序列[公式],作为预测的结果

    特点:计算简单,不能保证预测的状态序列整体是最有可能的状态序列,有可能存在转移概率为0的相邻状态

    即对某些[公式]

    4.2 维特比算法

    维特比算法:使用动态规划解隐马尔科夫模型,求概率最大路径,这条路径对应一个状态序列

    输入: 模型[公式]和观测[公式]
    输出: 最优路径[公式]
    1. 初始化 [公式] [公式]
    2. 递推 [公式] [公式] [公式]
    3. 终止 [公式] [公式]
    4. 最优路径回溯 [公式] [公式]

    未完,待续。

    参考

    1. 李航-统计学习方法
    2. 李航-统计学习方法笔记:
  • 相关阅读:
    003. 爬楼梯
    ZFlie网盘框架说明
    WPF基础:Dispatcher介绍
    WPF自定义控件三:消息提示框
    GO Time 类型方法处理集合
    UserControl 加载动画
    WPF自定义控件二:Border控件与TextBlock控件轮播动画
    WPF自定义控件一:StackPanel 控件轮播
    WPF 图表控件之曲线绘制与移动
    VueApp 自动更新解决plus is not defined问题
  • 原文地址:https://www.cnblogs.com/skydaddy/p/12174628.html
Copyright © 2011-2022 走看看