关于密码学:论文分享FED-BN使用LOCAL-BATCH-NORMALIZATION方法解决Noniid问题

10次阅读

共计 5529 个字符,预计需要花费 14 分钟才能阅读完成。

更多干货内容,请关注公众号:隐语的小剧场

本次分享内容基于 ICLR 2021 收录的一篇文章:《FED BN: FEDERATED LEARNING ON NON-IID FEATURES VIA LOCAL BATCH NORMALIZATION》,这篇论文次要探讨了应用 LOCAL BATCH NORMALIZATION 办法解决 Non-iid 问题。围绕这篇论文的分享将分为 4 个局部:

1、BATCH NORMALIZATION 及其解决 Non-iid 问题的办法;

2、Non-iid 问题及罕用的 sota 解决办法;

3、FED BN 及其解决 Non-iid 问题的办法;

4、围绕论文试验剖析 FED BN 成果与价值。

话题一、BATCH NORMALIZATION 及其解决 Non-iid 问题的办法

1. BATCH NORMALIZATION

BATCH NORMALIZATION 是在 明文机器学习中比拟罕用且成果较好的一种办法,它能够很好的解决 feature scaling 的问题,包含层与层之间 internal Covariate Shift 的问题。

那么什么是 feature shift 呢,咱们来举个例子

如图工作是辨认图片内容是不是玫瑰花,右侧绿色小圈是玫瑰花,红色则不是,蓝色则表分类边界。尽管高低 2 组图的工作雷同,然而肉眼可见其特色散布显著不同。这种散布状态在训练时就会导致收敛艰难,须要更多的步骤来对消 scale 不同所带来的影响能力最终收敛。这种 feature scale 差别在和权重进行矩阵相乘时,会产生一些偏离较大的差别值,这个差别值在网络中会影响前面的层,并且偏离越大影响越显著。BN 的作用则是将输出标准化,放大 scale 的范畴。其后果就是能够进步梯度的收敛水平,并晋升训练速度。

那么 BN 是怎么来的呢?

在早些期间,网络绝对扁平的时候有一种办法 Whiten(白化):对输出数据做单位方差的正态分布转换,能够减速网络收敛。在深度网络中随着网络深度的一直减少,每层特征值散布会逐步的向激活函数的输入区间的高低两端(激活函数饱和区间)凑近,如此持续就会导致梯度隐没,影响训练收敛。一些工作包含 Relu, Resnet 和 BN 等就是尝试解决这个问题。既然 whiten 能够减速收敛,那么是否深度网络中对每一层做 whiten 就能够减速收敛?由这种构想便产生了 BN,其作用就是保障机器学习的 iid 假如,保障每个隐层节点的激活输出散布固定,升高 feature shift 对模型训练造成的影响。

那 BN 怎么做?

训练阶段

1、取 batch 数据计算均值

2、取 batch 数据计算方差

3、做 normalize

4、通过训练失去 scale 和 shift 参数

这里 normalize 在后的过程中还波及了两个参数 :γ 及 β,一个对应 scale,一个对应 shift,是对其进行一个平移操作的参数。为什么须要这两个参数?咱们以 sigmoid 激活函数来进行举例;论文作者在设计时默认将 BN 增加在激活函数之前,如果在得出 normalize 后不增加线性变动,则会导致大部分输出后果停留在线性空间。但线性空间的多层叠加却是有效的,相较之一层线性网络没有任何区别,即减弱了整个网络的表达能力。故而须要增加 γ 及 β 参数进行转换,使其找到线性和非线性之间的平衡点, 如此既能享受到非线性表白的益处,又能够防止它落在两端影响收敛速度。

在预测流程中,则没有 batch 的概念,咱们须要应用全副的待预测数据求均值,而后求抽样方差,最初应用这两个参数,对其进行转化并在预测中应用。

长处小结:

1、能够极大地晋升训练速度及收敛速度,能够应用较大的学习率

2、能够加强学习的成果

3、调参过程会变简略,因为 BN 的应用对初始值的敏感度升高

毛病小结:

1、训练和预测的后果存在些许的不统一

2、单个 batch 的计算须要减少计算量

话题二、iid

iid,即独立同散布,假如训练数据和测试数据满足雷同散布,是通过训练数据取得的模型可能在测试集上取得较好成果的基本前提保障。然而在局部联邦场景下,数据源不同使得这一假如很难被满足。对于 iid 的分类参考相干论文可划分为五种情景:

1、Feature distribution skew,即特色散布偏移(以前文玫瑰花辨认为例,x 的特色不统一,但 label 散布统一);

