论文阅读1

+++

英文名communication-efficient learning of networks from decentralized data

中文翻译名从分散数据中进行深度网络的通信高效学习

作者H. Brendan McMahan Eider Moore Daniel Ramage Seth Hampson Blaise Ag¨uera y Arcas

一、摘要

leaves the training data distributed on the mobile devices,and learns a shared model by aggregating locally-computed updates.(训练数据分布在移动的设备上,通过**聚合本地计算的更新**来学习共享模型)

### ==decentralized(去中性化)==

iterative model averaging(迭代模型平均)

extensive empirical evaluation(广泛的经验评价 )

non-IID data(数据非独立同分布)

  • 数据非独立同分布

    不独立:数据点之间存在相关性或依赖性。例如,在时间序列数据中,当前数据点往往会受到前一个数据点的影响。

    不同分布:数据集中的不同部分可能来自不同的分布。例如,跨多个用户或设备收集的数据可能在各自的上下文中具有不同的分布特性。

Robustness(鲁棒性)

  • 鲁棒性:指的是一个系统、算法或模型在面对噪声、异常数据、不确定性或外部环境变化时,仍然能够保持良好性能或功能的能力。

Communication costs are the principal constraint通信费用是主要的制约因素)

  • 通信费用:在多个计算节点(或设备)之间共享或交换模型参数、梯度信息等数据时所产生的开销。

  • 同步随机梯度下降:分布式机器学习中一种并行化的训练方式,主要用于加速大规模模型的训练过程。将训练过程严格同步的分布式算法,确保模型在每一轮迭代中的一致性,但需要付出通信开销的代价。

    并行计算:将训练数据分配到多个计算节点(worker),每个节点独立计算模型的梯度。例如,假设有4个节点,每个节点分别使用自己持有的训练数据计算梯度。

    同步更新:所有节点计算完各自的梯度后,会将这些梯度发送到一个中央服务器(通常称为参数服务器)。参数服务器会将所有节点的梯度汇总,进行平均或者加权处理,然后统一更新全局模型参数。

    同步等待:每个节点必须等待其他所有节点完成梯度计算并发送回来后,才能开始下一轮的计算。这意味着训练过程是同步的,所有节点必须步调一致,不能有任何节点提前进入下一轮训练。

模型梯度:机器学习模型中损失函数相对于模型参数的导数

  • 损失函数:机器学习模型的目标是根据训练数据最小化某个损失函数(例如均方误差、交叉熵等),该函数衡量模型的预测结果与真实标签之间的差距。损失函数的值越小,模型的预测越准确。
  • 模型参数:模型的参数(例如线性回归中的权重、偏置项,或神经网络中的权重矩阵)决定了模型的行为。通过调整这些参数,模型可以更好地拟合训练数据。

二、介绍

a learning technique that allows users to collectively reap the benefits of shared models trained from this rich data, without the need to centrally store it.

联邦学习:允许用户集体获得从这些丰富数据中训练的共享模型的好处,而无需集中存储它。

clients and server: learning task is solved by a loose federation of participating devices which are coordinated by a central server.

每个客户端都有一个本地训练数据集,它永远不会上传到服务器。相反,每个客户端计算对服务器维护的当前全局模型的更新,并且仅传递此更新(一旦更新被应用,就不会被存储)。

模型(联邦学习)优点:decoupling of model training from the need for direct access to the raw training data.(将模型训练与直接访问原始训练数据的需求解耦。)

仍然需要对协调训练的服务器的某种信任;

对于可以根据每个客户端上的可用数据指定训练目标的应用程序,联合学习可以通过将攻击面限制在仅设备而不是设备和云来显著降低隐私和安全风险;

主要贡献

  • 将来自移动的设备的分散数据的训练问题作为重要的研究方向;(确立联邦学习研究方向)
  • 选择一个简单实用的算法,可以应用于这一设置,并对所提出的方法进行广泛的实证评估

introduce the Federated Averaging algorithm, which combines local stochastic gradient descent (SGD) on each client with a server that performs model averaging.(引入==Federated Averaging算法,该算法将每个客户端上的局部随机梯度下降(SGD)==与执行模型平均的服务器相结合)

