数据科学个人笔记:分布式参数学习法+分布式K-means聚类

本篇主要是论文阅读心得,未整理。

 

一、分布式参数学习法

(一)问题背景

设有n个成员(n>1),每两个成员之间在每个时刻上有两种可能的位置关系:

1.相邻,则此二成员互为邻居;

2.不相邻,则此二成员互不为邻居。

则我们可设每个成员(第i个成员)在t时刻的邻居数为ni(t),同时可将在t时刻下各成员之间的位置关系画成一张无向图G(t)。

每个成员同时地探索自身所处的环境,于是通过探索,每个成员在每个时刻上将会获得一组数据,我们所要解决的问题是,通过对这些数据进行分析,以及成员与邻居间的信息互换(成员与非邻居之间不允许进行信息互换),来找出每个成员(第i个成员)所处环境的参数ai,以及所有ai的均值a*。

(二)算法1

1.算法步骤

为解决该问题,我们使每个成员(第i各成员)践行相同的步骤如下:

(1)我们设zi(t)、si(t)分别为第i个成员在t时刻对a*、ai的估计;

(2)设t=1,设置初始值si(1),并令zi(1)=si(1);

(3)确定该问题所要使用的机器学习算法,确定损失函数,并通过损失函数和探索得到的数据集计算出下一时刻的估计值si(t+1);

(4)计算其他所有成员对应于当前成员i自己的权重值wij(t):

wij(t)=1/(1+max(ni(t),nj(t)))(i不等于j)

Wii(t)=1-sum(wij(t))

(5)zi(t+1)=sum(wik(t)*zik(t))+si(t+1)-si(t)(for k=1:n),t=t+1;

(6)重复3至5步,直到估计值收敛到满意为止;

2.算法结论

猜想1:

我们认为在遵循算法1的情况下(条件A),若满足以下两个条件:

(1)G(1)、G(2)。。。这个列满足特征repeatedly jointly connected;(条件B)

(2)每个成员(第i个成员)的si(t)都收敛于(或大概率收敛于)ai;(条件C)

则当t趋于无穷时,每个zi(t)都会趋于a*。

(三)对猜想1的证明

现假设条件A、B、C均已经发生,则:

1.若基于算法1步骤5的变体zi(t+1)=sum(wik(t)*zik(t)),则当t趋于无穷时,zi(t)趋于所有zi(1)的均值。(由条件A和参考文献42推出)

2.zi(1)=si(1)。(出自算法1步骤1)

3.基于算法1步骤5,当t趋于无穷时,zi(t)的和趋于所有si(t)的和。(由推理1和2推出)

4.t趋于无穷时,所有zi(t)的和趋于si(t)和的极限。(根据推理3推出)

5.si(t)和的极限为ai的和。(根据条件C推出)

6.t趋于无穷时,所有zi(t)的和趋于ai的和。(根据推理4和5推出)

7.t趋于无穷时,所有zi(t)的均值趋于ai的均值(根据推理6推出)。

8.ai的均值等于a*。(此为a*的定义)

9.t趋于无穷时,所有zi(t)的均值趋于a*。(根据推理7和8推出)

10.当si(t+1)-si(t)趋于0时,则t趋于无穷时,所有的zi(t)趋于相等。(此处证明将会在未来的paper中给出)

11.si(t+1)-si(t)趋于0。(根据条件C推出)

12.t趋于无穷时,所有的zi(t)趋于相等。(根据推理10和11推出)

13.t趋于无穷时,每个zi(t)都会趋于所有zi(t)的均值。(根据推理12推出)

14.t趋于无穷时,每个zi(t)都会趋于a*。(猜想1得证)

(四)算法使用样例

针对分布式线性回归问题和分布式期望值求解问题践行了算法1,此处略去描述。

 

二、分布式k-means聚类算法学习笔记

(一)待解决的问题形式

有一组数据集,其中有P个样本,每个样本有n个维度,我们要解决的问题是,将这些样本在n维空间上分成k类。在我们设计的分布式问题背景下,有N个agents要合作解决该分类问题,则第i个agent被分配到mi个样本去进行分类任务。

(二)agents之间的状态关系

N个agents之间的状态关系在每个时间点都不同,在每个时间点下,两个agents之间要么是邻居(能够互相通信),要么是非邻居(不能互相通信)。在第s个时间点下,第i个agent的邻居agents集合被表示为Ni(s)。在第s个时间点下所有agents之间的状态可以用邻接矩阵A(s)来表示,其中的每个元素a(ij)表示在s时间点下第i个agent和第j个agent之间的关系,若两者是邻居则大于零,非邻居则等于零。同时我们还假设矩阵A(s)还满足以下三点:

1.每行元素和为1,每列元素和为1。

2.若第i和j个agent为邻居,则a(ii)和a(ij)都是正数。

3.对于每两个agent,只有时间足够长,总有至少会在某个s下成为一次邻居。

4.对于所有的i,h和s1>=s2,满足

(此公式源自参考文献1,并没有看懂)。

(三)算法解决问题的步骤

在每个agent只能与当前时间点的邻居交换信息的情况下,我们的分布式k-means算法大致步骤如下:

1.在n维空间上随机选取k个点分别作为k个类别的中心点。

2.将所给的P个样本分配给N个agents,每个agent分到mi个样本。计时间段t=0。

3.每个agent计算自己手上的每个样本到各个类别中心点的距离(此处我们使用Euclidean norm衡量距离),某个样本离哪个类别的中心点最近就归入该类中。计时间点s=0。

4.每个agent计算其当前时间点下各个邻居手中样本的在各个类别中的数量和在各个类别中的总和,将他们加权求和,作为此agent在下一时间点上其手中样本在各个类别中的数量和在各个类别中的总和。s=s+1。

5.重复第4步直到收敛。4

6.计算出当前每个类别的中心点(中心点的每个维度取所有该类别样本在该维度的均值)。t=t+1。

7.重复3到6的过程,直到达到最大迭代次数或者各样本的类别不再变化为止。

(四)结果

该算法被证明是收敛的,其时间复杂度为,空间复杂度为。在数据测试中,该算法相较于传统的共享Global信息的k-means算法,无论在效率还是稳定度上,都表现得更好。我认为,未来可能的可以延伸探索的课题,包括

1.将该算法与二分式k-means算法进行结合,研究是否能产生表现更好的算法。

2.研究通过该算法的架构是否能解决k-means算法收敛于局部最优解的问题。

你可能感兴趣的:(数据科学个人笔记:分布式参数学习法+分布式K-means聚类)