一. 为什么引入EM
1. 最大似然估计(MLE)
(1)已知:① 一堆观测数据X
② 数据服从的统计模型
估计:统计模型中的参数
(2)引入MLE:
(3)非凸问题:无法求全局极值,只能求局部极值。
① 梯度下降法; ② 启发式方法; ③ EM算法
2. EM估计
(1)问题:① 观测数据X有缺失
② 难以得知
方法:引入隐含变量Z,得 (可以简化模型,不改变原分布的边缘)
(2)优势:无需调参、编程简单、理论完整
二. EM算法(聚类)
1. 原理
(1)反复局部下限构造:巧妙的构造了一个的下界,通过优化这个相对简单的下界来优化最终目标
(2)启发式的迭代方法:先固定模型参数和观测值估计隐变量(E步);再固定得到的隐变量,将其和观测数据一起通过极大化似然函数来估计模型参数(M步)。依次迭代直至模型参数变化小于指定阈值。
2. 推导
(1)凸函数:对于任意的实数,都有
对于由实数组成的向量,都有矩阵 (半正定)
(2)完整数据:给定m个相互独立的观测数据
对应的未观测到的隐含变量值
(3)似然函数:
加入隐含变量:
(4)设表示该样例隐含变量z的某种分布,且满足,则:
用到 Jensen 不等式:(对数函数为凹函数)
(5)中
Lazy Statistician规则:
① X是离散随机变量,分布律为,则:
② X是连续型变量,他的概率密度为g(x)。则:
(6)局部下限构造:由于,只要不断最大化右侧下界(寻找),使得不断提高,就能在两边取等号时,使左侧达到最大值。若固定θ,那么的值就取决于和。
(7)等式条件:随机变量是常数
即:
两边同时累加:
(8)E-step:
联合概率:
边缘概率:
条件概率:
(9)M-step:已知,上式中只剩一个未知量,因此可以直接使用极大似然法获得一个新的值,再用这个新重新进行E过程,直到收敛。
3. EM算法流程
(1)输入:观察数据、联合分布、条件分布
① 初始化参数的初值 (任意,但敏感)
② E-step:
③ M-step:
④ 重复E、M步骤直到收敛
(2)输出:模型参数
三. EM在高斯混合模型中的应用(Gaussian Misture ,Model)
1. 高斯分布(Gaussian Distribution)
也被称为正态分布(normal distribution),是一种在自然界大量的存在、最为常见的分布。高斯分布的概率密度计算核心在于计算数据点到中心的距离,并且除以标准差将这个绝对距离转化为相对距离,然后通过距离平方的指数衰减计算概率密度。
(1)一维概率密度:
X∼N(μ,σ),其中μ为均值,σ为标准差,σ²为方差
关于μ对称;总面积为1;在μ加减σ处为拐点(先内翻后外翻)
(2)多维联合概率密度:
X∼N(μ,Σ),其中μ为均值,Σ为协方差,|Σ|为行列式
协方差(Covariance)衡量两个变量的总体误差。方差是两个变量相同的特殊情况。协方差矩阵,由于假设了各个维度之间不相关,因此协方差矩阵只有在对角线的位置有值,
2. 高斯混合模型(Gaussian Mixture Model)
(1)定义:通过求解K个高斯模型,并通过一定的权重将K个高斯模型融合成一个模型
(2)概率密度:
:权值因子,第k个模型的先验概率,且(概率密度函数在其作用域内的积分之和必然为1);:第k个高斯模型的概率密度函数
3. 求解GMM模型
(1)极大似然法:
① 似然函数:求样本集出现的联合概率,但无法得知样本到底来源于哪一类的高斯模型。
② 引入隐变量:一个K维二值随机变量
{0,1},且,表示样本x由分模型k抽样产生,共有K种可能,即每一次采样,选择第k个高斯模型的概率为:
③ 根据的取值,确定选择第k个高斯模型进行采样,满足:
④ 样本x的边缘分布:
⑤ 样本集联合概率:
⑥ 对数似然函数:
(2)使用EM算法求解GMM参数
① 单个完全数据的似然函数:设 (第t个观测变量来自第k个高斯分量)
② 所有观测数据的完全数据似然函数:
③ 完全数据的对数似然函数:
④ 设Q函数表示隐含变量的高斯分布:
⑤ 最大化 J 使得上式取等号:
⑥ E-step:假设第j个观测来自第k个component的概率,对进行估计
⑥ M-step:假设我们已经知道隐变量的取值,求偏导后参数估计为
, ,
(N个样本中有多少个属于第k个高斯)
(3)总结:
四. K-均值聚类(K-means clustering)
1. 聚类
(1)类:具有相似性的集合
(2)聚类:将数据集划分为若干类,各个类之内最为相似,各类之间相似度差别尽可能大。
(3)对数据集进行聚类划分,属于无监督学习
2. K-Means算法
(1)定义:用欧式距离作为相似性指标,从而发现给定数据集中的K个类,且每个类的中心是根据类中所有数值的均值得到的,每个类的中心用聚类中心来描述。
(2)算法:
① 随机化初始的k个类别中心,
② E-step:
③ M-step: (示性函数:N个样本有多少个属于第k类)
(将每个类别中心更新为隶属该类别的所有样本的均值)
④ 重复EM,直到类别中心变化小于某阈值。
终止条件:迭代次数,簇中心变化率,最小平方误差MSE
(3)优点
① 对于大数据集,该算法保持可伸缩性和高效率。
② 当簇近似为高斯分布时,它的效果较好。
(4)缺点
① 在簇的平均值可被定义的情况下才能使用,可能不适用某些情况。
② 必须实现给出K(聚类的簇数目),对初值敏感,对噪声和孤立点数据敏感
③ 不适合于发现非凸型的簇或者大小差别很大的簇。
参考:
[2] EM算法存在的意义是什么? - 史博的回答 - 知乎
[3] EM算法推导详解—CSDN
[4] 达观数据陈运文:一文详解高斯混合模型原理_达观数据-CSDN博客_make_ellipse
[5] 详解EM算法与混合高斯模型(Gaussian mixture model, GMM)—CSDN