传统kmeans并不是(局部)最优

(ICML 2025) 《Modified K-means Algorithm with Local Optimality Guarantees》

K-means是广泛使用的聚类算法,尽管它不一定能保证全局最优,但大家都约定速成地认为K-means会收敛到局部最优解。

但其实不然。

定义问题

在提出反例之前我们先提出一些定义。

我们将广泛使用的欧式距离拓展到Bregman 散度。
$$
D_\phi(x,y)=\phi(x)-\phi(y)-<x-y,\nabla\phi(y)>
$$
Bregman散度是借用一个严格凸函数φ(·),该散度即为φ(x)和h(x)的差,其中h(x)为φ(y)在x处的线性近似。

更多的:

两种局部最优的定义:

D-local: Discrete locally optimal solution

即若把某个数据点移动到任意簇后,损失都会升高。

C-local: Continuous locally optimal solution

即在某个数据点的附近一个领域内,无论怎么移动,损失都会升高。

可以看出D-local更强。

反例

点的数量为 N = 5,簇的数量为K = 2,相似度度量为 $D(x, y) =||x-y||^2_2$,给定的数据集和初始中心如下:

x1 = −4, x2 = −2, x3 = 0, x4 = 1.5, x5 = 2.5,
c1 = x3 = 0, c2 = x5 = 2.5
$$
p^\ast=\begin{bmatrix}
1,1,1,0,0\\0,0,0,1,1
\end{bmatrix},c_1^\ast=-2,c_2^\ast=2
$$
但是他并不满足C-local或D-local。

改进

为了满足C-local,我们找数据点 n 满足至少两个或以上的簇中心在可允许误差范围内同样近。修改它的簇为另外的簇。

为了满足D-local,我们检查所有的数据点,遍历移动到其他簇是否损失会降低。


传统kmeans并不是(局部)最优
https://lijianxiong.work/2025/20250615/
作者
LJX
发布于
2025年6月15日
许可协议