arXiv | FedPer:带个性化层的联邦学习

前言

在这里插入图片描述
题目: Federated Learning with Personalization Layers
论文地址:Federated Learning with Personalization Layers

这篇论文在arXiv挂着时作者已经将其投到了AISTATS(International Conference on Artificial Intelligence and Statistics, 2020),不过好像没有在会议官网找到这篇文章,应该是没有被录用。虽然没被录用,但这篇论文也具有一定参考意义。

FedPer

1. 模型

FedPer的视图如下所示:
在这里插入图片描述
可以看到,所有客户端模型共享基本层(蓝色),然后由于数据分布的不同,不同客户端模型具有不同的个性化顶层。

2. 问题定义

参数定义:

  1. K B K_B KB:客户端模型基本层数量。
  2. K P K_P KP:客户端模型个性化层数量。
  3. N N N:设备总数。
  4. α B , 1 , . . . , α B , K B \alpha_{B,1},...,\alpha_{B, K_B} αB,1,...,αB,KB:基本层的激活函数。
  5. W B = ( W B , 1 , . . . , W B , K B ) W_B=(W_{B,1},...,W_{B, K_B}) WB=(WB,1,...,WB,KB):基本层权重矩阵。这里需要注意,基本层中不同层的权重矩阵可能具有不同的维度。
  6. W P j = ( W P j , 1 , . . . W P j , K P ) W_{P_j}=(W_{P_j,1},...W_{P_j, K_P}) WPj=(WPj,1,...WPj,KP):第 j j j个客户端的个性化层的权重矩阵。

因此,神经网络的forward pass可以描述为:
在这里插入图片描述
客户端的样本首先经过基本层,然后再经过个性化层,最后得到输出。forward pass可以简单描述为:
y ^ = f ( x ; W B , W P j ) \hat{y}=f(x;W_B,W_{P_j}) y^=f(x;WB,WPj)
不同客户端的基本层权重矩阵 W B W_B WB是一样的,个性化层权重矩阵 W P j W_{P_j} WPj不一样。

需要优化的损失函数:
在这里插入图片描述
即所有客户端损失的均值。

其中第 j j j个设备上的损失定义为:
在这里插入图片描述

3. 算法

算法伪代码:
在这里插入图片描述
总体流程描述:

  1. 服务器端初始化基本层权重 W B ( 0 ) W_B^{(0)} WB(0)
  2. 客户端初始化自己的个性化层权重 W P j ( 0 ) W_{P_j}^{(0)} WPj(0)
  3. 服务器端将 W B ( 0 ) W_B^{(0)} WB(0)发送到各个客户端。
  4. 服务器端和客户端都执行相同的循环:客户端收到服务器传来的基本层权重,然后利用本地数据来进行SGD更新:
    在这里插入图片描述
    其中 η j ( k ) \eta_j^{(k)} ηj(k)表示当前学习率, e e e为本地训练轮数, b b b为batch size。
  5. 本地训练完毕后只将基本层权重传回服务器。
  6. 服务器聚合所有客户端的基本层权重,然后分发给所有客户端,进行下一轮通信。

总得来说,FedPer与FedAvg有以下3点不同:

  1. FedAvg每次需要随机选择客户端,而FedPer需要激活所有客户端。
  2. FedAvg需要聚合所有参数,FedPer只是聚合基础层参数。
  3. FedAvg中只有一个全局模型,所有客户端都使用该全局模型,而FedPer中每个客户端都有自己的个性化模型。

代码实现在下一篇文章!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cyril_KI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值