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

本篇博文将详细总结机器学习里面一个非常重要的算法-EM算法

复习Jensen不等式

若f是凸函数
这里写图片描述
凸函数即割线在函数线的上方。

基本Jensen不等式:
f ( θ x + ( 1 − θ ) y ) < = θ f ( x ) + ( 1 − θ ) f ( y ) f(\theta x + (1-\theta)y) <= \theta f(x) + (1-\theta)f(y) f(θx+(1θ)y)<=θf(x)+(1θ)f(y)


θ 1 , θ 2 , θ 3 , . . . . , θ k > = 0 , θ 1 + θ 2 + . . . . + θ k = 1 \theta_1, \theta_2, \theta_3,....,\theta_k >= 0,\theta_1+\theta_2+....+\theta_k = 1 θ1,θ2,θ3,....,θk>=0θ1+θ2+....+θk=1 , 则有
f ( θ 1 x 1 + . . . . + θ k x x ) < θ 1 f ( x 1 ) + . . . . + θ k f ( x k ) f(\theta_1 x_1+....+\theta_k x_x) < \theta_1 f(x_1) +....+\theta_k f(x_k) f(θ1x1+....+θkxx)<θ1f(x1)+....+θkf(xk)

上面是针对离散情况,若对于连续情况可以推得:若有
p ( x ) > = 0   o n   s ∈ d o m ∫ s p ( x ) d x = 1 p(x) >= 0 \ on \ s \in dom \int_s p(x) dx = 1 p(x)>=0 on sdomsp(x)dx=1
, 则可得:
f ( ∫ s p ( x ) x d x ) < = ∫ s f ( x ) p ( x ) d x f \left ( \int_sp(x)xdx \right ) <= \int_s f(x)p(x) dx f(sp(x)xdx)<=sf(x)p(x)dx

即有
f ( E x ) < = E f ( x ) f(Ex) <= E f(x) f(Ex)<=Ef(x)

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

EM算法

EM用于含有隐变量(Hidden variable)的概率模型参数的最大似然估计。

假定有训练集

这里写图片描述

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

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

这里写图片描述

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

这里写图片描述

上图中有两条曲线,上方的曲线为对数似然函数l(θ),我们的任务就是找出一个θ能使对数似然取最大值,一开始先验性的给出一个初值 θ 0 \theta_0 θ0,在这一点处构造出一个比较简单的函数 r ( x ∣ θ ) r(x|θ) r(xθ),这个函数 r r r 保证除了在 θ 0 \theta_0 θ0 点以外,其他的点都小于对数似然函数,即 r < l r<l r<l,如果这个简单的 r r r 函数比较容易求极值,可以利用任何一种办法求函数r的极值,假定在 θ 1 \theta_1 θ1 点处, r r r 求得极大值。那么 A > 0 > B A>0>B A>0>B,然后又在 θ 1 \theta_1 θ1 点处构造一个简单的r函数,重复以上操作,这样就可以找到对数似然函数的 局部极大值,并且找到对应的 θ ∗ \theta_* θ

上面的操作可以归结为两个步骤,并且不断的重复这两个步骤
初始化:先验性的给出一个 θ \theta θ,然后给出一个简单的下界函数,该下界函数只在θ处与对数似然函数相等,其他点处均小于对数似然函数。

  1. 求下界函数 r ( x ∣ θ ) r(x|θ) r(xθ) 的极大值对应的 θ \theta θ

  2. 由第一步得到更新后的 θ \theta θ,构造出对数似然函数l(θ)新的下界函数 r ( x ∣ θ ) r(x|θ) r(xθ),并且这个 r r r 函数只在 θ \theta θ 点处与对数似然函数相等,其他点处均小于 l ( θ ) l(θ) l(θ)

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

Jensen不等式

Q i Q_i Qi z z z 的某一个分布, Q i ≥ 0 Q_i≥0 Qi0 ,有:

这里写图片描述
这里写图片描述

p ( x i , z i ; θ ) Q i ( z i ) \frac{p(x^i,z^i;\theta)}{Q_i(z^i)} Qi(zi)p(xi,zi;θ)看作一个整体 X X X,那么
∑ z i Q i ( z i ) p ( x i , z i ; θ ) Q i ( z i ) \sum_{z^i}Q_i(z^i) \frac{p(x^i,z^i;\theta)}{Q_i(z^i)} ziQi(zi)Qi(zi)p(xi,zi;θ)
表示对 X X X Q i ( z i ) Q_i(z^i) Qi(zi)这样一个分布上的期望

下式中的f函数为凸函数,满足Jensen不等式中的
这里写图片描述

log函数是凹函数,故大于等于号改为小于等于,可得:
这里写图片描述这里写图片描述

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

为了使等号成立:

这里写图片描述

那么分子分母呈正相关关系:
这里写图片描述

又因为Q为Z的分布,即加和为1,即要使得:
这里写图片描述

那么可以令:
这里写图片描述

这样可满足:
这里写图片描述

故当
Q i ( z i ) = p ( z i ∣ x i ; θ ) Q_i(z^i) = p(z^i|x^i;\theta) Qi(zi)=p(zixi;θ)时,下界函数与对数似然函数在 θ \theta θ 处相等。

EM算法整体框架

这里写图片描述

其中E步更新 Q Q Q,使得下界函数与对数似然函数在 θ \theta θ点处相等;而M步是在求下界函数的极大值,并且更新 θ \theta θ。这两步不断的循环重复。最终使得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调参

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

  • f u l l : full: full每一个类都有自己一般的协方差矩阵。
  • t i e d : tied: tied所有类共享相同的协方差矩阵。
  • d i a g : diag: diag每一个类都有自己的对角协方差矩阵。
  • s p h e r i c a l : spherical: spherical每一个类的样本的协方差矩阵的对角值都相等。

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

那么应该选择上面四种协方差呢?
记: L L L 为某模型下样本的似然函数值, k k k 为模型中未知参数的个数(维度), n n n 为样本个数,下面有两个评判准则:

A I C = − 2 l n L + 2 k AIC =-2ln L+2k AIC=2lnL2k
B I C = − 2 I n L + ( L n n ) k BIC=-2In L+(Ln n)k BIC=2InL+(Lnn)k

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

这里写图片描述

总结

其中m表示样本个数,这里写图片描述 表示第i个样本属于第 j 个高斯分布的概率,可利用EM算法求出混合高斯模型中第j个高斯分布的先验概率这里写图片描述,第j个高斯分布的期望(多元时为向量)这里写图片描述,第j个高斯分布的方差(多元时为协方差) 这里写图片描述

E-steps:

这里写图片描述

M-steps:
这里写图片描述

这里写图片描述

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值