阅读笔记(Communication-Efficient Learning of Deep Networks from Decentralized Data)

阅读笔记(Communication-Efficient Learning of Deep Networks from Decentralized Data)

  • 动机
  • 联邦平均
  • 实验结果
    • MINIST优化实验
    • CIFAR-10优化实验
  • 结论:

可访问文章;
可访问代码。

动机

传统数据训练方式,用户将本地数据提交给可信云服务器进行统一集中并训练,如何保证用户本地数据的隐私性
同时,计算成本和通信开销如何保证?

联邦学习(联合学习)的提出,可以较好地解决上述问题。

  1. 通俗定义:分布式(但有差异)训练,不需要专门集中数据,避免泄露数据隐私,节省开销,利用可信第三方聚合上传的本地参数(或梯度),数据标签不一致可以通过用户交互进行样本对齐。
    特别地,关于可信第三方是否值得信赖的问题,可借鉴半可信(HBC)模型,结合联邦学习和安全方案(差分隐私、同态加密)。
  2. 优化方向与挑战:(区别于分布式学习)

– 数据非独立同分布(Non-IID)
– 数据不平衡(不同用户参与度不一致,每个用户拥有的数据样本数不一致)
–大规模分布式(大规模用户如何应对以控制开销)
–通信限制(用户传输参数(梯度)后多处于离线状态)

  1. 本文拟解决问题:数据Non-IID、数据不平衡、用户(客户端)可用性、优化通信开销。
    实际解决问题:如何降低通信开销?两种方法:1)增加用户;2)增加每轮通信的用户迭代次数。
  2. 问题描述与解决方法:
    – Non-IID:阅读笔记(Communication-Efficient Learning of Deep Networks from Decentralized Data)_第1张图片
    w w w表示网络参数, i i i代表样本索引, k k k表示用户(客户端)索引(共 K K K个用户), P k P_k Pk表示用户k拥有的数据样本集, n k n_k nk表示用户 k k k的本地数据集 P k P_k Pk的数量, n n n表示所有数据的数量, f i ( w ) = l ( x i , y i ; w ) f_i(w)=l(x_i,y_i;w) fi(w)=l(xi,yi;w)表示每个样本的训练损失, F k ( w ) F_k(w) Fk(w)表示 P k P_k Pk上的平均损失, f ( w ) f(w) f(w)表示聚合所有用户数据集( P k P_k Pk)的全局平均损失。
    若每个用户 k k k的数据集 P k P_k Pk是均匀分布的,即期望 E P k [ F k ( w ) ] E_{P_k}[F_k(w)] EPk[Fk(w)]=f(w),这意味着 P k P_k Pk符合IID独立同分布
    –通信开销
    若采用数据中心训练,用户将本地数据发送给数据中心,显然通信开销相对较小,主要为计算开销;
    在联邦学习场景下,用户端的本地数据量远远小于总数据量,用户计算开销可以忽略不记,通信开销占据主导地位,因而,如何降低通信开销是需要考虑的问题。
    用户自愿参与联邦学习,参与通信轮数十分有限,因此本文采用增加计算开销的方式减少通信开销
    两种方式:①并行化,采用更多的用户参与训练优化;
    ②增加每个用户的计算开销,减少通信轮数。

联邦平均

FedAvg算法的计算开销与三个参数相关;

  1. C:每轮通信内,执行计算的用户所占的比例( 0 ≤ C ≤ 1 0 \le C \le 1 0C1),C=1表示所有用户均参与联邦优化, C ⋅ K C \cdot K CK表示参与用户数量,C=0表示有且仅有1个用户均参与联邦优化。
  2. E:每轮通信内,每个用户对其本地数据集进行的训练迭代次数( E ≥ 1 E \ge 1 E1);
  3. B:用户更新训练本地数据集的小批量大小( B ≥ 1 B \ge 1 B1), B = ∞ B=\infty B=表示采用单个批量处理整个本地数据集。
    特别地,在每轮通信内,用户 k k k执行本地更新的次数 u K = E ⋅ n k / B u_K=E \cdot n_k / B uK=Enk/B,若 B = ∞ B=\infty B=,表示 n k / B = 1 n_k / B=1 nk/B=1,即 u K = E u_K=E uK=E

