跳转到内容

EM算法

快速概览

EM算法(Expectation-Maximization)是处理含隐变量概率模型参数估计的通用框架,在motif discovery、聚类和HMM训练中有广泛应用。

  • 重点理解E步和M步的交替迭代过程
  • EM算法不保证全局最优,但保证单调改进似然
所属板块 核心方法

索引、比对、组装与概率模型构成的核心算法主轴。

阅读目标 帮助建立阅读上下文

先判断这页与你当前问题的关系,再决定是否深入展开。

建议前置 先建立相关基础对象与方法直觉

建议先建立相关基础对象与方法直觉,再进入本页。

EM算法(Expectation-Maximization,期望最大化算法)是一种用于寻找含隐变量(latent variable)概率模型参数最大似然估计的迭代算法。

它的核心思想是:

  • 当直接优化似然函数困难时,引入隐变量
  • 交替进行E步(计算期望)和M步(最大化期望)
  • 逐步改进参数估计,直到收敛

在生物信息学中,EM算法的价值体现在:

  • Motif discovery:MEME等工具使用EM算法寻找转录因子结合位点
  • 聚类:Gaussian Mixture Model的参数估计
  • HMM训练:Baum-Welch算法是EM算法在HMM上的特例
  • 缺失数据处理:处理观测数据不完整的情况

EM算法提供了一个统一的框架,处理那些”如果能知道隐变量,问题就很简单”的场景。

给定观测数据 X={x1,x2,...,xn}X = \{x_1, x_2, ..., x_n\} 和隐变量 Z={z1,z2,...,zn}Z = \{z_1, z_2, ..., z_n\},我们希望找到参数 θ\theta 使得对数似然最大化:

(θ)=logP(X;θ)=logZP(X,Z;θ)\ell(\theta) = \log P(X; \theta) = \log \sum_Z P(X, Z; \theta)

由于求和在对数内部,直接优化很困难。

如果我们知道隐变量 ZZ,那么完整数据的对数似然为:

c(θ)=logP(X,Z;θ)\ell_c(\theta) = \log P(X, Z; \theta)

这个函数通常更容易优化。EM算法的思想是:

  • 在不知道 ZZ 的情况下,用当前参数估计 ZZ 的分布
  • 基于这个分布,计算完整数据似然的期望
  • 最大化这个期望得到新参数
E步(Expectation)
基于当前参数 $ heta^{(t)}$,计算隐变量 $Z$ 的后验分布 $P(Z|X, heta^{(t)})$。
M步(Maximization)
基于E步得到的分布,计算Q函数并最大化,得到新参数 $ heta^{(t+1)}$。
Q函数
完整数据对数似然在隐变量分布下的期望:$Q( heta, heta^{(t)}) = E_{Z|X, heta^{(t)}}[log P(X, Z; heta)]$。

算法1:通用EM算法

输入:观测数据 X,初始参数 θ^(0),收敛阈值 ε
输出:估计参数 θ
1. t = 0
2. repeat:
// E步:计算Q函数
a. Q(θ, θ^(t)) = E_\{Z|X,θ^(t)\}[log P(X, Z; θ)]
// M步:最大化Q函数
b. θ^(t+1) = argmax_θ Q(θ, θ^(t))
c. t = t + 1
3. until |ℓ(θ^(t)) - ℓ(θ^(t-1))| < ε
4. return θ^(t)

时间复杂度:取决于具体模型,通常每次迭代 O(nd)O(n \cdot d),其中 nn 为数据量,dd 为参数维度

收敛性:保证单调增加似然,但不保证全局最优

给定一组序列,寻找一个共同的motif模式:

  • 每个序列中motif的位置是隐变量
  • motif的PWM(位置权重矩阵)是需要估计的参数

算法2:EM算法用于motif discovery

输入:序列集合 S = \{s_1, s_2, ..., s_n\},motif长度 L
输出:motif的PWM M
1. 初始化:随机选择每个序列中motif的起始位置
2. repeat:
// E步:计算每个序列每个位置是motif起始位置的概率
a. for each 序列 s_i:
for each 可能起始位置 j:
P(位置 j 是motif | s_i, M) ∝ P(s_i[j:j+L] | M) · P(j)
// M步:基于概率更新PWM
b. for each motif位置 k = 1 to L:
for each 字符 c ∈ \{A, C, G, T\}:
M[k][c] = (1 + Σ_i Σ_j P(位置 j 是motif | s_i, M) · I(s_i[j+k-1] = c)) / (4 + Σ_i Σ_j P(...))
3. until 收敛
4. return M

