EM算法

现在班级里有50个男生,50个女生,且男生站左,女生站右。我们假定男生的身高服从正态分布 \(N(\mu _{1},\sigma _{1}^{2}))\),女生的身高服从另一个正态分布:\(N(\mu _{2},\sigma _{2}^{2}))\)。这时候我们可以利用极大似然法(MLE),分别通过这50个男生和50个女生的样本来估计这两个正太分布的参数。但是现在,我们让这50个男生50个女生混在一起,当你取出一个样本的时候,你不知道这个样本是男生还是女生。虽然我们拥有100个人的身高数据,但是我们却不知道这100人的性别。这时候的情况就比较尴尬,因为通常来说,我们只有知道了精确的男女身高的正态分布参数,才知道这个人的性别。但是从另一方面考虑,我们只有知道了这个人的性别,才能尽可能准确的估计男女身高的正态分布参数。这时候,我们想到必须从某一点开始,并且用迭代的方法去解决这个问题:我们先设定男女身高分布的几个参数(初始值),然后根据这些参数去判断每一个样本是男生还是女生,之后根据标注后的样本反过来重新估计参数。之后再多次重复这个过程,直到稳定。这个算法也就是EM算法。

假设我们有一个样本集\(\{x^`,x^2,...,x^m\}\),包含m个独立的样本。但是每一个样本\(i\)对应的类别\(z^i\)是未知的(相当于聚类,k-means的本质就是EM算法),也就是隐含变量。所以我们需要估计概率模型\(p(x,z)\)的参数\(\theta\),但是由于里面包含隐变量\(z\),所以很难用最大似然求解,但是如果\(z\)是已知的,那么我们就很容易求解了。

下面我们来建立极大似然函数:
\begin{equation}
l(\theta  )=\sum_{i=1}^{m}log p(x;\theta  )=\sum_{i=1}^{m}log \sum_{z}^{ }p(x,z;\theta ))
\end{equation}
进一步计算可得:
\begin{eqnarray}
\sum_{i}^{ }log p(x^{(i)};\theta)&=&\sum_{i}^{ }log\sum_{z^{(i)}}^{ } p(x^{(i)},z^{(i)};\theta)\quad\quad\qquad\qquad\qquad(1)\\&=&\sum_{i}^{ }log\sum_{z^{(i)}}^{ } Q_{i}(z^{(i)})\frac{p(x^{(i)},z^{(i)};\theta )}{Q_{i}(z^{(i)})}\qquad\qquad(2)\\&\geq&\sum_{i}^{ }\sum_{z^{(i)}}^{ }Q_{i}(z^{(i)})log\frac{p(x^{(i)},z^{(i)};\theta )}{Q_{i}(z^{(i)})}\qquad\qquad(3)
\end{eqnarray}
本质上我们是要最大化(1)式的(对于(1)式,我们回忆一下联合概率密度下某个变量的边缘概率密度函数的求解,注意这里\(z\)也是随机变量。对于每一个样本\(i\)的所有可能类别\(z\)求等式右边的联合概率密度函数和,也就得到等式左边为随机变量\(x\)的边缘概率密度函数),也就是似然函数。但是可以看到里面有“和的对数”,求导形式会非常复杂,所有很难求解得到未知参数\(z\)和\(\theta\)。那么我们是否可以对(1)式做一些改变呢?那么看(2)式,(2)式只是分子分母同时乘以一个相等的函数,还是有“和的对数”,还是非常的难以求解,那么为什么我们还要这样做呢?我们先看(3)式,发现(3)式变成了“对数的和”,那么就很容易求导了。我们注意一下,这里的等号变成了不等号,为什么这样变呢?这就是下面介绍的Jensen不等式大显神威的地方。

Jensen不等式

设\(f\)是定义域为实数的函数,如果对于所有的实数\(x\),\(f(x)\)的二次导数大于等于0,那么\(f\)是凸函数。当\(x\)是向量时,如果其hessian矩阵是半正定的,则\(f\)是凸函数。如果\(f(x)\)的二次导数大于0或者hessian矩阵是正定矩阵,则称\(f\)为严格凸函数。

Jensen不等式表述如下:
如果\(f\)是凸函数,\(X\)是随机变量,那么:\(E(f(X)) >= f(E(X))\)。
特别地,如果\(f\)是严格凸函数,当且仅当\(X\)是常量时,上式取等号。Jensen不等式应用于凹函数时候,不等号方向取反。

回到公式(2),因为\(f(x)=log(x)\)为凹函数,(2)式中\(\sum_{z^{(i)}}^{ } Q_{i}(z^{(i)})[\frac{p(x^{(i)},z^{(i)};\theta )}{Q_{i}(z^{(i)})}]\)是\frac{p(x^{(i)},z^{(i)};\theta )}{Q_{i}(z^{(i)})}的期望(考虑到\(E(X)=\sum x*p(x)\),\(f(x)\)是\(x\)的函数,则\(\E(f(X))=\sum f(x)*p(x)),又\(\sum_{z}^{ } Q_{i}(z^{(i)})=1\),所以就可以得到公式(3)了)。

到这里,现在式(3)就容易地求导了,但是式(2)和式(3)是不等号,式(2)的最大值不是式(3)的最大值,而我们想得到式(2)的最大值,那怎么办?

现在就是发挥我们想象力的时候了,上面的式(2)和式(3)不等式可以写成:似然函数\(L(\theta)>= J(z,Q)\),那么我们可以通过不断最大化这个下界\(J\)来使得\(L(\theta)\)不断提高,最终达到它的最大值。

见上图,我们固定\(\theta\),调整\(Q(z)\)使得\(J(z,Q)\)上升至与\(L(\theta)\)在此点\(\theta\)处相等,然后固定\(Q(z)\),调整\(Q(z)\)使得下界\(J(z,Q)\)达到最大值,然后再固定\(\theta\),调整\(Q(z)\).....直到收敛到似然函数\(L(\theta)\)的最大值\(\theta^*\)。这里有两个问题:什么时候下界\(J(z,Q)\)与\(L(\theta)\)在此点\(\theta\)处相等?为什么一定会收敛?

首先第一个问题,在Jensen不等式中说到,当自变量\(X\)是常数的时候,等式成立。而这里,即:
\begin{equation}
\frac{p(x^{(i)},z^{(i)};\theta )}{Q_{i}(z^{(i)})}=c
\end{equation}
再推导下,由于\(\sum_{z}^{ }Q_{i}(z^{(i)})=1\),则可以得到:分子的和等于c(分子分母都对所有的\(z(i)\)求和:多个等式分子分母相加不变),则:
\begin{equation}
Q_{i}(z^{(i)})=\frac{p(x^{(i)},z^{(i)};\theta )}{\sum_{z}^{ }p(x^{(i)},z;\theta )}=\frac{p(x^{(i)},z^{(i)};\theta )}{p(x^{(i)};\theta )}=p(z^{(i)}|x^{(i)};\theta )
\end{equation}
至此,我们推出了再固定参数后,使得下界拉伸的Q(z)的计算公式就是后验概率,解决了Q(z)如何选择的问题。这一步就是E步,建立\(L(\theta)\)的下界。接下来的M步,就是给定Q(z)后,调整\(\theta\),去极大化\(L(\theta)\)的下界J。

EM算法的整体框架:

优缺点:
要有一些训练数据,再定义一个最大化函数,采用EM算法,利用计算机经过若干次迭代,就可以得到所需的模型。EM算法是自收敛的分类算法,既不需要事先设定类别也不需要数据见的两两比较合并等操作。缺点是当所要优化的函数不是凸函数时,EM算法容易给出局部最佳解,而不是最优解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值