论文链接
文章发表于ICLR2021
以下是论文的创新点:
-
FedFomo 提出了一种个性化的学习方式,它允许每个客户端根据自身的目标任务,选择最适合的其他客户端的模型进行组合,而不是单一地依赖全局模型。每次根据概率(亲和矩阵)选择几个其他的客户端模型进行学习。
-
w n = L i ( θ i ( t − 1 ) ) − L i ( θ n ( t − 1 ) ) ∣ θ i ( t − 1 ) − θ n ( t − 1 ) ∣ w_n = \frac{\mathcal{L}_i \left( \theta_i^{(t-1)} \right) - \mathcal{L}_i \left( \theta_n^{(t-1)} \right)}{\left| \theta_i^{(t-1)} - \theta_n^{(t-1)} \right|} wn= θi(t−1)−θn(t−1) Li(θi(t−1))−Li(θn(t−1))
提出了如上公式以计算其他客户端的权重,最后若 w n < 0 w_n <0 wn<0则使得 w n = 0 。 w_n = 0。 wn=0。
其中 θ i \theta_i θi代表了本地模型参数, θ n \theta_n θn代表了其他客户端的模型参数。
这个公式通过考虑损失函数和模型参数的差异,决定了每个客户端在更新自身模型时,应该参考其他客户端模型的多少。也就是说,如果某个客户端的模型在你的任务上表现好,那么你就更多地参考它,反之则少参考。 -
亲和矩阵是一个二维的n*n的矩阵 P P P, P [ i ] [ j ] P[i][j] P[i][j]代表着 C l i e n t i Client_i Clienti在学习过程中选取 C l i e n t j Client_j Clientj的概率大小,一开始全部的值都相等代表概率都相等,在每次学习过程中都会根据2中的公式更新该矩阵,若抽取到的权重较大,则提高矩阵中该点的值,否则减少。
-
最后提出了两种贪心策略,第一种是优先选择亲和矩阵中值较大的,另一种则是保留了随机选择其他模型的概率,并不一定每次都选择最优的值,避免程序陷入局部最优解。