首页 > 代码库 > 理解HMM
理解HMM
hidden markov model
markov model: 把一个总随机过程看成一系列状态的不断转移, 其特性主要使用转移概率来表示。
HMM:认为模型的状态是不可观测的(hidden), 能观测的只是它表现出的一些观测值。
MM 的观测序列本身就是状态序列
HMM 的观测序列不是状态序列
设有N个篮子,每个都装了许多彩色小球,小球颜色有M种.现在按下列步骤产生出一个输出符号(颜色)序列:按某个初始概率分步,随机的选定一个篮子,从中随机地取出一个球,记录球的颜色作为第一个输出符号,并把球放回原来的篮子.然后按照某个转移概率分布(与当前篮子相联系)选择一个新的篮子(也可能仍停留在当前篮子),并从中随机取出一个球,记下颜色作为第二个输出符号.
如此重复地做下去,这样便得到一个输出序列.我们能够观测到的是这个输出序列—颜色符号序列,而状态(篮子)之间的转移(状态序列)被隐藏起来了.每个状态(篮子)输出什么符号(颜色)是由它的输出概率分布(篮子中彩球数目分布)来随机决定的.选择哪个篮子(状态)输出颜色由状态转移矩阵来决定.
隐马尔科夫模型的三个基本问题:
1, evaluation:从骰子数列中推断是否使用了作弊骰子,如果知道使用了作弊骰子, 那么在投掷骰子的过程中出现这个序列的概率有多大。
2,decoding: 如果确实使用了作弊骰子, 这些序列中哪些点是有B 投掷出来的。
3, learning: 参数训练问题,
q是某个状态序列产生某个观测值的概率
P是从一个状态转移到另一个状态的概率
使用Viterbi算法。定义一个路径最优变量, 然后采取递推的方式迭代, 进而降低计算量。
HMM 在CpG island中的应用,输入DNA片段, 判断是否为CpG island.
对于一条DNA , 两种情况, 是CpG island and not CpG island.模型建立:
识别CpG区域:
识别CpG区域相当于寻找连续的C+和G+组合的区域,相
当于把生成原始序列隐状态鉴别出来,隐状态中C+和G+
连续较高的区域为CpG区域,这对应到隐马尔可夫模型的
第二个问题,译码问题。
应用HMM3类基本问题中解码问题(decoding ):
给定一个隐马尔柯夫模型M 和一个字符序列X, 在M中为X
寻找一条最优路径P*,要求使得P(X|P*)最大(Viterbi算
法)
如果找到最优路径P*,则这条路径穿过的“+” 状态将对
应于CpG岛。
更细节的问题查看保存在云盘上的PPt
理解HMM