当前位置: 首页 > news >正文

deepbayes: VI回顾和GMM近似推断

bayes

系列文章

  • deepbayes lecture1: 贝叶斯框架
  • deepbayes lecture2: 变分推断
  • deepbayes lecture3:隐变量模型

回顾

在真正用实际例子复习VI之前,我们先回顾一下一些公式
L ( q ( θ ) ) = ∫ q ( θ ) log ⁡ p ( x , θ ) q ( θ ) d θ = ∫ q ( θ ) log ⁡ p ( x ∣ θ ) p ( θ ) q ( θ ) d θ = = ∫ q ( θ ) log ⁡ p ( x ∣ θ ) d θ + ∫ q ( θ ) log ⁡ p ( θ ) q ( θ ) d θ = = E a ( θ ) log ⁡ p ( x ∣ θ ) − K L ( q ( θ ) ∣ ∣ p ( θ ) ) \mathcal{L}(q(\theta))=\int q(\theta)\log\frac{p(x,\theta)}{q(\theta)}d\theta=\int q(\theta)\log\frac{p(x\mid\theta)p(\theta)}{q(\theta)}d\theta=\\ =\int q(\theta)\log p(x\mid\theta)d\theta+\int q(\theta)\log\frac{p(\theta)}{q(\theta)}d\theta=\\ =\mathbb{E}_{a(\theta)}\log p(x\mid\theta)-K L(q(\theta)||\,p(\theta)) L(q(θ))=q(θ)logq(θ)p(x,θ)dθ=q(θ)logq(θ)p(xθ)p(θ)dθ==q(θ)logp(xθ)dθ+q(θ)logq(θ)p(θ)dθ==Ea(θ)logp(xθ)KL(q(θ)∣∣p(θ))

其中第一项是数据项,第二项是正则化项

如果使用mean field variational inference,则应有

p ( θ ∣ x ) ≈ q ( θ ) = ∏ j = 1 m q j ( θ j ) p(\theta\mid x)\approx q(\theta)=\prod_{j=1}^{m}q_{j}\left(\theta_{j}\right) p(θx)q(θ)=j=1mqj(θj)

Mean field的更新公式更新过程如下:

初始化:

q ( θ ) = Π j = 1 m q j ( θ j ) q(\theta)=\Pi_{j=1}^{m}\,q_{j}\,(\theta_{j}) q(θ)=Πj=1mqj(θj)

循环迭代直到ELBO收敛

  • 更新 q 1 , ⋅ ⋅ ⋅ , q m ; q1,\cdot\cdot\cdot,q_{m}; q1,,qm;

    • q j ( θ j ) = 1 Z j exp ⁡ ( E q i ≠ j log ⁡ p ( x , θ ) ) q_{j}\left(\theta_{j}\right)=\frac{1}{Z_{j}}\exp\left(\mathbb{E}_{q_{i\neq j}}\log p(x,\theta)\right) qj(θj)=Zj1exp(Eqi=jlogp(x,θ))

    • 计算ELBO L ( q ( θ ) ) {\mathcal{L}}(q(\theta)) L(q(θ))

如果使用parametric variational inference, 则应有

p ( θ ∣ x ) ≈ q ( θ ) = q ( θ ∣ λ ) p(\theta\mid x)\approx q(\theta)=q(\theta\mid\lambda) p(θx)q(θ)=q(θλ)

近似贝叶斯推断:Gaussian Mixture Model聚类

聚类问题与高斯混合模型

聚类问题旨在将一组对象划分成 K 个簇 (clusters),使得同一簇内的对象尽可能相似,不同簇内的对象尽可能不同。

高斯混合模型是一种常用的概率模型,用于解决聚类问题。它假设每个簇都服从一个高斯分布,并且整个数据集可以看作是由 K 个高斯分布混合而成。

