HMM(hidden markov model)可以用于模式识别,李开复老师就是采用了HMM完成了语音识别。
一下的例子来自于《统计学习方法》
一个HMM由初始概率分布,状态转移概率分布,观测概率分布确定。并且基于两个假设:
1 假设任意时刻t的状态只依赖于前一个时刻的状态,与其他时刻的状态和观测序列无关
2 假设任意时刻的观测只依赖与该市可的马尔科夫的状态,与其他观测,状态无关。
基于此,HMM有三个基本问题:
1 概率计算问题,给定模型和观测序列,计算在模型下的观测序列出现的概率
2 预测问题,已知模型和观测序列,求最有可能的状态序列
3 学习问题,给出若干个观测序列,估计模型的参数,使得该模型下观测序列概率最大
由于第三个问题涉及到EM算法,而今天还没有看,所以这里只解决了两个,明天写第三个。
给出上面两个问题的实际例子
有三个盒子,每个盒子有红球白球
盒子 红球 白球
1 5 5
2 4 6
3 7 3
第一次从这三个盒子中随机取一个盒子的概率为0.2,0.4,0.4
并且如果上一次抽取的是盒子1那么下一次抽取盒子1的概率为0.5,抽取盒子2的概率为0.2,盒子3的概率为0.3,我们通过一个状态转移矩阵来描述
0.5 0.2 0.3
0.3 0.5 0.2
0.2 0.3 0.5 Aij表示从状态i转移到状态j的概率
通过以上描述,我们能得到该HMM的模型参数
状态转移矩阵:
0.5 0.2 0.3
0.3 0.5 0.2
0.2 0.3 0.5
观测概率分布:
0.5 0.5
0.4 0.6
0.7 0.3 Bij表示第i个状态下观测值为j的概率,这里就是抽到红球和白球的概率
初始概率:
0.2,0.4,0.4表示一开始到各个状态的概率
对于问题1:
现在我们抽取三次,结果为:红白红,求其出现的概率。
解决方法:
采用前向算法
就是我们从时刻1开始,先计算所有状态下观测为红的概率,接下来再求t2时刻会转移到某个状态的概率和,以此类推
具体的可以看《统计学习方法》,http://www.cnblogs.com/tornado