隐马尔可夫模型
HMM 是理解'隐藏结构 + 不确定观测'问题的一页起点:它用状态转移和发射概率,把基因预测、序列分段和蛋白家族建模等任务放进统一框架。
- 先掌握状态、转移、发射三个核心概念,再去理解 Viterbi 和 decoding。
- 它不只是理论模型,而是很多序列结构解释任务的经典工作马。
1. 直觉模型:公平赌场(The Fair Bet Casino)
Section titled “1. 直觉模型:公平赌场(The Fair Bet Casino)”理解 HMM 最直观的方式是”公平赌场”模型。
想象你在一个赌场里玩掷硬币游戏。赌场有两种硬币:
- 公平硬币(Fair):正反面概率各为 0.5。
- 偏置硬币(Biased/Loaded):正面概率为 0.75,反面概率为 0.25。
游戏规则:
- 荷官可以随时在两个硬币之间切换,但你看不见荷官手里拿的是哪一个。
- 你只能看到掷出的结果序列(如
H T H H H)。 - 荷官切换硬币的频率遵循一定的概率(例如,有 10% 的概率从公平换成偏置)。
HMM 的映射:
- 隐藏状态(Hidden States):荷官当前使用的是”公平”还是”偏置”硬币。
- 观测(Observations):你看到的
H(正面) 或T(反面)。 - 转移概率(Transition):荷官切换硬币的概率。
- 发射概率(Emission):每种硬币掷出正反面的概率。
这个模型完美类比了 CG 岛(CG-islands) 的识别:DNA 序列中某些区域的 C 和 G 含量异常高,这些区域(隐藏状态)发射 C/G 的概率(发射概率)不同于背景区域。
2. 模型组成
Section titled “2. 模型组成”HMM 常用于这样的问题:
- 一个序列中的不同位置分别属于哪种功能状态?
- 给定观测序列,最可能的隐藏结构是什么?
- 某个位置更可能来自 exon、intron 还是 intergenic region?
- 某段蛋白序列是否符合某个家族 profile?
换句话说,HMM 特别适合”线性序列 + 隐藏结构 + 不确定性”的场景。
- 状态集合 `S`
- 表示系统可能处于的隐藏结构类别,例如 exon / intron / intergenic。
- 转移概率 `a_{ij}`
- 表示从状态 `i` 切换到状态 `j` 的概率。
- 发射概率 `b_j(o)`
- 表示在状态 `j` 下观察到某个符号或信号的概率。
一个 HMM 通常包括:
- 状态集合
S - 初始状态分布
\pi - 状态转移概率
a_{ij} - 发射概率
b_j(o)
其中:
表示从状态 i 转移到状态 j 的概率;
表示在状态 j 下观察到符号 o_t 的概率。
一个直观例子
Section titled “一个直观例子”假设我们想把 DNA 序列粗略分成两类区域:
C:coding regionN:non-coding region
那么:
- 隐藏状态是当前位置属于
C还是N; - 观测是当前位置实际看到的碱基
A/C/G/T; - 转移概率描述区段切换倾向;
- 发射概率描述每类区段更偏好哪些碱基组成。
这正是基因预测里最经典的建模思路之一。
HMM 中最常见的三个问题是:
1. Evaluation
Section titled “1. Evaluation”给定模型和观测序列,求这段观测出现的概率。
2. Decoding
Section titled “2. Decoding”给定模型和观测序列,求最可能的隐藏状态路径。
3. Learning
Section titled “3. Learning”给定观测数据,反过来估计模型参数。
在教学和应用中,最常被直接提到的是 decoding 问题,因为它对应”这段序列最可能属于哪些功能状态”。
与动态规划的关系
Section titled “与动态规划的关系”虽然 HMM 是概率模型,但求最可能状态路径时通常会用动态规划。
例如 Viterbi 算法定义:
它表示:在时刻 t 到达状态 j 的最优路径概率,可以由上一时刻各状态的最优结果递推得到。
这说明 HMM 是一个非常典型的”概率模型 + 动态规划”结合体。
假设我们只有两个状态:
H:高 GC 区域L:低 GC 区域
观测序列为:
G C G A直觉上:
- 前三个字符更像高 GC 状态;
- 最后一个
A可能提示状态切换,或者只是该状态中的低概率发射。
Viterbi 的任务就是在”保持当前状态”与”切换状态”之间寻找全局最优解释,而不是只看单个字符。
在生物信息学中的用途
Section titled “在生物信息学中的用途”- 基因预测:区分 exon / intron / intergenic;
- CpG island 或区域分段:区分不同组成区域;
- 蛋白家族建模:profile HMM 是重要工具;
- motif / domain 分析:从噪声中寻找有结构的模式。
复杂度与适用前提
Section titled “复杂度与适用前提”如果状态数为 K,观测长度为 T,那么经典 Viterbi 的时间复杂度约为:
当状态数较多时,计算代价会明显上升。
此外,HMM 本身也有简化假设:
- 当前状态只依赖前一个状态(Markov 假设);
- 当前观测只依赖当前状态;
- 模型参数需要能够合理估计。
真实生物过程未必严格满足这些假设,因此 HMM 是有用但不万能的近似模型。
与真实工具或流程的连接
Section titled “与真实工具或流程的连接”- 教材中的基因预测常以 HMM 为核心例子;
- profile HMM 是蛋白家族分析中的关键思想;
- 很多”序列分段”问题都能在 HMM 框架下重述;
- 在更复杂模型出现之前,HMM 往往是理解这类任务最清晰的第一站。
- Durbin, R., Eddy, S., Krogh, A., & Mitchison, G. (1998). Biological Sequence Analysis: Probabilistic Models of Proteins and Nucleic Acids. Cambridge University Press.
- Jones, N. C., & Pevzner, P. A. (2004). An Introduction to Bioinformatics Algorithms. MIT Press.
- Eddy, S. R. (1998). Profile hidden Markov models. Bioinformatics, 14(9), 755-763.