吴恩达机器学习12课---混合高斯分布

混合高斯分布(MoG)是一种无监督学习方法,常用于聚类,尤其适合处理不同大小、相关类别的问题。MoG模型包含多项式分布的隐含变量和正态分布的观测数据。EM算法用于解决MoG的参数估计,包括E-step(计算隐含变量的后验概率分布)和M-step(根据E-step结果更新参数)。在EM训练过程中,样本与类别的关系以概率形式表达,增强了对不确定样本的处理能力。Jensen不等式与EM算法的一般化形式进一步深化了对模型优化的理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

混合高斯分布

  混合高斯分布(MoG)也是一种无监督学习的方法,常用与聚类。当聚类问题中各个类别的尺寸不同、聚类间有相关关系的时候,往往使用(MoG)往往更加合适。对于一个样本来说,MoG得到的是其属与各个类的概率(通过计算后验概率得到),而不熟完全属于某个类,这种聚类方法成为软聚类。一般来说,任意形状的概率分布都可用多个高斯分布函数去近似,因此,MoG的应用较为广泛。

形式化解释MoG

  首先对问题进行形式化
  在MoG问题中,数据属于哪个分布可以看成是一个隐含变量z。则MoG模型存在两个假设.假设一. z服从多项式分布,即:

z(i)Multinomial(Φ)(4)(4)z(i)∼Multinomial(Φ)

  对于多项式分布的参数,需要服从jΦj=1∑jΦj=1。特殊的,当只有两个分布时,z服从伯努利分布。

  假设二. 已知z时,x服从正态分布,即条件概率p(x|z)p(x|z)服从正态分布,即:

p(x(i)|z)N(μj,j)(5)(5)p(x(i)|z)∼N(μj,∑j)

则x和z的联合分布概率函数为:
p(x(i),z(i))=p(x(i),z(i))p(z(i))(6)(6)p(x(i),z(i))=p(x(i),z(i))∗p(z(i))

  在MoG模型中,若z(i)z(i)已知,那么就与高斯判别分析相同了,似然函数如下所示:
l(Φ,μ,)==i=1mlogp(x(i),z(i);Φ,μ,)i=1m[logp(x(i)|z(i);μ,)+logp(z(i);Φ)](7)l(Φ,μ,∑)=∑i=1mlogp(x(i),z(i);Φ,μ,∑)(7)=∑i=1m[logp(x(i)|z(i);μ,∑)+logp(z(i);Φ)]
因此极大似然估计的结果为:
Φj=1mi=1mI{z(i)=j}(8)(8)Φj=1m∑i=1mI{z(i)=j}

μj=mi=1I{z(i)=j}x(i)mi=1I{z(i)=j}(9)(9)μj=∑i=1mI{z(i)=j}x(i)∑i=1mI{z(i)=j}

j=mi=1I{z(i)=j}(x(i)μj)(x(i)μj)Tmi=1I{z(i)=j}(10)(10)∑j=∑i=1mI{z(i)=j}(x(i)−μj)(x(i)−μj)T∑i=1mI{z(i)=j}

公式8.9.10与高斯判别分析一样。

