1. 预备知识
1.1 凸函数的性质
假设定义在实数域上的函数,对于 任意的实数,都有
则函数称为凸函数,反之,为凹函数。(国内外教材对于凸凹函数的定义不同,这里采用国内教材为准)
1.2 Jensen不等式
1.2.1 数学意义
如果函数是凸函数,则有
如果函数是凹函数,则有
1.2.2 几何意义

当为
时,左右两边严格相等。
1.2.3 推广
若存在凸函数,其中有
则有
在概率论中,我们知道对于离散变量的期望有
类比公式则有
1.3 高斯分布与高斯混合分布
1.3.1 高斯分布
说“高斯分布”可能有点不适应,但是,其实高斯分布(Gaussian distribution)就是正态分布(Normal distribution),也称“常态分布”。
若随机变量(总共有
个样本,
)服从一个位置参数为
、尺度参数为
的概率分布,且其概率密度函数为
则称为正态分布。
1.3.2 高斯混合分布
通常在自然界中,随机变量可能有
个高斯分布混合组成,那么,记取自不同高斯分布的概率分别为
,第
个高斯分布的均值为
,方差为
。
注意一点:
- 当随机变量
是
维数据时,均值
和方差
均为一个标量(其中
)
- 当随机变量
是
维数据时,均值
是一个
维的向量,和方差
是一个
的协方差矩阵。为了加以区分,将
记为
。
此时,需要估计的参数包括个
。
因此, 高斯混合模型是指具有如下形式的概率分布模型:
其中,是系数,
,且
是高斯分布密度
。
1.4 隐变量
不能被直接观察到,但是对系统的状态和能观察到的输出存在影响的一种东西。
比如投硬币,规则如下:甲投掷硬币,乙猜测硬币的正反面。甲投硬币的规则如下:A、B、C三枚硬币,A正则选择B,A反选C,B正为1,B反为0;C正为1,C反为0。那么,假设随机变量表示一次试验的观测结果:
或
,随机变量
表示投掷A硬币的结果。如果在实验过程中,乙知道A硬币的结果,则
不为隐变量;若乙不知道硬币A的投币结果,则
为隐变量。
1.5 极大似然函数的概念
1.5.1 极大似然函数的概念
1.5.2 极大似然函数——以高斯分布为例
若给定一组样本,已知它们来自于高斯分布
,试估参数
。



1.5.3 极大似然函数——以高斯混合分布为例
对于高斯混合分布,建立似然函数,分两步走:
- 因为第
个样本属于第
个分布的概率为:
,所以取到第
个样本的概率为:
- 所以,
个样本的似然函数为
对公式取对数有
此时,我们的目标是要找到个高斯分布的
,使得公式
最大
2. EM算法的直观理解
先假设参数,根据参数计算其所属概率,反过来计算已知概率情况下该参数的后验概率,再通过最大似然估计参数,循环往复,直到收敛。
以知乎男女身高分布的例子为例。随机挑选1000个人,测量他们的身高。在这1000个人中,有男性有女性,身高分别服从和
的分布,试着估计
。
-
估计每个样本数据由每个分布组成的比例。对于每个样本
,它由第
个高斯组份所占的比例为
首先假设男孩服从的分布为,女孩服从分布
。将第一个样本
分别带入公式
中,有:
-
其次,假设选择男生分布的概率为
,女性分布的概率为
,带入公式
可以写成
此时,男孩样本上的变化情况为
,女孩样本
上的变化情况为
。
-
对所有样本均重复上述操作。
可得到、
,其中
。第一轮参数估计的结果为:
-
根据公式
所得,重复上述步骤,直到迭代次数完毕为止。

3. EM算法的科学推理
3.1 EM算法问题提出
对于不含隐变量的数据而言,多元高斯分布的似然函数可以写成
一般情况下,我们会对求偏导,但是,
中的函数跟隐变量没有半毛钱关系,但是实际生活中,我们却不得不考虑隐变量,因此,需要稍微变动一下。

3.2 加入了隐变量之后的似然函数
其实前面都是瞎比比,没有卵用,这里才是主题。。。
首先假设,训练集由个高斯混合分布组成。在训练集
(对应上例中的身高)中,给定每个样本具有
个特征值。除此之外,还具有未观测数据
。所以,未观测数据所构成的分布为
,可能的取值(随机变量)为:
,例如,在第
个样本中,
;
;...;
。表示生成样本
的高斯混合成分,取值未知。(对应上例中的性别)。
需要解决的问题:
- 隐变量与高斯混合分布的关系是怎样的?
隐变量与高斯混合分布是一一对应的,隐变量反映了观测数据来自K个高斯混合分布中的哪一个分布。在身高例子中,
说明,第
个变量来自于“男”这个高斯分布。
- 隐变量怎么与公式
结合?
隐变量与观测变量构成联合概率,因此,第
个样本的隐变量与观测变量构成的分布为
3.2.1 明确隐变量,写出似然函数
一般情况下,由于是隐随机变量,不便于直接寻找其参数估计,因此,采用的策略是:计算
的下界,求其下界的最大值,不断重复这个过程,直到找到极值为止。也就是说,其终止条件为当下界函数的极大值与
在该点的取值相等时,则说明该点为
的极大值。
首先是隐随机变量
的某一个分布,且
,则
由于函数是凸函数,则根据公式
,公式
可以改为:
2.2.2 如何构建并求解下界函数?
E-step:
2.1.1节中提到,当下界函数的极大值与在该点的取值相等时,则说明该点为
的极大值。那么,什么时候会出现这种情况呢?
如果公式中的变量
是常数呢,那么,此时等号也成立。此时有
则公式可以改写成
两边同时累加可得
结合公式与公式
可知:
所以,若为给定第
个样本
的条件下,随机变量
的条件概率时,等号成立。(对于身高198的人来说,若求的是男生的参数估计时,需要计算在身高198的条件下,性别是男的概率。
M-step:将参数带入:
那么在高斯混合分布中则有:
公式中:
- 向量
代表第
个样本的特征数据;
- 向量
代表第
个分布的均值;
- 矩阵
代表第
个分布的协方差矩阵;
- 标量
代表第
个样本中隐随机变量的取值(男or女)
- 标量
代表第
个分布
所对应的先验概率
2.2.3 计算参数
、
、
对参数
、
分别求导,矩阵求导参考。
,
为对称矩阵。
-
计算参数
。
令求导结果为,则有
-
计算参数
。
-
计算参数
。
在和
已知的情况下,且
,有
。因此,目标函数
可化简为:
引入拉格朗日算子:
对求偏导,则有:
令公式,则有:
所以
综上所述:
2.3 EM算法的缺点
- 对先验的依赖性比较强
- 没有办法收敛到全局最值,仅能收敛到极值。
3. 流程图

4. 参考文献
《西瓜书》
《统计学习方法》
《人人都懂EM算法》
What is the expectation maximization algorithm?
网友评论