聚类,混合模型,和EM算法

无监督学习任务:聚类(Clustering)

K-均值(K-mean)

混合高斯模型(Gaussian Mixture Models, GMM)

EM算法(Expectation-Maximization Algorithm)

评价指标(Evaluation Metrics)

(本文参考朱军老师的《概率机器学习》)

聚类(Clustering)

在有监督的分类问题中,训练数据由若干数据点及他们所属的类别组成,学习的目标是预测新数据应该分到其中哪一类。但对于无标签的数据(尤其是现在大数据时代的大多数数据),可以直接依据其特征本身的分布或特点进行分类(分簇,cluster),这就是聚类作为最开始的一大无监督学习任务(聚类和降维)的核心思想。

更具体的,为了将数据集分为不同的等价类,可以基于数据的 \(L_2\) 欧式空间距离(\(L_1\) 曼哈顿距离、\(L_\infty\) 切比雪夫距离、余弦距离、马氏距离),也可以基于如数据之间的其他相似性作为等价类。

类别之间除了同级关系,还可以是嵌套的层级关系(层级聚类,hierarchical clustering)。分类除了硬性的将每个数据点仅划分到一类,也可以软性的划分到多类。

从另一个角度来看,聚类还可以划分为:

  • 基于连接(层次聚类)
  • 基于中心点(K-均值)
  • 基于概率分布(高斯混合模型)
  • 基于密度
  • 基于图

等。

K-均值(K-mean)

K-均值假设数据可以根据欧氏距离划分为不同的类,并且每个类有一个质心(centroid)。

于是,根据这个想法,为了找出真实质心,可以进行一下流程:

  1. 初始化:随机选择 \(K\) 个质心。
  2. 分配 (Assignment):计算每个点到质心的距离,归入最近的簇。
  3. 更新 (Update):重新计算每个簇的平均值作为新质心。
  4. 重复步骤2-3,直到质心不再变化或达到最大迭代次数。

可以看到,此算法收敛当且仅当簇内平方误差和收敛到最小: \[ J \gets \sum_{k=1}^K \sum_{i \in C_k} ||x_i - \mu_k||^2 \] 这是个非凸优化问题(也是为什么算法要用迭代的形式)。

由于目标函数的非凸性,算法会收敛到局部最优,为此,可以选取不同的初始质心 \(\{\mu_k\}\) 进行迭代,选的越多接近全局最优的概率越大。

当然,有规律的选初始质心比完全随机肯定更好。 Gonzales 在 1985 年提出了直接选数据点作为质心,并用贪心算法选与上一个质心距离最远的数据点作为下一个中心。Authur 和 Vassilvitskii 在 2007 年提出的改进算法保证了收敛步数不超过 \(O(\log K)\)

可以看到K-均值十分简单有效,但最大的问题是其欧氏距离的假设限制了类分布的形状 - 无法处理畸形或者不规则的非圆类内分布。

混合高斯模型

K-均值作为硬性分类聚类,无法处理软性分类任务(如划分生物信息到计算机和生物两个分类)。为此,可以扩展质心的“点”为更加概率化的分布。

常见的概率分布峰数固定,无法作为任意数量的类别(峰)的概率密度函数。为此,假设有 \(K\) 个不同的概率分布及其概率密度函数 \(p_k(x)\),混合分布是这些分布的线性组合: \[ p(x)=\sum_{k=1}^K \pi_k p_k(x) \] 混合高斯模型就是假设分布都是正态的 \(p_k(x)\sim\mathcal{N}(\mu_k,\Sigma_k)\)。混合高斯模型在扩展点为概率分布的同时,还扩展了类内形状,从仅支持圆变为支持椭圆。

更具体的,假设数据分布为 \(K\) 个高斯(正态)分布的和,其中每个高斯分布的权重(混合系数)是 \(\pi_k\),均值是 \(\mu_k\),协方差矩阵是 \(\Sigma_k\)。概率密度函数可以看到是: \[ p(x) = \sum_{k=1}^K \pi_k \mathcal{N}(x | \mu_k, \Sigma_k) \] 为了学习最优的混合高斯(分布)模型,考虑用最大似然估计: $$

$$

隐变量

可以看到上述概率密度函数过于耦合,并且关于 \(x\) 具体属于哪个类别的信息 \(p(x)\) 难以提供。于是,可以通过引进(类别作为)隐变量 \(Z\) 来给模型提供更多信息: \[ p(X, Z)=p(Z)p(X|Z) \]

EM 算法

期望最大化(Expectation maximization,EM)算法是一种迭代式求解隐变量概率分布模型参数估计的方法,想法和K-均值的算法类似。

!

评论

:D 一言句子获取中...

加载中,最新评论有1分钟缓存...