内容提要:
* 观测序列的计算流程
* 盒子和球模型例题讲解
* 概率计算算法之直接计算法
点击蓝字 |关注我们
欢迎回来。这里是春节继续营业的《机器学习》讲义系列。上一期,我们带着大家用硬币的小例子来学习「HMM的三要素」,【十分钟 机器学习 系列课程】讲义(71):隐马尔可夫模型的三要素 学习了用「初始状态分布、状态转移矩阵和观测概率矩阵」计算全概率公式的方法,接着,我们来看如何用HMM三要素求出「观测序列」。
壹 观测序列的计算流程
1.思路梳理
简单回顾一下,开始时,我们有了「初始状态矩阵」,也就是有三个硬币的初始状态,是正面还是反面,接着根据「观测概率矩阵」,也就是各个硬币分别为正面和反面的概率大小,我们就可以生成对应的观测结果,而到了下一时刻,就需要「状态转移矩阵」来决定是下一时刻是哪个硬币,我们可以分情况去计算第二时刻的观测结果,也就是对应的观测序列的结果,以此类推...
2. 观测序列生成过程
「算法10.1」 观测序列的生成
「输入」:HMM模型 ,观测序列长度 意味着输入的三要素「矩阵」都是已知的,并且我们还得定下要观测多少个结果,比如 个。这样我们就知道要生成多少个观测值,即观测序列的长度。
「输出」:观测序列
「步骤」:
❝❞
1.按照初始状态分布 产生状态 ; 2.令 ; 3.按照状态 的观测概率分布 生成 ; 4.按照状态 的状态转移概率分布 产生状态 ; 5.令 ,如果 转步(3),否则终止。
这样,一个一个的观测值就生成出来啦。
好啦,接着,我们就继续趁热打铁,用一个「盒子和球模型」的例子练手。
贰 盒子和球模型例题讲解
假设有 个盒子,每个盒子里面都装有红色和白色两种颜色的球,盒子里的红、白球数由表列出。
| 盒子 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| 红球数 | 5 | 3 | 6 | 8 |
| 白球数 | 5 | 7 | 4 | 2 |
❝从这个表格中,我们可以看出各个盒子里对应的红白球数,那么这里的「红球还是白球」代表了观测情况,而「盒子」代表了状态情况,从表格就可求出对应的「观测概率矩阵」。
❞
那么我们依次写出对应的观测空间、状态空间和观测概率矩阵。
「观测空间」:
「状态空间」:
「观测概率矩阵」:
那么我们继续读题。
按照下面的方法抽球,产生一个球的颜色观测序列:
「开始」:从4个盒子里等概率随机选取1个盒子,从这个盒子里随机抽出1个球,记录其颜色后放回。
❝注意哦,等概率抽取1个后放回,代表了「初始状态矩阵」。
❞
「然后」:从当前盒子随机转移到下一个盒子,规则是:如果当前盒子是盒子1,那么下一盒子一定是盒子2,如果当前是盒子2或3,那么分别以概率0.4和0.6转移到左边或右边的盒子,如果当前是盒子4,那么各以0.5的概率停留在盒子4或转移到盒子3。
❝从这段话里,我们可以得到从当前盒子转移到下一个盒子的概率矩阵,也就是「状态转移矩阵」。
❞
「最后」,确定转移的盒子后,再从这个盒子里随机抽出1个球,记录其颜色,放回;如此下去重复进行5次,得到1个球的颜色观测序列:
这就是观测序列的生成过程。
换个角度,如果我们能看到这组观测序列,观测概率又是多少的呢?也就是看到红色、红色、白色、白色和红色球这些结果的概率怎么计算出来,记为「问题1:概率计算问题」。
那么,除了「概率计算」外,还有什么?
问题2:假如说,我们已经知道了观测序列,但是HMM的三要素未知,就需要学习出三要素的值,记为「问题2:学习出三要素的问题」。换而言之,这就是隐马尔科夫模型的「参数估计」问题。
最后,如果估计出了三要素,可否对未来有个预测,方便决策者进行判断?这就是「问题3:预测问题」。
接着,我们就先来看看「概率计算算法」,也就是问题1。
叁 概率计算算法之直接计算法
概率计算算法共有三种方法,分别是:「直接计算法、前向算法和后向算法」。
在之前的三硬币例子中用的就是直接计算法。
直接计算法
既然我们明确了HMM的三要素是: ,观测序列是 。
直接计算法的思路十分简单,就像是剥洋葱,一层层展开。对于3枚硬币,第一时刻有 种硬币可能,第一时刻和第二时刻合并起来就是 种,三个时刻都合并则是 种...每轮都是呈指数上升的,到了最后一轮,对应的数为 次,对应的计算量还是非常大的。
我们一起来按步骤梳理一下:
step 1 计算初始状态的概率
当我们已知初始状态、观测序列和三要素后,我们要利用「乘法公式」来计算出状态条件下的概率:
那么「左式」代表在三要素下既是观测序列又有对应状态的概率。而「右式1」代表了三要素下当前状态的概率,而「右式2」代表了在该状态和三要素下观测序列的概率。
step 2 求出当前状态的概率
接着,我们就要求出当前状态下的概率即右式1,记为:
其中, 代表了在第 个状态下的初始状态概率,然后乘以依次到各个状态的转移概率,也就是对应的 。
step 3 计算观测序列的概率
接着,我们就要分别计算在不同状态在对应的观测序列概率,记为:
这里则分别计算出在第 个状态下,观测到第 个结果的概率,然后依次相乘。
❝将步骤2和步骤3的展开式相乘后,得到最终的「联合概率」啦。
❞
其实,换种思路,我们也可以直接写出联合概率。一个时刻一个时刻地来:
通过全概率展开的方式,遍历 个时刻所有状态组合的可能性,就能得到观测序列的概率。
以上就是咱们的直接计算法,计算思路好理解,但是复杂度却高达 次,计算量大。
那么,还有没有更简便的方法?自然是有的,就在咱们下期的揭晓,感兴趣的小伙伴也可在 B 站上同步看视频学习,如果这个免费讲义对你的学习有所帮助,请帮助我们推荐给更多的朋友,回复「入群」,也可以加入我们的学习来哦!我们下期不见不散。
欢迎大家关注简博士的B站和公众号,在公众号私信“入群”,可以与小伙伴们一起讨论问题哦。
扫码关注我们
微信号|Dr_Janneil
B站|知乎 | 简博士