具体来说:

  • 我们有一个数据集 X = { x i } i = 1 N X = \{x_i\}_{i=1}^N X={xi}i=1N
  • 目标是将这些对象分组到 K 个簇中。
  • GMM 包含 K 个高斯分量,每个分量都有一个概率 π = ( π 1 , . . . , π K ) \pi = (\pi_1, ..., \pi_K) π=(π1,...,πK)
  • 每个高斯分量都有自己的参数 μ k , λ k \mu_k, \lambda_k μk,λk
  • 每个对象都有一个潜在变量 z i ∈ { 0 , 1 } K z_i \in \{0, 1\}^K zi{0,1}K,表示它属于哪个簇 ( ∑ k = 1 K z i k = 1 \sum_{k=1}^K z_{ik} = 1 k=1Kzik=1)。

Kmeans vs GMM

与传统的 K-means 算法相比,GMM 具有以下优点:

  • 软聚类 (Soft clustering):GMM 不直接将每个对象分配到某个簇,而是给出每个对象属于每个簇的概率。
  • 灵活的形状 (Flexible shapes):GMM 可以通过调整高斯分量的协方差矩阵来适应不同形状的簇。
  • 先验知识 (Prior Knowledge):GMM 可以使用先验分布来约束参数,从而将先验知识融入到模型中。

GMM 的概率模型

GMM 的基本概率模型可以表示为:

p ( X , Z ∣ π , μ , λ ) = ∏ i = 1 N p ( z i ∣ π ) p ( x i ∣ z i , μ , λ ) = ∏ i = 1 N ∏ k = 1 K [ π k N ( x i ∣ μ k , λ k − 1 ) ] z i k p(X, Z | \pi, \mu, \lambda) = \prod_{i=1}^N p(z_i | \pi)p(x_i | z_i, \mu, \lambda) = \prod_{i=1}^N \prod_{k=1}^K [\pi_k N(x_i | \mu_k, \lambda_k^{-1})]^{z_{ik}} p(X,Zπ,μ,λ)=i=1Np(ziπ)p(xizi,μ,λ)=i=1Nk=1K[πkN(xiμk,λk1)]zik

我们的目标是训练这个模型,即找到潜在变量的后验分布以及参数的最优值。

推断方法

不同的推断方法适用于不同的情况,主要取决于我们是对参数还是潜在变量感兴趣,以及是否满足共轭性 (conjugacy) 。 这里的共轭性是指:如果先验分布和似然函数是共轭的,那么后验分布与先验分布具有相同的函数形式。

  • 只对参数感兴趣: 使用最大似然估计 (Maximum likelihood)
  • 只对潜在变量感兴趣
    • 满足共轭性:Full Bayesian inference
    • 满足条件共轭性: Mean field variational inference
    • 不满足共轭性: Parametric variational inference
  • 对参数和潜在变量都感兴趣:使用 EM 算法。

EM 算法 (Expectation-Maximization algorithm) 是一种迭代算法,用于求解包含潜在变量的概率模型的参数估计问题。 它通过交替执行以下两个步骤来进行迭代:

  • E 步 (Expectation step):计算潜在变量的后验分布。
  • M 步 (Maximization step):根据潜在变量的后验分布,最大化似然函数,更新模型参数。

问题一:基本的 GMM (basic GMM)

