省流:改进了loss。
创新点
借鉴NT-Xent loss(下图),改进了损失函数,实现了模型级的contrastive federated learning。
具体如下:
$\tau$为温度参数(实际上就是一个避免数值计算困难的trick),$z$表示本地当前轮次模型,$z_{glob}$表示全局模型,$z_{prev}$表示本地前次轮次模型,$sim(·,·)$即两模型参数的余弦相似度。
模型优化的总体目标即最小化这个loss。
其中$l_{sup}$代表传统的损失函数(如cross-entropy),$\mu$即一个用于模型组合的超参数。
对比SimCLR,MOON的改进是将损失函数拓展到了模型级。
算法过程
算法输入分别为:通信轮次$T$、客户端数$N$、本地训练次数$E$、温度参数$\tau$、学习率$\eta$与超参数$\mu$。
算法输出即$T$轮通信后的模型,用$w^{T}$表示。
服务器训练部分
这部分很符合直觉,将全局模型下发到各客户端,并按照本地样本占全局样本的比例(即$\frac{|D^i|}{|D|}$)参与模型的更新。
本地训练部分
由服务器下发的模型训练$E$轮次,计算前面提到的loss,最后进行梯度更新并回传给服务器。
实验
验证核心观点
原文作者首先用一个小实验论证模型在全量数据集上的训练效果一定优于其子集这一观点。
a. 全量数据集上训练的效果。
b. 将数据集分为10份(不均衡),随机选取一个的效果。
c. 使用FedAvg进行联邦学习,全局模型的效果。
d. 使用FedAvg进行联邦学习,随机选取一个本地模型的效果。
准确率
这个指标描述随机三次的准确率指标。
通信效率
这个指标用于描述与中心服务器的通信次数,类似于收敛速度。
本地轮次数量
这个指标用于描述模型下发后在客户端的训练轮次。
可伸缩性
这个指标用于描述模型在大数据集上的效果。
异质性
改变样本分布的情况下探究模型准确性。
损失函数
对于本地训练更换不同损失函数后的效果对比。
总结
本文所提出了一种模型级联邦对比学习方法,要求模型为有参模型,且为有监督学习。
Ref
- Li Q, He B, Song D. Model-contrastive federated learning[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021: 10713-10722.
One comment