THE NON-IID DATA QUAGMIRE OF DECENTRALIZED MACHINE LEARNING总结
当不同的ML应用程序和去中心化学习算法的训练数据划分不是IID时,会发生什么?
本文的目标和主要发现。在这项工作中,本文旨在通过对非IID数据划分对去中心化学习的影响进行首次详细的实证研究来回答上述关键问题。本文的研究包括各种ML应用、ML模型、训练数据集、去中心化学习算法和偏离IID的程度。本文关注深层神经网络,研究揭示了三个关键的发现:
(1)在非IID数据划分上的训练是去中心化学习的一个基本和普遍的问题。当在非IID数据划分上运行时,本文研究中的所有应用程序、模型和训练数据集的所有三种去中心化学习算法都存在严重的模型质量损失(甚至无法收敛)。
(2)有批量归一化的DNNs特别容易受到非IID数据的影响,即使在BSP(最需要频繁通信的的去中心化学习方法)下,也会出现显著的模型质量损失。

(3)偏离IID的程度(偏斜度)是问题难度的关键决定因素。
解决方案。在众多提出的批量归一化替代方案中,组归一化(Wu&He,2018)避免了BSP下批量归一化的偏差导致的精度损失。有了这个修正,本文研究的所有模型在BSP下对非IID数据都表现良好,这个问题可以看作是精度和通信频率之间的权衡。直观地说,不同的数据划分之间存在着拉锯战,每个划分拉动模型来反映其数据,只有频繁的通信,调整到偏差引起的精度损失,才能弥补算法的整体模型精度下降。因此,本文提出了SkewScout,这是一种系统级方法,通过跨数据划分(模型移动)交叉验证模型精度,使去中心化学习算法的通信频率根据精度损失来调整。实验结果表明,在保持BSP精度的前提下,SkewScout的自适应方法自动将通信量减少了9.6倍(在高歪斜下)到34.1倍(在低歪斜下)
本文做出以下贡献。首先,本文对非IID数据划分问题进行了详细的实证研究。非IID数据划分的问题是去中心化学习的一个基本和普遍的挑战。第二,本文做了一个新的观察,表明具有BN的深度神经网络非常容易受非IID数据划分的影响。本文讨论了这个问题的根本原因,并发现它可以通过使用一种替代的规一化技术来解决。第三,本文表明这个问题的难度随着数据倾斜而变化。最后,本文设计并评估SkewScout,这是一种系统级方法,它根据数据的偏斜度调整通信频率,在保持模型精度的同时最大化减少通信次数。
去中心化学习
在去中心化学习设置中,我们的目标是基于K个划分(表示为$P_k$)中生成和存储的所有训练数据样本$(x_i, y_i)$来训练ML模型w。训练的目标是让w适合所有的数据样本。通常,大多数去中心化学习算法都假设数据样本在不同$P_k$之间是独立同分布的(IID),称为IID设置。相反,如果这样的假设不成立,称之为非iid设置。本文评估了三种流行的去中心化学习算法在IID和non-IID的表现。
Gaia : 一种地理分布式学习算法,可动态消除数据划分之间的无关紧要的通信。每个划分$P_k$会在每个模型权重$w_j$本地累积更新$Δw_j$,并仅在其相对大小超过预定义阈值时才将$Δw_j$传递给所有其他数据划分(客户端)
Fedavg: 在每个epoch中选择$P_k$的子集,在每个选择的$P_k$上运行预先指定的本地SGD迭代次数,并将生成的模型传回中央服务器。服务器平均所有这些模型,并使用平均值w作为下一个epoch的初始权重.
DeepGradientCompression:为了降低训练过程中的通信量,可以让每个节点在每次迭代中只发送那些“重要”的梯度。因为“不重要”的梯度元素对模型参数更新的贡献比较小,所以就可以不用发送这些对更新贡献较小的梯度。以梯度元素的大小是否超过某个阈值来判断该元素的重要性为了防止丢失大量的信息,可以把每次迭代中没有超过阈值的小梯度元素存起来,在下次迭代中加回到原始梯度向量中。随着训练的进行,这些较小的梯度元素会累加地越来越大,直至在以后的某次迭代中超过阈值,被节点发送出去。并使用各种技术来保持模型精度,包括动量修正(momentum correction)、本地梯度裁剪(local gradient cliping)、动量因子遮蔽(momentum factor masking)和预训练(warmup training)
本文的研究包括三个维度:
(i)机器学习模型,
(ii)分散式学习算法
(iii)与IID的偏离程度。
数据集:CIFAR-10 ImageNet LFW
本文通过控制非IID数据的比例来控制对IID的偏离程度。例如,20%的非iid表示数据集的20%是按标签划分的,其余80%是随机划分的。
本文首先介绍了在CIFAR-10数据集上使用不同的去中心化学习算法进行图像分类的IID和非IID设置的模型质量。在这个计算中本文使用5个划分(K = 5)。由于CIFAR-10数据集有10个类别,每个数据划分在非iid设置中有两个类。图1显示了四个常用DNNs (AlexNet、GoogLeNet、LeNet和ResNet)的结果。
本文做了两个主要观察。

