两篇论文:Zeno++ and clustered federated learning
上周和导师聊过后,感觉还是要看仔细点,所以这周就看了两篇,其实有一篇还是上周就看过的,不过这看认真点这样。这周主要说的话,就是看了cluster federated learning这篇文章吧,把里面的推导过程都推了一遍。
ZENO++: ROBUST FULLY ASYNCHRONOUS SGD
这个模型是asynchronous的模型,有server和worker,也就是centralized。对于每个worker,就是从server中取
X
t
X_t
Xt(parameters)出来,然后作为自身的模型的parameter,用自身的数据集进行训练,之后得到更新后的梯度
g
~
\tilde{g}
g~,将这个
g
~
\tilde{g}
g~上传到server上。这就是worker的一次迭代。
对于server来说,有
v
v
v这个东西,
v
v
v就是server根据自己的dataset来更新得到的梯度。server会接收来自任何一个worker的
g
~
\tilde{g}
g~,然后通过和
v
v
v的相似度来判断这个梯度能不能进行更新,该判断是使用的hard threshold。相似度大,就可以更新
X
t
X_t
Xt。并且使用lazy_update的方法来更新
v
v
v值,减少计算的消耗。(因为计算一次v就要跑一次模型,计算花费很大。)
优点:可以解决拜占庭错误(因为通信失败而导致梯度变化和预期差距过大),且不需要考虑错误的worker的数量。是一个asynchronous模型。
缺点:这个模型考虑的是iid的数据集,并且是centralized的。但是实际上centralized也很常见,这个可能算不上缺点?感觉问题比较大的是iid数据集这个问题。实验也是采用的cifar-10的数据集,randomly sample onto all workers。实际上可能比较难以实现。并且实验只用了10个worker,感觉说服力不算强?
这篇论文的数学推导还没看,也许下周会看。
Clustered Federated Learning: Model-Agnostic Distributed Multi-Task Optimization under Privacy Constraints
这个也是centralized的,流程如下:对总模型进行FL,得到stationary point
θ
∗
\theta^*
θ∗。然后根据
θ
∗
\theta^*
θ∗得到similarity matrix
α
i
,
j
\alpha_{i,j}
αi,j,用的是cosine相似度。对similarity matrix
α
i
,
j
\alpha_{i,j}
αi,j进行cluster,得到两个类,然后再根据文中的条件进行判断,看看是否需要继续进行cluster。重复上述过程直至不再需要进行cluster。
优点:personalized,可以解决iid的问题。实验上的设计也是按照non-iid的方式来设置的。
缺点:不是asynchronous,所以可能在实际中比较难以运用。
这篇文章的数学推导我推了一遍,在(73)那里作者应该是复制粘贴的时候没改过来,符号错了,不过对于整个证明过程来说不是什么大问题。
这两篇文章的experiment的worker数量不大,第一篇是10个,第二篇是20个,所以不太清楚是不是FL的experiment目前都是这个样子的?