写这篇文章的时候,已经是开学半年了,还没什么进展。
一句话总结:读了很多,但没有理解透彻的。
梳理一下脉络,为后面进展做一个小结和展望。
随机梯度下降:梯度是函数的一阶导,用斜率表示,表示线的增减走向(正的过一三象限,负的过二四象限),寻找极值点。
分类
中心化 | 去中心化 |
---|---|
独立同分布(iid) | 非独立同分布(non-iid) |
FedAvg | 加权平均 |
动量 | 双动量 |
初始化相同 | 初始化不同 |
2017年, McMahan 1 ^1 1提出联邦学习框架概念,指出存在 数据异构,各客户端数据量大小差异,覆盖广泛,通信量限制。
分析了通信量瓶颈,提出有两种解决方法:
- 增加并行计算
- 减少通信轮数,增加客户端计算量
对于iid, non-iid 情形进行了比较,以MNIST数据集为例,构造三种情形,第一类为iid,后两类为Non-iid:
- 将数据集随机打乱分在各个客户端--------iid
- 每个客户端只有一类--------------极度non-iid
- 每个客户端只有两类-------------次极度non-iid
故事描述:
假设client 和 server 都没开始工作, 有一个模型首先送到服务器了,服务器认为这个模型不够完 美,将它(复制)好多份送给各个client, 每个client 都对这个模型进行(加工),好多用户把这个模型处理成不同的样子,有的做坏了,干脆扔了,听说服务器有奖励评比,各个client将自己的作品简介发给服务器了,服务器对照这些简介,把模型按照汇总改了一下, 觉得还不完美,把改的模型又全发下去了,又有client做坏扔了,有的client有新想法了,又进行改造,往返几次,服务器收到的描述修改后发现完美了,改动已经很小了,就这样哇!把最后这个模型评为最好的模型,供大家参观!
官方描述:
设一个目标: min f ( w ) = 1 n ∑ i = 1 n f i ( w ) \min f(w) = \frac{1}{n} \sum_{i=1}^{n}f_{i}(w) minf(w)=n1i=1∑nfi(w)
直觉认为达成这个目标应该是所有轮的每一轮所有用户的 f i ( w ) f_{i}(w) fi(w)时最小的,总和是最小的。
f i ( w ) f_{i}(w) fi(w)是客户端 i i i 每一轮的损失函数值,每一轮参加的数量是客户端是总数的百分之多少 C ∗ N C * N C∗N( C ∈ [ 0 , 1 ] C\in [0,1] C∈[0,1])。
在每一轮中,每次训练多少(B),共训练多少次(E)。
更新步骤: 找到了方向 g k g_{k} gk,要走多少( η \eta η)。
w t + 1 k = w t − η g k w_{t+1}^{k} = w_{t}-\eta g_{k} wt+1k=wt−ηgk
聚合: w t + 1 = 1 n ∑ k = 1 K w t + 1 k w_{t+1} = \frac{1}{n} \sum_{k=1}^{K} w_{t+1}^{k} wt+1=n1k=1∑Kwt+1k
Koneˇcný (NIPS 2016) 2 ^2 2, 针对上传通信阶段进行优化,提出两种方法(说到底就是压缩矩阵传输的形式):
1 . 结构更新(低维)
- 低秩,矩阵分解。
- 稀疏矩阵
2 . 压缩更新
- 子样本(矩阵的子集合,无偏估计)
- 概率量化(权重量化,加解码(不懂),用的随机比例,而没有用2进制)
参数用矩阵来表示:
[ h 11 h 12 . . . h 1 d 2 h 21 h 22 . . . h 2 d 2 . . . . . . . . . . . . h d 1 1 h d 1 2 . . . h d 1 d 2 ] \begin{bmatrix} h_{11} & h_{12} & ... &h_{1d_{2}} \\ h_{21} & h_{22}& ... &h_{2d_{2}} \\ ... &... & ... &...\\ h_{d_{1}1} & h_{d_{1}2}& ... &h_{d_{1}d_{2}} \end{bmatrix} ⎣⎢⎢⎡h11h21...hd11h12h22...hd12............h1d2h2d2...hd1d2⎦⎥⎥⎤
变为向量 h = h 11 , h 12 , . . . , h d 1 d 2 = V e c ( H t i ) = a 1 , a 2 , . . . , a d 1 ∗ d 2 h={ h_{11},h_{12} ,...,h_{d_{1}d_{2}}}=Vec(H_{t}^{i})=a_{1},a_{2},...,a_{{d_{1} * d_{2}}} h=h11,h12,...,hd1d2=Vec(Hti)=a1,a2,...,ad1∗d2
h m a x = m a x j ( a j ) h_{max}= max_j(a_{j}) hmax=maxj(aj), h m i n = m i n j ( a j ) h_{min} = min_{j}(a_{j}) hmin=minj(aj)
概率量化
h ′ = { h m a x 概率为 a j − h m i n h m a x − h m i n h m i n 概率为 h m a x − a j h m a x − h m i n h^{'}=\begin{cases} h_{max} &\text{概率为} \frac{a_{j}-h_{min}}{h_{max}-h_{min}} \\ h_{min} &\text{概率为} \frac{h_{max}-a_{j}}{h_{max}-h_{min}} \end{cases} h′={hmaxhmin概率为hmax−hminaj−hmin概率为hmax−hminhmax−aj
h ′ h^{'} h′是关于h的无偏估计。对于 b 比特可以量化为 2 b 2^{b} 2b 个 [ h m i n , h m a x ] [h_{min},h_{max}] [hmin,hmax]区间,降低了计算复杂度为 O ( d ) O(d) O(d)和 O ( d l o g d ) O(d log d) O(dlogd)
主要内容串
1 .Mcmahan H B , Moore E , Ramage D , et al. Communication-Efficient Learning of Deep Networks from Decentralized Data[J]. 2016.
2. Konen J , Mcmahan H B , Yu F X , et al. Federated Learning: Strategies for Improving Communication Efficiency[J]. 2016.
3. Yang L , Beliard C , Rossi D . Heterogeneous Data-Aware Federated Learning[J]. 2020.
4. Bonawitz K , Eichner H , Grieskamp W , et al. Towards Federated Learning at Scale: System Design[J]. 2019.
经典图收集
1(内容串 3)总结了近期Non-iid的研究。
2 (内容串 4)描述了联邦学习协议,提出的系统可以利用Tensorflow 去训练深度神经网络,指出未来会对Bias,Convergence Time. Device Scheduling, Bandwidth, Federated Computation
以上是对初始提出的两种联邦平均算法的简要回顾。
—后续。