题目重点:完整推导E/M两步,区分软分配与K-means,并说明奇异协方差和局部最优。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 训练K个高斯混合π_k、μ_k、Σ_k,π和1,协方差正定;没有给定数据或数字答案。
- 讨论经典最大似然EM,协方差下界/先验属于额外稳定策略。
解题路线
- 模型p(x)=Σπ_k N(x|μ_k,Σ_k),隐藏变量z表示成分。直接最大化log和难,EM用当前参数计算后验责任度再优化其加权完全数据目标。
- E步r_ik=π_kN(x_i)/Σ_jπ_jN(x_i),每行和1,是软分配,不是把每点只放到最近中心。数值实现用logdensity与logsumexp避免密度下溢。
- M步N_k=Σ_i r_ik,π_k=N_k/N,μ_k=Σr_ikx_i/N_k,Σ_k=Σr_ik(x_i−μ_k)(x_i−μ_k)ᵀ/N_k。协方差用刚更新均值,不用旧均值或硬count。
- 精确EM在正常条件下不降低观测似然,但可能到局部最优,多个初始化需比较。标签成分置换相同分布,不应以cluster编号唯一性判模型错误。
- 某成分抓住单点让协方差趋0可使似然异常大,需正则协方差或约束/先验;N_k接近0也要重置/保留等策略。并非“迭代越久越好”。
- K-means可视作特定球形小方差极限下的硬分配直观,但GMM允许椭球和不等混合权,不按纯欧氏最近中心实现一般E步。
- 示例用对称数据[-2,−1,1,2]和对称初始中心核责任度行和、加权计数与均值对称;真正手写还要验证协方差、loglikelihood和停止标准。
手动走一遍
等权中心−1/+1、方差1,x=0对两成分责任0.5;x=2更倾向+1但不会必为1。M步每点按责任部分贡献到两中心,区别于K-means只贡献一次。
规模与取舍
对角协方差一次EM约O(NKD),全协方差密度约O(NKD²+KD³)(分解可复用),责任存储O(NK),参数O(KD²);流式累计可降低中间存储。
易错点与追问
容易失分的边界
- E步硬argmax。
- M步用旧均值算协方差。
- EM保证全局最优。
- 忽略协方差塌缩。
继续深挖
- 如何稳定logdensity?
- 对角/共享协方差怎样选?
- MAP-EM先验如何避免塌缩?
技术参考
- scikit-learn Gaussian Mixtures:技术语义参考,具体题目按本文约定。
