学习这个模型需要学习过概率论、数理统计、随机过程课程,这个是我们老师期中留的大作业,本人觉得比较有用,分享给大家哈,另外有一些参考资料附在下面:先出问题:
假设一赌场在某掷骰子决定胜负的赌博游戏中,暗中使用以下作弊手段:在连续多次掷骰子的过程中,通常使用普通骰子A,偶尔混入一个灌铅骰子B。普通骰子与灌铅骰子一次投掷得到点数概率如下:
| 点数 | 普通骰子A | 灌铅骰子B |
1 | 1/6 | 0 |
2 | 1/6 | 1/8 |
3 | 1/6 | 1/8 |
4 | 1/6 | 3/16 |
5 | 1/6 | 3/16 |
6 | 1/6 | 3/8 |
假设骰子的替换为一马尔科夫过程,则A与B的概率转移图如下:
现有一列观测值如下:
[1,2,4,5,5,2,6,4,6,2,1,4,6,1,4,6,1,3,6,1,3,6,6,6,1,6,6,4,6,6,1,6,3,6,6,1,6,3,6,6,1,6,3,6,1,6,5,1,5,6,1,5,1,1,5,1,4,6,1,2,3,5,6,2,3,4]
问:①灌铅骰子投出各点的概率是多少?②普通骰子投出各点的概率是多少?③赌场是何时替换骰子的?(在哪几次赌博中使用了假骰子)
建模原理:
HMM模型是隐含马尔可夫过程式一个双重随机过程:一重用于描述非平稳信号的短时平稳段的统计特征(信号的瞬态特征,可直接观测到);另一重随机过程描述了每个短时平稳段如何转变到下一个短时平稳段,即短时统计特征的动态特性(隐含在观察序列中)。基于这两重随机过程,HMM可有效解决怎样辨识具有不同参数的短时平稳信号段,怎样跟踪它们之间的转化等问题。
HMM的特征参数定义如下:
1)
:隐马尔可夫模型中的状态数。虽然在HMM中状态数是隐含的,但在实际应用中它是有确切的物理含义的。在以后的讨论中,标记模型中的各个状态为
,在
时刻所处的状态为
。
2)
:每个状态中可以观察到的符号数。标记各个观察符号为
,观察序列为
,其中
为集合
中的一种观察符号,
为观察序列长度。
3) 状态转移概率分布
,其中:

4) 观察符号的概率分布
,其中:

5) 初始状态概率分布
,其中:

基于这些特征参数,HMM产生观察序列
的过程可以作如下描述:
1根据初始状态概率分布
,选择一个初始状态
;
2置观察时间
;
3根据当前状态下观察符号的概率分布
,选择
;
4根据状态转移概率分布
,从当前状态
转移到下一个状态
;
5置
,如果
(观察时间序列为
),则回到第3步,否则结束。
综上所述,一个HMM完全可以由2个模型参数
和3个概率分布参数
来确定。为了方便起见,通常将隐马尔可夫模型定义为:

本题前两问为已知观察序列
和模型
如何计算由此模型产生此观察序列的概率
。在此,我们采用“向前-向后”算法来实现。
(一) “向前-向后”算法
从定义出发计算概率
,可得下式:

由于上式的计算量很大,我们引入向前概率和向后概率的概念,定义它们的递推公式如下:

后向概率定义为:
,即在给定模型
下,从
时刻开始到观察结束这一段的观察序列为
且在
时刻处在状态
的概率。计算公式如下:

则:

以上即为向前-向后算法的理论基础。
附HMM工具包:
参考资料:
1. http://blog.csdn.net/eaglex/article/details/6376826
2. http://en.wikipedia.org/wiki/Markov_chain
3. http://en.wikipedia.org/wiki/Hidden_Markov_model
4. Lawrence R. Rabiner, A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition. Proceedings of the IEEE, 77 (2), p. 257–286, February 1989.
5. L. R. Rabiner and B. H. Juang, “An introduction to HMMs,” IEEE ASSP Mag., vol. 3, no. 1, pp. 4-16, 1986.
6. http://jedlik.phy.bme.hu/~gerjanos/HMM/node2.html
7.http://www.cs.brown.edu/research/ai/dynamics/tutorial/Documents/HiddenMarkovModels.html
8. 隐马尔可夫模型简介,刘群
快美赛了给大家分享点新东西,内容是从我的期中论文摘出来的,有错误不要喷我。。。