赞
踩
EM算法即期望最大化(Expection Maximization)算法。是一种迭代算法,作为一种数据添加算法,在现在的DL学习中经常见到。
隐变量指的是不可观测的随机变量,我们通常通过可以观测的变量来对隐变量来进行推测。例如我们知道1000个人的身高体重,但是我们并不了解这些样本中的男女比例,对于男女比例来说就是一个隐变量。
对于EM算法简单的说可以理解为以下几步:
目前存在以下的数据:
假设现在有两枚硬币1和2,,随机抛掷后正面朝上概率分别为P1,P2。为了估计这两个概率,做实验,每次取一枚硬币,连掷5下,记录下结果,如下:
其中使用哪种硬币就可以算作是隐变量。
我们首先假设两个硬币向上的概率为0.2和0.7。则在已知样本状况的情况下,在我们假设的概率下,发生的概率(可能性)如下所示:
利用上面这个表,我们可以算出每轮抛掷中使用硬币1或者使用硬币2的概率。比如第1轮,使用硬币1的概率是:
0.00512/(0.00512+0.03087)=0.14
使用硬币2的概率是1-0.14=0.86
依次可以算出其他4轮的概率,如下:
上表中的右两列表示期望值。看第一行,0.86表示,从期望的角度看,这轮抛掷使用硬币2的概率是0.86。相比按照最大似然概率,直接将第1轮估计为用的硬币2,此时的我们更加谨慎,我们只说,有0.14的概率是硬币1,有0.86的概率是硬币2,不再是非此即彼。
这样我们在估计P1或者P2时,就可以用上全部的数据,而不是部分的数据,显然这样会更好一些。
这一步,我们实际上是估计出了z的概率分布,这步被称作E步。
我们按照期望最大似然概率的法则来估计新的P1和P2:
以P1估计为例,第1轮的3正2反相当于
0.143=0.42正
0.142=0.28反
依次算出其他四轮,列表如下:
P1=4.22/(4.22+7.98)=0.35
可以看到,改变了z值的估计方法后,新估计出的P1要更加接近0.4。原因就是我们使用了所有抛掷的数据,而不是之前只使用了部分的数据。
这步中,我们根据E步中求出的z的概率分布,依据最大似然概率法则去估计P1和P2,被称作M步。
最大似然函数为:
其中theta为我们所需要求的未知参数。
式(1)将p (xi) 用边缘分布列反向拆分为联合分布。
接下来,定义隐含变量Z的分布Qi:
我们在(1)式的 ln 里,分子分母同乘一个值,得到(2)式:
接下来需要利用到Jensen不等式和数学期望,在期望方程中,我们用到了
如上公式。套用在(2)式中,我们定义为:
套用到Jensen不等式中,即为:
根据Jensen不等式,其中lnx为凹,公式如下:
接下来我们将(4)式展开,得到如下:
那么,我们可以得到L(θ) 和 (5) 的关系:
我们可以将(5)式看作是 θ 的函数,θ 又是概率模型中的参数,那么上式求得的左式,即为L(θ)的下界。
我们求θ的过程,可以看作图中右移的过程, 在给定θ之后,求Qi的过程,即为上移的过程。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。