EM算法求解MoG

  由于不知道z(i)z(i)的值,我们需要通过EM算法迭代估计出z(i)z(i)从而得到参数。

  基本思想如下所示:

  1. 设置初始参数θθ;例如MoG中的ΦΦ,μμ,
  2. E-step:根据当前参数与观察数据X,估计隐含变量z的分布
  3. M-step:根据z的分布,对参数进行重新估计
  4. 2,3步反复进行,知道参数变化小于阈值或者目标函数的变化小于阈值为止
    具体来说,在E-step中,z的概率分布的更新公式如下:

    w(i)j==p(z(i)=j|x(i),Φ,μ,)p(x(i)|z(i)=j;μ,)p(z(i)=j;Φ)kp(x(i)|z(i)=k;μ,)p(z(i)=k;Φ)(11)wj(i)=p(z(i)=j|x(i),Φ,μ,∑)(11)=p(x(i)|z(i)=j;μ,∑)p(z(i)=j;Φ)∑kp(x(i)|z(i)=k;μ,∑)p(z(i)=k;Φ)

      其中,如假设中所言,p(x(i)|z(i)=j;μ,)p(x(i)|z(i)=j;μ,∑)是正态分布,p(z(i)=j;Φ)p(z(i)=j;Φ)是多项式分布,将密度函数带入即可得到给定观察值x,z的条件概率。

      在M-step中,根据E-step中得到的z的分布,重新对参数进行估计,有:

    Φj=1mi=1mw(i)j(12)(12)Φj=1m∑i=1mwj(i)

    μj=mi=1w(i)jx(i)mi=1w(i)j(13)(13)μj=∑i=1mwj(i)x(i)∑i=1mwj(i)

    μj=mi=1w(i)jx(i)mi=1w(i)j(14)(14)μj=∑i=1mwj(i)x(i)∑i=1mwj(i)

    分别对比式子8,9,10与12,13,14,可以发现12,13,14中只是将8,9,10中的指示函数替换为E-step中的概率值。说明在MoG的EM训练过程中,并不是硬性规定一个样本只是属于一个类,而是以概率的形式表达样本与类别的关系。在训练终止的时候,大部分z的概率值都会接近于0或者1 ,只有少部分会中和,所以MoG模型对不确定的样本处理更好。
      与高斯判别不同的是,在MoG中,不同的高斯分布所采用的协方差矩阵是可以不一样的,但是高斯判别分析中是一样的。

Jensen不等式

  EM算法的一般化形式。
  首先介绍Jensen不等式。
  定理:
  若ff为凸函数,即f(x)0. 并不要求f一定可到,但是如果存在二姐导数,则必须恒0≥0。再令x为随机变量,则存在不等式
  

f(E[x])E[f(x)](15)(15)f(E[x])≤E[f(x)]

  进一步,若二阶导数恒大于0,当且仅当x=E[x],不等号成立。
  若二阶导数的不等号方向逆转,则不等式的不等号方向逆转。

EM算法的一般化形式

  在有隐含变量的模型中,他的似然函数为
  

l(θ)==i=1mlogp(x(i);θ)i=1mlogz(i)p(x(i),z(i);θ)(16)l(θ)=∑i=1mlogp(x(i);θ)(16)=∑i=1mlog∑z(i)p(x(i),z(i);θ)

  下面讨论EM的一般化形式,所以与在MoG中讨论EM不同,我们不知道p(x(i)|z(i))p(x(i)|z(i))p(z(i))p(z(i))所服从的具体分布,我们只需要知道他们都是一种概率分布就足够了。
  如果直接在公式16中应用极大似然估计,因为在对数函数中有连加,因而求偏导时会很麻烦。
  对公式16进行处理,步骤如下:
  
maxθilogp(x(i);θ)==maxθi=1mlogz(i)p(x(i),z(i);θ)maxθi=1mlogz(i)Qi(z(i))p(x(i),z(i);θ)Qi(z(i))(17)maxθ∑ilogp(x(i);θ)=maxθ∑i=1mlog∑z(i)p(x(i),z(i);θ)(17)=maxθ∑i=1mlog∑z(i)Qi(z(i))p(x(i),z(i);θ)Qi(z(i))

  这里,QQ是一种概率分布,即Qi(z(i))0,z(i)Qi(z(i))=1
  继续推导:
  