让我们从一个基本的问题开始:如何训练一个 GMM 模型?

  1. 检查似然函数和先验分布是否共轭 (conjugate)。
  • 在这种情况下,似然函数和先验是共轭的。
  1. E 步:推导 p ( Z ∣ X , π , μ , λ ) p(Z | X, \pi, \mu, \lambda) p(ZX,π,μ,λ) 在这个步骤中, π , μ , λ \pi, \mu, \lambda π,μ,λ 的值是固定的。
  • 在贝叶斯框架下,后验概率正比于似然函数与先验概率的乘积:

    p ( Z ∣ X ) ∝ p ( X , Z ) = ∏ i = 1 N ∏ k = 1 K [ π k N ( x i ∣ μ k , λ k − 1 ) ] z i k p(Z | X) \propto p(X, Z) = \prod_{i=1}^N \prod_{k=1}^K [\pi_k N(x_i | \mu_k, \lambda_k^{-1})]^{z_{ik}} p(ZX)p(X,Z)=i=1Nk=1K[πkN(xiμk,λk1)]zik

  • 因此,可以将后验概率写成如下形式:

    p ( z i k = 1 ∣ X ) ∝ π k N ( x i ∣ μ k , λ k − 1 ) p(z_{ik} = 1 | X) \propto \pi_k N(x_i | \mu_k, \lambda_k^{-1}) p(zik=1∣X)πkN(xiμk,λk1)

  • 为了保证概率和为 1, 需要进行归一化:

    p ( z i k = 1 ∣ X ) = π k N ( x i ∣ μ k , λ k − 1 ) ∑ j = 1 K π j N ( x i ∣ μ j , λ j − 1 ) p(z_{ik} = 1 | X) = \frac{\pi_k N(x_i | \mu_k, \lambda_k^{-1})}{\sum_{j=1}^K \pi_j N(x_i | \mu_j, \lambda_j^{-1})} p(zik=1∣X)=j=1KπjN(xiμj,λj1)πkN(xiμk,λk1)

  • 最终的后验概率为:

    p ( Z ∣ X ) = ∏ i = 1 N ∏ k = 1 K [ π k N ( x i ∣ μ k , λ k − 1 ) ∑ j = 1 K π j N ( x i ∣ μ j , λ j − 1 ) ] z i k p(Z | X) = \prod_{i=1}^N \prod_{k=1}^K [\frac{\pi_k N(x_i | \mu_k, \lambda_k^{-1})}{\sum_{j=1}^K \pi_j N(x_i | \mu_j, \lambda_j^{-1})}]^{z_{ik}} p(ZX)=i=1Nk=1K[j=1KπjN(xiμj,λj1)πkN(xiμk,λk1)]zik

  1. **M 步:计算 π , μ , λ \pi, \mu, \lambda π,μ,λ 的最优值。**通过最大化 E [ p ( Z ∣ X , π , μ , λ ) log ⁡ p ( X , Z ∣ π , μ , λ ) ] E[p(Z|X,π,μ,λ) \log p(X, Z|π, μ, λ) ] E[p(ZX,π,μ,λ)logp(X,Zπ,μ,λ)] 计算, 其中 Z Z Z 的后验分布在这一步是固定的。
  • 首先,将目标函数重写为 π , μ , λ \pi, \mu, \lambda π,μ,λ 的函数:

    E [ p ( Z ∣ X ) log ⁡ p ( X , Z ) ] = E [ p ( Z ∣ X ) ∑ i = 1 N ∑ k = 1 K z i k [ log ⁡ π k + log ⁡ N ( x i ∣ μ k , λ k − 1 ) ] ] E[p(Z|X) \log p(X, Z)] = E[p(Z|X) \sum_{i=1}^N \sum_{k=1}^K z_{ik} [\log \pi_k + \log N(x_i | \mu_k, \lambda_k^{-1})]] E[p(ZX)logp(X,Z)]=E[p(ZX)i=1Nk=1Kzik[logπk+logN(xiμk,λk1)]]

    = ∑ i = 1 N ∑ k = 1 K γ i k [ log ⁡ π k + 1 2 log ⁡ λ k − 1 2 ( x i − μ k ) 2 λ k ] + C = \sum_{i=1}^N \sum_{k=1}^K \gamma_{ik} [\log \pi_k + \frac{1}{2} \log \lambda_k - \frac{1}{2}(x_i - \mu_k)^2 \lambda_k] + C =i=1Nk=1Kγik[logπk+21logλk21(xiμk)2λk]+C

    其中 γ i k = p ( z i k = 1 ∣ X ) \gamma_{ik} = p(z_{ik} = 1 | X) γik=p(zik=1∣X)

  • 由于 π \pi π 受限于 simplex (即 π k \pi_k πk 的和为 1),我们需要使用拉格朗日乘子法求解。 首先,将 π k \pi_k πk 参数化为 η k = log ⁡ π k \eta_k = \log \pi_k ηk=logπk,然后构造拉格朗日函数。

    L ( η , ψ ) = ∑ i = 1 N ∑ k = 1 K γ i k η k − ψ ( ∑ k = 1 K exp ⁡ η k − 1 ) L(\eta, \psi) = \sum_{i=1}^N \sum_{k=1}^K \gamma_{ik} \eta_k - \psi (\sum_{k=1}^K \exp \eta_k - 1) L(η,ψ)=i=1Nk=1Kγikηkψ(k=1Kexpηk1)

  • 分别对 η k \eta_k ηk ψ \psi ψ 求导并令其等于 0, 最终得到:

    π k = ∑ i = 1 N γ i k N \pi_k = \frac{\sum_{i=1}^N \gamma_{ik}}{N} πk=Ni=1Nγik

  • 接下来,分别对 μ k \mu_k μk λ k \lambda_k λk 求导,得到:

    μ k = ∑ i = 1 N γ i k x i ∑ i = 1 N γ i k \mu_k = \frac{\sum_{i=1}^N \gamma_{ik} x_i}{\sum_{i=1}^N \gamma_{ik}} μk=i=1Nγiki=1Nγikxi

    λ k = ∑ i = 1 N γ i k ∑ i = 1 N γ i k ( x i − μ k ) 2 \lambda_k = \frac{\sum_{i=1}^N \gamma_{ik}}{\sum_{i=1}^N \gamma_{ik} (x_i - \mu_k)^2} λk=i=1Nγik(xiμk)2i=1Nγik

