您的位置:首页 > 其它

机器学习-->无监督学习-->EM算法

2017-08-10 23:19 260 查看
本篇博文将详细总结机器学习里面一个非常重要的算法-EM算法

复习Jensen不等式

若f是凸函数



凸函数即割线在函数线的上方。

基本Jensen不等式:





,则有



上面是针对离散情况,若对于连续情况可以推得:若有

on





,则可得:



即有



其中E f(x) 表示f(x)在p(x)这样一个分布下的期望。

EM算法

前面的博文中讲到了K-means聚类算法,能够非常方便的 将未标记的样本分成若干簇,但无法给出某个样本属于该簇的后验概率。有时候我们将样本归为某类时,需要知道归为该类的概率为多大?

假定有训练集



包含m个独立样本,希望从中找到该组数据 的模型p(x,z)的参数。

通过最大似然估计建立目标函数:



z是隐随机变量,不方便直接找到参数估计。 策略:计算l(θ)下界,求该下界的最大值; 重复该过程,直到收敛到 局部最大值



上图中有两条曲线,上方的曲线为对数似然函数l(θ),我们的任务就是找出一个θ能使对数似然取最大值,一开始先验性的给出一个初值

,在这一点处构造出一个比较简单的函数r(x|θ),这个函数r保证除了在

点以外,其他的点都小于对数似然函数,即

,如果这个简单的r函数比较容易求极值,可以利用任何一种办法求函数r的极值,假定在

点处,r求得极大值。那么A>0>B,然后又在

点处构造一个简单的r函数,重复以上操作,这样就可以找到对数似然函数的 局部极大值,并且找到对应的



上面的操作可以归结为两个步骤,并且不断的重复这两个步骤

初始化:先验性的给出一个θ,然后给出一个简单的下界函数,该下界函数只在θ处与对数似然函数相等,其他点处均小于对数似然函数。

求下界函数r(x|θ)的极大值对应的



由第一步得到更新后的

,构造出对数似然函数l(θ)新的下界函数r(x|θ),并且这个r函数只在

点处与对数似然函数相等,其他点处均小于 l(θ)。

显然问题的关键在于如何给出下界函数r(x|θ),这是最难的部分。

Jensen不等式

令Qi是z的某一个分布,Qi≥0,有:







看作一个整体X,那么

表示对X在

这样一个分布上的期望

下式中的f函数为凸函数,满足Jensen不等式中的



log函数是凹函数,故大于等于号改为小于等于,可得:





那么等号在什么情况下成立呢?我们还是从凸函数的性质说起,在凸函数中,割线始终在函数线的上方,只有在x是某一个定常数时,即割线为函数线上一个定点时,割线上的函数值才与函数线函数值相等。

为了使等号成立:



那么分子分母呈正相关关系:



又因为Q为Z的分布,即加和为1,即要使得:



那么可以令:



这样可满足:



故当

时,下界函数与对数似然函数在

处相等。

EM算法整体框架



其中E步更新Q,使得下界函数与对数似然函数在θ点处相等;而M步是在求下界函数的极大值,并且更新θ。这两步不断的循环重复。最终使得M步下界函数的最大值与对数似然函数的局部极大值相等。

坐标上升

EM算法可以看作一个关于Q,θ的函数 J(Q,θ):



从上面的推导,我们知道 J(Q,θ)<=l(θ),其中J(Q,θ)可以看作是坐标上升,在M步求得最大化时对应的θ,然后固定θ,在E步求得该θ对应的Q。不断的重复以上操作。

利用EM算法推导GMM

随机变量X是有K个高斯分布混合而成,取各个高斯分布的概率为

,第i个高斯分布的均值为μi,方差为Σi。若观测到随机变量X的一系列样本x1,x2,…,xn,试估计参数

,μ,Σ。


E-step




表示第i个样本属于第 j 个高斯分布的概率,k 为混合高斯分布中各种高斯分布的种数,则有



M-step

在E步得出更新后的Q(z)的分布。

将多项分布和高斯分布的参数带入:



其中

已确定了属于第j个高斯分布,故其只与μ,Σ有关;而

表示第i个样本属于第j个高斯分布的概率,只与其对应的先验概率

有关,并且等于

。其中

服从

的多元高斯分布。

由此上式可推得:



在M步中需要对对数似然函数求最大值,并且找出其对应的参数

,μ,Σ,故对各参数求导数,其导数为0时对应的参数即为所估计的参数。

对均值求导:



对于矩阵A,则有

,若A为对称阵,则结果为2Ax。有关矩阵求导请看机器学习–>矩阵和线性代数

而上式中的

为协方差矩阵,对称矩阵,故

为对称矩阵。那么上式可推得:



令上式等于0,

与i无关可以约去,则解的均值:



同理对方差Σ求偏导,使其导为0可得:



还需要对

求偏导,做法和上面略有不一样。

考察M-step的目标函数,对于

,删除常数项



得新的目标函数:



上面过程相当于简化了目标函数,删除的部分在求导以后肯定也会去掉。

那么直接对

求偏导吗?不是,因为

是一个概率分布,即有约束条件

。所以应该利用拉格朗日乘子法得:



可能有人会问不是还有不等式约束吗?

,注意目标函数里面有一项

,这就说明在可行域上已经确定了

。在该目标函数求出来的

一定大于0。

于是求偏导,等于0 :



GMM调参

这里假设有三个高斯分布组成的高斯混合模型的数据样本,假设样本是三维的,那么对于每个类来说,服从(ui,σi),其中u,σ 都是三维的,现在只考虑3∗3 的协方差矩阵,有四种情况:

full:每一个类都有自己一般的协方差矩阵。

tied:所有类共享相同的协方差矩阵。

diag:每一个类都有自己的对角协方差矩阵。

spherical:每一个类的样本的协方差矩阵的对角值都相等。

通常选择 diag, tied可以用来防止过拟合。

那么应该选择上面四种协方差呢?

记:L 为某模型下样本的似然函数值,k 为模型中未知参数的个数(维度),n 为样本个数,下面有两个评判准则:

AIC=−2lnL+2k

BIC=−2InL+(Lnn)k

其实就相当于在损失函数后面加上一个正则项而已。



总结

其中m表示样本个数,

表示第i个样本属于第 j 个高斯分布的概率,可利用EM算法求出混合高斯模型中第j个高斯分布的先验概率

,第j个高斯分布的期望(多元时为向量)

,第j个高斯分布的方差(多元时为协方差)



E-steps:



M-steps:





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: