高斯混合模型

高斯混合模型 Gaussian mixture model

  • 圆圈代表随机变量
  • 小方块代表固定值(模型参数)
  • 大方框叫做plate,表示他们的内容会被重复
  • 每个plate右下角的数字代表每个plate会被重复的次数。比如m表示这里有m个z(i)(从z(1)到z(m))和m个x(i)。权值向量 Φ \Phi Φ是一个k维向量。
  • 每个z(i)由带有权重 Φ \Phi Φ分类分布得出,每个x(i)由它所在的簇z(I)的均值和协方差矩阵所对应的正态分布决定。
  • 实箭头表示条件依赖。比如每个随机变量z(i)的概率分布取决于权值向量 Φ \Phi Φ。注意,当箭头越过plate边界时,表示它适用于该plate的所有重复。 例如,权值向量 Φ \Phi Φ决定了所有随机变量x(1)到x(m)的概率分布。
  • 从z(i)到x(i)的弯曲箭头表示一个开关:根据z(i)的值,将从不同的高斯分布中采样实例x(i)。 例如,如果z(i) = j,则$X^{(i)} ∼ N ( μ ( j ) , Σ ( j ) ) \sim \mathcal{N}(\mu^{(j)},\Sigma^{(j)}) N(μ(j),Σ(j))
  • 阴影节点表示该值是已知的。 因此,在这种情况下,只有随机变量x(i)具有已知值:它们被称为观察变量。 未知的随机变量z(i)称为潜在变量

GMM依赖于Expectation-Maximization(EM)算法,该算法与K-Means算法有很多相似之处:它也随机初始化集群参数,然后重复两个步骤,直到收敛为止,首先将实例分配给集群(这称为期望步骤),然后更新群集(这称为最大化步骤)。与K-Means不同的是,EM使用软群集分配,而不是硬分配。对于每个实例,在预期步骤中,该算法(基于当前的群集参数)估计它属于每个群集的概率。然后,在最大化步骤中,将使用数据集中的所有实例更新每个群集,并通过每个实例属于该群集的估计概率对其进行加权。这些概率称为实例集群的职责。在最大化步骤中,每个集群的更新将主要受到其最负责的实例的影响。

对于给出的每个实例,此方法都会估算该位置处的概率密度函数(PDF)的对数。 分数越高,密度越高。如果计算这些分数的指数,则可以在给定实例的位置获得PDF的值。 这些不是概率,而是概率密度:它们可以取任何正值,而不仅仅是0到1之间的值。要估计实例落入特定区域的概率,您必须在该区域上对PDF积分 (如果您在可能的实例位置的整个空间中执行此操作,则结果将为1)。下图显示了该模型的聚类平均值,决策边界(虚线)和密度等高线。
在这里插入图片描述
当存在多个维度,多个簇或很少实例时,EM可能难以收敛到最佳解决方案。 您可能需要通过限制算法必须学习的参数数量来减少任务的难度。 一种方法是限制群集可以具有的形状和方向的范围。 这可以通过对协方差矩阵施加约束来实现。如:
“spherical”:所有的集群必须是圆形,但它们可以有不同的半径。
“diag”:集群可以为不同的形状的椭圆,但是椭圆的轴必须和坐标轴平行。
“tied”:所有的集群必须具有相同的椭圆形状大小和取向。
“full”:集群可以为任意形状大小和取向。

K均值中,可以使用惯性或轮廓分数来选择适当数量的聚类。 但是,对于高斯混合,无法使用这些指标,因为当聚类不是球形或具有不同大小时,它们将不可靠。 相反,您可以尝试找到最小化理论信息标准的模型,例如下式中定义的贝叶斯信息标准(BIC)或Akaike信息标准(AIC)。
B I C = l o g ( m ) p − 2 l o g ( L ^ ) BIC=log(m)p-2log(\hat{L}) BIC=log(m)p2log(L^) A I C = 2 p − 2 l o g ( L ^ ) AIC=2p-2log(\hat{L}) AIC=2p2log(L^)
其中m为实例数,p为模型学习的参数数, L ^ \hat{L} L^是模型似然函数的最大值。

