EM算法与GMM
来源:互联网 发布:c语言加法编程自定义 编辑:程序博客网 时间:2024/05/16 12:19
1. EM算法提出
- 假设有训练集
{x(1),x(2),...,x(n)} ,x(i) 为一个样本的特征向量,目的是求出该组数据的模型P(x|θ) 的参数θ ,从而确定该模型P - 当
P(x|θ) 不好求时,考虑引入一个隐含变量z ,然后进行求解 - 然后通过极大似然估计建立目标函数,是EM算法的性能指标,最后
P(x,z|θ) 可以求出,求θ maxθl(θ)=∑i=1mlogP(x(i)|θ)=∑i=1mlog∑z(i)P(x(i),z(i)|θ)
2. 利用Jensen不等式对目标函数进行变形
- 假设
Qi 是z 的某个分布,因为隐含变量的存在不能直接计算最大似然,所以可以不断优化似然函数的下界来得到最大似然,于是使用Jensen不等式,利用Jensen不等式可得:当∑ilogP(x(i)|θ)=∑i=1mlog∑z(i)P(x(i),z(i)|θ)=∑i=1mlog∑z(i)Qi(z(i))P(x(i),z(i)|θ)Qi(z(i))>=∑i∑z(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),θ) - 由此目标函数变换为:
maxθ∑i∑z(i)Qi(z(i))logP(x(i),z(i)|θ)Qi(z(i)) Qi(z(i))=P(z(i)|x(i),θ)
3. EM算法框架
- 初始化各个参数
- E-step: 在给定参数条件下,求解样本属于各个类别的概率
Qi(z(i)) ,共len(sample)∗len(z) 个Qi(z(i)):=P(z(i)|x(i);θ) - M-step: 固定
Qi(z(i)) ,求解, 有点像KL散度,作为模型的损失函数?θ:=argmaxθ∑i∑z(i)Qi(z(i))logP(x(i),z(i)|θ)Qi(z(i)) θ:=argminθ∑i∑z(i)Qi(z(i))logQi(z(i))P(x(i),z(i)|θ) - 重复迭代,直到收敛
4. 高斯混合模型(GMM)
- GMM用于聚类,得到每个样本点属于各个类别的概率,假设:模型由K个高斯模型混合生成
- 隐含变量z:样本属于第几个高斯分布
- 步骤(a. 根据当前参数指定隐变量概率分布,b. 根据概率分布重新估计参数)
- 初始化参数,共K个高斯模型,每个高斯有属于该高斯的概率
ϕk ,高斯均值uk 和方差Σk ,θ={ϕ,u,Σ} ,共K∗3 个参数 - 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) - M-step: 求解K个高斯模型的参数:
θ:=argmaxθ∑i∑z(i)Qi(z(i))logP(x(i)|z(i);u,Σ)P(z(i)=j;ϕ)Qi(z(i)) - M-step对每个参数转化为凸优化问题再求偏导,另其=0,得到模型参数,其中公式是关于
u 和Σ 的无约束凸优化问题,直接求导可得最大值,ϕ 是有约束最优化问题,用拉格朗日乘子法求,加入约束条件∑jϕj=1 - 循环迭代
- 初始化参数,共K个高斯模型,每个高斯有属于该高斯的概率
- GMM性能评价指标, EM的极大似然估计
l(θ)=∑i=1mlog∑z(i)P(x(i),z(i);θ)=∑i=1mlog∑z(i)P(x(i)|z(i);u,Σ)P(z(i);ϕ)=∑i=1mlog∑jkN(x(i)|uj,Σj)ϕj - GMM型优点:
- 容易理解,每个样本看作是多个分布的加权组合
- 速度快, EM算法时间复杂度是
O(tkn) , t:迭代次数,k:高斯个数,n:样本个数 - 学术上直观:最大似然概率
- 各种分布可用高斯分布拟合
- GMM缺点:
- 初始化要慎重,容易陷入局部最优
- 需要指定K的个数
0 0
- EM算法与GMM
- GMM与EM算法(一)
- GMM与EM算法(二)
- GMM与EM算法(零)
- EM算法与GMM的训练应用
- GMM及EM算法
- GMM的EM算法实现
- GMM的EM算法实现
- 基于EM的GMM算法
- GMM的EM算法实现
- GMM的EM算法实现
- GMM的EM算法实现
- GMM的EM算法实现
- GMM的EM算法实现
- GMM的EM算法实现
- EM算法解决GMM问题
- GMM的EM算法实现
- 从 GMM 到 EM 算法
- 死锁
- WebServices 简单安全验证以及调用频率限制
- Naive Bayes
- Raptor1
- K-means
- EM算法与GMM
- 求值
- JAVA开发环境安装及配置
- 第五周:Raptor:选择结构。
- Spring之AOP(二)---前置通知
- 5-计算圆的周长
- C++并发编程2——为保护数据加锁(一)
- 多线程的而应用场景(同时干多件事情)
- hive sql优化-join Mapjoin Group by