最近有两篇文章关于处理Non-iid的联邦学习过程中的防止灾难性遗忘和保持准确率的,和我的
想法好像啊!!!
- Ozdayi, M. S., Kantarcioglu, M. & Iyer, R. Improving Accuracy of Federated Learning in Non-IID Settings. (2020).
- Shoham, N. et al. Overcoming forgetting in federated learning on non-IID data. arXiv 1–6 (2019).
第一篇:精确度
问题
-指出共享数据不现实
-用户差异,精确度会下降
正文
背景以Fedavg为例,针对Noniid情形(感觉没明确指出问题),做了一种矛盾假设,提出一种防止聚合抵消的方法。
存在一个输入属于不同类的情况,公式表示 ∃ x , s . t f i , r ( x ) = / f j , r ( x ) \exists ~~ x , ~~s.t~~ f_{i,r}(x){=}\mathllap{/\,}f_{j,r}(x) ∃ x, s.t fi,r(x)=/fj,r(x)
注释: (a)有两种特征,4个样本点,可以正确分类。(b)横
x
1
x_1
x1:第一个用户获得
x
1
>
4
x_1>4
x1>4的样本(红/蓝,-/+),第二个用户获得
x
1
<
4
x_1<4
x1<4的样本(蓝/红,+/-);当第一个用户预测会是-,而第二个用户预测是+,因此产生矛盾,可能聚合时会抵消。
接着引用了Zhao文章中的权重散度结论,初始化相同的权重。又引入服务端动量,加速收敛。
服务器损失函数
局部损失函数
权重更新
引入动量的权重更新
接下来是防止聚合阶段参数相互抵消,调整学习率,设置一个阈值,
权重更新改写为:
实验设置
两个客户端,100轮,本地训练批B=256,学习率0.1,权重衰减$5*10^{-4}$, 测量验证准确度。数据集为CIFAR-10和ResNet20。指标为均值和标准差。比较正常分布式训练、iid联邦学习,non-iid联邦学习,一个客户有(1-5),另一个客户为(6-10)。
注:non-iid 精度明显下降。
注:共享数据时,精度提升10%。
注:引入噪声和阈值,发现效果最好(最后一行),提升6%,引入噪声为了正则化。
注:服务器动量加入后,0.5效果最好,提升7%
注:调整学习率,提升5%
第二篇:防遗忘
问题
针对 non-iid 情形,本地模型漂移,提出一种终身学习方法,解决灾难性遗忘问题,在损失函数增加惩罚项。近期工作,MOCHA设置每一个任务使用不同的参数 w i w_i wi,加入损失项 t r ( W Ω W T ) tr(W \Omega W^T) tr(WΩWT),但不适合深度学习。
正文
终身学习: 学习任务A和B,先A后B,但是不会影响认为A的性能,不遗忘之前学习过的任务。
联邦曲率
N个节点
S
=
{
1...
N
}
S=\{1...N\}
S={1...N},数据集为
{
A
1
,
A
2
,
.
.
,
A
N
}
\{A_1,A_2,..,A_N\}
{A1,A2,..,AN},设置全体集合,因为全体很容易拓展到部分子集的情况,每个节点s在t轮的损失函数为:
t轮初始点为,每t轮进行一次,j用户将
θ
~
t
,
j
\tilde \theta_{t,j}
θ~t,j和
d
i
a
g
(
I
~
i
,
j
)
diag(\tilde I_{i,j})
diag(I~i,j)发送给其他用户
对于数据蒸馏,分享到其他任务中,但是隐私限制,提出Elastic Weight Consolidation(EWC),尽可能少的影响之前的参数。在 θ A ∗ \theta^*_A θA∗附近学习好的 θ B ∗ \theta^*_B θB∗
控制
θ
\theta
θ,使用了对角Fisher信息矩阵,
I
A
∗
=
I
A
(
θ
A
∗
)
I^*_A=I_A(\theta^*_A)
IA∗=IA(θA∗)选择性的减少偏移,目标为:
依据贝叶斯公式:
信息矩阵近似为黑塞矩阵,以下述形式:
最小化 L ( θ ~ ) L(\tilde \theta) L(θ~)。
隐私带宽问题此处忽略。
试验
96个设备,每个设备有两个标签,数据集为MNIST,
(1)比较三个算法 FedAvg, FedProx, and FedCurv
(2)E/B/C/
η
\eta
η
参数保护,没增加带宽和牺牲隐私,并加快收敛.
隐隐感觉到联邦学习的动向。