聚类数据只有观测 x1,,xN\mathbf{x}_1,\ldots,\mathbf{x}_N,没有告诉模型每个样本属于哪一组。K-means 可以直接给出一组编号和中心,却没有说明这些编号来自什么概率假设,也无法表达位于两组交界处的样本有多不确定。离散潜变量模型为每个样本引入一个不可见的类别变量 ZnZ_n,再用类别条件分布解释观测。聚类由此变成对 ZnZ_n 的后验推断,中心和分布参数则通过边际似然学习。

本文从 K-means 的平方距离目标开始,写出混合模型的完整数据与观测数据似然,再推导期望最大化(Expectation-Maximization,EM)算法。高斯混合模型处理连续向量,混合伯努利分布处理二值向量;两者的 E 步形式相同,M 步只是在计算不同分布的加权充分统计量。最后加入参数先验,并用证据下界(Evidence Lower Bound,ELBO)区分最大似然 EM、最大后验 EM 与变分贝叶斯推断。

K-means 聚类算法

设数据 xnRD\mathbf{x}_n\in\mathbb{R}^D,希望分成 KK 组。用 rnk{0,1}r_{nk}\in\{0,1\} 表示样本 nn 是否分到第 kk 组,并要求 k=1Krnk=1\sum_{k=1}^K r_{nk}=1。第 kk 组的中心记为 μk\boldsymbol{\mu}_k。K-means 最小化组内平方距离:

J(R,μ)=n=1Nk=1Krnkxnμk22.J(\mathbf{R},\boldsymbol{\mu}) = \sum_{n=1}^{N}\sum_{k=1}^{K} r_{nk}\left\|\mathbf{x}_n-\boldsymbol{\mu}_k\right\|_2^2.

同时优化离散分配和连续中心很困难,但固定其中一项时,另一项都有简单解。固定中心后,每个样本分给最近的中心:

