1 K-means聚类
聚类问题是一种「无监督学习」,给定训练集
,我们希望将其聚合成几个特定的类。k-means 聚类算法的流程如下:
- 随机初始化「聚类中心」
- 重复以下步骤直至收敛: 对于每个
(训练集大小),令
对于每个
(聚类数量),令
该算法的思想为:先将每个训练样本
分配到距离其最近的中心
,再将每个聚类中心移动到第一步中分配到该中心的样本的均值。
下图可视化了 k-means 算法的运行流程:
为了证明 k-means 算法能否保证收敛,我们定义「失真函数」(distortion function)为:
可以发现 k-means 本质上就是对失真函数进行坐标上升法优化:其内层循环首先保持
不变关于
最小化
,然后保持
不变关于
最小化
。因此,
一定会持续下降,最终达到收敛。一般
和
也会收敛,但理论上存在同时出现多种聚类组合的可能性,使得失真函数的值一样。
失真函数是一个非凸函数,这意味着坐标上升并不能保证其收敛至全局最优,存在收敛到局部最优的可能性。一般情况下这不会发生,可以通过多次运行 k-means 算法,选择最优解来解决这个问题。
2 混合高斯分布
混合高斯分布可以用于软聚类问题,即输出一个样本属于各个类的概率。我们可以将数据的类别看作一个隐含随机变量
,并给出如下假设:
服从多项式分布
- 给定不同的
,
服从不同的高斯分布
使用极大似然法求解该优化问题,可以得到如下的似然函数:
该问题无法求出闭合解。如果
已知,即我们知道每个样本来自于哪个高斯分布,那么极大似然估计的求解是容易的,似然函数如下:
求解的结果是:
该结果与之前的高斯判别分析的结论类似(GDA 的协方差矩阵必须相同)。
3 EM 算法初步
实际上,我们并不知道
的值。我们可以通过 EM 算法进行迭代估计出
从而得到参数,其基本思想如下:
重复以下步骤直至收敛:
- 「E-step」对于每个
,令:
- 「M-step」更新参数:
关于 EM 算法的几点解释:
在 「E-step」 中,给定
,我们使用当前的参数值来计算
的后验概率,即
该概率代表我们对
值的软猜测(即以概率值代替具体的值)。
在 「M-step」 中,参数的更新公式与之前已知
的公式相比,只是把指示函数替换为了概率。
与 K-means 算法相比,EM 算法输出的是样本属于各个类的概率,这是一种软聚类。与 K-means 相似,EM 算法容易陷入局部最优,因此多次尝试不同的初始参数可能是一个好主意。下两节将给出 EM 算法的一般形式,并证明其收敛性。
4 Jensen 不等式
本节将介绍 Jensen 不等式,其在 EM 算法中有着重要的作用。
4.1 函数的凹凸性
在介绍 Jensen 不等式之前,先简单回顾一下函数的凹凸性。对于一个实数域的函数
,其为凸函数的条件为
。如果输入为向量形式,则该条件可推广为其 Hessian 矩阵半正定(
)。
如果
(
),则函数「严格」凸。凹函数的判定条件与凸函数完全相反。
4.2 定理
令
是一个凸函数,
是一个随机变量,则:
如果
严格凸,那么当且仅当
时等号成立(即
为常量)。可以通过下图对该不等式有一个直观的理解:
当
为凹函数时,不等式方向对调,仍然成立。
5 EM 算法
5.1 算法的导出
假定我们有一个包含 m 个独立样本的训练集,我们希望去拟合一个概率模型
,其对数似然函数为:
这里假定
是「离散」变量(连续变量需要使用积分)。
直接最大化
是难以求解的。EM 算法的思想是先构建一个
的下界(E-step),然后去优化这个下界(M-step),达到间接最大化
的目的。
对于每个
,设
是
的某种概率分布(
)。根据期望的定义以及 Jensen 不等式,我们有:
可以看做
的随机变量,其概率分布为
,期望可以通过
得到。
是一个凹函数,应用 Jensen 不等式时注意方向对调。
为了执行 EM 算法,我们需要选择合适的
以保证在当前的参数设置下取到下界,即目前的
值能够使得 (3) 式的等号成立。之前的定理表明等号成立的条件是随机变量为「常数」:
因此只要
和
成比例即可:
实际上,因为
,将其代入上述公式,可以得到:
因此
,从而有:
根据上述推导,我们只需要将
设置为给定
时
的后验分布即可(以
为参数)。
综上所述,EM 算法的具体步骤为:
,令
重复以上两个步骤直至收敛。
5.2 收敛性证明
下面证明该算法的收敛性。假定
和
来自于 EM 算法的两次成功的迭代,那么通过证明
,就可以表明 EM 算法是单调收敛的(对数似然函数单调递增)。
当参数为
时,根据算法步骤,我们令
,这一选择保证了等号成立,即:
而参数
是通过最大化上式的右边部分得出的(更新
),因此有:
(4) 式的得出来源于 (3) 式;(5) 式的得出来源于
是上一步的下界最大化的结果;(6) 式的得出之前已经证明(满足等号成立的条件)。
综上所述,EM 算法可以保证似然函数的「单调收敛」。一个可取的收敛条件是
的增长速度小于某个临界值。
5.3 坐标上升法
如果我们定义:
从之前的推导可以知道
。
那么 EM 算法可以看做是对
的坐标上升法:
最大化
(使等号成立)
最大化
6 混合高斯模型复盘
下面将使用 EM 算法的一般形式来对之前混合高斯模型中的公式进行推导,由于篇幅所限,这里只给出
和
的推导过程。
之前我们得出的参数更新公式如下:
根据 E-step 的定义,我们可以得到:
在 M-step 中,我们需要通过上述三个参数去最大化下式:
我们首先关于
去进行最大化,求导可得:
上述推导首先去除了不相关的项,然后去除了求和符号(只求当前的
的导数),最后合并同类项得到结果。将上式设为 0 求解
,可得:
下面关于
去进行最大化,将与
相关的部分提取出来,可以得到需要最大化的项为:
这里我们还有一个额外的约束条件:
因此,我们需要构建拉格朗日算子:
其中
是拉格朗日乘数,对上式求导可得:
将其设为 0,可得:
由于
,因此
,所以:
7 思维导图