EM算法
极大似然函数
- 在LR算法中,其目标函数就是使用极大似然估计 使得该最大
然而在EM算法中 也是使用极大似然估计(加入了隐变量),极大似然估计就是知道样本出现的分布,求使得该分布出现最大的参数。
2 这样可以给定参数的一个初始值,使用迭代的方式进行求解。如下图所示;有两个硬币,但是每个硬币正面向上的概率都不一样。先假设A,B朝上的概率,然后根据现在已经出现的样本,去计算在该参数,该样本下,出现的概率,然后计算出期望,感觉最后得出的期望更新参数。最后参数的值不怎么变化了,就停止迭代。
EM算法的推导
jensen不等式:F(x)如果是凸函数,那么E(f(x))>f(E(x)),如果是凹函数的话,反过来。最优化课本上的内容 好好想想。
上图中 z是隐变量 ,Q(z)表示z的分布,即z的概率值,例如:如果隐变量 z表示男女,那么Q(男)=1/2
继续向下推导:
在“结论”那个公式中 考虑了所有的样本点,不等式左边是优化目标,使得他最大化;不等式右边是左边的下界。
那么什么时候上边的等式会是等式呢?即jensen不等式的等式成立,那便是f(x)=C 即当他是常数的时候。
看下面的推导:
在上图中,由Y是常数,以及Q(z)的分布式概率和是1,得到倒数第2行的公式。
所以C就是等于对p(x,z,;&)的求和;那么z的分布是什么,z的分布不就是在参数下Xi放生的情况下,z发生的概率吗?简言之,就是第i个数据来自zi的分布。例如,一个人的身高是170,它来自男生的概率,和女生的概率。
看下面的公式:
通过上图公式,便证明了 EM算法中 E-step的合理性。即我们的目标是使得极大似然最大化,但是这里有个隐变量,对它的求解呢,使用了迭代的方式,怎么迭代呢,那就是先给个隐变量个概率,根据先有样本计算出zi的概率,然后多有样本对应的zi加和,更新概率。
下面是EM算法的流程:
GMM(高斯混合模型)
高斯混合模型呢,就是数据可以被看做是高斯分布,但是呢 这些数据是由多个高斯分布模型生成的。比如,一群人,有男有女。男生的身高符合一个高斯分布,女生的身高也是符合高斯分布。我们可以使用EM算法算出连个高斯分布的模型参数,那么当有一个新的样本来的时候,可以分别代如这两个高斯模型中,哪个概率大,那么这个test样本就属于哪一类(boy or girl)。