问题二:给 π \pi π添加先验分布

问题2引入了对 π \pi π 添加先验分布的情况。

  • 概率模型: p ( X , Z , π ∣ μ , λ ) = p ( π ) ∏ i = 1 N [ p ( z i ∣ π ) p ( x i ∣ z i , μ , λ ) ] = D i r ( π ∣ α ) ∏ i = 1 N ∏ k = 1 K [ π k N ( x i ∣ μ k , λ k − 1 ) ] z i k p(X, Z, \pi|\mu, \lambda) = p(\pi) \prod_{i=1}^N [p(z_i|\pi)p(x_i|z_i, \mu, \lambda)] = Dir(\pi|\alpha) \prod_{i=1}^N \prod_{k=1}^K [\pi_kN(x_i|\mu_k, \lambda_k^{-1})]^{z_{ik}} p(X,Z,πμ,λ)=p(π)i=1N[p(ziπ)p(xizi,μ,λ)]=Dir(πα)i=1Nk=1K[πkN(xiμk,λk1)]zik

  • 如何训练?:使用EM算法 + 在E-step中使用Mean field VI.

Mean Field VI 通过假设后验分布可以分解为独立的部分来简化推断,即 q ( Z , π ) = q ( Z ) q ( π ) q(Z, \pi) = q(Z)q(\pi) q(Z,π)=q(Z)q(π)

问题

  • 检查似然和先验是不是共轭?如果使用分解 q ( Z , π ) = q ( Z ) q ( π ) q(Z, \pi) = q(Z)q(\pi) q(Z,π)=q(Z)q(π),检查conditional conjugacy是否存在?
  • E-step:写出 q ( Z ) q(Z) q(Z) q ( π ) q(\pi) q(π)的更新公式。
  • M-step:通过最大化 E q ( Z , π ) log ⁡ p ( X , Z , π ∣ μ , λ ) E_{q(Z,π)} \log p(X, Z, π|\mu, λ) Eq(Z,π)logp(X,Z,πμ,λ) 来计算 μ , λ \mu, \lambda μ,λ的最优值。

