zoukankan      html  css  js  c++  java
  • 统计学习方法十:隐马尔科夫模型二

    上一篇博客介绍了隐马尔科夫模型的基本概念和概率计算问题。 这篇博客主要介绍马尔可夫模型的学习问题和预测问题。

    一、学习算法

    已知观测序列O(o1,o2,...oT),估计模型r的参数,使的观测序列O出现的概率P(O|r)最大
    
    学习算法分为两种:
    (1)监督学习算法:训练数据包括观测序列(输入)和对应的状态序列(输出)
    (2)非监督学习算法:训练数据值包括观测序列
    
    1、监督学习方法
    
        用极大似然估计来估计隐马尔科夫模型的参数:状态转移矩阵、观测概率矩阵、初始状态概率向量。
        简单来说,就是用频率来估计概率。
    
        训练数据集:S个观测序列、状态序列对
                    其中状态集合有N个元素,观测集合有M个元素
    
    (1)状态转移概率:
        统计状态i转移到状态j的频数
        统计状态i转换到状态1~N的频数
        两者相比就是状态i转移到状态j的频率 —— 概率的估计
    
    (2)观测概率
        统计状态为i、观测为k的频数
        统计状态为i、观测为1~M的频数
        两者相比就是状态为i、观测为k的频率 —— 概率的估计
    
    (3)初始状态概率
        统计初始状态为i的频数
        统计一共有多少个初始状态(S个)
        两者相比就是初始状态为i的频率 —— 概率的估计
    

    2、非监督学习方法—— Baum-Welch算法
    
        训练数据集:S个长度为T的观测序列
    
    (1)参数学习 —— EM算法
        Q函数 —> 求极大值(分别用拉格朗日函数表示πi、aij、bj(k),求偏导=0,求解三个值)
    (2)用t时刻处于状态qi的概率和t时刻处于qi且t+1时刻处于qj的概率,替换上面结果中的概率
    

    二、预测算法

    给定模型r=(A,B,π)和观测序列O(o1,o2,...,oT),求最有可能的对应的状态序列
    
    主要包含两者算法:
    (1)近似算法:在每个时刻t选择在该时刻最优可能出现的状态it,从而得到一个状态序列I(i1,i2,..iT),将它作为预测的结果
    (2)维特比算法:用动态规划解隐马尔科夫模型预测问题,即用动态规划求概率最大路径(最优路径),这时一条路径对应着一个状态序列。
    

    先从概念上理解一下吧,容我缓缓再加上数学推导..... ..................................................

  • 相关阅读:
    int **指针问题
    用 _tcscmp 替代 strcmp 或 wcscmp
    C++经典面试算法题
    目标世界上最小的Linux系统—ttylinux体验
    im-switch -s ibus错误:Error: no configuration file "ibus" exists.
    Ruby环境搭建
    emulator: ERROR: x86 emulation currently requires hardware acceleration!Please ensure Intel HAXM is properly installed and usable.CPU acceleration status: HAX kernel module is not installed!
    POJ 1007 DNA Sorting
    POJ 1002 487-3279
    Ubuntu Android adb调试无法识别设备 -- List of devices attached ???????????? no permissions
  • 原文地址:https://www.cnblogs.com/naonaoling/p/5702835.html
Copyright © 2011-2022 走看看