BIC和AIC都对具有更多要学习的参数(例如,更多的聚类)的模型进行了惩罚,并奖励了非常适合数据的模型。 他们常常最终选择相同的模型。 当它们不同时,BIC选择的模型往往比AIC选择的模型更简单(参数更少),但往往也不太适合数据(对于较大的数据集尤其如此)。

贝叶斯高斯混合模型

Bayesian Gaussian mixture model

  • ϕ ( j ) \phi^{(j)} ϕ(j)由Beta(1,α)采样,浓度α越高,Φ值越小,簇越多
  • z(i)服从关于Φ的Stick Breaking Processing(SBP)
  • x(i)和u(j)服从正态分布
  • Σ(j)服从Wishart分布

我们在获得数据X后,可以通过计算后验分布p(z|X)来对随机初始化的模型参数进行更新
p ( z ∣ X ) = p ( X ∣ z ) p ( z ) p ( X ) p(z|X)=\frac{p(X|z)p(z)}{p(X)} p(zX)=p(X)p(Xz)p(z)
然而在很多问题中,分母p(x)是不可算的,因为它需要对z的所有可能值进行积分,即
p ( X ) = ∫ p ( X ∣ z ) p ( z )   d z p(X)=\int{p(X|z)p(z)\,dz} p(X)=p(Xz)p(z)dz
这需要考虑所有可能的聚类参数组合和集群分配。

这种不可算性是贝叶斯统计中的核心问题之一,有几种解决方法。 其中之一是变分推断,它选择具有其自身的变分参数λ(lambda)的一族分布q(z;λ),然后优化这些参数以使q(z)很好地逼近p(z|X)。 这是通过找到使KL从q(z)到p(z|X)的KL散度最小化的λ值来实现的,记为D(qǁp)。 KL散度方程公式为
D K L ( q ∣ ∣ p ) = E q [ l o g q ( z ) p ( z ∣ X ) ] D_{KL}(q||p)=E_q[log\frac{q(z)}{p(z|X)}] DKL(qp)=Eq[logp(zX)q(z)] = E q [ l o g p ( X ) ] − ( E q [ l o g p ( z , X ) ] − E q [ l o g q ( z ) ] ) =E_q[log p(X)]-(E_q[log p(z,X)]-E_q[log q(z)]) =Eq[logp(X)](Eq[logp(z,X)]Eq[logq(z)]) = l o g p ( X ) − E L B O =log p(X)-ELBO =logp(X)ELBO
由于log p(X)不依赖于q,因此它是一个常数项,因此,使KL散度最小化只需要使证据下界ELBO最大化。

在实践中,存在多种使ELBO最大化的技术。在平均场变分推断中,有必要非常仔细地选择分布族q(z;λ)和先验p(z),以确保ELBO的方程简化为可以计算的形式。不幸的是,没有一般的方法可以做到这一点。选择正确的分布族和正确的先验取决于任务并需要一些数学技能。例如,Scikit-Learn的BayesianGaussianMixture类中使用的分布和下界方程。从这些方程式中可以得出聚类参数和赋值变量的更新方程式:然后,这些方程式的使用非常类似于Expectation-Maximization算法。实际上,BayesianGaussianMixture类的计算复杂度类似于GaussianMixture类的计算复杂度(但通常​​要慢得多)。最大化ELBO的一种更简单的方法称为黑盒随机变异性推断(BBSVI):在每次迭代中,从q提取一些样本,并使用它们来估计ELBO关于变异参数λ的梯度,然后将其用于梯度上升步骤。这种方法使得可以将贝叶斯推理与任何类型的模型(假设它是可区分的)甚至是深度神经网络一起使用。在深度神经网络中使用贝叶斯推理被称为贝叶斯深度学习。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值