期望最大化算法,Expectation-Maximization Algorithm

EM算法(期望最大化算法,Expectation-Maximization Algorithm) 是统计学和机器学习中一种用于在数据包含"隐变量"(Hidden Variables)或"缺失值"的情况下,进行最大似然估计(Maximum Likelihood Estimation, MLE)或最大后验估计(MAP)的迭代优化算法。

文章目录

  • 基础
      • [1. 为什么需要 EM 算法?](#1. 为什么需要 EM 算法?)
      • [2. 核心概念解析](#2. 核心概念解析)
        • [A. 隐变量 (Latent/Hidden Variables)](#A. 隐变量 (Latent/Hidden Variables))
        • [B. 完全数据 (Complete Data) vs. 不完全数据 (Incomplete Data)](#B. 完全数据 (Complete Data) vs. 不完全数据 (Incomplete Data))
        • [C. 最大似然估计 (MLE)](#C. 最大似然估计 (MLE))
      • [3. EM 算法的工作原理与经典类比](#3. EM 算法的工作原理与经典类比)
  • [第一部分:计算隐变量 Z Z Z 关于观测数据 X X X 的条件期望](#第一部分:计算隐变量 Z Z Z 关于观测数据 X X X 的条件期望)
      • [1. 场景设定](#1. 场景设定)
      • [2. 计算步骤:以同学 A (身高 160cm) 为例](#2. 计算步骤:以同学 A (身高 160cm) 为例)
      • [3. 对其他同学进行同样的计算](#3. 对其他同学进行同样的计算)
      • [4. 这一步在 EM 算法中意味着什么?](#4. 这一步在 EM 算法中意味着什么?)
  • [第二部分:构建 Q 函数](#第二部分:构建 Q 函数)
      • [1. Q 函数的直观定义](#1. Q 函数的直观定义)
      • [2. 数学构建过程](#2. 数学构建过程)
        • [Q 函数的公式:](#Q 函数的公式:)
        • [具体构建 Q 函数(以高斯混合模型为例):](#具体构建 Q 函数(以高斯混合模型为例):)
      • [3. 这个 Q 函数告诉我们什么?](#3. 这个 Q 函数告诉我们什么?)
      • [4. 总结:从 Q 函数到 M 步](#4. 总结:从 Q 函数到 M 步)
  • [3. 完整流程与逻辑关系](#3. 完整流程与逻辑关系)
  • [4. 重要性及意义](#4. 重要性及意义)
  • [5. 常见疑问解答 (FAQ)](#5. 常见疑问解答 (FAQ))

基础

1. 为什么需要 EM 算法?

在标准的统计建模中,我们通常拥有完整的观测数据。例如,我们测量了100个人的身高和体重,想找出它们之间的线性关系。这种情况下,我们可以直接通过最小二乘法等解析解直接求出参数。

然而,现实世界的数据往往是不完整的,或者包含我们无法直接观测到的隐变量

  • 例子 :假设我们要根据身高分布来区分人群是"男性"还是"女性"。如果我们知道每个人的性别,我们可以分别计算男性和女性的平均身高。但如果我们不知道每个人的性别(即性别是隐变量),只有一堆混合的身高数据,我们该如何估算男性和女性的平均身高、方差,以及他们各自在总人群中的比例呢?

这种"鸡生蛋,蛋生鸡"的问题(参数依赖隐变量,隐变量依赖参数)就是 EM 算法解决的典型场景。


2. 核心概念解析

要理解 EM 算法,必须理解以下三个关键术语:

A. 隐变量 (Latent/Hidden Variables)

指那些我们无法直接观测到,但对观测数据有重要影响,且在模型中存在变量。

  • 在上文例子中,"性别"就是隐变量。
  • 在聚类分析(如 K-Means)中,"样本属于哪个簇"可以被视为隐变量。
B. 完全数据 (Complete Data) vs. 不完全数据 (Incomplete Data)
  • 不完全数据:我们实际观测到的数据(如:只有一堆身高数字,没有性别标签)。
  • 完全数据:观测数据加上隐变量(如:身高数字 + 对应的性别标签)。
  • EM 算法的核心思想就是利用"不完全数据"去迭代逼近"完全数据"下的最大似然估计。
C. 最大似然估计 (MLE)

这是一种参数估计方法。简单来说,就是寻找一组模型参数(如均值、方差),使得这组参数产生当前观测数据的可能性(概率)最大化。


3. EM 算法的工作原理与经典类比

EM 算法的名字来源于它两个交替进行的步骤:E步 (Expectation,期望步)和 M步(Maximization,最大化步)。

经典类比:"盲人摸象"与"导游带路"

想象你是一群盲人,面前有两堆混合在一起的糖果,一堆是红色的(代表男性群体),一堆是蓝色的(代表女性群体)。你不知道每颗糖果原本属于哪一堆,你只能尝味道(观测数据)。你的目标是找出红色糖果堆和蓝色糖果堆各自的"平均味道"特征。

  1. E步(期望步 - 猜测归属)

    • 你首先任意猜测一个"红色糖果的特征"和一个"蓝色糖果的特征"。
    • 然后,你根据当前的猜测,计算每一颗被尝过的糖果属于红色堆的概率属于蓝色堆的概率
    • 这步是在利用当前的参数模型,去推断隐变量(糖果归属)的后验分布。
  2. M步(最大化步 - 更新模型)

    • 现在你手里有了每颗糖果属于红色或蓝色的概率(软标签)。
    • 你利用这些概率权重,重新计算"红色糖果堆"的平均特征和"蓝色糖果堆"的平均特征。
    • 这步是在利用上一步推断出的隐变量,来更新模型参数,使得似然函数最大化。
  3. 迭代

    • 拿着更新后的新特征(新的猜测),回到 E 步,重新计算每颗糖果的归属概率。
    • 再回到 M 步,再次更新特征。
    • 重复这个过程,直到参数不再发生显著变化(收敛)。
正式流程拆解:
  • E 步 (Expectation Step):

    • 给定当前的参数估计值 θ ( t ) \theta^{(t)} θ(t)。
    • 计算隐变量 Z Z Z 关于观测数据 X X X 的条件期望(即计算隐变量的后验概率分布 P ( Z ∣ X , θ ( t ) ) P(Z|X, \theta^{(t)}) P(Z∣X,θ(t)))。
    • 构建Q函数 (Q-function): Q ( θ ∣ θ ( t ) ) = E Z ∣ X , θ ( t ) log ⁡ P ( X , Z ∣ θ ) Q(\theta | \theta^{(t)}) = E_{Z|X,\theta^{(t)}} \\log P(X, Z \| \\theta) Q(θ∣θ(t))=EZ∣X,θ(t)logP(X,Z∣θ)
    • 通俗理解:利用旧参数,评估数据背后的"真实"结构大概长什么样。
  • M 步 (Maximization Step):

    • 寻找新的参数 θ \theta θ,使得 Q 函数达到最大值。
    • θ ( t + 1 ) = arg ⁡ max ⁡ θ Q ( θ ∣ θ ( t ) ) \theta^{(t+1)} = \arg\max_\theta Q(\theta | \theta^{(t)}) θ(t+1)=argmaxθQ(θ∣θ(t))。
    • 通俗理解:根据刚才评估出的结构,调整模型参数,使其最符合数据。

第一部分:计算隐变量 Z Z Z 关于观测数据 X X X 的条件期望

原文 :计算隐变量 Z 关于观测数据 X 的条件期望(即计算隐变量的后验概率分布 P ( Z ∣ X , θ ( t ) ) P(Z|X,\theta^{(t)}) P(Z∣X,θ(t)))。

  • 隐含变量 Z Z Z
    • 这是我们在数据中看不到,但认为存在的"隐藏原因"。
    • 在上述例子中, Z Z Z 就是每个同学的性别(男/女)。
  • 观测数据 X X X
    • 这是我们要分析的实际数据。
    • 在上述例子中, X X X 是具体的身高数值。
  • 参数 θ ( t ) \theta^{(t)} θ(t)
    • θ \theta θ 代表模型的参数(例如男生的平均身高 μ 1 \mu_1 μ1 和女生的平均身高 μ 2 \mu_2 μ2)。
    • 上标 ( t ) (t) (t) 表示这是第 t t t 次迭代时的参数估计值。
  • 后验概率分布 P ( Z ∣ X , θ ( t ) ) P(Z|X,\theta^{(t)}) P(Z∣X,θ(t))
    • 这是贝叶斯统计中的核心概念。它的意思是:"在已知观测数据 X X X 和当前参数估计 θ ( t ) \theta^{(t)} θ(t) 的情况下,隐变量 Z Z Z 取某个特定值的概率是多少?"
    • 通俗解释 :既然我们不知道小明到底是男生还是女生,但我们知道他的身高是 180cm,且根据上一轮估算,男生平均很高,女生平均较矮。那么, P ( Z = 男 ∣ X = 180cm ) P(Z=\text{男}|X=\text{180cm}) P(Z=男∣X=180cm) 的概率就很大,而 P ( Z = 女 ∣ X = 180cm ) P(Z=\text{女}|X=\text{180cm}) P(Z=女∣X=180cm) 的概率就很小。
  • 条件期望(Expectation)
    • 这里提到的"计算条件期望",通常指的是利用这个后验概率分布,来计算后续公式中需要的平均值。简单来说,就是用概率加权的方式来"填补"缺失的隐变量信息。

为了让你彻底理解**"计算隐变量 Z Z Z 的后验概率分布"**这一步(即 EM 算法的 E 步),我们需要通过一个具体的计算案例来演示。

1. 场景设定

假设全班有 3名同学 ,我们只观测到了他们的身高数据 X X X,但不知道性别 Z Z Z。

  • 观测数据 X X X

    • 同学 A 身高:160 cm
    • 同学 B 身高:180 cm
    • 同学 C 身高:170 cm
    • 即 X = { 160 , 180 , 170 } X = \{160, 180, 170\} X={160,180,170}
  • 隐变量 Z Z Z

    • 对于每位同学, Z Z Z 只有两个取值: M a l e Male Male (男) 或 F e m a l e Female Female (女)。
    • 我们的目标是算出: P ( Z = M a l e ∣ X = 160 ) P(Z=Male | X=160) P(Z=Male∣X=160), P ( Z = F e m a l e ∣ X = 160 ) P(Z=Female | X=160) P(Z=Female∣X=160) 等等。
  • 当前参数 θ ( t ) \theta^{(t)} θ(t) (初始猜测)

    假设这是第 1 次迭代( t = 1 t=1 t=1),我们完全不知道男女身高的分布,于是随机猜测两组高斯分布参数:

    • 男生分布 ( M M M) :均值 μ M = 175 \mu_M = 175 μM=175, 方差 σ M 2 = 25 \sigma^2_M = 25 σM2=25 (标准差 σ M = 5 \sigma_M=5 σM=5)
    • 女生分布 ( F F F) :均值 μ F = 160 \mu_F = 160 μF=160, 方差 σ F 2 = 25 \sigma^2_F = 25 σF2=25 (标准差 σ F = 5 \sigma_F=5 σF=5)
    • 先验概率 :假设男女比例各半, P ( M ) = 0.5 , P ( F ) = 0.5 P(M)=0.5, P(F)=0.5 P(M)=0.5,P(F)=0.5。

2. 计算步骤:以同学 A (身高 160cm) 为例

我们要计算的是后验概率:

  1. P ( Z = Male ∣ X = 160 ) P(Z=\text{Male} | X=160) P(Z=Male∣X=160)
  2. P ( Z = Female ∣ X = 160 ) P(Z=\text{Female} | X=160) P(Z=Female∣X=160)

根据贝叶斯定理

P ( Z ∣ X ) = P ( X ∣ Z ) ⋅ P ( Z ) P ( X ) P(Z|X) = \frac{P(X|Z) \cdot P(Z)}{P(X)} P(Z∣X)=P(X)P(X∣Z)⋅P(Z)

其中:

  • P ( X ∣ Z ) P(X|Z) P(X∣Z) 是似然度:给定性别,出现该身高的概率(由高斯概率密度函数计算)。
  • P ( Z ) P(Z) P(Z) 是先验概率:男/女出现的概率。
  • P ( X ) P(X) P(X) 是全概率 (归一化常数): P ( X ) = P ( X ∣ M a l e ) P ( M a l e ) + P ( X ∣ F e m a l e ) P ( F e m a l e ) P(X) = P(X|Male)P(Male) + P(X|Female)P(Female) P(X)=P(X∣Male)P(Male)+P(X∣Female)P(Female)。
第一步:计算似然度 P ( X ∣ θ , Z ) P(X|\theta, Z) P(X∣θ,Z)

使用高斯分布公式:

P ( x ∣ μ , σ 2 ) = 1 2 π σ 2 e − ( x − μ ) 2 2 σ 2 P(x|\mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{(x-\mu)^2}{2\sigma^2}} P(x∣μ,σ2)=2πσ2 1e−2σ2(x−μ)2

对于同学 A ( x = 160 x=160 x=160):

  1. 假设他是男生 ( μ M = 175 , σ M = 5 \mu_M=175, \sigma_M=5 μM=175,σM=5):

    P ( X = 160 ∣ Male ) = 1 2 π ⋅ 25 e − ( 160 − 175 ) 2 2 ⋅ 25 P(X=160 | \text{Male}) = \frac{1}{\sqrt{2\pi \cdot 25}} e^{-\frac{(160-175)^2}{2 \cdot 25}} P(X=160∣Male)=2π⋅25 1e−2⋅25(160−175)2

    = 1 12.53 e − 225 50 = 1 12.53 e − 4.5 ≈ 0.0798 ⋅ 0.0111 ≈ 0.00088 = \frac{1}{12.53} e^{-\frac{225}{50}} = \frac{1}{12.53} e^{-4.5} \approx 0.0798 \cdot 0.0111 \approx \mathbf{0.00088} =12.531e−50225=12.531e−4.5≈0.0798⋅0.0111≈0.00088

    (解释:160cm 离男生平均身高 175 很远,所以概率很低)

  2. 假设她是女生 ( μ F = 160 , σ F = 5 \mu_F=160, \sigma_F=5 μF=160,σF=5):

    P ( X = 160 ∣ Female ) = 1 2 π ⋅ 25 e − ( 160 − 160 ) 2 2 ⋅ 25 P(X=160 | \text{Female}) = \frac{1}{\sqrt{2\pi \cdot 25}} e^{-\frac{(160-160)^2}{2 \cdot 25}} P(X=160∣Female)=2π⋅25 1e−2⋅25(160−160)2

    = 1 12.53 e 0 = 1 12.53 ⋅ 1 ≈ 0.0798 = \frac{1}{12.53} e^{0} = \frac{1}{12.53} \cdot 1 \approx \mathbf{0.0798} =12.531e0=12.531⋅1≈0.0798

    (解释:160cm 正好是女生平均身高,所以概率最高)

第二步:计算分子 (联合概率)
  • P ( X = 160 , Male ) = P ( X = 160 ∣ Male ) ⋅ P ( Male ) = 0.00088 ⋅ 0.5 = 0.00044 P(X=160, \text{Male}) = P(X=160|\text{Male}) \cdot P(\text{Male}) = 0.00088 \cdot 0.5 = \mathbf{0.00044} P(X=160,Male)=P(X=160∣Male)⋅P(Male)=0.00088⋅0.5=0.00044
  • P ( X = 160 , Female ) = P ( X = 160 ∣ Female ) ⋅ P ( Female ) = 0.0798 ⋅ 0.5 = 0.0399 P(X=160, \text{Female}) = P(X=160|\text{Female}) \cdot P(\text{Female}) = 0.0798 \cdot 0.5 = \mathbf{0.0399} P(X=160,Female)=P(X=160∣Female)⋅P(Female)=0.0798⋅0.5=0.0399
第三步:计算分母 (全概率 P ( X ) P(X) P(X))

P ( X = 160 ) = 0.00044 + 0.0399 = 0.04034 P(X=160) = 0.00044 + 0.0399 = \mathbf{0.04034} P(X=160)=0.00044+0.0399=0.04034

第四步:计算后验概率 (归一化)
  • 同学 A 是男生的概率

    P ( Male ∣ 160 ) = 0.00044 0.04034 ≈ 0.01 ( 1 % ) P(\text{Male}|160) = \frac{0.00044}{0.04034} \approx \mathbf{0.01} \quad (1\%) P(Male∣160)=0.040340.00044≈0.01(1%)

  • 同学 A 是女生的概率

    P ( Female ∣ 160 ) = 0.0399 0.04034 ≈ 0.99 ( 99 % ) P(\text{Female}|160) = \frac{0.0399}{0.04034} \approx \mathbf{0.99} \quad (99\%) P(Female∣160)=0.040340.0399≈0.99(99%)


3. 对其他同学进行同样的计算

对于同学 B ( x = 180 x=180 x=180):

  • P ( 180 ∣ Male ) ∝ e − ( 180 − 175 ) 2 50 = e − 0.5 ≈ 0.606 P(180|\text{Male}) \propto e^{-\frac{(180-175)^2}{50}} = e^{-0.5} \approx 0.606 P(180∣Male)∝e−50(180−175)2=e−0.5≈0.606 (接近男生均值)
  • P ( 180 ∣ Female ) ∝ e − ( 180 − 160 ) 2 50 = e − 8 ≈ 0.0003 P(180|\text{Female}) \propto e^{-\frac{(180-160)^2}{50}} = e^{-8} \approx 0.0003 P(180∣Female)∝e−50(180−160)2=e−8≈0.0003 (远离女生均值)
  • 结果 : P ( Male ∣ 180 ) ≈ 100 % P(\text{Male}|180) \approx 100\% P(Male∣180)≈100%, P ( Female ∣ 180 ) ≈ 0 % P(\text{Female}|180) \approx 0\% P(Female∣180)≈0%
  • 结论:虽然不知道 B 的性别,但根据身高和当前模型,B 几乎肯定是男生。

对于同学 C ( x = 170 x=170 x=170):

  • P ( 170 ∣ Male ) ∝ e − ( 170 − 175 ) 2 50 = e − 0.5 ≈ 0.606 P(170|\text{Male}) \propto e^{-\frac{(170-175)^2}{50}} = e^{-0.5} \approx 0.606 P(170∣Male)∝e−50(170−175)2=e−0.5≈0.606
  • P ( 170 ∣ Female ) ∝ e − ( 170 − 160 ) 2 50 = e − 2 ≈ 0.135 P(170|\text{Female}) \propto e^{-\frac{(170-160)^2}{50}} = e^{-2} \approx 0.135 P(170∣Female)∝e−50(170−160)2=e−2≈0.135
  • 计算归一化后,可能会发现 P ( Male ∣ 170 ) ≈ 81 % P(\text{Male}|170) \approx 81\% P(Male∣170)≈81%, P ( Female ∣ 170 ) ≈ 19 % P(\text{Female}|170) \approx 19\% P(Female∣170)≈19%。
  • 结论:C 更有可能是男生,但不是绝对。

4. 这一步在 EM 算法中意味着什么?

这就是 E 步 (Expectation Step) 的核心工作:

  1. 输入 :当前的参数猜测 θ ( t ) \theta^{(t)} θ(t)(男/女的均值、方差)和观测数据 X X X。
  2. 过程 :利用贝叶斯公式,为每个数据点计算它属于每个类别(隐变量 Z Z Z)的概率权重
    • 同学 A: 0.01, 0.99 (极大概率是女)
    • 同学 B: 0.99, 0.01 (极大概率是男)
    • 同学 C: 0.81, 0.19 (大概率是男)
  3. 输出:这些概率权重构成了**"软标签"** (Soft Labels)。它们不是非黑即白的"男/女",而是概率分布。

接下来会发生什么?(M 步)

EM 算法会将这些概率作为权重,重新计算男生和女生的平均身高。

  • 新的男生均值 μ M \mu_M μM 会更多地受到同学 B 和 C(高权重)的影响,同学 A(低权重)影响极小。
  • 新的女生均值 μ F \mu_F μF 会主要受同学 A(高权重)影响。

然后,算法进入下一次迭代 (t+1),用更新后的 μ M , μ F \mu_M, \mu_F μM,μF 重新计算后验概率......直到收敛。

"计算隐变量 Z 的后验概率分布" 就是在现有模型参数下,回答:"基于目前看到的数据,每个数据点属于各个隐藏类别的可能性有多大?" 这是 EM 算法迭代优化参数的基石。

第二部分:构建 Q 函数

原文 :构建 Q 函数(Q-function): Q ( θ ∣ θ ( t ) ) = E Z ∣ X , θ ( t ) log ⁡ P ( X , Z ∣ θ ) Q(\theta|\theta^{(t)}) = E_{Z|X,\theta^{(t)}}\\log P(X,Z\|\\theta) Q(θ∣θ(t))=EZ∣X,θ(t)logP(X,Z∣θ)

  • 什么是 Q 函数?
    • Q 函数是 EM 算法中的桥梁。由于直接最大化数据的对数似然函数 log ⁡ P ( X ∣ θ ) \log P(X|\theta) logP(X∣θ) 很困难(因为涉及对隐变量 Z Z Z 求和或积分,计算复杂),EM 算法转而最大化 Q 函数。
    • 最大化 Q 函数等价于在当前的隐变量分布下,最大化完整数据(观测数据+隐数据)的对数似然函数的期望。
  • 公式解读
    • P ( X , Z ∣ θ ) P(X,Z|\theta) P(X,Z∣θ):这是联合概率 。表示在参数 θ \theta θ 下,同时观察到数据 X X X 且隐变量为 Z Z Z 的概率。如果有隐变量,这个联合概率通常比单独看观测数据的概率更容易处理(例如,如果 Z Z Z 已知, X X X 往往服从简单的正态分布)。
    • log ⁡ \log log:取对数,将乘法变为加法,防止数值下溢,并简化求导。
    • E Z ∣ X , θ ( t ) E_{Z|X,\theta^{(t)}} EZ∣X,θ(t):期望算子 。意思是:我们对隐变量 Z Z Z 的所有可能取值求平均。权重由第一部分计算出的后验概率 P ( Z ∣ X , θ ( t ) ) P(Z|X,\theta^{(t)}) P(Z∣X,θ(t)) 给出。
    • 通俗解释 :Q 函数告诉我们:"基于我们目前对隐变量 Z Z Z 的最佳猜测(由 θ ( t ) \theta^{(t)} θ(t) 决定),如果我们要用新的参数 θ \theta θ 来解释数据,这个'期望得分'是多少?"

承接上一个例子,现在我们已经完成了 E 步(Expectation Step) ,得到了每个同学属于男生或女生的后验概率(即"软标签"或权重)。

接下来的步骤是 M 步(Maximization Step) 的核心:构建 Q 函数

1. Q 函数的直观定义

Q 函数是 EM 算法中的"桥梁"。它的本质是:在当前已知的隐变量概率分布下,估算"完整数据"(身高+性别)的对数似然函数的期望值。

通俗地说,Q 函数回答了这个问题:

"如果我认为同学 A 有 99% 的概率是女生,同学 B 有 99% 的概率是男生,那么基于这些'猜测',哪一组男生/女生的身高参数(均值、方差)能让这些数据的出现概率最大化?"

2. 数学构建过程

我们依然使用之前的设定:

  • 观测数据 X X X : { 160 , 180 , 170 } \{160, 180, 170\} {160,180,170}
  • 隐变量 Z Z Z :性别 ( M a l e , F e m a l e Male, Female Male,Female)
  • 当前参数 θ ( t ) \theta^{(t)} θ(t):上一轮迭代得到的参数。
  • E 步结果 :每个数据点对应 Z Z Z 的后验概率 w i , k = P ( Z = k ∣ X i , θ ( t ) ) w_{i,k} = P(Z=k | X_i, \theta^{(t)}) wi,k=P(Z=k∣Xi,θ(t))。
    • 例如: w A , M a l e ≈ 0.01 w_{A, Male} \approx 0.01 wA,Male≈0.01, w A , F e m a l e ≈ 0.99 w_{A, Female} \approx 0.99 wA,Female≈0.99
    • w B , M a l e ≈ 0.99 w_{B, Male} \approx 0.99 wB,Male≈0.99, w B , F e m a l e ≈ 0.01 w_{B, Female} \approx 0.01 wB,Female≈0.01
    • w C , M a l e ≈ 0.81 w_{C, Male} \approx 0.81 wC,Male≈0.81, w C , F e m a l e ≈ 0.19 w_{C, Female} \approx 0.19 wC,Female≈0.19
Q 函数的公式:

Q ( θ ∣ θ ( t ) ) = E Z ∣ X , θ ( t ) log ⁡ P ( X , Z ∣ θ ) Q(\theta | \theta^{(t)}) = E_{Z|X,\theta^{(t)}} \\log P(X, Z \| \\theta) Q(θ∣θ(t))=EZ∣X,θ(t)logP(X,Z∣θ)

展开为求和形式(针对有限样本):

Q ( θ ∣ θ ( t ) ) = ∑ i = 1 N ∑ k ∈ { M a l e , F e m a l e } P ( Z i = k ∣ X i , θ ( t ) ) ⋅ log ⁡ P ( X i , Z i = k ∣ θ ) Q(\theta | \theta^{(t)}) = \sum_{i=1}^{N} \sum_{k \in \{Male, Female\}} P(Z_i=k | X_i, \theta^{(t)}) \cdot \log P(X_i, Z_i=k | \theta) Q(θ∣θ(t))=i=1∑Nk∈{Male,Female}∑P(Zi=k∣Xi,θ(t))⋅logP(Xi,Zi=k∣θ)

这里, P ( X i , Z i = k ∣ θ ) = P ( X i ∣ Z i = k , θ ) ⋅ P ( Z i = k ∣ θ ) P(X_i, Z_i=k | \theta) = P(X_i | Z_i=k, \theta) \cdot P(Z_i=k | \theta) P(Xi,Zi=k∣θ)=P(Xi∣Zi=k,θ)⋅P(Zi=k∣θ)。

假设性别先验 P ( Z = k ) P(Z=k) P(Z=k) 已知或固定,我们主要关注 P ( X i ∣ Z i = k , θ ) P(X_i | Z_i=k, \theta) P(Xi∣Zi=k,θ),这通常由高斯分布给出:

P ( x ∣ μ k , σ k 2 ) = 1 2 π σ k 2 exp ⁡ ( − ( x − μ k ) 2 2 σ k 2 ) P(x | \mu_k, \sigma_k^2) = \frac{1}{\sqrt{2\pi\sigma_k^2}} \exp\left(-\frac{(x-\mu_k)^2}{2\sigma_k^2}\right) P(x∣μk,σk2)=2πσk2 1exp(−2σk2(x−μk)2)

所以, log ⁡ P ( X i , Z i = k ∣ θ ) \log P(X_i, Z_i=k | \theta) logP(Xi,Zi=k∣θ) 可以写为:

log ⁡ P ( X i ∣ Z i = k , θ ) + log ⁡ P ( Z i = k ∣ θ ) \log P(X_i | Z_i=k, \theta) + \log P(Z_i=k | \theta) logP(Xi∣Zi=k,θ)+logP(Zi=k∣θ)

概率的乘法公式(条件概率公式)与对数的运算法则相结合推导出来的,在机器学习的EM算法(期望最大化算法)和高斯混合模型(GMM)中用于展开完全数据的对数似然函数。

P ( A , B ) = P ( A ∣ B ) P ( B ) P(A,B)=P(A\mid B)P(B) P(A,B)=P(A∣B)P(B)

具体构建 Q 函数(以高斯混合模型为例):

对于高斯分布, log ⁡ P ( X ∣ Z , θ ) \log P(X|Z, \theta) logP(X∣Z,θ) 包含项:

− 1 2 log ⁡ ( 2 π σ k 2 ) − ( x i − μ k ) 2 2 σ k 2 -\frac{1}{2}\log(2\pi\sigma_k^2) - \frac{(x_i - \mu_k)^2}{2\sigma_k^2} −21log(2πσk2)−2σk2(xi−μk)2

因此,Q 函数可以分解为两个部分,分别对应男生( k = M a l e k=Male k=Male)和女生( k = F e m a l e k=Female k=Female)的参数更新:

Q ( θ ) = ∑ i = 1 3 w i , M a l e ⋅ log ⁡ P ( X i ∣ M a l e , θ ) + w i , F e m a l e ⋅ log ⁡ P ( X i ∣ F e m a l e , θ ) + 常数项 Q(\theta) = \sum_{i=1}^{3} \left w_{i, Male} \\cdot \\log P(X_i \| Male, \\theta) + w_{i, Female} \\cdot \\log P(X_i \| Female, \\theta) \\right + \text{常数项} Q(θ)=i=1∑3wi,Male⋅logP(Xi∣Male,θ)+wi,Female⋅logP(Xi∣Female,θ)+常数项

代入具体数值逻辑(简化展示):

Q ( μ M , σ M , μ F , σ F ) ≈ ∑ i = A , B , C ( w i , M a l e − ( x i − μ M ) 2 2 σ M 2 + w i , F e m a l e − ( x i − μ F ) 2 2 σ F 2 ) Q(\mu_M, \sigma_M, \mu_F, \sigma_F) \approx \sum_{i=A,B,C} \left( w_{i, Male} \left -\\frac{(x_i - \\mu_M)\^2}{2\\sigma_M\^2} \\right + w_{i, Female} \left -\\frac{(x_i - \\mu_F)\^2}{2\\sigma_F\^2} \\right \right) Q(μM,σM,μF,σF)≈i=A,B,C∑(wi,Male−2σM2(xi−μM)2+wi,Female−2σF2(xi−μF)2)

(注:省略了常数系数和先验概率项,重点看加权部分)

3. 这个 Q 函数告诉我们什么?

观察上面的 Q 函数表达式,你会发现它实际上是一个加权最小二乘法的目标函数:

  • 对于男生参数 μ M \mu_M μM :我们要最大化 Q,等价于最小化:

    ∑ i = A , B , C w i , M a l e ⋅ ( x i − μ M ) 2 \sum_{i=A,B,C} w_{i, Male} \cdot (x_i - \mu_M)^2 i=A,B,C∑wi,Male⋅(xi−μM)2

    这意味着: μ M \mu_M μM 将收敛到所有同学身高的加权平均值 ,其中权重 w i , M a l e w_{i, Male} wi,Male 是"该同学是男生的概率"。

    • 同学 B (180cm, w ≈ 1 w \approx 1 w≈1) 对 μ M \mu_M μM 的影响极大。
    • 同学 A (160cm, w ≈ 0 w \approx 0 w≈0) 对 μ M \mu_M μM 的影响极小。
    • 结果: μ M \mu_M μM 会接近 175-180 之间。
  • 对于女生参数 μ F \mu_F μF :我们要最小化:

    ∑ i = A , B , C w i , F e m a l e ⋅ ( x i − μ F ) 2 \sum_{i=A,B,C} w_{i, Female} \cdot (x_i - \mu_F)^2 i=A,B,C∑wi,Female⋅(xi−μF)2

    • 同学 A (160cm, w ≈ 1 w \approx 1 w≈1) 对 μ F \mu_F μF 的影响极大。
    • 同学 B (180cm, w ≈ 0 w \approx 0 w≈0) 对 μ F \mu_F μF 的影响极小。
    • 结果: μ F \mu_F μF 会接近 160 左右。

4. 总结:从 Q 函数到 M 步

  1. 构建 Q 函数 :利用 E 步得到的概率权重 w i , k w_{i,k} wi,k,将原本难以处理的对数似然函数 log ⁡ P ( X ∣ θ ) \log P(X|\theta) logP(X∣θ) 转化为一个关于新参数 θ \theta θ 的容易处理的期望函数 Q ( θ ∣ θ ( t ) ) Q(\theta|\theta^{(t)}) Q(θ∣θ(t))。
  2. 最大化 Q (M 步) :对 Q 函数关于 θ \theta θ 求导并令其为 0(或通过优化算法),找到使 Q 最大的新参数 θ ( t + 1 ) \theta^{(t+1)} θ(t+1)。
    • 在新参数 θ ( t + 1 ) \theta^{(t+1)} θ(t+1) 下,我们得到更新后的男生均值 μ M ( n e w ) \mu_M^{(new)} μM(new) 和女生均值 μ F ( n e w ) \mu_F^{(new)} μF(new)。
  3. 迭代 :将 θ ( t + 1 ) \theta^{(t+1)} θ(t+1) 带回 E 步,重新计算后验概率,直到参数不再变化。

核心结论

构建 Q 函数的过程,就是将"硬分类"问题转化为"软加权"问题的过程。我们不再强行决定谁是男谁是女,而是让每个人以一定的"可能性"参与计算,从而更平滑、更稳健地估计出群体的统计特征。


3. 完整流程与逻辑关系

这两步构成了 EM 算法的一个完整迭代循环(E-M 步):

  1. E 步(Expectation Step) :即文本的第一句。
    • 任务 :固定参数 θ \theta θ 为旧值 θ ( t ) \theta^{(t)} θ(t)。
    • 动作 :计算隐变量 Z Z Z 的后验概率分布。
    • 结果 :我们获得了关于缺失数据 Z Z Z 的"最佳猜测"(概率分布)。
  2. M 步(Maximization Step)的前奏 :即文本的第二句。
    • 任务:基于 E 步得到的分布,构建 Q 函数。
    • 动作 :在下一步中,我们会寻找一个新的参数 θ ( t + 1 ) \theta^{(t+1)} θ(t+1),使得这个 Q 函数的值最大化。
    • 结果 :得到更新后的参数 θ \theta θ,用于下一次迭代。

4. 重要性及意义

  1. 解决"鸡生蛋,蛋生鸡"的问题

    • 要知道参数 θ \theta θ,必须知道隐变量 Z Z Z。
    • 要知道隐变量 Z Z Z,必须知道参数 θ \theta θ。
    • EM 算法通过交替执行这两步,逐步逼近最优解。
  2. 广泛适用性

    1. 高斯混合模型 (GMM, Gaussian Mixture Models)
    • 这是 EM 最著名的应用。GMM 假设数据由多个高斯分布混合而成。EM 算法用于确定每个高斯分布的均值、方差和混合权重。
    • 应用:图像分割、客户分群。
    1. 隐马尔可夫模型 (HMM, Hidden Markov Models)
    • 用于序列数据建模。例如语音识别中,听得到的声音是观测数据,背后的发音状态是隐变量。
    • 应用:语音识别、自然语言处理、生物信息学(基因序列分析)。
    1. K-Means 聚类
    • K-Means 可以看作是 EM 算法的一个特例(当隐变量的分布是确定性的,即硬分配,而非概率分配时)。
    1. 缺失数据填补
    • 当数据表中有很多空值时,可以用 EM 算法迭代估算缺失值,直到数据"完整"。
  3. 保证收敛

    • 每次迭代(E步和M步组合)都会确保数据的对数似然函数不减少(通常是不严格增加)。这意味着算法最终会收敛到一个局部最优解。

5. 常见疑问解答 (FAQ)

Q1: 为什么不能直接计算最大似然估计,非要绕弯子用 EM 算法?

A: 如果模型中没有隐变量,直接求导令其为零即可。但一旦引入隐变量 Z Z Z,对数似然函数变成 log ⁡ ∑ Z P ( X , Z ∣ θ ) \log \sum_Z P(X,Z|\theta) log∑ZP(X,Z∣θ)。求和项在对数里面,导致无法直接对 θ \theta θ 求导解析求解。EM 算法通过 Jensen 不等式将这个问题转化为了更容易处理的 Q 函数最大化问题。

Q2: "条件期望"在这里具体是怎么算的?

A: 具体来说, E Z ∣ X , θ ( t ) log ⁡ P ( X , Z ∣ θ ) E_{Z|X,\theta^{(t)}}\\log P(X,Z\|\\theta) EZ∣X,θ(t)logP(X,Z∣θ) 的计算公式是:

∑ Z P ( Z ∣ X , θ ( t ) ) ⋅ log ⁡ P ( X , Z ∣ θ ) \sum_{Z} P(Z|X,\theta^{(t)}) \cdot \log P(X,Z|\theta) Z∑P(Z∣X,θ(t))⋅logP(X,Z∣θ)

(如果是连续变量,则是积分)。

也就是说,我们对每个可能的 Z Z Z,计算其联合概率的对数,然后乘以该 Z Z Z 发生的后验概率,最后加起来。

Q3: 这里的 P ( X , Z ∣ θ ) P(X,Z|\theta) P(X,Z∣θ) 和 P ( Z ∣ X , θ ( t ) ) P(Z|X,\theta^{(t)}) P(Z∣X,θ(t)) 有什么区别?

A:

  • P ( Z ∣ X , θ ( t ) ) P(Z|X,\theta^{(t)}) P(Z∣X,θ(t)):这是当前已知条件 下的概率。注意参数是 θ ( t ) \theta^{(t)} θ(t)(旧参数),变量是 Z Z Z。我们在 E 步算出这个是为了"填充"缺失信息。
  • P ( X , Z ∣ θ ) P(X,Z|\theta) P(X,Z∣θ):这是模型本身的定义 。这里的 θ \theta θ 是我们要优化的新参数变量。我们在 M 步利用 E 步的结果来调整这个 θ \theta θ。
    例如,你手里只有一张全班同学身高的成绩单(观测数据 X X X),却没有标注每个同学是男生还是女生(隐变量 Z Z Z)
相关推荐
weixin_468466851 小时前
通义千问核心能力与实战表现深度评测
人工智能·深度学习·算法·ai·大模型
菜菜的顾清寒1 小时前
力扣HOT100(48)图论-腐烂的橘子
算法·leetcode·图论
Ulyanov1 小时前
深入QML滑块与进度控制:构建动态数据可视化界面:QML+PySide6现代开发入门(六)
开发语言·python·算法·ui·信息可视化·雷达电子对抗仿真
星马梦缘1 小时前
ACM笔记 学习版本
数据结构·c++·算法
CQU_JIAKE1 小时前
6.1【A】
算法
wayz111 小时前
Momentum:CTI(相关趋势指标)技术指标详解
算法·金融·数据分析·量化交易·特征工程
fengxin_rou1 小时前
【滑动窗口与前缀和算法实战】:LeetCode560.438 高频题深度解析
java·算法·leetcode
Dillon Dong1 小时前
【风电控制】FPGA vs DSP 在ADC采样中的选择——从架构差异到工程实践
算法·变流器·风电控制·dfig
科研小白_1 小时前
【第九期:MATLAB点云处理基础】基于 Alpha Shapes 的边缘点提取
算法