解答

  • 检查共轭性:在这种情况下,似然和先验不是共轭的。 如果 Z Z Z固定,存在共轭。 如果 π \pi π固定,存在共轭。

  • E-step:计算 q ( Z ) q(Z) q(Z) q ( π ) q(\pi) q(π) 的更新公式:

    • 因为: p ( Z , π ∣ X , μ , λ ) ≈ q ( Z , π ) = q ( Z ) q ( π ) p(Ζ, π|Χ, μ, λ) ≈ q(Ζ, π) = q(Ζ)q(π) p(Z,π∣X,μ,λ)q(Z,π)=q(Z)q(π), 可以得出:

      • log ⁡ q ( Z ) = E q ( π ) log ⁡ p ( X , Z , π ) + C o n s t \log q(Z) = E_{q(\pi)} \log p(X, Z, \pi) + Const logq(Z)=Eq(π)logp(X,Z,π)+Const, 通过推导可以得出:

        q ( Z ) = ∏ i = 1 N q ( z i ) q(Z) = \prod_{i=1}^N q(z_i) q(Z)=i=1Nq(zi), q ( z i ) = ∏ k = 1 K ρ i k z i k ∑ k = 1 K ρ i k q(z_i) = \frac{\prod_{k=1}^K \rho_{ik}^{z_{ik}}}{\sum_{k=1}^K \rho_{ik}} q(zi)=k=1Kρikk=1Kρikzik

      • log ⁡ q ( π ) = E q ( Z ) log ⁡ p ( X , Z , π ) + C o n s t \log q(\pi) = E_{q(Z)} \log p(X, Z, \pi) + Const logq(π)=Eq(Z)logp(X,Z,π)+Const, 通过推导可以得出:

        q ( π ) = D i r ( π ∣ α ′ ) q(\pi) = Dir(\pi|\alpha') q(π)=Dir(πα), 其中 α k ′ = α k + ∑ i = 1 N E q ( Z ) z i k \alpha_k' = \alpha_k + \sum_{i=1}^N E_{q(Z)} z_{ik} αk=αk+i=1NEq(Z)zik

  • M-step:计算 μ , λ \mu, \lambda μ,λ 的最优值: μ \mu μ λ \lambda λ的公式和之前一样。

总结

近似贝叶斯推断为我们提供了一种处理复杂概率模型的有效方法。 通过合理地选择近似方法,我们可以将先验知识融入到模型中,并获得更好的推断结果。

Reference

  1. deepbayes day1 seminar: Approximate inference

相关文章:

  • Wordpress安装插件提示输入ftp问题解决
  • C#引用传递代码记录
  • 【59 Pandas+Pyecharts | 淘宝华为手机商品数据分析可视化】
  • Android 实现可拖动的ImageView
  • linux内核编译问题记录
  • Ubuntu+k3s+karmada离线安装部署说明
  • java--认识反射
  • Wireshark 筛选功能详解:语法与示例
  • OpenAI推出o3-Pro模型
  • 开源项目实战学习之YOLO11:12.9 ultralytics-models-sam-amg.py
  • 【kafka】消息模型与工作原理详解
  • 车载软件和整车电子架构正重新定义汽车行业
  • 查看 Ubuntu 系统信息
  • MATLAB-磁偶极子的空间磁场强度仿真
  • 适合有C基础后快速上手C++
  • RAG技术全解析:从概念到实践,构建高效语义检索系统——嵌入模型与向量数据库搭建指南
  • 智能空气流向控制系统SKLX的优化与实践
  • 一款自制的OpenMV4模块
  • LRU 结构 LinkedHashMap:HashMap+双向链表的完美结合
  • 用python玩转大语言模型——从 RNN 到文本生成大语言模型的奇幻之旅
  • 四川平台网站建设方案/友情链接买卖平台
  • 网站的建设怎么写/网络营销做的比较好的企业
  • 网站权重收录/html家乡网站设计
  • 自己创业做网站/中南建设集团有限公司
  • 网站建设合作流程/seo免费入门教程
  • 淘宝关键词搜索工具/百度优化排名