- 在非IID设置中,所有三种去中心化学习算法对所有四种神经网络的模型精度都有显著下降。在IID设置下下保持了BSP的验证精度,非IID设置下,它们的验证精度损失了3%到74%。在某些情况下,甚至不收敛,例如使用GoogLeNet和ResNet20的DeepGradientCompression
- 即使是BSP也不能完全解决这个问题。即使BSP在每次迭代中都进行了充分的通信,它也无法在非IID设置中保留某些dnn的模型质量。特别是,在非IID设置中,ResNet20的验证精度比IID设置中的低39%。这一发现表明,对于某些dnn,通过在数据划分($P_k$)之间更频繁地通信可能无法解决非IID数据挑战。本文发现,这个问题不仅存在于ResNet20中,而且存在于本文使用批量归一化层(ResNet10,BN LeNet(Ioffe&Szegedy,2015)和Inception-v3(Szegedy et al.,2016))研究的所有dnn中。本文讨论了这个问题和潜在的解决方案。

首先,在非IID设置中,Gaia和FedAvg对两个DNN的验证精度都有显著下降(8.1%到27.2%)。另一方面,虽然DeepGradientCompression能够在非IID设置中保持GoogLeNet的验证精度,但在ResNet10上无法收敛。其次,BSP也不能保持ResNet10在非IID设置下的验证精度,这与本文在CIFAR-10研究中的观察一致。这些结果表明,非IID数据问题不仅存在于各种去中心化学习算法和dnn中,而且存在于不同的数据集中.

这些结果表明,三种不同的去中心化学习算法在非IID设置下都会有严重的精度下降。本文研究了这种情况的潜在原因
分析:
Gaia:在ImageNet数据集上,我们从两个划分(分别表示为DC-0和DC-1)中提取Gaia训练模型用于图像分类,然后根据每个划分中的图像类来评估每个模型的验证精度。如图4所示,在IID设置中训练模型时,两组图像类的验证精度基本一致。但是,在非IID设置下,验证精度有很大差异,这两个模型对于各自划分中的图像类都有很好的性能,但是对于不在各自划分中的类,它们的性能非常差。这表明,在非IID设置中使用Gaia会导致数据分区之间的模型完全不同,并且每个模型只适合识别其数据分区中的图像类。这就提出了以下问题:鉴于Gaia同步了所有重要更新($Δw_j$),以确保每个权重$w_j$中模型之间的差异不显著,Gaia如何在非IID设置中生成完全不同的模型?为了回答这个问题,首先比较了非IID DC-0和DC-1模型的每个权重,发现所有权重之间的平均差异仅为0.5%(反映了上一个epoch的显著性阈值为1%)。然而,我们发现在相同的输入图像下,神经元的值相差很大(平均相差173%)。这一发现表明,小的模型差异可以导致完全不同的模型。从数学上讲,这是因为权值既有正的也有负的:神经元个体权值的一个小百分比的差异会导致其值的一个大百分比的差异。由于Gaia消除了不重要的通信,使它们能够专门处理各自数据分区中的映像类,而对于其他类则性能很差。

