短文一篇:坐标下降/K-means算法收敛性

本文通过单调收敛定理,简洁地证明了K-means算法的收敛性。首先,证明了每次迭代中,损失函数单调下降;其次,证明了损失函数有下界。这一过程不仅降低了损失函数,而且在每一步限制条件下达到了极值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查了一下网上的收敛性证明,看的我头大,我觉得原因就是那些博客都是抄来抄去的,理解的也不一定到位。

此处来简单清晰的证明一下,原理就用数学上的单调收敛定理之一:举个例子,如果一个实数序列是递减且有下界,则它的最大下界就是它的极限。
单调收敛定理的证明,数学教材上(数理统计相关的书应该有)。

换句话说,只要证明迭代算法:1)单调;2)有界,就可以说明目标函数最终一定会收敛,当然收敛数值不一定是这个界。

再举个例子,比如一个函数每次迭代都递减,且这个函数恒大于0,经过无数次迭代,函数就会收敛,收敛值一定不小于0

好了,定理的解释就到这里,怎么证明和理解都是数学教材上的,也可以网上查到不多说了。

这一系类优化思路,本质上通俗说是优化函数min f(x1,x2,...xn)min\ f(x_1,x_2,...x_n)min f(x1,x2,...xn)时,每次固定一部分参数,然后把另外参数当做变量求极值/下降,然后变动的参数固定住,原本固定的参数当做变量去求极值/下降。西瓜书讲SVM的啥啥啥smo算法就是这个逻辑。

仍然不耍公式,但是我想应该很清晰,公式自己纸上画画应该轻松,当然严谨会丢失一些,道理是一样的!

下面以K-means来说说收敛性,直观一些,就以平方损失和为例,问题:

min J(u1,u2,...uk) = 1/2∑i=1m∑j=1k(xi−uj)2min\ J(u_1,u_2,...u_k)\ =\ 1/2\sum_{i=1}^{m}\sum_{j=1}^{k}(x_i-u_j)^2min J(u1,u2,...uk) = 1/2i=1mj=1k(xiuj)2
求驻点
uj=1/Nj∑i=1Njxiu_j =1/N_j\sum_{i=1}^{N_j}x_iuj=1/Nji=1Njxi,其余类中心同理可得

文字表述:找到k个中心,使得m个点到这k个中心的距离整体最小

1.先证明每次迭代,损失函数在单调下降

咱们来看下分解步骤:
(1)更新m个点的归属类别:将m个点归属到已有的k个中心,其中的判定就是离哪个中心点近,就归属到那一类,此时损失函数为J0(u1,u2,...uk)J_0(u_1,u_2,...u_k)J0(u1,u2,...uk)
这里想想,在中心确定的情况下,如果不归属到最近的中心,归属到其他中心,此刻损失函数假设为J1(u1,u2,...uk)J_1(u_1,u_2,...u_k)J1(u1,u2,...uk)一定有J0(u1,u2,...uk)≤J1(u1,u2,...uk)J_0(u_1,u_2,...u_k)\leq J_1(u_1,u_2,...u_k)J0(u1,u2,...uk)J1(u1,u2,...uk)

方便理解下,举个例子(公式自己也好写,我敲latex太不熟练),比如其中m-1个点都归属到最近的中心了,某一个点没有归属到最近中心,那么如果把这个点放到最近的那个中心,损失函数是不是就降低了呢?

也就是说,这个步骤实现了一次坐标下降,也就是在固定中心时,通过判断m个点的最近归属,降低了J(u1,u2,...uk)J(u_1,u_2,...u_k)J(u1,u2,...uk)

(2)在步骤(1)的基础上,这个时候归属类别已经确定了,此时的损失函数为J0(u1,u2,...uk)J_0(u_1,u_2,...u_k)J0(u1,u2,...uk),这里假设第一个类别有N1N_1N1个点,中心为uju_juj,这个类别的损失函数部分为1/2∑i=1N1(xi−u1)21/2\sum_{i=1}^{N_1}(x_i-u_1)^21/2i=1N1(xiu1)2
不难证明不等式:
1/2∑i=1N1(xi−u1)2≥1/2∑i=1N1(xi−xave)21/2\sum_{i=1}^{N_1}(x_i-u_1)^2\geq1/2\sum_{i=1}^{N_1}(x_i-x_{ave} )^21/2i=1N1(xiu1)21/2i=1N1(xixave)2其中xavex_{ave}xaveN1N_1N1个点的均值中心。

(展开,移到左边,恰好可以配成平方和形式,可以拿N1=2N_1=2N1=2这种简单情况试试)

也就是说,固定归属类别,通过把均值中心作为类别中心,降低了J(u1,u2,...uk)J(u_1,u_2,...u_k)J(u1,u2,...uk)

重复(1)和(2),另外其实这每一步不仅仅是降低了J(u1,u2,...uk)J(u_1,u_2,...u_k)J(u1,u2,...uk),而且是在那一步限制条件下,最大化降低,求了极值

2.再证明有界

emmm,J(u1,u2,...uk)≥0J(u_1,u_2,...u_k) \geq0J(u1,u2,...uk)0

emmm,单调,有界,收敛。结束

我觉得对于理解算法核心的人来说,应该比那些疯狂的公式推导足够让人理解了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值