一、马尔科夫模型
1 马尔科夫的几个概念
要想理解隐马尔科夫模型,首先要理解马尔科夫模型。
下面通过一个天气变化的例子来认识马尔科夫模型中的几个重要概念。
🌰🌰🌰:
现在天气有三种状态:晴天,多云,雷雨。
那么,有以下三组问题:
1)今天晴天明天是晴天的概率是多少?今天晴天明天多云的概率是多少?今天晴天明天雷雨的概率是多少?
2)今天多云明天是晴天的概率是多少?今天多云明天多云的概率是多少?今天多云明天是雷雨的概率是多少?
3)今天雷雨明天是晴天的概率是多少?今天雷雨明天多云的概率是多少?今天雷雨明天是雷雨的概率是多少?
以上3组问题,构成了马尔科夫模型中的第一个重要概念:状态转移矩阵。
1.1 状态转移矩阵
上面的三组问题可以形象的表示成以下天气概率转移图:
写成矩阵形式:
这就是状态转移矩阵!!
1.2 初始概率
现在我们已经知道了天气的状态转移矩阵,那么当你开始求今天的天气时,是不是还要知道一个初始的天气情况?
假设初始的天气情况是这样的(这个概率可以是任意的值,只要满足P(sun)+P(cloud)+P(rain)=1):
也就是说,我们认为初始为晴天的概率为100%,多云和雷雨的概率是0.
这就是初始概率!!
1.3 一阶马尔科夫模型
又有一个新的问题:明天的天气只和今天有关吗?它会不会和昨天、前天…也有关系?
理论上今天的天气会和前面好多天有关,但当只考虑前一天的影响时,这就是一阶。
嗯,这就是一阶马尔科夫模型!!
1.4 小结一下
现在你已经知道了以下几个概念:
1)状态集合:晴天、多云、雷雨
2)状态转移概率:三种天气状态间的转换概率[状态转移矩阵]
3)初始概率:初始概率矩阵。
4)一阶马尔科夫模型:今天的天气只和前一天有关。
这就是马尔科夫模型!!
下面我们来计算一下一阶马尔科夫。
2 一阶马尔科夫计算
假设有:
条件1:初始概率矩阵
条件2:状态转移矩阵
现在来计算【今天的天气概率】和【明天的天气概率】
2.1 今天的天气概率矩阵
今天为晴天的概率= 【初始晴天概率x晴天转晴天的概率】 + 【初始多云概率x多云转晴天概率】 + 【初始雷雨概率x雷雨转晴天的概率】
= 1.0 * 0.5 + 0 * 0.25 + 0 * 0.25 = 0.5
今天为多云的概率= 1.0 * 0.375 + 0 * 0.125 + 0 * 0.375 = 0.375
今天为雷雨的概率= 1.0 * 0.125 + 0 * 0.625 + 0 * 0.375 = 0.125
今天的天气概率矩阵为:【0.5, 0.375, 0.125】
2.2 明天的天气概率矩阵
明天为晴天的概率= 【今天晴天概率x晴天转晴天的概率】 + 【今天多云概率x多云转晴天概率】 + 【今天雷雨概率x雷雨转晴天的概率】
= 0.5 * 0.5 + 0.375 * 0.25 + 0.125 * 0.25 = 0.375
明天为多云的概率= 0.5 * 0.375 +0.375 * 0.125 + 0.125 * 0.375 = 0.28125
明天为雷雨的概率= 0.5 * 0.125 + 0.375 * 0.625 + 0.125 * 0.375 = 0.34375
明天的天气概率矩阵为:【0.375, 0.28125, 0.34375】
2.3 第T天的概率矩阵
第T天为晴天的概率= 【T-1天晴天概率x晴天转晴天的概率】 + 【T-1天多云概率x多云转晴天概率】 + 【T-1天雷雨概率x雷雨转晴天的概率】
第T天为多云的概率= …
第T天为雷雨的概率= …
那么也可以得到第T天的天气概率矩阵【…】。
可以看出在马尔科夫模型中,只要知道初始概率矩阵和状态转移矩阵,我们就可以求出第N天的天气情况。
二、隐马尔科夫模型
现在把你关在一间黑屋子里,你看不见外面的天气情况,但是你又非常想知道外面的天气状况,幸运的是!黑屋子里有一些海藻。(请原谅这不和逻辑的脑洞(/ω\))。
海藻有干燥(Dry)、干枯(Dryish)、潮湿(Damp)、湿透(Soggy)四种状态,幸好你是一个植物学家(露出邪恶的微笑😈),根据你的经验,海草的四种状态与天气之间存在一定的概率关系。
好的,现在我们来理一理,黑屋子的情况下马尔科夫模型有了什么不同。
1 观察状态和隐藏状态
现在你无法直接看见天气情况,但是你可以观察海藻的湿度变化情况。
在这里有如下定义:
海藻湿度变化情况->观察状态
天气变化情况->隐藏状态
对于观察状态,也就是你能看见的、好观测的。并且已知海藻的变化与天气有一定的概率关系。
对于隐藏状态,是你无法观察到的、不好观测的。但又确实存在相互影响,即今天的天气对明天的影响,明天对后天的影响…,虽然隐藏状态未知,但我们认为它也存在一定的概率关系。如下图:
2 隐马尔科夫模型的理解
到这里,隐马尔科夫模型的定义就已经出来了,我们还是想观察天气,但是又因为一些客观原因【黑屋子】让我们观测不到,所幸的是有一些其它可以观测到的事物【海藻】,并且海藻和天气是有联系的(如下图)。
现在的目的就是:基于海藻的观察状态,还是求今天天气的概率情况,明天天气的概率,第T天天气的概率情况。
这就是隐马尔科夫模型!!!
3 隐马尔科夫的两个出发点
为了方便求解,我们有以下两点假设:
上图中,Z1,Z2,…,Zn就是天气的变化情况,也就是隐藏状态。
X1,X2,…,Xn就是海藻湿度的变化情况,也就是观察状态。
4 小结一下
关于隐马尔科夫的几个概念
1)初始概率(π)(初始天气概率)
2)隐藏状态转移矩阵 A (天气状态转移矩阵)
3)生成观测状态概率矩阵 B (海藻与天气之间的概率矩阵)
三、隐马尔科夫模型的计算
基于隐马尔科夫模型的定义,定义了如下三个问题:
这就是隐马尔科夫的三个经典问题,由此引出【前向算法】、【Baum-Welch算法】、【维特比算法】…
未完待续。。。
整理不易,点个赞再走呗!