FedSGD = FedAvg ( B = ∞ B=\infty B= E = 1 E=1 E=1)

阅读笔记(Communication-Efficient Learning of Deep Networks from Decentralized Data)_第2张图片
一轮通信并意味着挑选的用户只执行一次迭代训练,迭代次数与E有关;

算法解释:m表示随机挑选出的参与联邦优化的用户数量,且 m ≥ 1 m \ge 1 m1,在第t轮通信,随机用户构成子集 S t S_t St
S t S_t St中的每个用户 k k k并行地利用全局聚合参数 w t w_t wt执行参数更新,获得 w t + 1 k w_{t+1}^k wt+1k
– 用户 k k k根据批处理大小 B B B将本地数据集 P k P_k Pk拆分为 B \mathcal{B} B个批量,在每个迭代中,按部就班地根据每个批量更新权重参数。
服务器将所有用户 k k k的更新参数用户 k k k执行加权聚合获得 w t + 1 w_{t+1} wt+1,权重为每个用户拥有的数据样本占该轮通信的所有数据样本的比例;

公式推导:用户 k k k计算本地数据集上的平均梯度 g k = ∇ F k ( w t ) g_k=\nabla F_k(w_t) gk=Fk(wt),中心服务器可以通过聚合这些梯度更新权重参数
w t + 1 = w t − η ∇ f ( w t ) ← w t − η ∑ k = 1 K n k n g k w_{t+1} = w_{t} - \eta \nabla f(w_t) \leftarrow w_{t} - \eta \sum_{k=1}^K \frac{n_k}{n} g_k wt+1=wtηf(wt)wtηk=1Knnkgk。(用户上传梯度
等价于:
用户通过局部平均梯度更新本地网络参数
w t + 1 k = w t − η g k w_{t+1}^k = w_{t} - \eta g_k wt+1k=wtηgk
服务器通过全局平均聚合这些网络参数,更新获得全局的网络参数
w t + 1 = ∑ k = 1 K n k n w t + 1 k w_{t+1} = \sum_{k=1}^K \frac{n_k}{n} w_{t+1}^k wt+1=k=1Knnkwt+1k。(用户上传网络参数

神经网络是非凸的,对于一般的非凸目标,参数空间上的平均模型可能产生任意差的模型。
初步解决方案:共享相同的随机种子,即采取相同的参数初始化。

实验结果

目标是为了评估本文的联邦优化方法,而不是追求最高的分类精度

受到图像分类和语言建模任务的激励,好的模型可以大大提高移动设备的可用性。
对于每一个任务,我们首先选择一个足够小的代理数据集,以便我们可以彻底研究FedAvg算法的超参数。
FedAvg算法如何为用户划分数据集?

本文围绕图像分类和语言模型两个任务开展实验,下面主要介绍并解释图像分类实验。
两类真实数据集:

  1. MINIST(60000训练集(55000训练+5000验证)+10000测试集)
  2. CIFAR-10(50000训练集+10000测试集)

两个网络:

  1. 2NN
    –Input(28×28×1) → \rightarrow FC(200) + ReLU → \rightarrow FC(200) + ReLU → \rightarrow Output(FC10)
  2. CNN
    –Input(28×28×1) → \rightarrow Conv(5×5) → \rightarrow 24×24×32 → \rightarrow Max-pool (2×2) → \rightarrow 12×12×32 → \rightarrow Conv(5×5) → \rightarrow 12×12×64 → \rightarrow Max-pool (2×2) → \rightarrow 6×6×64 → \rightarrow FC(512) + ReLU → \rightarrow Output(FC10) → \rightarrow Softmax (10)

两种MINIST数据分布:

  1. IID
    –打乱数据,100个用户,每个用户分配6000个样本(含完整标签0-10)
  2. Non-IID
    –首先按数字标签对数据进行排序,将其划分为大小为300的200个碎片,指定100个用户,为每个用户分配2个碎片(即100×600)。

MINIST优化实验

探索用户批量与通信轮数(精度提升快慢或损失函数收敛速度)的关系
(2NN达到目标精度97%(E=1),CNN达到目标精度99%(E=5))
(基线:C=0,表示单个用户参与优化)
阅读笔记(Communication-Efficient Learning of Deep Networks from Decentralized Data)_第3张图片
结果表明:当 B = ∞ B=\infty B=时(用户所有数据一次性地迭代优化),随着通信轮数增加,精度提升对参与用户数量不敏感;
B = 10 B=10 B=10时(小批量),随着通信轮数增加,精度提升对参与用户数量十分敏感(特别是Non-IID数据);
∗ ∗ C = 0.1 ∗ ∗ **C=0.1** C=0.1时(每轮通信10个用户参与优化),可以达到计算效率和收敛速度的平衡(min(C*通信轮数),即最小化用户总计算量)。

探索用户计算量(增加用户开销)与通信轮数(精度提升快慢或损失函数收敛速度)的关系
(CNN达到目标精度99%(固定C=0.1, 每轮通信10个用户参与联邦优化))
如何增加每轮通信内的用户开销?增加迭代次数E;减少小批量B;均可以增加迭代更新次数 u u u
n n n=60000, K K K=100, n k n_k nk=600, u K = E ⋅ n k / B u_K=E \cdot n_k / B uK=Enk/B
阅读笔记(Communication-Efficient Learning of Deep Networks from Decentralized Data)_第4张图片
随着
每轮通信
用户执行的更新次数(用户承担的计算量)越多,那么达到目标精度所需要的通信轮数越少。
当E=5, B=50, u=60,可以达到用户计算效率和收敛速度的平衡。(min(u*通信轮数),最小化总更新次数)

阅读笔记(Communication-Efficient Learning of Deep Networks from Decentralized Data)_第5张图片
阅读笔记(Communication-Efficient Learning of Deep Networks from Decentralized Data)_第6张图片
阅读笔记(Communication-Efficient Learning of Deep Networks from Decentralized Data)_第7张图片

CIFAR-10优化实验

基线SGD:不分用户块,小批量=100;
FEDSGD: B = ∞ B=\infty B= E = 1 E=1 E=1,(固定 C = 0.1 C=0.1 C=0.1);
FEDAVG: B = 50 B=50 B=50 E = 5 E=5 E=5,(固定 C = 0.1 C=0.1 C=0.1);
阅读笔记(Communication-Efficient Learning of Deep Networks from Decentralized Data)_第8张图片

对于适当的C和E值,FedAvg在每次小批计算中取得了类似的进展。
标准的SGD和FedAvg在每轮只有一个客户(C = 0)情况下,在准确性上都表现出了显著的波动,而对更多客户进行平均则消除了这种波动。
阅读笔记(Communication-Efficient Learning of Deep Networks from Decentralized Data)_第9张图片

学习率与优化算法的关系曲线
阅读笔记(Communication-Efficient Learning of Deep Networks from Decentralized Data)_第10张图片

结论:

实验表明,联邦学习是可行的,FedAvg使用相对较少的通信次数训练高质量的模型。
虽然联邦学习提供了许多实用的隐私好处,但通过差分隐私安全多方计算或它们的组合提供更强的数据隐私保证是未来工作的一个有趣方向。

下一篇阅读笔记:

  1. 联邦学习场景下的安全聚合协议 → \rightarrow Practical Secure Aggregation for Federated Learning on User-Held Data;已更新个人博客

  2. 联邦学习场景下的提高通信效率策略 → \rightarrow FEDERATED LEARNING: STRATEGIES FOR IMPROVING COMMUNICATION EFFICIENCY ;已更新个人博客

你可能感兴趣的:(联邦学习,深度学习,神经网络,pytorch)