2、Label distribution skew,即特色散布出现统一,但每一方的 label 都是不雷同(如不同的人所认得的字的合集不同);

3、Quantity skew,即数据量不同

4、Same label but different feature,即咱们所熟知的垂直场景,每一方都有一些数据,这些数据共享一个 label;

5、Same feature but different label,特色雷同但 label 不同,即多任务学习。

如上图(图引自于)所示,将数据及罕用办法与对应可解决的问题进行划分,FED BN 解决的就是特色散布偏移的问题。

解决 iid 问题的经典联邦算法

1. Fed-AVG

Fed-AVG 是联邦学习中的经典算法之一,次要解决两个问题:通信问题和 Client 数量问题。

通信问题,即相较于 SGD 办法须要在每一代迭代之后将梯度(gradient)或权重(weight)发至服务端进行聚合,须要减少很多通信量和计算量。Fed-AVG 则容许在客户端在本地实现一些 step 之后再到服务端做聚合,通过减少客户端的计算缩小整体的通信,并且 Fed-AVG 并不需要每一次所有 Client 都加入,进一步能够升高通信和计算量。该工作从实践上证实了 Fed-avg 的收敛性。

Fedavg 的收敛门路如下图所示:

Fed-AVG 的流程为:

1、server 把全局模型下发至每个 client

2、各个 client 应用 local 数据通过等其余优化办法进行迭代,失去 gradient 或 weight,并加密发送给 server

3、Server 对收到的 gradient 和 weight 进行聚合失去 global g/w,发送给各个 clients

4、Client 收到 global g/w 对其本地的模型进行更新

2. FedProx

FedProx 是在 Fed-AVG 根底上进行了一些演变,作者引入了 proximal term 这一概念做束缚,将学习指标由 F(x)变为了 H(x),目标是使得本地更新不要太过远离初始 global model,在容忍零碎异构性的前提下缩小 Non-IID 的影响。用 γ 作为本地迭代的 proxy,值越小更新精度越高。

FedProx 整体流程基本上和 fed-avg 是一样的,差别在于 loss 函数做了批改,减少了束缚项

所以每轮降落的梯度变成了

3. Scaffold

Scaffold 也是从 fed-avg 的根底上演变过去的 non-iid 策略,通过在随机过程 control variates(guess)来克服 client drift 来进行联邦学习。scaffold 想既能看到本人的数据,又能看到 server 的数据啊,这样的话本人学习的方向就能够尽量往 global 这边靠,防止发散不收敛。然而 server 的数据是看不到的,所以就去猜,为了猜 server 的梯度方向,作者给了 C 和 Ci 的概念,Ci 是梯度,C 是合相梯度,这里假如合相梯度是 server 想要优化的方向,拿合相梯度和本次计算出来的梯度求了一个差,就能够失去优化应该去的方向。所以对于这个算法,不仅要更新参数,还要更新猜想项。

算法流程如下:

能够看到和 fed-avg 的区别在于多了 ci 和 c,每一个 client 计算的 ci 是对本方多轮迭代的 gradient 进行均匀失去的,server 的 C 是对各个方面失去的 ci 进行均匀失去。

话题三:FedBN

FedBN 这篇工作最大的奉献在于他提出了 如何在联邦学习场景下应用 batch normalization 策略,来解决 feature shift 问题,同时能够利用 BN 来减速训练。

•文章通过在部分模型中退出批量归一化层(BN)解决联邦学习数据异构性中 feature shift 这种状况

•Feature shift:

•y 为标签,x 为特色,文章将 feature shift 定义为以下状况:

•1)covariate shift:即便所有客户的是雷同的, 不同客户之间的边缘散布

是不同的;

•2)concept shift:不同客户的条件散布不同,但 P(y)雷同。

•例如:医学成像中不同的扫描仪 / 传感器,主动驾驶中不同的环境散布(公路和城市),使得本地客户端的样本分布不同于其余客户端。

•与 FedAvg 相似,FedBN 也进行部分更新和模型聚合,不同的是,FedBN 假如部分模型有批量归一化层(BN),且 BN 的参数不参加聚合。

收敛性剖析:

作者用 NTK 做了一系列形式化证实,得出的论断是:在 feature shift 场景下,FedBN 的收敛比 FedAvg 更快更润滑

Experiment:

试验选了 5 个来自不同域且带有 feature shift 性质的数据集(不同域的数据具备异构性和雷同的标签散布),具体包含SVHN、USPS、MNIST-M、MNIST、SynthDigits。文章事后对这五个数据集进行预处理,管制无关因素,例如客户之间样本数量不均衡问题,使 BN 的作用在试验中更加易于察看。

