本文共 2170 字,大约阅读时间需要 7 分钟。
本文属于贪心NLP训练营学习笔记系列。从隐变量到EM算法。
传统的数据表示,如图片、文本等是人能直观理解。但是不一定是好的表示,可能有冗余的特征,有噪音等。
是不是转换为低维的空间会更好?
很多算法包括机器学习都是为了寻找一个更好的表示方法。
隐变量生成的例子:
Complete Case :用最大似然MLE来求解
Incomplete Case:使用EM算法
Complete Case :
Incomplete Case:z没有观测到,不能直接最大化,不能写成上面那种
要考虑所有z的可能,这里用的累加实际上就是边缘概率。比较复杂,所以要引入EM算法来进行求解,只能不断地建立ll的下界(E-step),再优化下界(M-step),依次迭代,直至算法收敛到局部最优解。这就是EM算法的核心思想。
EM算法通过引入隐含变量,使用MLE(极大似然估计)进行迭代求解参数。通常引入隐含变量后会有两个参数,EM算法首先会固定其中的第一个参数,然后使用MLE计算第二个变量值;接着通过固定第二个变量,再使用MLE估测第一个变量值,依次迭代,直至收敛到局部最优解。
- E-Step:通过observed data和现有模型估计参数估计值 missing data;
- M-Step:假设missing data已知的情况下,最大化似然函数。
下面用MLE的方式来推导EM,先根据损失函数 写出目标函数:
假设第n 次迭代后得到了 是已知的。那么我们希望下一步找到的新参数
与
差距越大越好.(这里的
就是求
)
然后把隐变量考虑进来:
= 式子a
补充数学背景知识:Jensen不等式(jensen’s inequality),只介绍不证明,我一开始这里没听懂,因为我数学基础太差,老师说大一就学过这个。
若对于任意点集
,若
且
,使用数学归纳法,可以证明凸函数 f (x) 满足:
![]()
如果是凹函数,则不等号方向反向。为了加深印象,我从pdf截个图。插一句,Google 会找到”jensen’s inequality EM“算法的很多课件,都是国外知名大学的PDF,非常值得推荐。
根据Jensen不等式,
(因为log函数凹函数,二阶导数为
,所以使用Jensen不等式时,应用第二条准则:f(E[X])>=E[f(x)])
回到前面的式子,我们上面我们构造了一个类似的这么一个项:
,因为
,所以:
= (这里就是
,然后
)
记做,即:
这样我们就找到了的下界,求最大值的时候,我们可以不断最大化下界,从而使得
最大化。
这里比较抽象,老师没有展开讲,这个课件画个图辅助理解。有两个问题:
1. 什么时候下界与
在此点
处相等?
2.为什么一定会收敛?
证明:一种收敛方法是
不再变化,还有一种就是变化幅度很小,即根据
的值来决定。
=
这里把和求极值的目标无关的去掉。
=
=
根据概率公式:
扩展一下:表示C发生的条件下,AB发生的概率
表示事件B,事件C都发生的条件下,A发生的概率 所以:
![]()
我们观察下,这个式子,前一项是一个z的期望值。数学期望记不清了,看看下图
所以,结合上面的式子,:
以上就是EM算法的形式,它分两个步骤:
求期望:E-step,求z的期望值,就是求在
的条件下的期望。
求极值:M-step,最大化,这个时候z是已知的。相当于Complete Case,使用MLE去求。
pdf还有种写法:
老师说,简单提一下em的一个例子k-means,有谁不知道嘛?我真的不知道啊。
1、先标记两个点,图2
2、根据这两个点计算距离,分类.图3. 3、根据分类,重新计算分类的中心点。图4.回到步骤2,直到完成收敛(点颜色不变)。K均值算法中,有两个未知的东西:
1 变量,代表一个点属于哪个分类,当
=1时,代表
属于第k个分类,当
=0不属于。那么每个样本
的
一个k维向量[1,0,...,0,...0],属于那一个分类那么就是1,其他的都为0.
2 分类的中心点在什么地方?这个我们可以用代表k个分类的各自的中心点坐标。
目标函数表示为:
(有N个样本,每个样本是否属于某个分类)
这里相当于隐变量,
是模型参数。从EM算法的角度来看
E-STEP计算,针对一个n,给定
,(就是知道中心点的情况下,计算一个点到底属于哪个分类)
针对某个点,就是,几何意义就是标出中心点。
M-STEP:估计,已知
。几何意义就是已知一些点为某个分类,就是求平均。
每个点都是通过某个高斯分布生成出来的.
z属于某个分类,如果:z=1,
举例,z为颜色,如果不考虑参数,就是k-means的算法。
在GMM中,每个样本可以用以下数学公式表达
是每个分布的权重,属于隐变量.
是模型的参数.
高斯混合模型,老师说需要单独讲。EM算法是很重要的算法。
转载地址:http://rjcy.baihongyu.com/