0%

LIN Peng_DistributedKmeans_2018

标题:Distributed Consensus-Based K-Means Algorithm in switching multi-agent networks
作者:LIN Peng ·WANG Yinghui ·QI Hongsheng ·HONG Yiguang
机构:Journal of Systems Science and Complexity volume
引用:Lin P, Wang Y, Qi H, et al. Distributed consensus-based k-means algorithm in switching multi-Agent networks[J]. Journal of Systems Science and Complexity, 2018, 31: 1128-1145.

研究问题Research Question

科学问题Science Question

  • 许多聚类算法,如KmeansK-means等,基本上都是集中式的。然而,快速增多的数据和大规模网络所带来的挑战,使得不得不在网络上的不同智能体之间存储和处理数据。例如,在网络监控、无线传感器网络或分布式数据库中,数据便是分布在网络上的。

研究核心Core of the research

  • 本文讨论了在交换式多智能体网络中基于KmeansK-means算法的分布式聚类设计,适用于数据分散存储且数据无法被所有智能体都获得的情况。

  • 作者提出了一种分布式情况下基于共识的算法,即基于双时钟共识的KmeansK-means算法(DCKADCKA)。

  • 在温和的连接条件下,作者证明了DCKADCKA的收敛性,以保证聚类问题的分布式解决方案,即使网络拓扑结构是时变的。

研究意义Research significance

  • 由于可扩展性、鲁棒性和低成本性,多智能体网络中的分布式算法近年来备受关注。但智能体很难在大规模网络中直接获取所有信息,网络中的每个智能体只能基于与邻居之间的信息交换或局部测量来实现全局目标。为了保证所有智能体都为同一个目标工作,基于共识的算法在分布式控制、估计和优化领域得到了普及。

  • 网络连通性在实现多智能体协调和使分布式算法/方法适合或有效处理大数据或复杂网络结构方面发挥着至关重要的作用。

  • 近年来,机器学习由于在知识发现、模式识别和数据挖掘中的各种应用引起了越来越多的研究关注。 数据聚类是用于数据分析的无监督机器学习问题之一,自从提出有效地将数据划分为小的集群以来,它也被大量研究并广泛应用于许多领域。基于数据之间的相似性,分区聚类算法(与分层算法相反)成为重要的研究课题,部分原因是这些算法可以同步获得所有聚类,而不需要分层结构。例如,KmeansK-means算法是最流行的分区聚类算法之一,以其简单性和快速收敛速度而闻名。

现有算法的不足Shortcomings of existing algorithm

  • 大多数现有的分布式 KmeansK-means算法都是针对固定拓扑提出的,并且是在仿真的基础上进行分析,该类算法在链路故障或交换网络连接的情况下可能会失败。

结论Conclusion

  • 本文讨论了多智能体网络的KmeansK-means聚类问题,并针对数据存储在不同智能体或所有智能体不可用的情况,提供了一种全分布式算法。

  • 作者提出了一种基于双时钟共识的KmeansK-means聚类算法(DCKADCKA)来解决聚类问题,通过使智能体在没有全局信息的情况下在共同连接的拓扑结构上达成共识。此外,作者还给出了该算法的收敛性分析,并通过使用各种真实的聚类数据集提供实例,以证明所提出的分布式算法的有效性。


理论与方法Theory and Method

图论

  • G=(V,E)\mathcal{G}=(\mathcal{V}, \mathcal{E}),表示一个在NN个智能体之间共享拓扑的图

    • V=1,2,,N\mathcal{V}={1,2, \cdots, N},表示智能体的集合

    • EV×V\mathcal{E} \subset \mathcal{V} \times \mathcal{V},表示智能体之间的通信链路的集合

      • 如果智能体ii可以直接从智能体hh接收信息,则存在从hhii的有向边,记为(h,i)E(h, i) \in \mathcal{E}

      • 将智能体ii的一度邻居表示为Ni={h(h,i)E}\mathcal{N}_{i}=\{h \mid(h, i) \in \mathcal{E}\}

      • (h,i)E(h, i) \in \mathcal{E}(i,h)E(i, h) \in \mathcal{E},则称图G\mathcal{G}为无向图

  • 一条长度为pp的有向路径是一个非空图 P=(Vp,Ep)\mathcal{P}=\left(\mathcal{V}_{p}, \mathcal{E}_{p}\right) ,形式为 Vp={i1,i2,,ip+1}V\mathcal{V}_{p}=\left\{i_{1}, i_{2}, \cdots, i_{p+1}\right\} \subseteq \mathcal{V}Ep={(i1,i2),(i2,i3),,(ip,ip+1)}Ep\mathcal{E}_{p}=\left\{\left(i_{1}, i_{2}\right),\left(i_{2}, i_{3}\right), \cdots,\left(i_{p}, i_{p+1}\right)\right\} \subseteq \mathcal{E}_{p},其中iksi*{k} s都是不同的

  • 如果对于任意对i,hVi, h \in \mathcal{V},图G\mathcal{G}存在有向边,则称图G\mathcal{G}是强连通的

  • G(s)=(V,E(s))\mathcal{G}(s)=(\mathcal{V}, \mathcal{E}(s))表示在时间上智能体之间的时变通信拓扑,G(s)\mathcal{G}(s)的邻接矩阵记为A(s)RN×NA(s) \in \mathcal{R}^{N \times N},其元素定义如下:

    1. ai,h(s)>0a_{i, h}(s)>0,表示(h,i)E(s)(h, i) \in \mathcal{E}(s),同时也包括智能体ii本身即ai,i(s)>0a_{i, i}(s)>0

    2. ai,h(s)=0a_{i, h}(s)=0,表示智能体hh没有与智能体ii直接连通