各个数据集之间散布的差别图

模型提供了一个简略的 CNN 网络,每一层后边都加了一个 BN ReLU

试验一

从下面 5 个数据集和模型 setting 能够看出,不论从收敛品质还是从收敛速度来说,都是要比 FedBN 以及 FedAVG 要好。

上图是 3 个试验:

a 图表明了不同的 local update step 对收敛性的影响。横轴是 Epochs 其实是 local update step 的概念。纵轴是 test accuracy。

1、能够看出 local update step 和 testing\_acc 负相关

2、fedBn 全程比 fed-avg 体现优异

3、尤其是咱们看下最终收敛后的后果,fedbn 体现的更加稳固

图 b 是示意不同的本地数据集大小对于收敛的影响,横轴 percentage,即本地拿出百分之多少的数据进行训练,纵轴是 testing accuracy。咱们能够看出,测试的准确度在 local client 只奉献 20% 数据时候显著降落,然而对应于 singleset 的晋升是反向的,数据量越少对于性能的晋升越大,所以表明 fedbn 适宜在双方非持有大量数据的联结训练中应用。

图 c 是表明不同异构性对于收敛的影响,作者这里试图答复一个问题异构性在什么水平时 FedBN 会比 FedAVG 地位好。这里的试验把每 1 方的数据都切分成了 10 份,一共有 5 个数据,总共 50 份数据,所以横坐标总数为 50。

1、开始时每个 dataset 选一个数据集来参加训练

2、而后逐步的减少 clients,要放弃 n 倍 clients 数量

3、More clients -> less heterogeneity

假如数据集更多,客户端更多,他的异构性就会更低。得出结论是,在任何设置下,FedBN 都比 FedAVG 成果要更好一点。

接下来是和 SOTA 的比拟,比照的办法为 Fed Prox,Fed Avg,还有 Single set(把数据都拉到一方去进行训练,仍有 non-iid 个性)。因为 FedBN 的模型里边加了 BN,所以后果相较 Singleset 要更好一点,因为 BN 把一些“data shift”做了解决,升高了 non-iid 数据的影响。FedBN 和其余的相比的话,指标都要好一些,尤其是在 svhn 这个数据上,晋升的幅度是最显著,将近有 10%。这个数据的特点就是特色很高,差别很大。所以这个办法对特色差别大的数据是比拟无效的。同时 FedBN 在屡次跑的时候,error 的方差最小,训练出的模型稳定性更好。

最初咱们 FedBN 看一下在实在数据集下的体现:这里文章抉择了天然图像数据集 Office-Caltech10,它有 4 个数据源 Office-31(3 个数据源)、Caltech256,每个 clients 调配了 4 个数据源中的一个,所以数据在 clients 之间是 Non-iid 的。

第二个数据源是 DomainNet, 蕴含了从 6 个数据起源的天然图像数据集别离是:(Clipart,Infograph,Painting,Quickdraw,Real,Sketch),划分办法和下面的 Cal10 是一样的。

第三个数据集从 ABIDE I 数据集选取,蕴含了 4 个医学数据集 (NYU,USM,UM,UCLA) 每一方被看做一个 client。

后果和剖析:

从后果能够看出,FedBN 在各方面全面超过了以后的 SOTA 工作。而且,咱们能够看到 FedBN 除了 QuickDraw 数据集外,都取得了绝对劣势的后果,甚至优于 SingleSet 的后果,BN 在解决 feature shift 晋升模型成果上有其显著的劣势。

上述的后果也给咱们在医学衰弱畛域应用 FedBN 提供了信念,因为医疗场景下的数据的特色往往是无限数量,离散散布,而且是有 feature shift 的。

总结:

这篇工作提出了 FedBN,给出了在联邦场景下应用 BN 来缓解 feature shift 的办法,并证实了其收敛性和有效性。FedBN 的办法和通信、优化器办法是正交的,在理论应用中能够组合应用。FedBN 在算法是对 FedAvg 只做了很小的改变,在理论中还能够与其余联邦 strategy 进行联合应用(Pysyft、TFF 等已集成)。FedBN 曾经在医学衰弱,主动驾驶等畛域被证实是很无效的策略,这些场景的数据的特点是,不同方的本地数据因为存在 feature shift 导致的 non-iid。对于数据安全性,BN 层的数据对于整个交互和聚合是不可见的(Invasible),所以肯定水平上减少了对本地数据攻打的艰难。

更多干货内容,请关注公众号:隐语的小剧场

正文完
 0