当前位置: 首页 > news >正文

TSMC-1987《Convergence Theory for Fuzzy c-Means: Counterexamples and Repairs》

2. 核心思想

该论文的核心思想是纠正一个在模糊c均值(FCM)算法领域被广泛接受但存在根本性错误的收敛性定理

在1980年,Bezdek 本人曾发表论文,声称FCM算法的迭代序列(或其子序列)总会收敛到目标函数 JmJ_mJm 的一个局部最小值点。这个结论被后续大量研究引用和应用。然而,本文作者通过构造反例证明,这个结论是错误的。

论文的核心思想在于:

  1. 证伪:通过构造具体的反例(Counterexample),证明FCM算法的迭代过程可能会收敛到一个鞍点(saddle point),而非局部最小值。
  2. 修正:提出并陈述了修正后的收敛定理,明确指出FCM迭代序列的极限点(或其子序列的极限点)只能是目标函数 JmJ_mJm局部最小值或鞍点,从而为FCM算法的理论基础“正本清源”。
  3. 警示:目的在于警示学术界停止传播那个错误的收敛结论,以保证后续研究的理论严谨性。

3. 目标函数

FCM算法旨在对数据集 X={x1,⋯ ,xn}⊂RsX = \{x_1, \cdots, x_n\} \subset \mathbb{R}^sX={x1,,xn}Rs 进行模糊聚类,将其划分为 ccc 个簇。其核心是通过最小化一个加权平方误差和的目标函数来实现。

目标函数 JmJ_mJm 定义如下:
Jm(U,V)=∑k=1n∑i=1c(uik)m∥xk−vi∥2 J_m(U, V) = \sum_{k=1}^{n} \sum_{i=1}^{c} (u_{ik})^m \|x_k - v_i\|^2 Jm(U,V)=k=1ni=1c(uik)mxkvi2

其中:

  • U=[uik]∈Rc×nU = [u_{ik}] \in \mathbb{R}^{c \times n}U=[uik]Rc×n模糊划分矩阵uiku_{ik}uik 表示第 kkk 个数据点 xkx_kxk 属于第 iii 个簇的隶属度,满足 uik∈[0,1]u_{ik} \in [0, 1]uik[0,1]∑i=1cuik=1\sum_{i=1}^{c} u_{ik} = 1i=1cuik=1
  • V=(v1,⋯ ,vc)T∈Rc×sV = (v_1, \cdots, v_c)^T \in \mathbb{R}^{c \times s}V=(v1,,vc)TRc×s聚类中心向量viv_ivi 是第 iii 个簇的中心(原型)。
  • m>1m > 1m>1 是一个实数,称为模糊指数(fuzzifier),它控制着隶属度的模糊程度。mmm 越接近1,结果越接近硬聚类(如k-means);mmm 越大,隶属度越模糊。
  • ∥⋅∥\|\cdot\|Rs\mathbb{R}^sRs 空间中的任意由内积诱导的范数(通常为欧氏范数)。

4. 目标函数的优化过程

FCM算法采用交替优化(Alternating Optimization)策略,通过迭代求解目标函数 Jm(U,V)J_m(U, V)Jm(U,V) 的一阶必要条件来逼近其最小值。

优化过程分为两个交替进行的步骤:

步骤1:固定划分矩阵 UUU,优化聚类中心 VVV
UUU 固定时,JmJ_mJm 关于 VVV 的最优解可以通过对 viv_ivi 求偏导并令其为零得到。这给出了更新 viv_ivi 的公式:
vi=∑k=1n(uik)mxk∑k=1n(uik)m,for all i v_i = \frac{\sum_{k=1}^{n} (u_{ik})^m x_k}{\sum_{k=1}^{n} (u_{ik})^m}, \quad \text{for all } i vi=k=1n(uik)mk=1n(uik)mxk,for all i
这个公式表明,新的聚类中心 viv_ivi 是所有数据点 xkx_kxk 的加权平均值,权重为 (uik)m(u_{ik})^m(uik)m

步骤2:固定聚类中心 VVV,优化划分矩阵 UUU
VVV 固定时,JmJ_mJm 关于 UUU 的最优解同样通过求解一阶必要条件得到。对于每个数据点 xkx_kxk,其到各个中心的距离为 dik=∥xk−vi∥2d_{ik} = \|x_k - v_i\|^2dik=xkvi2

  • 非奇异情况dik>0d_{ik} > 0dik>0 对所有 iii 成立):隶属度 uiku_{ik}uik 的更新公式为:
    uik=1∑j=1c(dikdjk)2m−1 u_{ik} = \frac{1}{\sum_{j=1}^{c} \left( \frac{d_{ik}}{d_{jk}} \right)^{\frac{2}{m-1}}} uik=j=1c(djkdik)m121
    这个公式表明,xkx_kxk 对中心 viv_ivi 的隶属度与它到该中心的距离成反比,且受模糊指数 mmm 调控。

  • 奇异情况(存在某个 iii 使得 dik=0d_{ik} = 0dik=0):如果某个数据点 xkx_kxk 恰好位于某个中心 viv_ivi 上(即 dik=0d_{ik} = 0dik=0),则 uiku_{ik}uik 可以任意取值,只要满足 uik≥0u_{ik} \geq 0uik0∑i=1cuik=1\sum_{i=1}^{c} u_{ik} = 1i=1cuik=1,并且对于 djk≠0d_{jk} \neq 0djk=0jjj,有 ujk=0u_{jk} = 0ujk=0。这种情况在实际计算中需要额外的策略(如“打破平局”规则)来确定唯一的 UUU

整个优化过程就是反复执行这两个步骤,直到 UUUVVV 的变化小于预设的阈值。

5. 主要贡献点

  1. 提出反例,证伪错误理论:这是本文最核心的贡献。作者们通过构造两个精心设计的反例(Counterexample I 和 Counterexample II),首次明确证明了FCM算法可能收敛到鞍点。特别是Counterexample I,它证明了鞍点可以存在于模糊划分空间 MfcnM_{fcn}Mfcn 的几何中心 U0=[1/c]U_0=[1/c]U0=[1/c] 之外,这是一个此前未知的重要事实。
  2. 提出修正的收敛定理:基于反例的发现,论文给出了正确的收敛性结论。修正后的定理指出,FCM迭代序列的极限点(或其子序列的极限点)属于解集 Ω\OmegaΩ,其中 Ω\OmegaΩ 包含所有满足以下条件的点 (U∗,V∗)(U^*, V^*)(U,V)
    • U∗U^*UV∗V^*V 固定时最小化 Jm(U,V∗)J_m(U, V^*)Jm(U,V)
    • V∗V^*VU∗U^*U 固定时最小化 Jm(U∗,V)J_m(U^*, V)Jm(U,V)
      这个解集 Ω\OmegaΩ 包含了局部最小值和鞍点,但不包含最大值。
  3. 理论澄清与警示:该论文成功地纠正了领域内一个长期存在的理论错误,为FCM算法的后续理论研究和应用奠定了更坚实、更准确的基础。它提醒研究者在使用FCM时,其结果可能是鞍点,需要结合其他指标或领域知识来评估聚类质量。
  4. 对参数 mmm 的理论启示:Counterexample II(Tucker’s Theorem T)指出,当数据维度 n>2n > 2n>2 时,若模糊指数 m<n/(n−2)m < n/(n-2)m<n/(n2),则存在特定的鞍点。这为选择 mmm 值提供了一个(尽管在实践中可能有限)理论依据。

6. 算法实现过程详解

FCM算法的实现是一个典型的迭代过程,具体步骤如下:

输入:数据集 X={x1,⋯ ,xn}X = \{x_1, \cdots, x_n\}X={x1,,xn},簇的数量 ccc,模糊指数 m>1m > 1m>1,停止阈值 ϵ>0\epsilon > 0ϵ>0

输出:模糊划分矩阵 UUU 和聚类中心 VVV

初始化

  1. 随机初始化模糊划分矩阵 U(0)U^{(0)}U(0),使其满足隶属度约束条件(每列元素和为1)。
  2. 根据 U(0)U^{(0)}U(0) 和公式 vi=∑k=1n(uik)mxk∑k=1n(uik)mv_i = \frac{\sum_{k=1}^{n} (u_{ik})^m x_k}{\sum_{k=1}^{n} (u_{ik})^m}vi=k=1n(uik)mk=1n(uik)mxk 计算初始聚类中心 V(0)V^{(0)}V(0)
  3. 设置迭代次数 k=0k = 0k=0

