为什么不使用梯度下降优化 k-means?

机器算法验证 优化 k-均值 期望最大化 损失函数
2022-03-18 07:28:54

我知道k-means通常使用Expectation Maximization进行优化。但是,我们可以像优化其他任何方法一样优化它的损失函数!

我发现一些论文实际上将随机梯度下降用于大规模 k-means,但我无法回答我的问题。

那么,有谁知道这是为什么?是因为期望最大化收敛更快吗?它有什么特别的保证吗?还是历史原因

2个回答

正如 OP 所提到的,可以使用梯度下降来解决 k-means,这在大规模问题的情况下可能很有用。

用于求解 k-means 的 EM 风格算法(即 Lloyd 算法)的流行肯定有历史原因。Lloyd 算法非常流行,以至于人们有时称其为“k-means 算法”,甚至可能不知道存在其他方法。但是,这种受欢迎程度并非不值得。

Bottou 和 Bengio (1995) 表明 Lloyd 算法等效于使用牛顿法优化 k-means 成本函数。在一般优化问题中,像牛顿法这样的二阶方法可以比像梯度下降这样的一阶方法收敛得更快,因为它们利用了有关目标函数曲率的信息(而一阶方法没有)。在对著名的 Iris 数据集进行的一项实验中,他们表明 Lloyd 算法确实比梯度下降算法收敛得更快。在更广泛的数据集上看到这种比较会很有趣。

参考:

Bottou 和 Bengio (1995)k-means 算法的收敛特性。

K-means 聚类是无监督的,最接近使用 EM 的无监督技术是基于模型的聚类(高斯混合模型,GMM)。当许多特征相互关联时,基于 GMM 模型的聚类会出现一个恼人的问题,这会导致基于特征的协方差(相关)矩阵出现近乎奇点。在这种情况下,似然函数变得不稳定,条件指数达到无穷大,导致 GMM 完全崩溃。

因此,放弃 EM 和 kNN 的想法——因为它基于协方差(相关)矩阵进行无监督分析。您对优化的询问与 Sammon 映射以及经典的度量和非度量多维缩放 (MDS) 非常相似。Sammon 映射是基于导数迭代的,而各种形式的 MDS 通常是迭代或一步特征分解,但可以在一步矩阵运算期间进行优化。

再次回顾您的请求:答案是:它已经在 Sammon 映射中完成。