Expectation-Maximum(EM算法)
2017-10-14 17:44
218 查看
EM算法原理:
首先它是解决含隐变量(latent variable)情况下的参数估计问题,而求模型的参数时一般采用最大似然估计,由于含有了隐含变量,所以对似然函数参数求导是求不出来的,虽然通过梯度下降等优化方法也可以求解,但如果隐变量个数太多,将会带来指数级的运算。不过我们能知道在隐变量能观察到的情况下,最大似然法很简单,或者在知道参数的情况下,计算它的期望值也很容易。那么自然而然可以想到:
1.固定一组参数,计算该参数下的隐变量的期望值(E步)
2.结合E步求出的隐含变量条件概率,用最大似然法来估计参数(M步)。
重复上面2步直至收敛。可以从上面开篇的图片上快速理解。
公式如下所示:
一起来推导一遍吧:
首先是Jensen不等式:如果f(x)是凸函数,则有:E(f(x))≥f(E(x))
对于m个数据x的参数θ的极大对数似然为:θ=argmaxθ∑i=1mlogP(x(i)|θ)
对于隐变量z,似然函数可改写为:θ=argmaxθ∑i=1mlog∑z(i)P(x(i),z(i)|θ)
引入Qi(z(i)表示隐含变量z的某种分布,它满足的条件是∑zQi(z(i))=1,Qi(z(i))≥0
那么似然函数可变换为:
∑i=1mlog∑z(i)P(x(i),z(i)|θ)=∑i=1mlog∑z(i)Qi(z(i))P(x(i),z(i)|θ)Qi(z(i)))Qi(z(i))
观察到∑z(i)Qi(z(i))P(x(i),z(i)|θ)Qi(z(i))就是P(z(i)|x(i),θ))的期望,所以利用Jensen不等式可得: ∑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=1m∑z(i)Qi(z(i))logP(x(i),z(i)|θ)Qi(z(i))
到这里,相当于求出了一个下界,但是Qi(z(i)的选择可能会有多种,怎么样才算是最好的下界呢?即是当这个大于等于变成等于的时候!根据Jensen不等式,想要等式成立需要满足条件:P(x(i),z(i)|θ)Qi(z(i))=c,c为常数
考虑到Qi(z(i)本身的分布性质,可得:Qi(z(i))=P(x(i),z(i)|θ)∑zP(x(i),z(i)|θ)=P(x(i),z(i)|θ)P(x(i)|θ)=P(z(i)|x(i),θ))
所以可以看出在固定了参数θ后,Qi(z(i)求出后验概率,解决它的选择问题,确定了下界,即E步。然后那么如果能极大化这个下界,不就极大化了对数似然,解决了问题吗?即M步求解下式:
argmaxθ∑i=1m∑z(i)Qi(z(i))logP(x(i),z(i)|θ)
EM算法能保证收敛吗?
证明极大似然单调增加就行了。再次的一起推导吧,即要证明:∑i=1mlogP(x(i)|θj+1)≥∑i=1mlogP(x(i)|θj)
因为:∑i=1mlogP(x(i)|θ)=∑i=1m∑z(i)P(z(i)|x(i),θj))logP(x(i),z(i)|θ)−∑i=1m∑z(i)P(z(i)|x(i),θj))logP(z(i)|x(i),θ))
然后对上式取θj和θj+1再相减,对于前半函数∑i=1m∑z(i)P(z(i)|x(i),θj))logP(x(i),z(i)|θ)是我们M步要优化的部分,一定是增大的。后半部分相减可得:
∑i=1m∑z(i)P(z(i)|x(i),θj)logP(z(i)|x(i),θj+1)P(z(i)|x(i),θj)
在此利用Jensen不等式,该式≤∑i=1mlog(∑z(i)P(z(i)|x(i),θj)P(z(i)|x(i),θj+1)P(z(i)|x(i),θj))=∑i=1mlog(∑z(i)P(z(i)|x(i),θj+1))=0
至此得证。不过正因为EM算法是自收敛的分类算法,所以既不需要事先设定类别也不需要数据见的两两比较合并等操作。只不过缺点是当所要优化的函数不是凸函数时,EM算法容易给出局部最佳解,而不是最优解。
采用EM算法求解的模型有哪些,为什么不用牛顿法或梯度下降法?
蒙特卡罗算法,混合高斯、协同过滤、k-means。
因为梯度下降虽然算法一定会收敛,但是可能会收敛到局部最优,而且求和的项数会随着隐变量的数目指数上升,会给梯度计算带来麻烦。相对来说,EM算法是一种非梯度优化算法。
如何判断函数凸或非凸?
为了得到全局最优,函数的凹凸性很重要。但可惜这是一个NP难问题。
可以通过Disciplined Convex Programming(DCP):基本的凸函数原子库(atom library)和凸性演算规则(convexity calculus rules)
非凸优化问题转化为凸优化问题的方法:
1)修改目标函数,使之转化为凸函数
2)抛弃一些约束条件,使新的可行域为凸集并且包含原可行域
3)狭义的和广义的蒙特卡罗,在足够多的尝试后,几乎一定返回的是全局最优,或至少离全局最优“不那么远”。
用EM算法推导解释Kmeans
k-means是两个步骤交替进行:确定中心点,对每个样本选择最近中心点–> E步和M步。
* E步中将每个点选择最近的类优化目标函数,分给中心距它最近的类(硬分配),可以看成是EM算法中E步(软分配)的近似。
*M步中更新每个类的中心点,可以认为是在「各类分布均为单位方差的高斯分布」的假设下,最大化似然值。
实际上k-means是hard EM算法, 而普通上一般说的EM算法是soft EM。所谓hard就是0-1二分抉择。 而Soft是一个概率,从这里可以再次看出为什么EM用于隐变量说明隐变量是服从某种存在的分布(隐分布)的。
广义EM算法
在上面求下界的推导中,通过观察到∑z(i)Qi(z(i))P(x(i),z(i)|θ)Qi(z(i))就是P(z(i)|x(i),θ))的期望,所以利用Jensen不等式可得的: ∑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=1m∑z(i)Qi(z(i))logP(x(i),z(i)|θ)Qi(z(i))=∑i=1m∑z(i)Qi(z(i))log(P(x(i),z(i)|θ))−∑i=1m∑z(i)Qi(z(i))log(Qi(z(i))=∑i=1m∑z(i)Qi(z(i))log(P(x(i),z(i)|θ))+H(Qi)
这样不等式的右边就变成了自由能!那么E步的理解可以变为固定参数,优化隐分布, M步是固定隐分布,优化参数,即广义EM算法。
上面的式子当然还可以换种变化:≥∑i=1m∑z(i)Qi(z(i))logP(x(i),z(i)|θ)Qi(z(i))=∑i=1m∑z(i)Qi(z(i))logP(x(i)|z(i),θ)P(z(i)|θ)Qi(z(i))=∑i=1m∑z(i)Qi(z(i))logP(z(i)|θ)−KL[Qi(xi)||P(xi|zi,θ)]
没错,可以发现自由能于KL距离的关系,所以固定参数的情况下最优化KL距离,可以知道引入Qi(z(i)满足的条件只能是∑zQi(z(i))=1,Qi(z(i))≥0的P(xi|zi,θk−1)分布,而这是最初推导时给出的隐函数条件。即可以知道广义EM的最优分布情况就是EM算法!!
广义EM的引申特例–VBEM算法
隐分布可不是那么好算的!有限制的隐分布情况。如果隐分布有了先验分布,计算限制等的时候,E步不可能做到无限制的最优, 也就是说KL距离是无法为0。此时 引入变分思想,即VBEM。
广义EM的引申特例–Wake-Sleep算法
广义EM的引申特例–Gibbs Sampling
WS算法是VAE和GAN组合的简化版
KL距离的统一
首先它是解决含隐变量(latent variable)情况下的参数估计问题,而求模型的参数时一般采用最大似然估计,由于含有了隐含变量,所以对似然函数参数求导是求不出来的,虽然通过梯度下降等优化方法也可以求解,但如果隐变量个数太多,将会带来指数级的运算。不过我们能知道在隐变量能观察到的情况下,最大似然法很简单,或者在知道参数的情况下,计算它的期望值也很容易。那么自然而然可以想到:
1.固定一组参数,计算该参数下的隐变量的期望值(E步)
2.结合E步求出的隐含变量条件概率,用最大似然法来估计参数(M步)。
重复上面2步直至收敛。可以从上面开篇的图片上快速理解。
公式如下所示:
一起来推导一遍吧:
首先是Jensen不等式:如果f(x)是凸函数,则有:E(f(x))≥f(E(x))
对于m个数据x的参数θ的极大对数似然为:θ=argmaxθ∑i=1mlogP(x(i)|θ)
对于隐变量z,似然函数可改写为:θ=argmaxθ∑i=1mlog∑z(i)P(x(i),z(i)|θ)
引入Qi(z(i)表示隐含变量z的某种分布,它满足的条件是∑zQi(z(i))=1,Qi(z(i))≥0
那么似然函数可变换为:
∑i=1mlog∑z(i)P(x(i),z(i)|θ)=∑i=1mlog∑z(i)Qi(z(i))P(x(i),z(i)|θ)Qi(z(i)))Qi(z(i))
观察到∑z(i)Qi(z(i))P(x(i),z(i)|θ)Qi(z(i))就是P(z(i)|x(i),θ))的期望,所以利用Jensen不等式可得: ∑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=1m∑z(i)Qi(z(i))logP(x(i),z(i)|θ)Qi(z(i))
到这里,相当于求出了一个下界,但是Qi(z(i)的选择可能会有多种,怎么样才算是最好的下界呢?即是当这个大于等于变成等于的时候!根据Jensen不等式,想要等式成立需要满足条件:P(x(i),z(i)|θ)Qi(z(i))=c,c为常数
考虑到Qi(z(i)本身的分布性质,可得:Qi(z(i))=P(x(i),z(i)|θ)∑zP(x(i),z(i)|θ)=P(x(i),z(i)|θ)P(x(i)|θ)=P(z(i)|x(i),θ))
所以可以看出在固定了参数θ后,Qi(z(i)求出后验概率,解决它的选择问题,确定了下界,即E步。然后那么如果能极大化这个下界,不就极大化了对数似然,解决了问题吗?即M步求解下式:
argmaxθ∑i=1m∑z(i)Qi(z(i))logP(x(i),z(i)|θ)
EM算法能保证收敛吗?
证明极大似然单调增加就行了。再次的一起推导吧,即要证明:∑i=1mlogP(x(i)|θj+1)≥∑i=1mlogP(x(i)|θj)
因为:∑i=1mlogP(x(i)|θ)=∑i=1m∑z(i)P(z(i)|x(i),θj))logP(x(i),z(i)|θ)−∑i=1m∑z(i)P(z(i)|x(i),θj))logP(z(i)|x(i),θ))
然后对上式取θj和θj+1再相减,对于前半函数∑i=1m∑z(i)P(z(i)|x(i),θj))logP(x(i),z(i)|θ)是我们M步要优化的部分,一定是增大的。后半部分相减可得:
∑i=1m∑z(i)P(z(i)|x(i),θj)logP(z(i)|x(i),θj+1)P(z(i)|x(i),θj)
在此利用Jensen不等式,该式≤∑i=1mlog(∑z(i)P(z(i)|x(i),θj)P(z(i)|x(i),θj+1)P(z(i)|x(i),θj))=∑i=1mlog(∑z(i)P(z(i)|x(i),θj+1))=0
至此得证。不过正因为EM算法是自收敛的分类算法,所以既不需要事先设定类别也不需要数据见的两两比较合并等操作。只不过缺点是当所要优化的函数不是凸函数时,EM算法容易给出局部最佳解,而不是最优解。
采用EM算法求解的模型有哪些,为什么不用牛顿法或梯度下降法?
蒙特卡罗算法,混合高斯、协同过滤、k-means。
因为梯度下降虽然算法一定会收敛,但是可能会收敛到局部最优,而且求和的项数会随着隐变量的数目指数上升,会给梯度计算带来麻烦。相对来说,EM算法是一种非梯度优化算法。
如何判断函数凸或非凸?
为了得到全局最优,函数的凹凸性很重要。但可惜这是一个NP难问题。
可以通过Disciplined Convex Programming(DCP):基本的凸函数原子库(atom library)和凸性演算规则(convexity calculus rules)
非凸优化问题转化为凸优化问题的方法:
1)修改目标函数,使之转化为凸函数
2)抛弃一些约束条件,使新的可行域为凸集并且包含原可行域
3)狭义的和广义的蒙特卡罗,在足够多的尝试后,几乎一定返回的是全局最优,或至少离全局最优“不那么远”。
用EM算法推导解释Kmeans
k-means是两个步骤交替进行:确定中心点,对每个样本选择最近中心点–> E步和M步。
* E步中将每个点选择最近的类优化目标函数,分给中心距它最近的类(硬分配),可以看成是EM算法中E步(软分配)的近似。
*M步中更新每个类的中心点,可以认为是在「各类分布均为单位方差的高斯分布」的假设下,最大化似然值。
实际上k-means是hard EM算法, 而普通上一般说的EM算法是soft EM。所谓hard就是0-1二分抉择。 而Soft是一个概率,从这里可以再次看出为什么EM用于隐变量说明隐变量是服从某种存在的分布(隐分布)的。
广义EM算法
在上面求下界的推导中,通过观察到∑z(i)Qi(z(i))P(x(i),z(i)|θ)Qi(z(i))就是P(z(i)|x(i),θ))的期望,所以利用Jensen不等式可得的: ∑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=1m∑z(i)Qi(z(i))logP(x(i),z(i)|θ)Qi(z(i))=∑i=1m∑z(i)Qi(z(i))log(P(x(i),z(i)|θ))−∑i=1m∑z(i)Qi(z(i))log(Qi(z(i))=∑i=1m∑z(i)Qi(z(i))log(P(x(i),z(i)|θ))+H(Qi)
这样不等式的右边就变成了自由能!那么E步的理解可以变为固定参数,优化隐分布, M步是固定隐分布,优化参数,即广义EM算法。
上面的式子当然还可以换种变化:≥∑i=1m∑z(i)Qi(z(i))logP(x(i),z(i)|θ)Qi(z(i))=∑i=1m∑z(i)Qi(z(i))logP(x(i)|z(i),θ)P(z(i)|θ)Qi(z(i))=∑i=1m∑z(i)Qi(z(i))logP(z(i)|θ)−KL[Qi(xi)||P(xi|zi,θ)]
没错,可以发现自由能于KL距离的关系,所以固定参数的情况下最优化KL距离,可以知道引入Qi(z(i)满足的条件只能是∑zQi(z(i))=1,Qi(z(i))≥0的P(xi|zi,θk−1)分布,而这是最初推导时给出的隐函数条件。即可以知道广义EM的最优分布情况就是EM算法!!
广义EM的引申特例–VBEM算法
隐分布可不是那么好算的!有限制的隐分布情况。如果隐分布有了先验分布,计算限制等的时候,E步不可能做到无限制的最优, 也就是说KL距离是无法为0。此时 引入变分思想,即VBEM。
广义EM的引申特例–Wake-Sleep算法
广义EM的引申特例–Gibbs Sampling
WS算法是VAE和GAN组合的简化版
KL距离的统一
相关文章推荐
- EM算法(expectation maximization algorithm)
- Study notes for Expectation Maximum Algorithm
- 机器学习小组知识点20:EM算法(Expectation - Maximization)
- Study notes for Expectation Maximum Algorithm
- EM算法(Expectation Maximization Algorithm)
- EM算法学习(Expectation Maximization Algorithm)
- EM算法(Expectation Maximization Algorithm)
- EM算法(expectation-maximization algorithm)
- EM算法学习(Expectation Maximization Algorithm)
- EM算法(Expectation Maximization Algorithm)详解
- EM算法学习(Expectation Maximization Algorithm)
- EM算法(Expectation Maximization Algorithm)
- EM算法(Expectation Maximization Algorithm )
- EM算法——最大期望算法(Expectation-maximization algorithm)
- EM算法-expectation-maximization
- EM算法(Expectation - Maximization)通俗实例(What is the expectation maximization algorithm?)
- EM算法:Expectation-Maximization
- EM算法(expectation-maximization algorithm)
- Codeforces Round #259 (Div. 2) C - Little Pony and Expected Maximum
- 图解EM算法