DGC:深度梯度压缩和联邦平均总是维护一个全局模型,因此没有局部模型专门化的空间。为了理解这些算法性能不佳的原因,本文研究了深度梯度压缩的平均剩余更新增量
($| |Δw_i/w_i | |$)。该数字代表尚未在不同$P_k$之间交换的梯度的大小,因为它在每个时期仅传递固定数量的梯度。因此,它可以被视为不同$P_k$之间的梯度发散量。

图5描述了在CIFAR-10数据集上训练ResNet20时,前20个训练时期的平均剩余更新增量。如图所示,非IID设置的平均剩余更新增量(283%)比IID设置的(27%)高一个数量级。
因此,每个$P_k$在非IID设置中生成较大的梯度,因为每个$P_k$在非IID设置中看到的训练数据差异很大。但是,这些大梯度并不同步,因为深度梯度压缩以固定速率稀疏梯度。当它们最终同步时,它们可能已经偏离了全局模型太多以至于导致了整个模型的偏离。本文的实验也支持这一观点,因为实验中看到DeepGradientCompression在非IID设置中频繁地发散。
Fedavg: 上面对DeepGradientCompression的分析也适用于联邦平均,它通过固定数量的局部迭代延迟每个$P_k$的通信。如果不同$P_k$中的权重相差过大,则同步全局模型可能会失去精度或完全偏离。通过每次全局同步时联邦平均值的平均本地权重更新增量($| |Δw_i/w_i | |$ $w_i$是平均全局模型权重)来验证这一点。图6描述了在CIFAR-10数据集上训练AlexNet时前25个训练阶段的这个值。如图所示,非IID设置中的平均本地权重更新增量(48.5%)远高于IID设置中的平均本地权重更新增量(20.2%),这解释了为什么非IID数据划分会导致联邦平均的主要精度损失。与深度梯度压缩相比,差异不太明显,因此对精度的影响较小。

BN:
正如§3讨论的那样,对于具有批处理规范化层的DNN,即使BSP也无法在Non-IID设置中保留模型质量。本文首先讨论为什么批处理归一化在Non-IID设置中特别脆弱,然后研究替代的归一化技术,包括一种在该设置下更有效的组归一化。批量归一化是深度学习中最流行的机制之一,在大多数深度学习模型中都使用它。BatchNorm使收敛速度更快,并有助于避免陷入的局部最小值(因此,模型有更强的泛化性),缓解梯度消失的问题。
BN算法详解
什么叫批量归一化? 归一化就是将数据的输入值减去其均值然后除以数据的标准差,几乎所有数据预处理都会使用这一步骤。而深度学习也可以认为是逐层特征提取的过程,那每一层的输出其实都可以理解为经过特征提取后的数据。因此,批量归一化方法的“归一化”所做的其实就是在网络的每一层都进行数据归一化处理,但每一层对所有数据都进行归一化处理的计算开销太大,因此就和使用最小批量梯度下降一样,批量归一化中的“批量”其实是采样一小批数据,然后对该批数据在网络各层的输出进行归一化处理 。假如本文一次采样几条数据训练,用$H_{ij}^k$表示训练第ķ条数据时,第j层的第i神经元模型的输出值; $\mu_{ij}$表示这批数据在第j层的i神经元处的平均输出值;$\sigma_{ij}$表示这批数据在第的j层第i神经元型态处输出值的标准差。批量归一化后的输出值就如下式所示。

其中神经元型态的输出为均值$\mu_{ij}$为:

神经元输出值的标准差$\sigma_{ij}$为:

其中的$\delta$是一个很小的常数,目的是防止上式的分母为0。批量归一化的目的其实很简单,就是把神经网络每一层的输入数据都调整到均值为零,方差为1的标准正态分布。那为什么这样做呢?这还要从深度神经网络的梯度消失讲起。假设使用sigmod函数作为神经元的激活函数,当输出值较大时,sigmod函数就会进入饱和区域,导致其导数几乎为零,即使本文知道需要矫正该神经元,也会因为梯度太小而无法训练。如图下图所示,sigmod激活函数在[-2,2]之间的取值是一段近似线性的区域。其实BN算法所做的就是把输入值尽可能地归一化在激活函数这一狭窄区域。但这又引入了另一个问题,知道多层线性神经网络其实可以用一层线性网络来表示,那使用BN算法将输入值投射到激活函数的线性区域,会不会使得深度网络能力下降呢?答案是肯定的,如果仅仅是归一化各层输入值到一个近似的线性区域,深层网络能力将大大降低。

因此,BN算法其实还有另一个步骤,那就是再将归一化的数据放大,平移回非线性区域,如下式所示,引入$\gamma$和$\beta$两个学习参数,调整归一化的输出值。

变量$\gamma$和$\beta$是允许新变量有任意均值和标准差的学习参数,这似乎不合理,为什么将均值设为0,然后又引入参数允许它重被设为呢?这是因为新的参数不但可以表示旧参数的非线性能力,而且新参数还可以消除层与层之间的关联,具有相对独立的学习方式。在旧参数中,H的均值和方差取决于ħ下层中参数的复杂关联。在新参数中的均值与方差仅仅由本层决定,新参数很容易通过梯度下降来学习。
运行时平均(运行平均值)
由于训练时本文仅仅对批量采样数据进行归一化处理,该批数据的均值和方差不能代表全体数据的均值和方差。因此,需要在每批训练数据归一化后,累积其均值和方差。当训练完成后再求出总体数据的均值和方差,然后再在测试时使用,但累积每一次数据的均值和方差太过麻烦,在实践中,经常使用运行时的均值和方差代替全体数据的均值和方差。(问题就出在这里)当运行时的均值和方差与全体数据的均值和方差差异较大时会有问题。
可以验证在非IID设置中,不同$P_k$之间的$μ_B$和$σ_B$是否确实存在较大差异。本文将$μ_B$的发散量计算为不同$P_k$中的$μ_B$与平均$μ_B$之间的差异 

解决方法:Group Normalization
机制:GroupNorm将相邻通道分成预先指定大小的G组,并计算输入样本的每组平均值和方差。具体来说,对于四维输入B×C×W×H,GroupNorm将通道(C)划分为大小为G的多个组。然后GroupNorm计算沿G×W×H维的| B |·| G |均值和方差。因此,GroupNorm不依赖于minibatches进行规一化(BatchNorm的缺点),GroupNorm也不假设所有通道都做出相同的贡献。
使用BN LeNet在CIFAR-10上评估GroupNorm,看看是否可以在非IID设置中使用GroupNorm作为BatchNorm的替代方案。

首先,GroupNorm在非IID设置中成功地用BSP恢复了BatchNorm的精度损失。如图所示,使用BSP的GroupNorm在非IID设置中达到了79.2%的验证精度,与IID设置中的精度相当。这表明GroupNorm可以作为BatchNorm的替代品来克服BSP的非IID数据挑战。其次,GroupNorm极大地帮助去中心化学习算法在非IID环境下提高模型精度。
总结:本文的研究表明,在非IID环境中,GroupNorm(Wu&He,2018)可以很好地替代BatchNorm。然而,值得注意的是,BatchNorm在许多DNN中被广泛采用,因此,对于不同的应用和DNN模型,GroupNorm是否总是可以替代BatchNorm还需要做更多的研究。至于其他任务,例如,LSTM和GAN模型。其他归一化技术,例如LayerNorm(Ba et al.,2016)可以是好的选择,因为
(i)它们在这些任务中被证明是有效的
(ii)它们不依赖于小批量,因此它们不太可能在非IID设置中遇到BatchNorm问题。
与IID的偏差程度的影响