i=1mlogz(i)Qi(z(i))p(x(i),z(i);θ)Qi(z(i))=i=1mlogE[p(x(i),z(i);θ)Qi(z(i))]i=1mE[logp(x(i),z(i);θ)Qi(z(i))]=i=1mz(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i))(18)∑i=1mlog∑z(i)Qi(z(i))p(x(i),z(i);θ)Qi(z(i))=∑i=1mlogE[p(x(i),z(i);θ)Qi(z(i))](18)≥∑i=1mE[log⁡p(x(i),z(i);θ)Qi(z(i))]=∑i=1m∑z(i)Qi(z(i))log⁡p(x(i),z(i);θ)Qi(z(i))

  在公式 18 中,用到了 Jensen 不等式,不过 log 函数是凹函数,所以不等号逆转了。另外还用到了期望的定义:若xp(x),x∼p(x),E[g(x)]=p(x)g(x).E[g(x)]=∑p(x)g(x).
  由公式16,17,18可知:
  
l(θ)i=1mz(i)logp(x(i),z(i);θ)Qi(z(i))=lowbound(θ)(19)(19)l(θ)≥∑i=1m∑z(i)logp(x(i),z(i);θ)Qi(z(i))=lowbound(θ)

  这时我们就找出了似然函数的一个下界,可以看到,该下界已经将取对数放到求和里面了,因而对其求偏导较为简单。假设当前的参数为θ(t)θ(t),在下界上进行极大似然估计后得到新参数θ(t+1)θ(t+1),如果能保证l(θ(t+1))l(θ(t))l(θ(t+1))≥l(θ(t)),那么我们就可以在下界函数上进行极大似然估计就可以了。如何能保证这一点呢?只要我们能在当前参数θ(t)θ(t)处,使公式17的等号成立就行了。证明如下:
 
l(θ(t+1))lowbound(θ(t+1))lowbound(θ(t))=l(θ(t))(20)(20)l(θ(t+1))≥lowbound(θ(t+1))≥lowbound(θ(t))=l(θ(t))

 第一个不等号意为下界函数,第二个不等号意为在下界函数上做极大似然估计,第三个等号是我们的假设。如何使公式 17 中等号成立呢?回顾 Jensen 不等式中令等号成立的条件,只要使x=E[x]x=E[x]即可,在公式17中即意味着使
 
p(x(i),z(i);θ)Qi(z(i))=constant(21)(21)p(x(i),z(i);θ)Qi(z(i))=constant

 如此再加上z(i)Qi(z(i))=1∑z(i)Qi(z(i))=1的条件,我们就可以选择Q:
 
Qi(z(i))=p(x(i),z(i);θ)z(i)p(x(i),z(i);θ)=p(z(i)|x(i);θ)(22)(22)Qi(z(i))=p(x(i),z(i);θ)∑z(i)p(x(i),z(i);θ)=p(z(i)|x(i);θ)

 我们发现QQ的值与 MoG的E-step 的公式很相似。Q即为对z的概率估计。
 由以上分析,我们就得到了 EM 算法的一般化形式。一般化形式的思想是,在 E-step, 找到对于当前参数θ,使公式 19 等号成立的 Q 分布;在 M-step,对似然函数下界进行极大似然估计,得到新的参数。形式化表述为:
 E-step:
 
Qi(z(i))=p(z(i)|x(i);θ)(23)(23)Qi(z(i))=p(z(i)|x(i);θ)

 M-step:
 
θ:=argmaxθi=1mz(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i))(24)(24)θ:=argmaxθ∑i=1m∑z(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i))

 主要思想:
 有一个不能直接进行求导的似然函数,给定初始参数,我们找到在初始参数下紧挨着似然函数的下界函数,在下界上求极值来更新参数。然后以更新后的参数为初始值再次进行如上操作,这就是EM进行参数估计的方法。
 似然函数不一定只有一个极值点,因此EM算法只能求出局部极值,所以可以采用多次选取初始参数进行求参数,最后取最优参数。
 在EM的一般形式中,我们可以将目标函数看做是:
 
j(Q,θ)=i=1mz(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i))(25)(25)j(Q,θ)=∑i=1m∑z(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i))

 这样,EM 算法就可以看做是对目标函数的坐标上升过程,在 E-step 中,θθ不变,调整Q使函数变大;在 M-step 中,Q不变,调整θθ使目标函数变大。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值