rnk={1,k=argminjxnμj22,0,其他情况.r_{nk} = \begin{cases} 1, & k=\arg\min_j\left\|\mathbf{x}_n-\boldsymbol{\mu}_j\right\|_2^2,\\ 0, & \text{其他情况}. \end{cases}

固定分配后,对 JJ 关于中心求导,可以得到每组样本的算术平均:

μk=n=1Nrnkxnn=1Nrnk.\boldsymbol{\mu}_k = \frac{\sum_{n=1}^{N}r_{nk}\mathbf{x}_n} {\sum_{n=1}^{N}r_{nk}}.

这两个步骤交替执行时,目标值不会上升。分配不再变化后,中心也不会变化,算法随即停止。它保证收敛到一个局部最优或稳定点,不能保证找到全局最小值。实际使用时通常采用 k-means++ 初始化并运行多次,保留组内平方和最低的结果。若某组没有样本,均值更新的分母为零,需要重新选择该中心或采用实现约定的空组处理规则。

平方欧氏距离使 K-means 偏好大小和方差相近、近似球形的簇。某一维的数值尺度较大时,它会主导距离;离群点也会显著拉动均值。因此,标准化、异常值处理和距离是否符合任务语义,往往比增加迭代次数更重要。KK 仍是外部给定的超参数,可以用留出表现、稳定性、轮廓系数或领域约束比较候选值,但训练目标本身不会自动决定组数。

K-means 的 rnkr_{nk} 是硬分配:一个样本只能属于一组。若希望表达“更像第 1 组,但第 2 组也有可能”,就需要给这些分配一个概率解释。

似然函数

离散混合模型先生成类别,再由该类别生成观测。令

ZnCategorical(π),p(Zn=k)=πk,Z_n\sim\operatorname{Categorical}(\boldsymbol{\pi}), \qquad p(Z_n=k)=\pi_k,

其中 πk0\pi_k\ge 0kπk=1\sum_k\pi_k=1。给定 Zn=kZ_n=k 后,观测来自第 kk 个分量:

XnZn=kp(xθk).\mathbf{X}_n\mid Z_n=k \sim p(\mathbf{x}\mid\boldsymbol{\theta}_k).

用 one-hot 变量 znk=1[Zn=k]z_{nk}=\mathbb{1}[Z_n=k] 表示类别,单个样本与潜变量的联合分布为

p(xn,znθ)=k=1K[πkp(xnθk)]znk.p(\mathbf{x}_n,\mathbf{z}_n\mid\boldsymbol{\theta}) = \prod_{k=1}^{K} \left[ \pi_k p(\mathbf{x}_n\mid\boldsymbol{\theta}_k) \right]^{z_{nk}}.

如果类别标签可以观察,完整数据对数似然是

logp(X,Zθ)=n=1Nk=1Kznk[logπk+logp(xnθk)].\log p(\mathbf{X},\mathbf{Z}\mid\boldsymbol{\theta}) = \sum_{n=1}^{N}\sum_{k=1}^{K} z_{nk} \left[ \log\pi_k+ \log p(\mathbf{x}_n\mid\boldsymbol{\theta}_k) \right].

它对分量统计量呈线性求和,已知 znkz_{nk} 时通常容易优化。真实聚类数据没有这些标签,只能把 ZnZ_n 求和消去:

p(xnθ)=k=1Kπkp(xnθk).p(\mathbf{x}_n\mid\boldsymbol{\theta}) = \sum_{k=1}^{K} \pi_k p(\mathbf{x}_n\mid\boldsymbol{\theta}_k).

在样本条件独立的假设下,观测数据对数似然为

(θ)=n=1Nlogk=1Kπkp(xnθk).\ell(\boldsymbol{\theta}) = \sum_{n=1}^{N} \log \sum_{k=1}^{K} \pi_k p(\mathbf{x}_n\mid\boldsymbol{\theta}_k).

困难来自“对数中的求和”:不能先把每个样本固定到一个分量,再分别最大化各分量参数。似然在这里是观测固定后关于参数的函数。连续数据中的 p(xnθk)p(\mathbf{x}_n\mid\boldsymbol{\theta}_k) 是密度,数值可以大于 1;只有对区域积分后才得到概率。把密度值直接解释为“样本出现的概率”会混淆两者。

隐变量

ZnZ_n 没有进入数据表,却决定样本使用哪个条件分布,因此是隐变量或潜变量。它的取值来自有限集合 {1,,K}\{1,\ldots,K\},所以属于离散潜变量。给定当前参数,贝叶斯公式给出样本属于各分量的后验概率:

γnk=p(Zn=kxn,θ)=πkp(xnθk)j=1Kπjp(xnθj).\gamma_{nk} = p(Z_n=k\mid\mathbf{x}_n,\boldsymbol{\theta}) = \frac{ \pi_k p(\mathbf{x}_n\mid\boldsymbol{\theta}_k) }{ \sum_{j=1}^{K} \pi_j p(\mathbf{x}_n\mid\boldsymbol{\theta}_j) }.

γnk\gamma_{nk} 常称为责任度(responsibility)。它满足 0γnk10\le\gamma_{nk}\le1kγnk=1\sum_k\gamma_{nk}=1,可以看成 znkz_{nk} 的后验期望。K-means 只保留最大的那一项,混合模型则保留完整向量。位于分量重叠区域的样本可以同时对多个分量产生部分贡献。

左侧是两个带中心的点簇,中间的边界样本以蓝橙双色圆表示;右侧显示离散变量 Z 先选择分量,再由对应条件分布生成观测 X,底部对比硬分配的一零向量与软责任度的零点五五和零点四五
离散潜变量 Z 选择生成观测的分量。硬聚类只保留一个类别,混合模型用后验责任度表示边界样本对多个分量的相对支持。作者绘制

“潜在类别”不等于数据中必然存在可命名的真实群体。混合分量只是模型解释观测分布的一种方式;多个分量也可能共同逼近一个偏斜或重尾分布。分量编号本身没有语义,交换任意两个分量的编号不会改变边际密度,这称为标签交换。若要把分量解释成业务类别,还需要外部变量、稳定性检查或结构约束支持。

期望最大化算法

EM 交替估计潜变量后验和模型参数。给定旧参数 θold\boldsymbol{\theta}^{\text{old}},E 步计算完整数据对数似然的条件期望:

Q(θ,θold)=Ep(ZX,θold)[logp(X,Zθ)].Q(\boldsymbol{\theta},\boldsymbol{\theta}^{\text{old}}) = \mathbb{E}_{p(\mathbf{Z}\mid\mathbf{X},\boldsymbol{\theta}^{\text{old}})} \left[ \log p(\mathbf{X},\mathbf{Z}\mid\boldsymbol{\theta}) \right].

对独立混合模型,这一步就是计算全部 γnk\gamma_{nk},并用它替换完整数据表达式中的 znkz_{nk}。M 步求

θnew=argmaxθQ(θ,θold).\boldsymbol{\theta}^{\text{new}} = \arg\max_{\boldsymbol{\theta}} Q(\boldsymbol{\theta},\boldsymbol{\theta}^{\text{old}}).

责任度把未知的整数计数改成期望计数。定义第 kk 个分量的有效样本数

Nk=n=1Nγnk,N_k=\sum_{n=1}^{N}\gamma_{nk},

许多 M 步就变成以 γnk\gamma_{nk} 为权重的最大似然估计。分量分布不同,所需的加权充分统计量也不同,但 E 步的贝叶斯归一化形式保持不变。

EM 的单调性可以由一个辅助分布 q(Z)q(\mathbf{Z}) 看出:

logp(Xθ)=logZq(Z)p(X,Zθ)q(Z)Zq(Z)logp(X,Zθ)q(Z).\begin{aligned} \log p(\mathbf{X}\mid\boldsymbol{\theta}) &= \log\sum_{\mathbf{Z}} q(\mathbf{Z}) \frac{p(\mathbf{X},\mathbf{Z}\mid\boldsymbol{\theta})} {q(\mathbf{Z})}\\ &\ge \sum_{\mathbf{Z}}q(\mathbf{Z}) \log \frac{p(\mathbf{X},\mathbf{Z}\mid\boldsymbol{\theta})} {q(\mathbf{Z})}. \end{aligned}

不等式来自 Jensen 不等式。E 步把 qq 设为当前参数下的精确后验,使下界在当前点与对数似然相等;M 步提高这个下界,因此不会降低观测数据似然。若 M 步只找到一个使 QQ 上升的新参数,得到的是广义 EM,同样保留单调不降性质。

单调上升不等于得到全局最优。EM 可能停在不同的局部极大值或鞍点,也可能让几乎没有样本的分量更新得很不稳定。合理初始化、多次重启、监控有效样本数和留出数据似然,都是训练的一部分。停止条件通常检查对数似然增量或参数变化,而不是预设一个很大的固定迭代数。

K-means 可以理解为高斯混合模型的一种硬极限。若所有分量都有相同的球形协方差 σ2I\sigma^2\mathbf{I} 和相等权重,则

γnkexp(xnμk22σ2).\gamma_{nk} \propto \exp\left( -\frac{\|\mathbf{x}_n-\boldsymbol{\mu}_k\|^2}{2\sigma^2} \right).

σ2\sigma^2 趋近于零,最近中心的责任度趋近于 1,其余趋近于 0;均值的软加权更新也退化为 K-means 的组内均值更新。这一关系解释了两个算法的相似步骤,但不意味着任意 K-means 结果都给出了校准良好的概率,也不能把实际高斯混合模型的协方差直接设为零。

高斯混合模型

高斯混合模型(Gaussian Mixture Model,GMM)令每个连续观测分量服从多元高斯分布:

p(x)=k=1KπkN(x;μk,Σk).p(\mathbf{x}) = \sum_{k=1}^{K} \pi_k \mathcal{N} \left( \mathbf{x}; \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k \right).

E 步把高斯密度代入责任度公式。为避免高维密度下溢,实现时应先计算

ank=logπk+logN(xn;μk,Σk),a_{nk} = \log\pi_k+ \log\mathcal{N} (\mathbf{x}_n;\boldsymbol{\mu}_k,\boldsymbol{\Sigma}_k),

再用 log-sum-exp 归一化:

logγnk=anklogsumexpj(anj).\log\gamma_{nk} = a_{nk} - \operatorname{logsumexp}_{j}(a_{nj}).

M 步的最大似然更新为

πknew=NkN,\pi_k^{\text{new}}=\frac{N_k}{N}, μknew=1Nkn=1Nγnkxn,\boldsymbol{\mu}_k^{\text{new}} = \frac{1}{N_k} \sum_{n=1}^{N}\gamma_{nk}\mathbf{x}_n, Σknew=1Nkn=1Nγnk(xnμknew)(xnμknew)T.\boldsymbol{\Sigma}_k^{\text{new}} = \frac{1}{N_k} \sum_{n=1}^{N} \gamma_{nk} (\mathbf{x}_n-\boldsymbol{\mu}_k^{\text{new}}) (\mathbf{x}_n-\boldsymbol{\mu}_k^{\text{new}})^{\mathsf T}.

完整协方差能表示旋转后的椭球形簇,但每个分量需要 D(D+1)/2D(D+1)/2 个协方差参数。对角协方差忽略同一分量内各维相关性,参数量降为 DD;球形协方差只保留一个方差;共享协方差则让各分量使用同一矩阵。样本量、维度和任务需要的几何形状共同决定采用哪一种约束。

无约束 GMM 的最大似然存在退化解。一个分量可以把均值放到某个样本上,并让协方差行列式趋近于零,使该点的密度趋于无穷,训练似然也随之无界。给协方差对角线增加很小的正数可以改善数值条件,却不是完整的统计解决方案。限制最小方差、共享协方差、加入参数先验,并用留出数据检查泛化,才能约束这种塌缩。

GMM 给出的 γnk\gamma_{nk} 是当前模型下的后验分类概率。只有当高斯分量、权重和参数估计与数据相符时,这些数才有可靠含义。若数据包含长尾、离群点或非椭球结构,可以考虑 Student-t 混合、核方法、谱聚类或密度聚类;增加高斯分量虽然能提高逼近能力,也会增加局部最优、标签交换和模型选择难度。

混合伯努利分布

当观测是二值向量 xn{0,1}D\mathbf{x}_n\in\{0,1\}^D 时,可以让每个分量使用独立伯努利分布:

p(xnZn=k,μk)=d=1Dμkdxnd(1μkd)1xnd,p(\mathbf{x}_n\mid Z_n=k,\boldsymbol{\mu}_k) = \prod_{d=1}^{D} \mu_{kd}^{x_{nd}} (1-\mu_{kd})^{1-x_{nd}},

其中 μkd=p(Xd=1Z=k)\mu_{kd}=p(X_d=1\mid Z=k)。它适合表示黑白图像像素、症状是否出现、商品是否被选择或文档中词语是否出现。若特征是词频或一般计数,伯努利分布不再匹配观测空间,应改用多项式、泊松或其他计数分布。

每个分量内部假设各维在给定 ZnZ_n 后条件独立。边际上它们仍可相关,因为同一个潜在类别同时改变多个维度的取值概率。例如,一个文档主题可以同时提高若干相关词出现的概率,即使主题内采用独立伯努利假设。

E 步仍然计算

γnkπkd=1Dμkdxnd(1μkd)1xnd.\gamma_{nk} \propto \pi_k \prod_{d=1}^{D} \mu_{kd}^{x_{nd}} (1-\mu_{kd})^{1-x_{nd}}.

实际计算应使用对数形式,并把 μkd\mu_{kd} 限制在远离 0 和 1 的数值范围内,避免 log0\log 0。M 步只需更新加权出现比例:

πknew=NkN,\pi_k^{\text{new}}=\frac{N_k}{N}, μkdnew=n=1NγnkxndNk.\mu_{kd}^{\text{new}} = \frac{ \sum_{n=1}^{N}\gamma_{nk}x_{nd} }{N_k}.

这个公式与高斯均值更新相似,因为二者都是加权充分统计量。差别在于高斯分量还要估计协方差,伯努利分量估计的是每一维取 1 的概率。若某个分量的有效样本数很小,μkd\mu_{kd} 容易被少数样本推到 0 或 1,随后给未见组合分配零概率;Beta 先验可以提供平滑。

参数先验

最大似然把参数当成待优化的固定未知量。贝叶斯方法为参数指定先验 p(θ)p(\boldsymbol{\theta}),并得到

p(θX)p(Xθ)p(θ).p(\boldsymbol{\theta}\mid\mathbf{X}) \propto p(\mathbf{X}\mid\boldsymbol{\theta}) p(\boldsymbol{\theta}).

若仍用一个点估计表示参数,可以执行最大后验(Maximum A Posteriori,MAP)EM。E 步与当前参数下的潜变量后验相同,M 步改为最大化

Q(θ,θold)+logp(θ).Q(\boldsymbol{\theta},\boldsymbol{\theta}^{\text{old}}) + \log p(\boldsymbol{\theta}).

混合权重常用 Dirichlet 先验

πDirichlet(α1,,αK).\boldsymbol{\pi}\sim\operatorname{Dirichlet} (\alpha_1,\ldots,\alpha_K).

在内部解存在时,MAP 更新为

πkMAP=Nk+αk1N+jαjK.\pi_k^{\text{MAP}} = \frac{N_k+\alpha_k-1} {N+\sum_j\alpha_j-K}.

αk1\alpha_k-1 可以看成加入权重优化的伪计数。若采用后验均值而非 MAP,公式则是 (Nk+αk)/(N+jαj)(N_k+\alpha_k)/(N+\sum_j\alpha_j),两者不能混写。αk1\alpha_k\le1 时 MAP 可能落在边界,更新还要结合约束处理。

混合伯努利分布可为每个 μkd\mu_{kd} 指定 Beta 先验:

μkdBeta(akd,bkd).\mu_{kd}\sim\operatorname{Beta}(a_{kd},b_{kd}).

当内部 MAP 解存在时,更新为

μkdMAP=nγnkxnd+akd1Nk+akd+bkd2.\mu_{kd}^{\text{MAP}} = \frac{ \sum_n\gamma_{nk}x_{nd}+a_{kd}-1 }{ N_k+a_{kd}+b_{kd}-2 }.

它把“出现”和“未出现”两类先验计数加入加权统计量。GMM 常为均值和协方差使用正态—逆 Wishart 先验,或使用与所选协方差结构匹配的简化先验。合适的先验可以限制过小方差和小样本分量,但强度必须对应数据尺度;一个随意设置的弱先验不一定能消除退化。

对称先验不会自动赋予分量稳定名称,也不会消除标签交换。有限混合模型中的稀疏 Dirichlet 先验可以压低部分分量的权重,但它与“模型自动发现真实类别数”仍有距离。组数选择还涉及先验、近似方法和后验可辨识性,不能只看训练后有多少权重接近零。

证据下界

前面的 Jensen 不等式定义了一个下界:

L(q,θ)=Eq(Z)[logp(X,Zθ)]+H[q(Z)],\mathcal{L}(q,\boldsymbol{\theta}) = \mathbb{E}_{q(\mathbf{Z})} \left[ \log p(\mathbf{X},\mathbf{Z}\mid\boldsymbol{\theta}) \right] + \mathcal{H}[q(\mathbf{Z})],

其中 H[q]=Eq[logq]\mathcal{H}[q]=-\mathbb{E}_q[\log q] 是熵。它与观测数据对数似然满足恒等式

logp(Xθ)=L(q,θ)+KL(q(Z)p(ZX,θ)).\log p(\mathbf{X}\mid\boldsymbol{\theta}) = \mathcal{L}(q,\boldsymbol{\theta}) + \operatorname{KL} \left( q(\mathbf{Z}) \,\|\, p(\mathbf{Z}\mid\mathbf{X},\boldsymbol{\theta}) \right).

KL 散度非负,所以 L\mathcal{L} 是下界。标准 EM 的 E 步令 qq 等于精确后验,KL 项变成零;M 步固定 qq 提高下界。EM 因此可以看成对 qq 和点参数 θ\boldsymbol{\theta} 的坐标上升。

上方横线表示固定参数下的观测数据对数似然,下方蓝线表示证据下界,两者之间的垂直距离标为 KL 散度;右侧流程显示 E 步缩小 KL 间隙,M 步提高下界并带动似然不下降
ELBO 与对数似然的差等于近似分布和精确潜变量后验之间的 KL 散度。精确 EM 在 E 步闭合间隙,在 M 步提高下界。作者绘制

加入参数先验后,需要区分三种目标。MAP EM 最大化 logp(Xθ)+logp(θ)\log p(\mathbf{X}\mid\boldsymbol{\theta})+\log p(\boldsymbol{\theta}),最终仍只保留一个参数点。贝叶斯证据则把参数积分掉:

p(X)=Zp(X,Z,θ)dθ.p(\mathbf{X}) = \int \sum_{\mathbf{Z}} p(\mathbf{X},\mathbf{Z},\boldsymbol{\theta}) \,d\boldsymbol{\theta}.

若后验 p(Z,θX)p(\mathbf{Z},\boldsymbol{\theta}\mid\mathbf{X}) 难以精确计算,可以选择可处理的 q(Z,θ)q(\mathbf{Z},\boldsymbol{\theta}),最大化贝叶斯 ELBO:

L(q)=Eq[logp(X,Z,θ)logq(Z,θ)].\mathcal{L}(q) = \mathbb{E}_q \left[ \log p(\mathbf{X},\mathbf{Z},\boldsymbol{\theta}) - \log q(\mathbf{Z},\boldsymbol{\theta}) \right].

此时参数先验位于联合分布中,qq 同时近似潜变量和参数的后验不确定性。变分贝叶斯混合模型常采用 q(Z)q(θ)q(\mathbf{Z})q(\boldsymbol{\theta}) 的平均场分解,迭代更新各因子。它优化的是证据下界,不是精确证据;近似族过窄时,即使 ELBO 已收敛,后验方差和分量不确定性仍可能失真。

潜变量分析

K-means、GMM 和混合伯努利分布共享同一项结构:每个样本先由离散变量选择分量,再从该分量的观测分布生成。它们的差异来自观测空间、分配方式和优化目标。

模型观测形式分配主要参数更新目标
K-means连续向量最近中心的硬分配组内均值组内平方距离
GMM连续向量后验责任度加权均值与协方差观测数据似然
混合伯努利分布二值向量后验责任度加权出现比例观测数据似然
贝叶斯混合模型由分量分布决定潜变量后验参数后验或其近似证据或证据下界

若任务只需要快速划分近似球形数据,K-means 提供了清楚的基线。需要重叠簇、椭球形结构或软分类时,GMM 更合适;二值模式应使用伯努利分量,而不是把 0 和 1 机械地当作高斯连续值。小样本、协方差塌缩或极端概率需要参数先验和结构约束。精确潜变量后验可求时,EM 直接进行坐标优化;后验包含难以积分的参数或复杂潜变量时,ELBO 才成为可计算的替代目标。

离散潜变量的价值不在于给每个样本贴上一个确定标签,而在于把“数据来自哪种机制”写成可推断的随机变量。似然连接观测与参数,责任度保留类别不确定性,EM 把未知计数变成期望统计量,先验和 ELBO 再把这套方法扩展到正则化与贝叶斯近似。模型能否形成有意义的类别,最终仍取决于分量分布、组数、先验和数据是否支持这种解释。

参考文献

  1. S. Lloyd. Least Squares Quantization in PCM. IEEE Transactions on Information Theory, 1982. DOI: 10.1109/TIT.1982.1056489
  2. A. P. Dempster, N. M. Laird, and D. B. Rubin. Maximum Likelihood from Incomplete Data via the EM Algorithm. Journal of the Royal Statistical Society: Series B, 1977. DOI: 10.1111/j.2517-6161.1977.tb01600.x
  3. R. A. Redner and H. F. Walker. Mixture Densities, Maximum Likelihood and the EM Algorithm. SIAM Review, 1984. DOI: 10.1137/1026034
  4. C. M. Bishop. Pattern Recognition and Machine Learning. Springer, 2006. DOI: 10.1007/978-0-387-45528-0
  5. M. J. Wainwright and M. I. Jordan. Graphical Models, Exponential Families, and Variational Inference. Foundations and Trends in Machine Learning, 2008. DOI: 10.1561/2200000001
  6. D. M. Blei, A. Kucukelbir, and J. D. McAuliffe. Variational Inference: A Review for Statisticians. Journal of the American Statistical Association, 2017. DOI: 10.1080/01621459.2017.1285773