李航-HMM-直接计算法
第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.400100.4000.600.5000.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.80.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⋅αi1i2⋅αi2i3⋅⋅⋅αiT−1iT
这里的π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)=πi1bi1(o1)ai1i2⋅bi2(o2)⋅⋅⋅aiT−1iTbiT(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∑πi1bi1(o1)ai1i2⋅bi2(o2)⋅⋅⋅aiT−1iTbiT(oT)
上面的东西呢,没啥用(因为计算复杂度太高),但是呢,还是要缕清楚,因为这样就知道这个"概率计算算法"是干嘛的了,也就是说:
给个模型,输入个序列(盒子状态序列),出来想要的序列(球颜色序列)概率是多少.
为了收拾这个烂摊子呢,出来了"前向算法"和"后向算法",注意,这两个算法和神经网络中的前向传输、后向传输没有任何关系.
#概率计算问题(完)
李航-HMM-直接计算法相关推荐
- 李航《统计学习方法》之HMM隐马尔可夫模型
李航<统计学习方法>之HMM隐马尔可夫模型 文章目录 前言 一.基本概念 1.语言描述: 2.符号表示 3.基本假设 4.例子 5.隐马尔可夫模型解决的三个基本问题 二.概率计算算法 1. ...
- 李航《统计学习方法》第2版 第10章 HMM实现分词(代码实现)
利用HMM模型实现分词: 四种状态: B:词语的开头 M:一个词语的中间词 E:一个词语的结果 S:非词语,单个词 学习:Baum-Welch算法 预测:维特比算法 数据集:人民日报1998年中文标注 ...
- viterbi维特比算法和隐马尔可夫模型(HMM)
阅读目录 隐马尔可夫模型(HMM) 回到目录 隐马尔可夫模型(HMM) 原文地址:http://www.cnblogs.com/jacklu/p/7753471.html 本文结合了王晓刚老师的ENG ...
- 《统计学习方法》(李航)读书笔记(转)
<统计学习方法>(李航)读书笔记(转) http://www.cnblogs.com/limitlessun/p/8611103.html#_label4 阅读目录 知识点 感知机 k近邻 ...
- 隐马尔科夫模型(HMM)笔记(公式+代码)
文章目录 1. 基本概念 1.1 HMM模型定义 1.2 盒子和球模型 1.3 观测序列生成过程 1.4 HMM模型3个基本问题 2. 概率计算问题 2.1 直接计算法 2.2 前向算法 2.2.1 ...
- 《统计学习方法》(李航)读书笔记(完结)超级火爆的总结
阅读目录 知识点 感知机 k近邻法 朴素贝叶斯 决策树 logistic回归和最大熵模型 支持向量机 提升方法 EM算法 隐马尔可夫模型(HMM) 统计学习方法总结 神经网络 K-Means Bagg ...
- 维特比算法(基于李航)
文章目录 前言 维特比算法 第一步:初始化 第二步:向下递推 第三步:得到最优路径的概率和终点 第四步:逆向得到完整的状态序列 后记 本文完全基于李航老师的<统计学习方法第2版> 前言 先 ...
- 隐马尔科夫链(HMM)
目录 阐述 1.1 观测序列O出现的概率 1.1.1 穷举法(直接计算法) 1.1.2前向算法 1.1.3 后向算法 1.2 根据观测序列预测状态序列 1.2.1 维特比算法(动态规划) 1.3 估计 ...
- HMM预测算法——Viterbi算法
**HMM预测算法--Viterbi算法** HMM是一个生成模型,表示状态序列和观测序列的联合分布,但是状态序是隐藏的,不可观测的. Viterbi算法实际上用动态规划(dynamic progra ...
最新文章
- Matlab之while循环语句
- win7 clr20r3程序终止_mscorsvw.exe是什么进程 win7系统怎么禁用mscorsvw.exe进程【禁用方法】...
- 2008matlab error 95,VS2008和MATLAB2010b混合编程有关问题 error LINK2028 恳请指教!(2)
- 谈谈iOS中粘性动画以及果冻效果的实现
- C#操作Excel(读取)
- dw字体红色阴影_DW网页制作,傻瓜级教学来了!
- 前端学习(2275)初始化react
- ICCV 2021 | 模型安全不容忽视!特定样本触发器的隐形后门攻击方法
- 微信+php++证书,php - 微信的商户证书文件怎么用
- ExtJS+DWR+Spring+Hibernate开发HRMS(3)
- 压缩JPG图片大小而且不失真
- header标签为什么不能改变背景颜色呢?
- 新手怎么选择蓝牙耳机不被忽悠?注意这两大误区一定不猜雷
- 20个非常有用的Python单行代码
- 7-46 新浪微博热门话题(字符串)
- 20190930双色球中奖号码概率的处理(VC6.0)
- 睡眠周期时长测试软件,成为时间管理达人必备的六款软件(干货)
- 关于服务端工具gs_guc的部分解读
- python薪资核算-Python解释器的环境中,用于表示上一次运算结果的特殊变量为( )...
- qt 5.0.2 vs addin 安装错误 Unable to find a Qt build!
热门文章
- w5100 网上资料整理
- My favorite books
- Echarts地图添加自定义图标
- position的四种属性
- GitHub Pages搭建属于自己的静态网站,并绑定个人域名
- 名词解释计算机网络体系结构,计算机网络技术题库(带答案).doc
- svn commit --cl app 时手动输入提交的注释,而不是在 -m 'comments here'这里输入
- bzoj 3489 A simple rmq problem——主席树套线段树
- (上)挖掘传统行业日志大数据的无限价值
- [html]history禁用浏览器的后退功能(包括其他操作后退的按钮,操作等)