迭代过程

  1. 更新聚类中心 V(k+1)V^{(k+1)}V(k+1):使用上一轮的划分矩阵 U(k)U^{(k)}U(k),根据公式计算新的聚类中心:
    vi(k+1)=∑k=1n(uik(k))mxk∑k=1n(uik(k))m,i=1,⋯ ,c v_i^{(k+1)} = \frac{\sum_{k=1}^{n} (u_{ik}^{(k)})^m x_k}{\sum_{k=1}^{n} (u_{ik}^{(k)})^m}, \quad i = 1, \cdots, c vi(k+1)=k=1n(uik(k))mk=1n(uik(k))mxk,i=1,,c
  2. 更新划分矩阵 U(k+1)U^{(k+1)}U(k+1):使用新计算出的聚类中心 V(k+1)V^{(k+1)}V(k+1),根据以下规则更新隶属度:
    • 对于每个数据点 xkx_kxk,计算其到所有中心的距离 dik=∥xk−vi(k+1)∥2d_{ik} = \|x_k - v_i^{(k+1)}\|^2dik=xkvi(k+1)2
    • 如果所有 dik>0d_{ik} > 0dik>0(非奇异情况),则使用标准公式:
      uik(k+1)=1∑j=1c(dikdjk)2m−1 u_{ik}^{(k+1)} = \frac{1}{\sum_{j=1}^{c} \left( \frac{d_{ik}}{d_{jk}} \right)^{\frac{2}{m-1}}} uik(k+1)=j=1c(djkdik)m121
    • 如果存在 dik=0d_{ik} = 0dik=0(奇异情况),则需要采用一个确定的策略(如将 uik=1u_{ik}=1uik=1 分配给距离为0的中心,其余为0,或采用其他平局打破规则)来唯一确定 U(k+1)U^{(k+1)}U(k+1) 的第 kkk 列。
  3. 检查收敛:计算划分矩阵或聚类中心的变化量,例如 Δ=∥U(k+1)−U(k)∥\Delta = \|U^{(k+1)} - U^{(k)}\|Δ=U(k+1)U(k)max⁡i∥vi(k+1)−vi(k)∥\max_i \|v_i^{(k+1)} - v_i^{(k)}\|maxivi(k+1)vi(k)
  4. 迭代:如果 Δ<ϵ\Delta < \epsilonΔ<ϵ,则停止迭代,输出 U(k+1)U^{(k+1)}U(k+1)V(k+1)V^{(k+1)}V(k+1) 作为最终结果。否则,令 k=k+1k = k+1k=k+1,返回步骤1。

这个过程不断交替优化 UUUVVV,直至收敛。根据本文的修正理论,最终收敛到的点 (U∗,V∗)(U^*, V^*)(U,V) 是目标函数 JmJ_mJm 的一个局部最小值或鞍点

http://www.dtcms.com/a/363043.html

相关文章:

  • uni-app 实现做练习题(每一题从后端接口请求切换动画记录错题)
  • Nginx的反向代理与正向代理及其location的配置说明
  • 久等啦!Tigshop O2O多门店JAVA/PHP版本即将上线!
  • SpringBoot3 + Netty + Vue3 实现消息推送(最新)
  • B树和B+树,聚簇索引和非聚簇索引
  • 云计算学习100天-第44天-部署邮件服务器
  • vscode炒股插件-韭菜盒子AI版
  • 小白H5制作教程!一分钟学会制作企业招聘H5页面
  • Linux 环境配置 muduo 网络库详细步骤
  • WPF 开发必备技巧:TreeView 自动展开全攻略
  • gbase8s之导出mysql导入gbase8s
  • WebSocket STOMP协议服务端给客户端发送ERROR帧
  • 串口服务器技术详解:2025年行业标准与应用指南
  • 大文件稳定上传:Spring Boot + MinIO 断点续传实践
  • DevOps部署与监控
  • WPF中的DataContext以及常见的绑定方式
  • Zynq开发实践(FPGA之流水线和冻结)
  • FPGA入门-分频器
  • 【Python - 基础 - 工具】解决pycharm“No Python interpreter configured for the project”问题
  • 【踩坑随笔】VScode+ESP-IDF头文件标红但能正常运行
  • 广播电视制作领域,什么是SMPTE标准?
  • vscode使用black对python代码进行格式化
  • 2025年了,学C#上位机需要什么条件
  • Day33 网络编程:OSI/TCP/IP模型、协议族与UDP编程
  • 虚拟继承:破解菱形继承之谜
  • Redis核心数据类型解析——string篇
  • Linux驱动开发学习笔记
  • 【C++框架#1】gflags 和 gtest 安装使用
  • 情况三:已经 add ,并且也 commit 了
  • 10 51单片机之DS1302实时时钟