时间复杂度:每次迭代 O(nsL)O(n \cdot |s| \cdot L),其中 s|s| 为平均序列长度

给定数据点,假设它们来自多个高斯分布的混合:

  • 每个数据点来自哪个高斯分布是隐变量
  • 每个高斯分布的均值、方差和混合权重是需要估计的参数

算法3:EM算法用于GMM

输入:数据 X = \{x_1, x_2, ..., x_n\},混合分量数 K
输出:每个高斯分量的参数 \{μ_k, Σ_k, π_k\}
1. 初始化:随机初始化 μ_k, Σ_k, π_k
2. repeat:
// E步:计算每个数据点来自每个分量的概率
a. for each 数据点 x_i:
for each 分量 k:
γ_ik = P(z_i = k | x_i, θ) = π_k · N(x_i | μ_k, Σ_k) / Σ_j π_j · N(x_i | μ_j, Σ_j)
// M步:更新参数
b. N_k = Σ_i γ_ik
c. π_k = N_k / n
d. μ_k = Σ_i γ_ik · x_i / N_k
e. Σ_k = Σ_i γ_ik · (x_i - μ_k)(x_i - μ_k)^T / N_k
3. until 收敛
4. return \{μ_k, Σ_k, π_k\}

时间复杂度:每次迭代 O(nKd2)O(n \cdot K \cdot d^2),其中 dd 为数据维度

假设有两枚硬币A和B,但不知道哪枚是哪枚。我们进行了5轮实验,每轮抛掷10次:

轮次: 1 2 3 4 5
结果: H T T T H (5 heads, 5 tails)
T H T H T (5 heads, 5 tails)
H H T H T (7 heads, 3 tails)
H T H T T (4 heads, 6 tails)
T H H H T (6 heads, 4 tails)

每轮随机选择硬币A或B,但我们不知道选了哪枚。

初始化:假设 θA=0.6\theta_A = 0.6, θB=0.5\theta_B = 0.5

第1轮迭代

E步:计算每轮使用硬币A的概率

  • 第1轮:P(Adata)0.650.45=0.650.45P(A|data) \propto 0.6^5 \cdot 0.4^5 = 0.6^5 \cdot 0.4^5
  • 第2轮:P(Adata)0.550.55=0.510P(A|data) \propto 0.5^5 \cdot 0.5^5 = 0.5^{10}

M步:基于概率更新 θA\theta_AθB\theta_B

  • 单调性:每次迭代保证不降低对数似然
  • 收敛到局部最优:可能收敛到局部最优,不保证全局最优
  • 收敛速度:通常是线性收敛,在某些情况下可以是二次收敛

EM算法对初始化敏感:

  • 不同的初始参数可能收敛到不同的局部最优
  • 实践中常用多次随机初始化,选择似然最高的结果
  • Hard EM:在E步中选择最可能的隐变量值(而非分布)
  • Generalized EM:在M步只部分改进Q函数(而非完全最大化)
  • Stochastic EM:在E步中使用采样而非精确计算

EM算法在生物信息学中的核心应用:

  • Motif discovery:MEME等工具的核心算法
  • 聚类:单细胞数据聚类、基因表达模式识别
  • HMM训练:Baum-Welch算法是EM算法的特例
  • 基因预测:某些基因预测工具使用EM估计参数
算法与EM的关系应用场景
Baum-WelchEM在HMM上的特例HMM参数估计
K-meansHard EM在GMM上的特例聚类
Gibbs samplingMCMC方法,可用于近似E步复杂模型的近似推断
Variational inference确定性近似,可用于加速E步大规模模型的近似推断
  • Dempster, A. P., Laird, N. M., & Rubin, D. B. (1977). “Maximum likelihood from incomplete data via the EM algorithm”
  • Bishop, C. M. Pattern Recognition and Machine Learning, Chapter 9
  • Bailey, T. L., & Elkan, C. (1994). “Fitting a mixture model by expectation maximization to discover motifs in biopolymers”