局部随机梯度下降(SGD):允许每个节点在本地执行多个步的 SGD 更新,而不必在每一步后都与其他节点进行通信。这样,只有在设定的间隔(如每隔几个 epoch 或步长)后,所有节点才会同步模型参数。

局部SGD的具体步骤:
  • 初始化全局模型:所有节点从同一组初始模型参数开始训练。

  • 局部更新:每个节点在本地独立进行多次随机梯度下降更新,不与其他节点进行通信。

  • 周期性同步:在设定的同步点,所有节点将各自的模型参数发送到中央服务器,服务器将这些参数进行汇总、平均,并更新全局模型。

  • 继续局部训练:各个节点使用最新的全局参数继续进行本地更新,循环往复,直到训练结束。

理想问题(Ideal problems)中优势:

理想问题:最适合使用联邦学习(Federated Learning)来解决的机器学习问题

  • 训练基于真实用户设备上的数据比基于数据中心的代理数据有更大优势
  • 数据隐私敏感或数据量庞大,不适合上传到数据中心
  • 监督学习supervised tasks(有标签预测)任务中,数据标签可以通过用户交互自然推断(用户自己在用的时候就把标签给打上了,本地训练多好)

The distributions from which these examples are drawn are also likely to differ substantially from easily available proxy datasets 实例的数据分布可能与常见的服务器代理数据集大相径庭

Both of these tasks are well-suited to learning a neural network.

  • image classification
  • language modeling

neural network(神经网络)

通过大量简单的计算单元(即“神经元”)的连接和相互作用,来解决复杂的问题,它能够从数据中学习并自动提取特征,从而在图像识别、自然语言处理等任务中表现出色。

  • 神经元(Neuron)

    每个神经网络由许多神经元组成,类似于大脑的神经元。每个神经元接收来自其他神经元的输入信号,进行处理后生成输出信号。神经元之间通过“权重”(weights)连接,权重表示两个神经元之间的连接强度。

  • 输入层、隐藏层和输出层

    输入层(Input Layer):接收外部输入数据,每个节点代表输入数据的一个特征。

    隐藏层(Hidden Layers):位于输入层和输出层之间,用于提取输入数据的特征。可以有多层,每一层通过权重激活函数进行处理。

    输出层(Output Layer):产生最终的结果或预测。

  • 权重和偏置(Weights and Biases)

    权重(Weights):连接神经元之间的系数,决定了输入信号对下一个神经元的影响程度。训练的目的就是调整这些权重,使得模型的输出更准确。

    偏置(Biases):用于调整神经元的输出,使网络具备更好的表达能力。

  • 激活函数(Activation Function)

    激活函数的作用是引入非线性,使神经网络能够学习和表示复杂的模式。如果没有激活函数,网络只是线性的,无法解决复杂的任务。

  • 前向传播(Forward Propagation)

    在前向传播过程中,输入数据通过神经网络的一层层传递,每一层的神经元根据权重和激活函数计算输出。最终,输出层会给出预测结果。

  • 损失函数(Loss Function)

    用来衡量预测结果与真实值之间的差异。常见的损失函数有均方误差(MSE)交叉熵损失(Cross-Entropy Loss)。网络通过调整权重和偏置来==最小化损失函数的值==。

  • 反向传播(Backpropagation)

    通过计算损失函数对每个权重的偏导数(即梯度),来逐步调整权重,优化模型。常见的优化算法是梯度下降(Gradient Descent),它通过不断调整权重和偏置来减小损失。

过程

初始化:网络的权重和偏置通常会被随机初始化。

前向传播:输入数据经过层层计算,生成预测值。

计算损失:通过损失函数,计算预测值和真实值的差异。

反向传播:计算梯度,并根据梯度调整网络参数。

更新参数:通过优化算法(如梯度下降),更新网络的权重和偏置,使得模型能够更好地预测。