部分非IID数据也有问题。本文发现,对于所有三种去中心化学习算法,部分非IID数据仍然会造成较大的精度损失。即使有少量的非IID数据,如20%,本文仍然看到在AlexNet中Gaia和FedAvg的准确率损失分别为5.8%和3.4%(图9a)。唯一的例外是带有DeepGradientCompression的AlexNet,它在部分非IID设置中保留了模型精度。然而,同样的技术在部分非IID设置中对GN LeNet的精度损失很大(图9b)。
与IID的偏离程度通常决定了问题的难度水平。在大多数情况下,模型的精度随着倾斜度的增加而变差,80%与20%的非IID数据之间的精度差距可以达到7.4%(GN LeNet+DeepGradientCompression)。本文发现,虽然大多数去中心化学习算法可以在一定程度的偏差内保持模型质量,但通常存在一个限制。例如,当训练超过20%的非IID数据时,三种去中心化学习算法对于GN LeNet的精度损失都在1.3%以内(图9b)。然而,当他们处理40%或更高的非IID数据时,其精度损失都较大。
本文方法:SkewScout

估计与IID的偏差程度。如之前所示,了解倾斜度对于确定合适的解决方案非常有用。为了学习这个关键信息,SkewScout在训练期间周期性地将ML模型从一个数据划分($P_k$)移动到另一个数据划分(图10中的模型移动(1))。然后,SkewScout通过使用远程节点上的训练数据子集评估模型的准确性,来评估模型在远程数据划分上的性能。由于本文已经知道该模型在其原始数据划分中的训练精度,可以推断该远程数据划分中的精度损失(2)。精度损失实质上是同一模型在两个不同的数据划分上的性能差距,这可以作为倾斜程度的近似值。例如,如果本地数据划分中的模型已达到训练精度60%,而同一模型在远程数据划分中仅达到30%,则远程数据划分很可能由非常不同的数据特性组成。准确度损失直接反映了模型在不同数据划分上表现不佳的程度。
自适应通信控制(3)。基于SkewScout从模型移动中学习到的精度损失,SkewScout控制数据划分之间的通信次数,以保持模型质量。SkewScout通过自动调整去中心化学习算法的超参数来控制通信次数。这一调整过程实质上是在解决一个优化问题,该优化问题的目的是在将数据划分之间的通信最小化的同时,将精度损失保持在一个合理的阈值内。
可以使用精度损失
(i)估计模型之间的差异(反映训练数据的差异);
(ii)作为通信控制的目标函数。在精度损失的情况下,不需要从每个ML应用程序获得任何特定于领域的信息来学习和适应与IID的不同程度的偏差,这使得SkewScout的应用更加广泛。
通信控制。通信控制的目标是保持模型质量,同时最小化数据划分之间的通信。具体来说,给定每个迭代(或小批量)t的一组超参数θt,SkewScout的优化问题是最小化数据划分$P_k$的通信总量:

其中T(θ)是在整个训练过程中,给定所有超参数θ,为达到目标模型精度而进行的迭代总数,$C(θ_t)$是给定θT的通信量,MTP是模型移动的周期大小(迭代中),CM是ML模型(模型移动)的通信成本。
然而,在实际应用中,一次训练无法优化方程(1),因为除非多次训练模型,否则无法知道不同θ的T(θ)。本文通过优化一个代理问题来解决这个问题,该问题的目标是在保证精度损失小于阈值σ的情况下最小化通信量,并且本文可以控制非IID数据分割引起的模型发散。具体来说,本文的目标是:

式中,$AL(\theta_t)$是基于先前选择的超参数的精度损失(本文记下每个θ的最新值),并且$λ_{AL}$,$λ_C$是用于确定精度损失和通信权重的给定参数,

总结:首先,本文证明非IID数据划分上的训练是去中心化学习的一个基本且普遍的问题,因为本文研究的所有去中心化学习算法在非IID设置下都会有严重的精度下降。其次,本文发现在非IID设置下,具有BN的DNN特别容易受non-IID的影响,即使是在BSP下的方法也无法保持模型质量。本文进一步讨论了这个问题的原因和可能的解决办法。第三,本文证明了非IID数据问题的困难程度随与IID的偏离程度而变化很大。基于这些发现,本文提出了一种即使在非IID数据下也能最小化通信,同时保持模型质量的方法。

浙公网安备 33010602011771号