EM算法与GMM

来源:互联网 发布:c语言加法编程自定义 编辑:程序博客网 时间:2024/05/16 12:19

1. EM算法提出

  1. 假设有训练集{x(1),x(2),...,x(n)}x(i)为一个样本的特征向量,目的是求出该组数据的模型P(x|θ)的参数θ,从而确定该模型P
  2. P(x|θ)不好求时,考虑引入一个隐含变量z,然后进行求解
  3. 然后通过极大似然估计建立目标函数,是EM算法的性能指标,最后P(x,z|θ)可以求出,求θ
    maxθl(θ)=i=1mlogP(x(i)|θ)=i=1mlogz(i)P(x(i),z(i)|θ)

2. 利用Jensen不等式对目标函数进行变形

  1. 假设Qiz的某个分布,因为隐含变量的存在不能直接计算最大似然,所以可以不断优化似然函数的下界来得到最大似然,于是使用Jensen不等式,利用Jensen不等式可得:
    ilogP(x(i)|θ)=i=1mlogz(i)P(x(i),z(i)|θ)=i=1mlogz(i)Qi(z(i))P(x(i),z(i)|θ)Qi(z(i))>=iz(i)Qi(z(i))logP(x(i),z(i)|θ)Qi(z(i))
    P(x(i),z(i)|θ)Qi(z(i))=c时等号成立,所以可得
    Qi(z(i))=P(x(i),z(i)|θ)zP(x(i),z|θ)=P(z(i)|x(i),θ)
  2. 由此目标函数变换为:
    maxθiz(i)Qi(z(i))logP(x(i),z(i)|θ)Qi(z(i))
    Qi(z(i))=P(z(i)|x(i),θ)

3. EM算法框架

  1. 初始化各个参数
  2. E-step: 在给定参数条件下,求解样本属于各个类别的概率Qi(z(i)),共len(sample)len(z)
    Qi(z(i)):=P(z(i)|x(i);θ)
  3. M-step: 固定Qi(z(i)),求解, 有点像KL散度,作为模型的损失函数?
    θ:=argmaxθiz(i)Qi(z(i))logP(x(i),z(i)|θ)Qi(z(i))
    θ:=argminθiz(i)Qi(z(i))logQi(z(i))P(x(i),z(i)|θ)
  4. 重复迭代,直到收敛

4. 高斯混合模型(GMM)

  1. GMM用于聚类,得到每个样本点属于各个类别的概率,假设:模型由K个高斯模型混合生成
  2. 隐含变量z:样本属于第几个高斯分布
  3. 步骤(a. 根据当前参数指定隐变量概率分布,b. 根据概率分布重新估计参数)
    1. 初始化参数,共K个高斯模型,每个高斯有属于该高斯的概率ϕk,高斯均值uk和方差Σk, θ={ϕ,u,Σ},共K3个参数
    2. E-step: 求解每个样本由第k个组分生成的概率w(i)k,共len(sample)K个参数
      w(i)k=Qi(z(i)=k)=P(z(i)=k|x(i);ϕ,u,Σ)=ϕkN(x(i)|uk,Σk)Kj=1ϕjN(x(i)|uj,Σj)
    3. M-step: 求解K个高斯模型的参数:
      θ:=argmaxθiz(i)Qi(z(i))logP(x(i)|z(i);u,Σ)P(z(i)=j;ϕ)Qi(z(i))
    4. M-step对每个参数转化为凸优化问题再求偏导,另其=0,得到模型参数,其中公式是关于uΣ的无约束凸优化问题,直接求导可得最大值,ϕ是有约束最优化问题,用拉格朗日乘子法求,加入约束条件jϕj=1
    5. 循环迭代
  4. GMM性能评价指标, EM的极大似然估计
    l(θ)=i=1mlogz(i)P(x(i),z(i);θ)=i=1mlogz(i)P(x(i)|z(i);u,Σ)P(z(i);ϕ)=i=1mlogjkN(x(i)|uj,Σj)ϕj
  5. GMM型优点:
    1. 容易理解,每个样本看作是多个分布的加权组合
    2. 速度快, EM算法时间复杂度是O(tkn), t:迭代次数,k:高斯个数,n:样本个数
    3. 学术上直观:最大似然概率
    4. 各种分布可用高斯分布拟合
  6. GMM缺点:
    1. 初始化要慎重,容易陷入局部最优
    2. 需要指定K的个数
0 0
原创粉丝点击