卷积神经网络(convolutional neural networks

  • 卷积神经网络通过卷积、激活、池化等步骤从图像中提取特征,并利用全连接层进行最终的分类决策。

    1. 卷积操作(Convolution Operation)

    卷积层是 CNN 的核心组件。它通过卷积核(filter 或 kernel)扫描输入图像,提取局部特征。

    • 卷积核:卷积核是一个小矩阵(如 3x3 或 5x5),它会在图像上滑动,并与图像的局部区域进行元素相乘,然后求和,输出特征图。
    • 步长(Stride):指卷积核在输入图像上滑动的步数。步长越大,特征图越小。
    • 填充(Padding):为了保证卷积后输出的特征图大小不变,可以在图像边缘添加额外的像素值(通常是 0),这称为“填充”。

    卷积的主要作用是从图像中提取局部特征(如边缘、角点等),卷积核的参数会在训练过程中通过反向传播进行优化。

    2. 特征图(Feature Map)

    卷积操作的结果是特征图(Feature Map),它表示经过卷积核过滤后的图像特征。每个卷积核可以提取不同的特征,如垂直边缘、水平边缘或其他复杂的局部模式。

    3. 激活函数(Activation Function)

    卷积层之后,通常会使用激活函数,如 ReLU(Rectified Linear Unit),将线性卷积结果转换为非线性,以增加模型的表达能力。

    • ReLU 函数的定义是:f(x) = max(0, x),将所有负数转换为 0,从而引入非线性。

    4. 池化层(Pooling Layer)

    池化层的作用是对特征图进行降采样(缩小),减少特征的维度,降低计算复杂度,同时保留重要特征。

    • 最大池化(Max Pooling):取池化窗口(如 2x2 窗口)中的最大值。
    • 平均池化(Average Pooling):取池化窗口中的平均值。

    池化通过缩小特征图的尺寸,减少参数数量,并提高模型的抗噪性和鲁棒性。

    5. 全连接层(Fully Connected Layer)

    卷积层和池化层主要用于提取图像的局部特征,而全连接层将这些特征映射到分类结果。全连接层是神经网络的标准层结构,将卷积网络输出的特征进行综合,生成最终的分类或回归结果。

    6. 前向传播(Forward Propagation)

    在前向传播过程中,输入图像依次经过卷积层、激活函数、池化层和全连接层的处理,最终输出分类结果。每层都会提取图像的不同层次的特征,卷积层和池化层负责提取低级到高级的特征,全连接层则整合特征进行最终决策。

    7. 反向传播与梯度下降(Backpropagation and Gradient Descent)

    CNN 的训练过程与普通神经网络类似,通过反向传播算法计算损失函数对各层参数(卷积核、全连接层权重等)的梯度,然后利用梯度下降等优化算法更新这些参数。

    8. CNN 的优势

    • 参数共享:卷积核在整个图像上共享参数,极大地减少了模型的参数数量。
    • 局部连接:每个卷积层的神经元只连接局部区域,适合处理图像中的局部特征。
    • 平移不变性:由于卷积操作和池化操作的性质,CNN 能够识别在图像中移动或改变位置的模式(如物体的位移)。

recurrent neural networks(递归神经网络)

RNN 的关键特性是能够记忆并利用前面时刻的状态信息,使其在处理连续的序列输入时非常强大。

1. 递归神经网络的结构

RNN 与传统的前馈神经网络(如 CNN 和全连接网络)最大的不同在于,它具有“记忆”功能,能够对输入序列的每个元素产生不同的响应,同时根据先前输入的状态进行计算。

  • 隐藏层状态(Hidden State):RNN 中的每个神经元不仅接收当前时刻的输入,还会接收上一个时刻的隐藏状态(即神经元的输出),这使得它能够保留过去的信息。
  • 递归连接:在时间步之间,隐藏层的输出会递归地反馈给自身,作为下一个时间步的输入之一。

这种结构使 RNN 能够处理序列数据中的依赖关系,即某一时刻的输出不仅与当前输入有关,还与之前时刻的输入有关。

2. RNN 的前向传播

在每个时间步,RNN 接收当前输入和上一时间步的隐藏状态,然后计算当前时间步的隐藏状态 和输出。公式如下:

3. 反向传播与BPTT(Backpropagation Through Time)

由于 RNN 的递归结构,它的反向传播与传统神经网络不同,需要通过时间展开。这种算法叫做“通过时间的反向传播”(Backpropagation Through Time,BPTT),它会将网络在每个时间步的误差反向传播,依次调整所有时间步的权重

然而,BPTT 面临两个主要问题:

  • 梯度消失(Vanishing Gradient):当序列过长时,较早时间步的信息在传播到后期时,梯度可能会逐渐消失,导致模型难以记住较远的上下文。
  • 梯度爆炸(Exploding Gradient):同样地,梯度可能会在反向传播过程中变得非常大,导致权重更新不稳定。

4. 改进的 RNN 架构

为了解决梯度消失和梯度爆炸问题,人们提出了改进的 RNN 变体,如 LSTM(长短期记忆网络)和 GRU(门控循环单元)。

4.1. 长短期记忆网络(LSTM)

LSTM 是一种特殊的 RNN,它通过引入“门”结构来控制信息的流动,解决了长期依赖问题。LSTM 通过三个门来控制状态:

  • 输入门(Input Gate):决定当前输入信息有多少被更新到细胞状态中。
  • 遗忘门(Forget Gate):决定过去的记忆有多少被保留。
  • 输出门(Output Gate):决定从当前细胞状态中提取多少信息用于输出。

通过这些门的控制,LSTM 能够有效记忆长期依赖的信息,同时抑制梯度消失问题。

4.2. 门控循环单元(GRU)

GRU 是 LSTM 的一种简化版本,它将输入门和遗忘门合并成了一个更新门,同时用重置门控制当前隐藏状态和过去信息的混合。GRU 与 LSTM 类似,但结构更简单,训练速度更快,性能在很多任务中也与 LSTM 相当。

the strength of the privacy benefit depends on the content of the updates.The updates themselves can (and should) be ephemeral.

提交对模型的更新其生命周期相当短暂,一旦更新被适用,就不再被存储。

In this work, our emphasis is on the non-IID and unbalanced properties of the optimization

as well as the critical nature of the communication constraints.

non-convex neural network objectives

非凸神经网络目标指的是神经网络训练中的目标函数(通常是损失函数)不是一个凸函数。简单来说,非凸意味着目标函数具有多个局部最小值、鞍点或其他复杂的地形特性,使得找到全局最小值变得困难。

finite-sum objective(形式为有限和的目标)

目标函数可以表示为多个函数的求和,通常这种形式出现在机器学习中的大多数优化问题中。

在这里插入图片描述

上面公示用于求损失函数,在K个客户端上,每个客户端有i个数据分区,后者的Fk表征每个客户端上能得到的损失函数相关参数,前者则将K个客户端的结果做了更上面一层的整合。

communication-constrained optimization(通信约束优化)

在确保模型准确性或算法收敛的前提下,尽可能减少各计算节点(如服务器和客户端之间)的通信开销

The FederatedAveraging Algorithm(联邦平均算法)

SGD

wall-clock time

某个操作或程序开始执行到结束的实际经过时间

NN(参数化神经网络)

over-parameterized NNs

过参数化的神经网络(即参数数量远多于训练数据所需的最小参数数量)

在这里插入图片描述

A simple multilayer-perceptron with 2-hidden layers with 200 units each using ReLu activations (199,210 total parameters), which we refer to as the MNIST 2NN.

A CNN with two 5x5 convolution layers (the first with 32 channels, the second with 64, each followed with 2x2 max pooling), a fully connected layer with 512 units and ReLu activation, and a final softmax output layer (1,663,370 total parameters)

俩个模型集群的设置

  • FedAvg 是在每个客户端上运行多个本地训练轮次(E > 1),然后将更新后的模型发送到服务器,服务器聚合这些模型参数。这使得 FedAvg 能够减少通信轮次并利用本地数据进行更多的训练。

  • FedSGD 则每次只做一次本地梯度计算,因此相对于 FedAvg,通信轮次可能更多,收敛速度较慢。

C, the fraction of clients that perform computation on each round; E, then number of training passes each client makes over its local dataset on each round; and B, the local minibatch size used for theclient updates

C,在每轮执行计算的客户端的比例; E,每个客户端在每轮对其本地数据集进行的训练遍数;以及B,用于客户端更新的本地小批量大小
he fraction of clients that perform computation on each round; E, then number of training passes each client makes over its local dataset on each round; and B, the local minibatch size used for theclient updates***

C,在每轮执行计算的客户端的比例; E,每个客户端在每轮对其本地数据集进行的训练遍数;以及B,用于客户端更新的本地小批量大小

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