集中式聚类

  • 集中式KmeansK-means算法(CKACKA)是一种两步骤(分配步骤和细化步骤)的迭代方法。

  • C(t)={c1(t),c2(t),,cK(t)}C(t)=\left\{c_{1}(t), c_{2}(t), \cdots, c_{K}(t)\right\}表示时间tt时的KK个中心点,集中式聚类算法通过KK个随机中心点C(0)C(0)或仅有一个随机中心点的Kmeans++K-means++算法来进行。

  • 在划分步骤中,每个数据点yijy^j_i被分配到可以由最近的中心点代表的聚类中,即

    θi,kj(t+1)=argminθDi=1Nj=1mik=1Kθi,kjyijck(t)2\theta_{i, k}^{j}(t+1)=\underset{\theta \in \mathcal{D}}{\arg \min } \sum_{i=1}^{N} \sum_{j=1}^{ m_{i} } \sum_{k=1}^{K} \theta_{i, k}^{j}\left|y_{i}^{j}-c_{k}(t)\right|^{2}

    换句话说,即

    θi,kj(t+1)={1, if yij Cluster k0, if yij Cluster k.\theta_{i, k}^{j}(t+1)=\left\{\begin{array}{ll}1, & \text { if } y_{i}^{j} \in \text { Cluster } k \\ 0, & \text { if } y_{i}^{j} \notin \text { Cluster } k .\end{array}\right.

    i=1Nj=1miθi,kj(t+1)\sum_{i=1}^{N} \sum_{j=1}^{m_{i}} \theta_{i, k}^{j}(t+1)i=1Nj=1miθi,kj(t+1)yij\sum_{i=1}^{N} \sum_{j=1}^{m_{i}} \theta_{i, k}^{j}(t+1) y_{i}^{j}分别代表了数据点的大小和数据点的总和,这些数据点在时间t+1t+1时属于第kk个集群。

    为了简单起见,定义:

    mk(t+1)=i=1Nj=1miθi,kj(t+1),uk(t+1)=i=1Nj=1miθi,kj(t+1)yijm_{k}(t+1)=\sum_{i=1}^{N} \sum_{j=1}^{m_{i}} \theta_{i, k}^{j}(t+1),\\u_{k}(t+1)=\sum_{i=1}^{N} \sum_{j=1}^{m_{i}} \theta_{i, k}^{j}(t+1) y_{i}^{j}

  • 在细化步骤中,KK个中心点被每个集群中的新中心点所更新,即

    ck(t+1)=i=1Nj=1miθi,kj(t+1)yiji=1Nj=1miθi,kj(t+1)=uk(t+1)mk(t+1),k=1,2,,Kc_{k}(t+1)=\frac{\sum_{i=1}^{N} \sum_{j=1}^{m_{i}} \theta_{i, k}^{j}(t+1) y_{i}^{j}}{\sum_{i=1}^{N} \sum_{j=1}^{m_{i}} \theta_{i, k}^{j}(t+1)}=\frac{u_{k}(t+1)}{m_{k}(t+1)}, \quad k=1,2, \cdots, K

  • 集中式聚类算法保证了获得局部最优解。

  • 在集中式聚类算法中,算法需要得知全局或集中的信息。

    但如果数据点在空间上分布或有不同的智能体收集,集中式的形式可能就不再适用了。

假设

时变网络又称为联合连通网络

假设一

  • 假设图G(s)=(V,E(s))\mathcal{G}(s)=(\mathcal{V}, \mathcal{E}(s))的加权邻接矩阵A(s)A(s)满足:

    1. A(s)A(s)是双随机的

      随机矩阵:每一项均为非负的并且每行的和均为1的方阵
      双随机矩阵:每一列的和均为1的随机矩阵

    2. 对于所有的 iVi \in \mathcal{V},有 ai,i(s)εa_{i, i}(s) \geq \varepsilonai,h(s)ε if (h,i)E(s)a_{i, h}(s) \geq \varepsilon \ if\ (h, i) \in \mathcal{E}(s) ,其中 ε\varepsilon 是一个正标量

假设二

  • 若图G(s)=(V,E(s))\mathcal{G}(s)=(\mathcal{V}, \mathcal{E}(s))是联合连通的,则(V,E(s)E(s+1)E(s+τ1))(\mathcal{V}, \mathcal{E}(s)\cup \mathcal{E}(s+1) \cup \cdots \cup \mathcal{E}(s+\tau-1))对于所有的s0s \geq 0和某个整数τ>0\tau>0是强连通的

  • 该假设确保了尽管网络拓扑正在切换并且可能不会在每个时刻都连接,每个代理ii在每个τ\tau周期内至少可以从所有邻居那获取信息一次,

  • 在以上两个假设的前提下,对于所有的i, hi,\ h和所有的s1s2s_{1} \geq s_{2},有

[φ(s1:s2)]i,h1Nζ2ϱs1s2+1\left|\left[\varphi\left(s_{1}: s_{2}\right)\right]_{i, h}-\frac{1}{N}\right| \leq \zeta^{-2} \varrho^{s_{1}-s_{2}+1}

  • 其中,ζ=1ε4N2ϱ=ζ1/τ\zeta=1-\frac{\varepsilon}{4 N^{2}},\varrho=\zeta^{1 / \tau}φ(s1:s2)\varphi\left(s_{1}: s_{2}\right)是一个由φ(s1:s2)=A(s2)A(s2+1)A(s1)\varphi\left(s_{1}: s_{2}\right)=A\left(s_{2}\right) A\left(s_{2}+1\right) \cdots A\left(s_{1}\right)定义的转移概率矩阵,φ(s1:s1)=A(s1)\varphi\left(s_{1}: s_{1}\right)=A\left(s_{1}\right)

    转移概率矩阵(跃迁矩阵)

    • 定义:矩阵各元素都是非负的,且各行元素值和为1,各元素用概率表示,在一定条件下是互相转移的。P(k)P^{(k)}表示kk步转移概率矩阵

    • 特征:

      1. 0Pij10≤P_{ij}≤1

      2. j=1nPij=1\displaystyle \sum_{j=1}^{n} P_{ij}=1,即矩阵中每一行的转移概率之和为1

    • 有转移概率组成的矩阵称为转移概率矩阵,即构成转移概率矩阵的元素是转移概率

    马尔可夫过程

    • 马尔可夫性(无后效性)

      在过程或系统在时刻t0t_0所处的状态为已知的条件下,过程在时刻t>t0t>t_0所处状态的条件分布,与过程在时刻t0t_0之前的状态无关的特性

      即过程“将来”的情况与“过去”的情况是无关的

    • 马尔可夫过程的定义

      具有马尔可夫性的随机过程称为马尔可夫过程

      用分布函数表述马尔可夫过程:

      待补充……

分布式聚类

相关说明

  • 对于每个智能体iVi \in \mathcal{V},训练集Yi=[yi1,yi2,,yimi]Rn×miY_{i}=\left[y_{i}^{1}, y_{i}^{2}, \cdots, y_{i}^{m_{i}}\right] \in \mathcal{R}^{n \times m_{i}}是可获得的,其中,nn是数据的维度,mim_i是数据的大小,Y=[Y1,Y2,,YN]Y=\left[Y_{1}, Y_{2}, \cdots, Y_{N}\right]为整个数据集。

  • 智能体ii的目的是根据KmeansK-means的聚类准则将数据集YiY_i划分成KK个集群[Yi1,Yi2,,YiK]\left[Y_{i}^{1}, Y_{i}^{2}, \cdots, Y_{i}^{K}\right]

  • 智能体ii所获得的表示集群的KK个中心点可能并不属于数据集。

  • ckc_k表示第kk个质心,C={c1,c2,,cK}C=\left\{c_{1}, c_{2}, \cdots, c_{K}\right\}KK个中心点的集合。

  • 智能体iiKmeansK-means聚类问题,可表述如下:

    minθDi,Cfi(Yi,C,θi)=j=1mik=1Kθi,kjyijck2\min *{\theta \in \mathcal{D}*{i}, C} f_{i}\left(Y_{i}, C, \theta_{i}\right)=\sum_{j=1}^{m_{i}} \sum_{k=1}^{K} \theta_{i, k}^{j}\left|y_{i}^{j}-c_{k}\right|^{2}

    其中,

    Di={θi,kj:k=1Kθi,kj=1,j=1,2,,miθi,kj={0,1},k=1,2,,K,j=1,2,,mi}\begin{aligned} \mathcal{D}_{i}=\left\{\theta_{i, k}^{j}:\right.& \sum_{k=1}^{K} \theta_{i, k}^{j}=1, j=1,2, \cdots, m_{i} \\ &\left.\theta_{i, k}^{j}=\{0,1\}, k=1,2, \cdots, K, j=1,2, \cdots, m_{i}\right\} \end{aligned}

    θi={θikj,k=1,2,,K,j=1,2,,mi}\theta_{i}=\left\{\theta_{i k}^{j}, k=1,2, \cdots, K, j=1,2, \cdots, m_{i}\right\},且数据点之间的相似性通过欧几里得范数来衡量

    范数

    L1范数:向量中各个元素绝对值之和

    x1=i=1nxi\|\mathbf{x}\|_1=\sum_{i=1}^n|x_i|

    L2范数(欧几里得范数/欧氏距离/L2距离):向量元素的平方和再开方

    x2=i=1nxi2\|\mathbf{x}\|_2=\sqrt{\sum_{i=1}^nx_i^2}

  • 在分布式聚类学习中,智能体的目的是将数据集YY划分成KK个集群 [Y1,Y2,,YK]\left[Y^{1}, Y^{2}, \cdots, Y^{K}\right] 并且最小化数据点和聚类中心点之间的距离平方和

  • 所有智能体所得到的KK个中心点应该是相互一致的(不太懂是什么意思)

  • 分布式KmeansK-means聚类问题,可表达如下:

    minθD,CF(Y,C,θ)=i=1Nfi(Yi,C,θi)4\min *{\theta \in \mathcal{D}, C} F(Y, C, \theta)=\sum*{i=1}^{N} f_{i}\left(Y_{i}, C, \theta_{i}\right)(4)

  • 假设每个智能体都“知道”KK值,若未知,则可使用文献[31]中提出的方法来估计KK

基于双时钟共识的K-Means算法

  • 为了解决问题(4),定义Ci(t)C_i(t)为中心点的集合,这些中心点是由智能体ii在时间tt获得的。根据集中式KmeansK-means聚类算法,给定Ci(t)C_i(t)θi(t+1)θ_i(t+1)可以通过以下公式进行分配

    θi,kj(t+1)=argminθiDii=1mik=1Kθi,kjyijci,k(t)2\theta_{i, k}^{j}(t+1)=\underset{\theta_{i} \in \mathcal{D}*{i}}{\arg \min } \sum*{i=1}^{m_{i}} \sum_{k=1}^{K} \theta_{i, k}^{j}\left|y_{i}^{j}-c_{i, k}(t)\right|^{2}

    θi,kj(t+1)={1, if yij Cluster k0, if yij Cluster k9\theta_{i, k}^{j}(t+1)=\left\{\begin{array}{ll}1, & \text { if } y_{i}^{j} \in \text { Cluster } k \\ 0, & \text { if } y_{i}^{j} \notin \text { Cluster } k\end{array}\right.(9)

    显然,j=1miθi,kj(t+1)\sum_{j=1}^{m_{i}} \theta_{i, k}^{j}(t+1)代表在时间t+1t+1的第kk个集群中属于智能体ii的数据大小,表示为

    mi,k(t+1)=j=1miθi,kj(t+1)10m_{i, k}(t+1)=\sum_{j=1}^{m_{i}} \theta_{i, k}^{j}(t+1)(10)

    Mi(t+1)M_i(t+1)作为mi,1(t+1)m_{i,1}(t+1)的集合,那么一个新的局部求和ui,k(t+1)u_{i,k}(t + 1)可以通过以下方式得到

    ui,k(t+1)=j=1miθi,kj(t+1)yij11u_{i, k}(t+1)=\sum_{j=1}^{m_{i}} \theta_{i, k}^{j}(t+1) y_{i}^{j}(11)

    因此,全局中心点被重写如下:

    ck(t+1)=i=1Nui,k(t+1)i=1Nmi,k(t+1),k=1,2,,K12c_{k}(t+1)=\frac{\sum_{i=1}^{N} u_{i, k}(t+1)}{\sum_{i=1}^{N} m_{i, k}(t+1)}, \quad k=1,2, \cdots, K(12)

    表示为xi,k(0,t)=col{xi,k1(0,t),xi,k2(0,t)}x_{i, k}(0, t)=\operatorname{col}\left\{x_{i, k}^{1}(0, t), x_{i, k}^{2}(0, t)\right\},其中,

    {xi,k1(0,t)=ui,k(t)xi,k2(0,t)=mi,k(t)13\left\{\begin{array}{l}x_{i, k}^{1}(0, t)=u_{i, k}(t) \\ x_{i, k}^{2}(0, t)=m_{i, k}(t)\end{array}\right.(13)

    在算法的每次迭代中,智能体ii通过以下三个步骤更新其中心点:

    1. 本地KmeansK-means步骤

      智能体ii根据(9)、(10)和(11)分别计算θji,k(t+1)θ^{j}*{i,k}(t + 1)mi,k(t+1)m*{i,k}(t + 1)ui,k(t+1)u_{i,k}(t + 1)

    2. 共识步骤

      在一个信息共享拓扑G(s)=(V,E(s))\mathcal{G}(s)=(\mathcal{V}, \mathcal{E}(s))上,该拓扑是随时间变化的,并满足假设2.1和2.2,代理ii根据以下公式与它的一度邻居hh交换信息,直到达成共识

      xi,k(s+1,t+1)=hNi(s)ai,h(s)xh,k(s,t+1),k=1,2,,Kx_{i, k}(s+1, t+1)=\sum_{h \in \mathcal{N}*{i}(s)} a*{i, h}(s) x_{h, k}(s, t+1), \quad k=1,2, \cdots, K

      在共同连接的拓扑结构上,共识步骤的停止时间用SS表示。

    3. 本地更新步骤

      智能体ii根据以下方式更新ci,k(t+1)c_{i,k}(t + 1)

      ci,k(t+1)=xi,k1(S,t+1)xi,k2(S,t+1),k=1,2,,Kc_{i, k}(t+1)=\frac{x_{i, k}^{1}(S, t+1)}{x_{i, k}^{2}(S, t+1)}, \quad k=1,2, \cdots, K

  • 综上,基于双时钟共识的KMeansK-Means算法(DCKADCKA)的伪代码如下所示:

  • 与现有的算法不同,DCKADCKA有两个时钟。

    在共识步骤中,智能体ii与它的一度邻居智能体hh交换信息,直到在某个容许范围内达成共识,这对于固定时间的本地步骤的时钟t+1t+1很容易实现,并且可以适应全局通信拓扑不可用的情况。

  • 即使链路故障/恢复程序或节能政策导致网络拓扑联合连接地切换,共识步骤中的共识率仍然是指数级的。

DCKA的收敛性分析

  • 假设xˉk(0,t+1)=col{xk1(0,t+1),xk2(0,t+1)}\bar{x}_{k}(0, t+1)=\operatorname{col}\left\{x_{k}^{1}(0, t+1), x_{k}^{2}(0, t+1)\right\},其中

    {xˉk1(0,t+1)=1Ni=1Nxi,k1(0,t+1)=i=1Nui,k(t+1)N,xˉk2(0,t+1)=1Ni=1Nxi,k2(0,t+1)=i=1Nmi,k(t+1)N.\left\{\begin{array}{l}\bar{x}_{k}^{1}(0, t+1)=\frac{1}{N} \sum_{i=1}^{N} x_{i, k}^{1}(0, t+1)=\frac{\sum_{i=1}^{N} u_{i, k}(t+1)}{N}, \\ \bar{x}_{k}^{2}(0, t+1)=\frac{1}{N} \sum_{i=1}^{N} x_{i, k}^{2}(0, t+1)=\frac{\sum_{i=1}^{N} m_{i, k}(t+1)}{N} .\end{array}\right.

    由(12)中的ck(t+1)c_k(t+1)的定义可得,ck(t+1)=xˉk1(0,t+1)xˉk2(0,t+1)c_{k}(t+1)=\frac{\bar{x}*{k}^{1}(0, t+1)}{\bar{x}*{k}^{2}(0, t+1)}

    定义c^i,k(s,t+1)\widehat{c}_{i, k}(s, t+1)如下:

    c^i,k(s,t+1)=xi,k1(s,t+1)xi,k2(s,t+1),k=1,2,,K,\widehat{c}*{i, k}(s, t+1)=\frac{x*{i, k}^{1}(s, t+1)}{x_{i, k}^{2}(s, t+1)}, \quad k=1,2, \cdots, K,

    即为智能体ii在共识步骤的时间ssck(t+1)c_k(t+1)的估计

  • 鉴于CKACKA可以获得局部最优解,如果能够首先证明当s → ∞时,c^i,k(s,t+1)\widehat{c}*{i, k}(s, t+1)收敛于ck(t+1)c_k(t + 1 ),然后证明存在一个SS,使得c^i,k(S,t+1)\widehat{c}*{i, k}(S, t+1)ck(t+1)c_k(t + 1)之间的误差对θi,kj(t+2)θ^j_{i,k}(t + 2 )没有影响,那么结论就成立了。证明如下:

    1. 证明当ss → ∞时,c^i,k(S,t+1)\widehat{c}_{i, k}(S, t+1)收敛于ck(t+1)c_k(t + 1)

      对于所有的s0s≥0。有

      xi,k1(s,t+1)=h=1N[φ(s1:0)]i,hxh,k1(0,t+1)xi,k2(s,t+1)=h=1N[φ(s1:0)]i,hxh,k2(0,t+1)\begin{aligned} x_{i, k}^{1}(s, t+1) &=\sum_{h=1}^{N}[\varphi(s-1: 0)]_{i, h} x_{h, k}^{1}(0, t+1) \\ x_{i, k}^{2}(s, t+1) &=\sum_{h=1}^{N}[\varphi(s-1: 0)]_{i, h} x_{h, k}^{2}(0, t+1) \end{aligned}

      ξi,k1(s,t+1)=xi,k1(s,t+1)xˉk1(0,t+1)=h=1N([φ(s1:0)]i,h1N)xh,k1(0,t+1),ξi,k2(s,t+1)=xi,k2(s,t+1)xˉk2(0,t+1)=h=1N([φ(s1:0)]i,h1N)xh,k2(0,t+1).\xi_{i, k}^{1}(s, t+1)=x_{i, k}^{1}(s, t+1)-\bar{x}_{k}^{1}(0, t+1)=\sum_{h=1}^{N}\left([\varphi(s-1: 0)]_{i, h}-\frac{1}{N}\right) x_{h, k}^{1}(0, t+1),\\\xi_{i, k}^{2}(s, t+1)=x_{i, k}^{2}(s, t+1)-\bar{x}_{k}^{2}(0, t+1)=\sum_{h=1}^{N}\left([\varphi(s-1: 0)]_{i, h}-\frac{1}{N}\right) x_{h, k}^{2}(0, t+1) .

      由于在假设2.1和2.2的前提下,DCKADCKA实现了分布式聚类问题(4)的局部最优解,可得:

      ξi,k1(s,t+1)h=1N[φ(s1:0)]i,h1Nxh,k1(0,t+1)Nζ2ϱsmaxhxh,k1(0,t+1)18ξi,k2(s,t+1)h=1N[φ(s1:0)]i,h1Nxh,k2(0,t+1)Nζ2ϱsmaxhxh,k2(0,t+1)19\begin{aligned}\left\|\xi_{i, k}^{1}(s, t+1)\right\| & \leq \sum_{h=1}^{N}\left|[\varphi(s-1: 0)]_{i, h}-\frac{1}{N}\right|\left\|x_{h, k}^{1}(0, t+1)\right\| \\ & \leq N \zeta^{-2} \varrho^{s} \max _{h}\left\|x_{h, k}^{1}(0, t+1)\right\| (18)\\\left\|\xi_{i, k}^{2}(s, t+1)\right\| & \leq \sum_{h=1}^{N}\left|[\varphi(s-1: 0)]_{i, h}-\frac{1}{N}\right|\left\|x_{h, k}^{2}(0, t+1)\right\| \\ & \leq N \zeta^{-2} \varrho^{s} \max _{h}\left\|x_{h, k}^{2}(0, t+1)\right\| (19)\end{aligned}

      因此

      c^i,k(s,t+1)ck(t+1)=xi,k1(s,t+1)xi,k2(s,t+1)xˉk1(0,t+1)xˉk2(0,t+1)=xˉk1(0,t+1)+ξi,k1(s,t+1)xˉk2(0,t+1)+ξi,k2(s,t+1)xˉk1(0,t+1)xˉk2(0,t+1)=ξi,k1(s,t+1)xˉk2(0,t+1)ξi,k2(s,t+1)xˉk1(0,t+1)[xˉk2(0,t+1)+ξi,k2(s,t+1)]xˉk2(0,t+1)ξi,k1(s,t+1)xˉk2(0,t+1)+ξi,k2(s,t+1)xˉk1(0,t+1)xˉk2(0,t+1)2.\begin{aligned} &\left\|\widehat{c}_{i, k}(s, t+1)-c_{k}(t+1)\right\| \\=&\left\|\frac{x_{i, k}^{1}(s, t+1)}{x_{i, k}^{2}(s, t+1)}-\frac{\bar{x}_{k}^{1}(0, t+1)}{\bar{x}_{k}^{2}(0, t+1)}\right\| \\=&\left\|\frac{\bar{x}_{k}^{1}(0, t+1)+\xi_{i, k}^{1}(s, t+1)}{\bar{x}_{k}^{2}(0, t+1)+\xi_{i, k}^{2}(s, t+1)}-\frac{\bar{x}_{k}^{1}(0, t+1)}{\bar{x}_{k}^{2}(0, t+1)}\right\| \\=&\left\|\frac{\xi_{i, k}^{1}(s, t+1) \bar{x}_{k}^{2}(0, t+1)-\xi_{i, k}^{2}(s, t+1) \bar{x}_{k}^{1}(0, t+1)}{\left[\bar{x}_{k}^{2}(0, t+1)+\xi_{i, k}^{2}(s, t+1)\right] \bar{x}_{k}^{2}(0, t+1)}\right\| \\ \leq & \frac{\left\|\xi_{i, k}^{1}(s, t+1)\right\|\left\|\bar{x}_{k}^{2}(0, t+1)\right\|+\left\|\xi_{i, k}^{2}(s, t+1)\right\|\left\|\bar{x}_{k}^{1}(0, t+1)\right\|}{\left\|\bar{x}_{k}^{2}(0, t+1)\right\|^{2}} . \end{aligned}

      表示为

      σk(t+1)=max{maxhxh,k1(0,t+1)xˉk2(0,t+1),xˉk1(0,t+1)maxhxh,k2(0,t+1)xˉk2(0,t+1)2}\sigma_{k}(t+1)=\max \left\{\frac{\max _{h}\left\|x_{h, k}^{1}(0, t+1)\right\|}{\left\|\bar{x}_{k}^{2}(0, t+1)\right\|}, \frac{\left\|\bar{x}_{k}^{1}(0, t+1)\right\| \max _{h}\left\|x_{h, k}^{2}(0, t+1)\right\|}{\left\|\bar{x}_{k}^{2}(0, t+1)\right\|^{2}}\right\}

      根据(18)可得

      c^i,k(s,t+1)ck(t+1)2Nζ2ϱsσk(t+1)\left|\widehat{c}*{i, k}(s, t+1)-c*{k}(t+1)\right| \leq 2 N \zeta^{-2} \varrho^{s} \sigma_{k}(t+1)

      因此,对于任意δ>0\forall \delta>0,存在一个S=logρ(ζ2δ2Nσk(t+1))S=\log *{\rho}\left(\frac{\zeta^{2} \delta}{2 N \sigma*{k}(t+1)}\right),对于任意的sSs≥S,有

      c^i,k(s,t+1)ck(t+1)δ\left|\widehat{c}*{i, k}(s, t+1)-c*{k}(t+1)\right| \leq \delta

      其中,ζ=1ε4N2,ϱ=ζ1/τ\zeta=1-\frac{\varepsilon}{4 N^{2}}, \varrho=\zeta^{1 / \tau}。换句话说,当s→S时,c^i,k(S,t+1)\widehat{c}_{i, k}(S, t+1)收敛于ck(t+1)c_k(t + 1)

    2. 证明c^i,k(S,t+1)\widehat{c}*{i, k}(S, t+1)ck(t+1)c_k(t + 1)之间的误差对θji,k(t+2)θ^j*{i,k}(t + 2 )没有影响。

      因为θ\theta是由每个集群的中心点决定的,所以将 θ(t+1)\theta(t+1) 表示为 θ[C(t)]\theta[C(t)] 。若给定中心点 C(t+1)C(t+1) ,取

      δ(t+1)=min1iN1kKmin1kδi,k(t+1)\delta(t+1)=\min _{1 \leq i \leq N 1 \leq k \leq K} \min *{1 \leq k} \delta*{i, k}(t+1)

      其中,

      δi,k(t+1)=minyYikkk{12(yck(t+1)2yck(t+1)2)}\delta_{i, k}(t+1)=\min _{y \in Y_{i}^{k} k^{\prime} \neq k}\left\{\frac{1}{2}\left(\left\|y-c_{k^{\prime}}(t+1)\right\|^{2}-\left\|y-c_{k}(t+1)\right\|^{2}\right)\right\}

      对于任意的ci,kB(ck(t+1),δ(t+1))c_{i, k} \in \mathbb{B}\left(c_{k}(t+1), \delta(t+1)\right),有θ[{Ci}i=1N]=θ[C(t+1)]\theta\left[\left\{C_{i}\right\}_{i=1}^{N}\right]=\theta[C(t+1)],其中Ci={ci,k}k=1KC_{i}=\left\{c_{i, k}\right\}_{k=1}^{K}

      对于δ(t+1)\delta(t+1),如果选择Slogρ(ζ2δ(t+1)2Nσ(t+1))S \geq \log _{\rho}\left(\frac{\zeta^{2} \delta(t+1)}{2 N \sigma(t+1)}\right),其中

      σ(t+1)=maxkσk(t+1)\sigma(t+1)=\max *{k} \sigma*{k}(t+1)

      则对于所有i=1,2,,Ni=1,2, \cdots, Nk=1,2,,Kk=1,2, \cdots, K,有c^i,k(S,t+1)B(ck(t+1),δ(t+1))\widehat{c}*{i, k}(S, t+1) \in \mathbb{B}\left(c*{k}(t+1), \delta(t+1)\right)

      换句话说,如果Slogρ(ζ2δ(t+1)2Nσ(t+1))S \geq \log *{\rho}\left(\frac{\zeta^{2} \delta(t+1)}{2 N \sigma(t+1)}\right),有θ[{Ci(t+1)}i=1N]=θ[C(t+1)]\theta\left[\left\{C_{i}(t+1)\right\}_{i=1}^{N}\right]=\theta[C(t+1)]。因此,DCKADCKACKACKA在下一次迭代中应该得到相同的θji,k(t+2)θ^j*{i,k}(t + 2),即c^i,k(S,t+1)\widehat{c}*{i, k}(S, t+1)ck(t+1)c_k(t + 1)之间的误差对θji,k(t+2)θ^j*{i,k}(t + 2 )没有影响。

DCKA的通信和计算复杂性分析

  • 定义TTDCKADCKA的最大迭代次数,M=i=1NM=\sum_{i=1}^{N}为所有智能体中数据点的总数,NlN_l为通信网络中的平均链接数。

  • 当通信网络的拓扑结构被假定为联合连接时,NlN_l可以比网络全程保持连接时小很多。

  • 通信复杂性

    • DCKADCKA的通信复杂性与集群、迭代、网络链接等密切相关。在DCKADCKA的一个循环共识步骤中,每个智能体向其一度邻居发送关于集群kkxi,k(s,t)x_{i,k}(s, t)

    • NbN_b表示发送xi,k(s,t)x_{i,k}(s, t)的字节数,则在SS个循环中,通信消耗为2NlKSNbN_lKSN_b。因此,总的通信消耗为2NlKSTNbO(ST)2N_lKSTN_b∼O(ST)

  • 计算复杂性

    • DCKADCKA的时间复杂度取决于数据集的大小、网络中智能体的数量、集群的数量以及相关的因素。

    • 网络中的智能体需要大小为O(NK)O(NK)的空间来存储KK个中心点,大小为O(MK)O(MK)的空间来存储θθ的值,大小为O(NK)O(NK)的空间用于共识步骤。因此,总的空间复杂性为O((2N+M)K)O((2N + M)K)

    • 每次迭代,本地KmeansK-means步骤的时间复杂度为O(KM)O(KM),共识步骤为O(NKS)O(NKS),本地更新步骤为O(NK)O(NK)。因此,DCKADCKA的总时间复杂度为O(TK(M+NS+N))O(T K(M+NS+N))。此外,当数据集YY的大小非常大时,DCKADCKA的总时间复杂性为O(TKM)O(T KM)

DCKADCKA中,所考虑的网络中的智能体与它们的一度邻居分享它们的信息以获得相同的KK中心点。由于所有智能体中所有中心点的共识和中心点的更新完全分开,DCKADCKA继承了CKACKA的收敛率。智能体之间的通信拓扑结构被假定为联合连接的。网络中的每个智能体在每个ττ期间至少与它的一度邻居通信一次。联合连接适用于智能体之间链接的故障,也适用于通信成本的降低。


实验Experiment

实验一

  • 该实验基于一个合成数据集,其中聚类数据对应于二维空间中的K=9K=9个不同的高斯分布。

    • 假设这9个不同的高斯分布具有不同的平均值,分别用w1=(0,0)T,w2=(0,3)T,w3=(0,3)Tw_{1}=(0,0)^{\mathrm{T}},w_{2}=(0,3)^{\mathrm{T}}, w_{3}=(0,-3)^{\mathrm{T}} , w4=(3,0)T,w5=(3,0)T,w6=(3,3)T,w7=(3,3)T,w8=(3,3)Tw_{4}=(3,0)^{\mathrm{T}},w_{5}=(-3,0)^{\mathrm{T}}, w_{6}=(3,-3)^{\mathrm{T}}, w_{7}=(3,3)^{\mathrm{T}}, w_{8}=(-3,3)^{\mathrm{T}}w9=(3,3)Tw_{9}=(-3,-3)^{\mathrm{T}} 表示,它们共享相同的协方差矩阵 Σ=0.64I2\Sigma=0.64 I_{2} ,其中 I2I_2 是一个二维的特征矩阵。

    • 假设网络中有五个智能体。每个智能体ii都可以访问一个大小为900的部分数据集YiY_i,每个高斯分布有100个数据点,这些数据都是随机生成的。

    • 每个智能体ii的目标是用部分数据集YiY_i找到相同的九个集群中心点。为了衡量所提出的算法的聚类性能,距离的平方之和(SSDSSD)定义如下:

      SSD=F(Y,CY)=i=1Nj=1mik=1Kθi,kjyijci,k2\mathrm{SSD}=F\left(Y, C_{Y}\right)=\sum_{i=1}^{N} \sum_{j=1}^{m_{i}} \sum_{k=1}^{K} \theta_{i, k}^{j}\left\|y_{i}^{j}-c_{i, k}\right\|^{2}

      其中CY=ci,kC_Y={ { c_i,k } }Y=i=15YiY=\cup_{i=1}^{5} Y_{i}。智能体ii的初始聚类中心点ci,k(0),k=1,2,9c_{i,k}(0), k=1, 2\dots, 9, 是从部分数据集YiY_i中随机选择的。

    • DCKADCKA中,假设通信拓扑结构是联合连接的。在时间s=2ns=2n时,通信拓扑结构假定为图(b),在时间s=2n+1s=2n+1时,为图 ( c ) ,n=1,2,n=1, 2,\dots

    • 首先,研究了DCKADCKACKACKA相比的SSDSSD,结果如下图所示。结果表明两种算法的SSDSSD是一样的,都是5028.54。

      CKA和DCKA的距离平方之和(SSD)

      下图更直观地显示了聚类的结果,中心点 c1=(0.0946,0.0449)T,c2=(0.0336,3.0507)Tc_{1}=(0.0946,0.0449)^{\mathrm{T}}, c_{2}=(-0.0336,3.0507)^{\mathrm{T}} , c3=(0.024,3.0223)T,c4=(2.9454,0.0521)T,c5=(3.0908,0.013)T,c6=(3.0551,3.058)Tc_{3}=(-0.024,-3.0223)^{\mathrm{T}}, c_{4}=(2.9454,-0.0521)^{\mathrm{T}}, c_{5}=(-3.0908,0.013)^{\mathrm{T}}, c_{6}=(3.0551,-3.058)^{\mathrm{T}} , c7=(3.0144,3.0049)T,c8=(2.9562,3.0391)Tc_{7}=(3.0144,3.0049)^{\mathrm{T}}, c_{8}=(-2.9562,3.0391)^{\mathrm{T}} 。图中的五边形是由 CKACKA 得到的中心点,其它的则是由 DCKADCKA 得到的中心点。下图表明,尽管智能体之间的通信拓扑结构发生了变化,但 DCKADCKA 的表现与CKACKA一样好。

      通过不同的算法得到的中心点

    • 接下来,研究所提出的算法DCKADCKA的共识性能。下图显示了每个智能体iiDCKADCKA的性能xi,12(s,t)x^2_{i,1}(s, t)。可以发现,在共识步骤中,xi,12(s,t)x^2_{i,1}(s, t)可以快速达到xˉ12(0,t)=i=1Nmi1(t)N\bar{x}*{1}^{2}(0, t)=\frac{\sum*{i=1}^{N} m_{i 1}(t)}{N}。事实上,收敛率是指数级的。

      考虑DCKADCKA在不同的KK值下的行为,如下图所示,尽管KK值不同,但DCKADCKA的表现仍与CKACKA一样好。

      在不同的K值下,分布式算法的性能

      由于DCKADCKACKACKA的聚类结果都与初始中心点的选择有关,因此为了测试算法,模拟了100次不同KK值的蒙特卡洛运行。其结果如下图显示。由下图可知,DCKADCKACKACKA都有相同的最小SSDSSD。然而,由于DCKADCKA初始中心点的多样性,DCKADCKASSDsSSDs的平均值和标准偏差上优于CKACKA。这是因为CKACKA必须用KK个中心点随机初始化,而对于DCKADCKA,每个智能体是根据它们的部分数据集Yii=1,2,,5Y_i,i=1, 2,\dots , 5,用KK个中心点进行初始化。 因此,DCKADCKA通常可以得到比CKACKA更好的结果。

    • 最后,研究了DCKADCKADKMDKM算法相比的通信和计算消耗。

      在通信拓扑结构选择为(a)的情况下,DKMDKM算法也可以应用于解决聚类问题。下图显示了K=9K=9时的SSDSSD值,其中,DKMDKM中的参数被假定为η=10η=10。在DKMDKM中,大约需要30次迭代来完成聚类任务,其收敛速度很慢,智能体需要与它们的邻居通信30次左右,总的通信消耗为210NbN_b。然而,DCKADCKA的通信成本只有大约150NbN_b,比DKMDKM的通信成本低得多。尽管如此,网络中DKMDKM算法的智能体仍需要对4500个数据点进行约30次处理,而DCKADCKA的代理只需要对整个数据集进行约5次处理。

实验二

  • 在本实验中,选择了Birch1Birch1Birch2Birch2Birch3Birch3作为实验数据集。每个数据集由100000个实体组成,这些实体都是二维向量,真实聚类数都是K=100K=100。考虑一个有20个智能体的网络。对于DCKADCKA,每个智能体可以随机获得5000个数据点,形成自己的部分数据集YiY_i,而CKACKA则是在整个数据集 Y=Yii=1NY={ { Y_i } }^N_{i=1} 上进行。

  • DCKADCKA中,假设智能体的时间变化的通信拓扑是联合连通的。在时间s=3n, s=3n+1s = 3n,\ s = 3n + 1s=3n+2s = 3n + 2n=1,2,n = 1, 2,\dots时,拓扑结构分别如下图(b)、(c)、(d)所示,而(a)图为它们的联合。

    网络的拓扑结构,由20个智能体组成

  • 作者模拟了60次不同KK值的蒙特卡洛运行,以测试两种算法在这些数据集上的SSDSSD性能,其结果分别如下图所示。在这三个数据集中,DCKADCKASSDSSD的平均值和标准差上都优于CKACKA,而当K=80K=80和100时,CKACKA只在Birch3Birch3SSDSSD最小值上优于DCKADCKA。结果显示,与CKACKA相比,DCKADCKA对初始化不那么敏感,通常可以得到很好的结果。

    Birch1(×1013)Birch1(×10^{13})上运行60次蒙特卡洛的结果:

    Birch2(×1011)Birch2(×10^{11})上运行60次蒙特卡洛的结果:

    Birch3(×1013)Birch3(×10^{13})上运行60次蒙特卡洛的结果: