第10章,隐马尔可夫模型(相关的python开源包是hmmlearn)
本章结构:

隐马尔可夫模型相关内容={概率计算方法={直接计算法(计算量过大)前向算法后向算法学习算法={监督学习方法Bsum−Welch算法预测算法={近似算法维特比算法隐马尔可夫模型相关内容=\left\{ \begin{aligned} {概率计算方法=\left\{ \begin{aligned} 直接计算法(计算量过大) \\ 前向算法 \\ 后向算法 \end{aligned} \right.} \\ {学习算法=\left\{ \begin{aligned} 监督学习方法 \\ Bsum-Welch算法\\ \end{aligned} \right.} \\ {预测算法=\left\{ \begin{aligned} 近似算法 \\ 维特比算法 \\ \end{aligned} \right.} \end{aligned} \right.隐马尔可夫模型相关内容=⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​概率计算方法=⎩⎪⎨⎪⎧​直接计算法(计算量过大)前向算法后向算法​学习算法={监督学习方法Bsum−Welch算法​预测算法={近似算法维特比算法​​

上述的三个小括号分别用来解决隐马尔科夫模型的三个问题:
(1)概率计算问题
(2)学习问题
(3)预测问题

书上的例子为:

|盒子|1 | 2 |3|4|
|–|--|–|--|
|红球数| 5 | 3 | 6 |8|
|白球数| 5 | 7 | 4 |2|
状态集合:
Q={盒子1,盒子2,盒子3,盒子4}

观测集合:
V={红,白}

初始概率分布π\piπ=(0.25,0.25,0.25,0.25)T(0.25,0.25,0.25,0.25)^T(0.25,0.25,0.25,0.25)T

状态转移概率分布:

A=[01000.400.6000.400.6000.50.5]A= \begin{bmatrix} 0 & 1 & 0&0 \\ 0.4 & 0 & 0.6&0 \\ 0&0.4&0&0.6\\ 0&0&0.5&0.5 \end{bmatrix} A=⎣⎢⎢⎡​00.400​100.40​00.600.5​000.60.5​⎦⎥⎥⎤​

观测概率:
B=[0.50.50.30.70.60.40.80.2]B= \begin{bmatrix} 0.5 & 0.5\\ 0.3 & 0.7 \\ 0.6&0.4\\ 0.8&0.2 \end{bmatrix} B=⎣⎢⎢⎡​0.50.30.60.8​0.50.70.40.2​⎦⎥⎥⎤​
观测概率矩阵第一列的意思就是每个盒子能观察到多少红色球.

#概率计算问题

10.2.1直接计算法

模型λ=(A,B,π)\lambda=(A,B,\pi)λ=(A,B,π)
"想要的"的观测序列:O=(o1,o2,⋅⋅⋅,oT)O=(o_1,o_2,···,o_T)O=(o1​,o2​,⋅⋅⋅,oT​)
根据模型判断上述观测序列出现的概率P(O∣λ)P(O|\lambda)P(O∣λ)

P(I∣λ)=πi1⋅αi1i2⋅αi2i3⋅⋅⋅αiT−1iTP(I|\lambda)=\pi_{i_1}·\alpha_{i_1i_2}·\alpha_{i_2i_3}···\alpha_{i_{T-1}i_T}P(I∣λ)=πi1​​⋅αi1​i2​​⋅αi2​i3​​⋅⋅⋅αiT−1​iT​​
这里的πi1\pi_{i_1}πi1​​指的是你在"初始概率分布π\piπ"序列中的第i1i_1i1​个状态.

####然后是书上原话(start)#####################
对于固定的状态序列I=(i1,i2,⋅⋅⋅,iT)I=(i_1,i_2,···,i_T)I=(i1​,i2​,⋅⋅⋅,iT​),观测序列O=(o1,o2,⋅⋅⋅,oT)O=(o_1,o_2,···,o_T)O=(o1​,o2​,⋅⋅⋅,oT​)的概率是
P(O∣I,λ)=bi1(o1)bi2(o2)⋅⋅⋅biT(oT)P(O|I,\lambda)=b_{i_1}(o_1)b_{i_2}(o_2)···b_{i_T}(o_T)P(O∣I,λ)=bi1​​(o1​)bi2​​(o2​)⋅⋅⋅biT​​(oT​)

这个说法很拗口,这个"固定的状态序列"是啥意思?
也就是说整个隐马尔科夫转移过程还没发生,自己YY了一个状态转移序列,想知道这种序列发生的可能性.

上面提到的"观测序列"的意思是:我想要的"这个盒子之间跳转来、跳转去的序列I"输入这个模型λ\lambdaλ以后,出来我想要的"球颜色序列O"的概率多大
这里的I:input
这里的O:output
#######然后是书上原话(end)###################

O和I同时出现的联合概率是:
P(O,I∣λ)P(O,I|\lambda)P(O,I∣λ)
=P(O∣I,λ)⋅P(I∣λ)=P(O|I,\lambda)·P(I|\lambda)=P(O∣I,λ)⋅P(I∣λ)
=πi1bi1(o1)ai1i2⋅bi2(o2)⋅⋅⋅aiT−1iTbiT(oT)=\pi_{i_1}b_{i_1}(o_1)a_{i_1i_2}·b_{i_2}(o_2)···a_{i_{T-1}i_T} b_{i_T}(o_T)=πi1​​bi1​​(o1​)ai1​i2​​⋅bi2​​(o2​)⋅⋅⋅aiT−1​iT​​biT​​(oT​)

因为目标是P(O∣λ)P(O|\lambda)P(O∣λ)
P(O∣λ)=∑IP(O∣I,λ)P(I∣λ)P(O|\lambda)=\sum_{I}P(O|I,\lambda)P(I|\lambda)P(O∣λ)=I∑​P(O∣I,λ)P(I∣λ)
=∑i1,i2,⋅⋅⋅,iTπi1bi1(o1)ai1i2⋅bi2(o2)⋅⋅⋅aiT−1iTbiT(oT)=\sum_{i_1,i_2,···,i_T}\pi_{i_1}b_{i_1}(o_1)a_{i_1i_2}·b_{i_2}(o_2)···a_{i_{T-1}i_T} b_{i_T}(o_T)=i1​,i2​,⋅⋅⋅,iT​∑​πi1​​bi1​​(o1​)ai1​i2​​⋅bi2​​(o2​)⋅⋅⋅aiT−1​iT​​biT​​(oT​)

上面的东西呢,没啥用(因为计算复杂度太高),但是呢,还是要缕清楚,因为这样就知道这个"概率计算算法"是干嘛的了,也就是说:
给个模型,输入个序列(盒子状态序列),出来想要的序列(球颜色序列)概率是多少.

为了收拾这个烂摊子呢,出来了"前向算法"和"后向算法",注意,这两个算法和神经网络中的前向传输、后向传输没有任何关系.

#概率计算问题(完)

李航-HMM-直接计算法相关推荐

  1. 李航《统计学习方法》之HMM隐马尔可夫模型

    李航<统计学习方法>之HMM隐马尔可夫模型 文章目录 前言 一.基本概念 1.语言描述: 2.符号表示 3.基本假设 4.例子 5.隐马尔可夫模型解决的三个基本问题 二.概率计算算法 1. ...

  2. 李航《统计学习方法》第2版 第10章 HMM实现分词(代码实现)

    利用HMM模型实现分词: 四种状态: B:词语的开头 M:一个词语的中间词 E:一个词语的结果 S:非词语,单个词 学习:Baum-Welch算法 预测:维特比算法 数据集:人民日报1998年中文标注 ...

  3. viterbi维特比算法和隐马尔可夫模型(HMM)

    阅读目录 隐马尔可夫模型(HMM) 回到目录 隐马尔可夫模型(HMM) 原文地址:http://www.cnblogs.com/jacklu/p/7753471.html 本文结合了王晓刚老师的ENG ...

  4. 《统计学习方法》(李航)读书笔记(转)

    <统计学习方法>(李航)读书笔记(转) http://www.cnblogs.com/limitlessun/p/8611103.html#_label4 阅读目录 知识点 感知机 k近邻 ...

  5. 隐马尔科夫模型(HMM)笔记(公式+代码)

    文章目录 1. 基本概念 1.1 HMM模型定义 1.2 盒子和球模型 1.3 观测序列生成过程 1.4 HMM模型3个基本问题 2. 概率计算问题 2.1 直接计算法 2.2 前向算法 2.2.1 ...

  6. 《统计学习方法》(李航)读书笔记(完结)超级火爆的总结

    阅读目录 知识点 感知机 k近邻法 朴素贝叶斯 决策树 logistic回归和最大熵模型 支持向量机 提升方法 EM算法 隐马尔可夫模型(HMM) 统计学习方法总结 神经网络 K-Means Bagg ...

  7. 维特比算法(基于李航)

    文章目录 前言 维特比算法 第一步:初始化 第二步:向下递推 第三步:得到最优路径的概率和终点 第四步:逆向得到完整的状态序列 后记 本文完全基于李航老师的<统计学习方法第2版> 前言 先 ...

  8. 隐马尔科夫链(HMM)

    目录 阐述 1.1 观测序列O出现的概率 1.1.1 穷举法(直接计算法) 1.1.2前向算法 1.1.3 后向算法 1.2 根据观测序列预测状态序列 1.2.1 维特比算法(动态规划) 1.3 估计 ...

  9. HMM预测算法——Viterbi算法

    **HMM预测算法--Viterbi算法** HMM是一个生成模型,表示状态序列和观测序列的联合分布,但是状态序是隐藏的,不可观测的. Viterbi算法实际上用动态规划(dynamic progra ...

最新文章

  1. Matlab之while循环语句
  2. win7 clr20r3程序终止_mscorsvw.exe是什么进程 win7系统怎么禁用mscorsvw.exe进程【禁用方法】...
  3. 2008matlab error 95,VS2008和MATLAB2010b混合编程有关问题 error LINK2028 恳请指教!(2)
  4. 谈谈iOS中粘性动画以及果冻效果的实现
  5. C#操作Excel(读取)
  6. dw字体红色阴影_DW网页制作,傻瓜级教学来了!
  7. 前端学习(2275)初始化react
  8. ICCV 2021 | 模型安全不容忽视!特定样本触发器的隐形后门攻击方法
  9. 微信+php++证书,php - 微信的商户证书文件怎么用
  10. ExtJS+DWR+Spring+Hibernate开发HRMS(3)
  11. 压缩JPG图片大小而且不失真
  12. header标签为什么不能改变背景颜色呢?
  13. 新手怎么选择蓝牙耳机不被忽悠?注意这两大误区一定不猜雷
  14. 20个非常有用的Python单行代码
  15. 7-46 新浪微博热门话题(字符串)
  16. 20190930双色球中奖号码概率的处理(VC6.0)
  17. 睡眠周期时长测试软件,成为时间管理达人必备的六款软件(干货)
  18. 关于服务端工具gs_guc的部分解读
  19. python薪资核算-Python解释器的环境中,用于表示上一次运算结果的特殊变量为(      )...
  20. qt 5.0.2 vs addin 安装错误 Unable to find a Qt build!

热门文章

  1. w5100 网上资料整理
  2. My favorite books
  3. Echarts地图添加自定义图标
  4. position的四种属性
  5. GitHub Pages搭建属于自己的静态网站,并绑定个人域名
  6. 名词解释计算机网络体系结构,计算机网络技术题库(带答案).doc
  7. svn commit --cl app 时手动输入提交的注释,而不是在 -m 'comments here'这里输入
  8. bzoj 3489 A simple rmq problem——主席树套线段树
  9. (上)挖掘传统行业日志大数据的无限价值
  10. [html]history禁用浏览器的后退功能(包括其他操作后退的按钮,操作等)