前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面向联邦学习的模型测试和调优怎么整?这篇三万字长文给你答案

面向联邦学习的模型测试和调优怎么整?这篇三万字长文给你答案

作者头像
机器之心
发布2023-03-29 17:30:03
7250
发布2023-03-29 17:30:03
举报
文章被收录于专栏:机器之心机器之心

机器之心分析师网络

作者:仵冀颖

编辑:H4O

本文重点讨论了面向联邦学习的模型测试和调优。研究者首先回顾了传统机器学习与一般软件测试、调优的区别和联系,然后具体分析了在实际场景中应用联邦学习存在的主要问题,包括神经架构设计、模型选择、超参数优化和调试等等。接着结合几篇最新的研究论文全面了解面向联邦学习的评价和测试,既包括了针对具体应用场景的测试(人类活动识别),也包括了对一般联邦学习算法的测试。最后集中介绍 CMU 研究小组关于联邦学习超参数调优的研究成果。

作为联邦学习系列中的重要内容,本文重点关注面向联邦学习的模型测试和调优。由我们过去的文章可以了解,联邦学习(Federated learning,FL)也是一种机器学习方法。在联邦学习的环境下,多个客户端设备(如移动设备或整个组织)在中央服务器(如服务提供商)的协调下协同训练一个模型,同时保持训练数据的分散性。FL 体现了集中数据收集和最小化的原则,可以减轻传统的集中式机器学习和数据科学方法带来的许多隐私、安全性风险和成本问题。因此,联邦学习是一种有效的高性能计算范式,并已在制药、医学研究、金融、制造业等领域中广泛应用。

不过,与一般性的机器学习类似,为了实现规模化的应用,面向联邦学习的模型也需要测试和调优,以满足稳定性、准确性等要求。为了清楚地阐述和分析联邦学习的模型测试、调优问题,本文将先从一般机器学习的测试谈起,然后聚焦于联邦学习面临的问题,包括可变机器学习框架和参数优化方法,最后具体探讨针对联邦学习的不同评价、调试和优化的方法。

1 传统的机器学习测试

机器学习的广泛应用引起了人们对机器学习可信度的关注。特别的,在一些与安全相关的应用中,如自动驾驶系统和医疗,还特别增加了对模的正确性、稳健性、隐私、效率和公平性有关的关注与评价。本节中关于传统机器学习测试中问题的分析和讨论源自文献[1]。随着相关研究的推进,测试已被证明是暴露机器学习中可能存在的问题的有效方式,并能够提高机器学习系统的可信度。

机器学习(ML)是一种可以根据数据做出决策或预测的人工智能技术。机器学习可以应用于以下典型任务:

  1. 分类:为每个数据实例分配一个类别;例如,图像分类,手写识别。
  2. 回归:为每个数据实例预测一个值;例如,温度 / 年龄 / 收入预测。
  3. 聚类:将实例划分为同质区域;例如,模式识别、市场 / 图像分割。
  4. 降维:降低训练的复杂性;例如,数据表示,数据预处理。
  5. 控制:控制行动以使奖励最大化;例如,游戏。

此外,机器学习还可以分为经典机器学习和深度学习。决策树、SVM、线性回归和 Naive Bayes 等算法都属于经典机器学习。深度学习则是应用深度神经网络(DNNs)的方法,DNNs 使用多层非线性处理单元进行特征提取和转换。因此,典型的深度学习算法通常遵循一些广泛使用的神经网络结构,如卷积神经网络(CNNs)和循环神经网络(RNNs)。

机器学习中可能存在的问题指的是机器学习项目中导致现有条件和所需条件之间不协调的任何不完善的内容,而机器学习测试则指的是旨在发现机器学习问题的任何活动。机器学习问题和机器学习测试的定义明确了机器学习的三方面内容:所需条件、机器学习项目和测试活动。一个机器学习系统可能有不同类型的 "必要条件",如正确性、稳健性和隐私。机器学习问题可能存在于数据、学习程序或框架中。测试活动可以包括测试输入的生成、测试 oracle 的识别、测试充分性的评估,以及问题的分流。

与传统的软件系统相比,机器学习测试所带来的挑战来自于机器学习系统的本质和构造的根本性不同。例如,机器学习系统本质上遵循数据驱动的编程范式,在机器学习算法的架构下,决策逻辑是通过训练程序从训练数据中获得的。该模型的行为可能会随着时间的推移而发生变化,以应对频繁提供的新数据。虽然传统的软件系统也是如此,但传统系统的核心基础行为通常不会像机器学习系统那样不断对新数据作出反应而发生变化。此外,机器学习也面临着经典软件测试中的 “Oracle” 问题[18],因为它被设计为提供一个以前没有答案的问题的答案。

经典的软件测试过程包括检查系统行为、发现潜在错误。软件测试中的 oracle 问题是指给定系统输入,将对应于输入的期望输出和正确的行为与不正确的潜在行为区分开的问题。

此外,只有通过将机器学习系统作为一个整体来考虑才能完全理解或评估机器学习。这使得测试更加困难,因为很难将一个机器学习系统分解成更小的组件,以作为单元孤立地进行测试。

图 1 给出了部署一个机器学习系统的完整生命周期。首先,根据历史数据生成一个原型模型,然后在在线部署模型之前,需要进行离线测试,如交叉验证,以确保模型满足所需条件。部署模型后,会对模型进行预测以产生新的数据,可以通过在线测试进行分析,以评估模型与用户行为的交互情况。从以下几个角度考虑,在线测试至关重要:首先,离线测试通常依赖于测试数据,而测试数据通常不能完全代表未知数据。其次,离线测试不能测试一些在实际应用场景中可能出现问题的情况,如数据丢失和呼叫延迟。此外,离线测试无法获得一些业务指标,如打开率、阅读时间和点击率。

图 1. 机器学习完整部署流程[1]。

为了建立一个机器学习模型,一个软件开发者通常需要收集数据、标记数据、设计学习程序架构,并在特定的框架基础上实现拟议的架构。机器学习模型的开发过程需要与数据、学习程序和框架等多个组件互动,而每个组件都可能存在问题。图 2 展示了建立机器学习模型的基本程序和该过程中涉及的主要部分。收集数据并预处理后加以使用,学习程序是运行训练模型的代码,框架(如 Weka、scikit-learn 和 TensorFlow)则提供了算法和其他库以供开发人员在编写学习程序时选择。因此,在进行机器学习测试时,开发人员可能需要尝试在每个组件中找到 bug,包括数据、学习程序和框架。特别是,在机器学习开发中,问题的传播比在传统软件开发中更严重,因为组件之间的联系比传统软件更紧密,这更提高了测试每个机器学习组件的重要性。

图 2. 理想化的机器学习测试的工作流程。

数据中的问题检测。机器学习系统的行为主要取决于数据。数据中的错误会影响生成模型的质量,并且在一段时间内会被放大,产生更严重的问题。数据中的错误检测会检查一些问题,如数据是否足以训练或测试一个模型(也称为数据的完整性),数据是否能够代表未来的数据,数据是否包含很多噪音(如有偏见的标签),训练数据和测试数据之间是否存在倾斜,以及是否存在数据中毒(data poison)或可能影响模型性能的对手信息。

框架中的问题检测。机器学习需要运行大量的计算过程。如图 3 所示,机器学习框架提供了帮助编写学习程序的算法,以及帮助训练机器学习模型的平台,使开发者更容易建立设计、训练和验证复杂问题的算法和模型的解决方案。与传统的软件开发相比,这些框架在机器学习开发中发挥着更重要的作用。因此,针对机器学习框架的测试能够检查机器学习的框架是否有可能导致最终系统出现问题的 bug。

学习程序中的问题检测。一个学习程序可以分为两部分:开发人员设计的算法或从框架中选择的算法,以及开发人员为实现、部署或配置该算法而编写的实际代码。学习程序中的错误可能是因为算法的设计、选择或配置不当,或者是因为开发人员在实现所设计的算法时出现错别字或错误。

图 3. 构建机器学习模型所涉及的组件(由灰色方框显示)。

针对机器学习的测试属性指的是在机器学习测试中需要测试什么,即,机器学习测试需要保证训练好的模型在什么条件下进行。根据 [1] 中作者的分析,他们将测试属性划分为基本功能要求(即正确性和模型相关性)和非功能要求(即效率、稳健性、公平性、可解释性)。在考虑根本原因时,这些属性并不严格地相互独立,然而它们是机器学习系统行为的不同外部表现,需要在机器学习测试中独立处理。

2 联邦学习面临的问题

在实际的联邦学习应用中,联邦学习的过程通常是由模型工程师为特定应用开发模型来驱动的。例如,自然语言处理领域的专家可以开发一个适用于虚拟键盘的下一个单词预测模型。由于联邦学习中模型是根据分散在不同的客户端设备中的数据进行训练的,因此联邦学习的测试与上一节中所介绍的传统的机器学习测试并不完全相同。本节中,我们根据参考文献[2],具体探讨联邦学习的测试和调优面临了哪些问题。图 4 给出了联邦学习模型在部署过程中涉及到的主要任务和参与角色[2]。

图 4. 联邦学习的模型的生命周期和联邦学习系统中的各个角色。

具体的,联邦学习的完整工作流程包括如下几个部分:

  1. 问题识别。模型工程师确定需要用联邦学习解决的问题。
  2. 客户端工具化。客户端(例如在手机上运行的应用程序)可以在设备本地存储(有时间和数量的限制)训练数据。在一些情况下,应用程序自身已经存储了这些数据(例如,一个短信应用程序已经存储了短信,一个照片管理应用程序已经存储了照片)。而在其它一些情况下,可能还需要维护额外的数据或元数据,例如,需要为监督学习任务提供用户互动数据的标签。
  3. 仿真原型设计(可选)。模型工程师可以在联邦学习模拟中使用模拟数据库对模型架构进行原型设计并测试学习超参数。
  4. 联邦模型训练。多个联邦训练任务训练不同变化形式的模型,或使用不同的优化超参数。
  5. 联邦模型评估。在中央服务器端充分训练后,对模型进行分析评估并选择出好的候选模型。这些分析评估可能是基于在标准数据库中计算所使用的指标或其它联邦评估指标来完成的。然后将模型推送到客户端中,并在客户端中根据本地数据进行评估。
  6. 部署。最后,一旦确定了模型,就会经过一个标准的模型启动过程,包括人工质量保证、现场 A/B 测试、分阶段发布等。一个模型的具体启动过程是由应用程序的所有者设定的,通常与模型的训练方式无关。

大多数关注联邦学习问题的研究人员可能很少有机会直接参与生产型联邦学习系统的部署,也没有机会接触到数以百万计的真实世界应用场景中的设备群(客户端集合)。这就导致了现阶段研究中实际环境与模拟实验之间的关键区别:在模拟实验中总是会针对具体某个问题的特定方法的适用性提供与之相匹配的证据。这使得从实验的角度来看联邦学习与其他机器学习领域有些不同,在进行联邦学习研究时需要单独考虑这些问题。此外,在将标准的机器学习工作流程(包括数据增强、特征工程、神经架构设计、模型选择、超参数优化和调试)应用于分散的数据库和资源有限的客户端设备时,也会引发很多新的问题及挑战。

  • 超参数调试。在资源有限的客户端设备上用不同的超参数进行多轮训练可能会受到限制。对于小的设备群体,这可能会导致过度使用有限的通信和计算资源。然而,深度神经网络的关键是对神经网络架构、正则化处理和优化的超参数调试和选择。传统机器学习的训练也需要调整参数,如学习率、动量、批量大小和正则化。而在联邦学习中需要调整的超参数就更多了,包括聚合 / 全局模型更新规则和本地客户端优化器的单独调整,每轮选择的客户端数量,每轮执行本地步骤的次数,更新压缩算法的配置,等等。这些超参数对于确保模型关于准确性和收敛性之间的权衡是至关重要的,而且实际上也很有可能会影响所学的联邦学习模型的质量。此外,除了较高维度的搜索空间外,联邦学习往往还需要较长的(wall-clock time)挂钟训练时间。在已有的研究中,这些挑战可以通过对超参数设置具有鲁棒性的优化算法(同样的超参数值在任何不同的应用场景数据库和架构中都是有效的)以及自适应或自我调整的算法来解决。
  • 神经架构设计。联邦学习环境中的神经架构搜索(Neural architecture search,NAS)主要是解决预定义架构不完善的问题[19]-[21]。目前主要有三种 NAS 方法,它们利用进化算法、强化学习或梯度下降方法来为特定数据库上的特定任务搜索最佳架构。其中,基于梯度的方法利用高效的梯度反向传播与权值共享方法,将架构搜索过程从超过 3000 个 GPU day 减少到只有 1 个 GPU day。
  • 联邦学习的调试和可解释性。虽然,研究人员在模型的联邦训练方面已经取得了一些实质性的进展,但仍只是针对完整的机器学习工作流程的一部分。有经验的建模者经常会选择直接访问数据库子集,以完成包括基本合理性检查、调试错误分类、发现异常值、手动标注样本或检测训练集的偏见等任务。目前,开发隐私保护技术来解决分散数据上的这些难点仍有许多未解决的问题,特别是开发能提高联邦学习差异化隐私 (differential privacy,DP)生成模型保真度的算法。

部署在实际场景中的联邦学习是一种多目标优化问题:其中,首要目标是最大化模型质量指标,如损失值或准确性。除此之外,仍有许多需考虑的因素:聚合速度、吞吐量(如通信轮次数、数据量或设备数)、模型的公平性、隐私性和稳健性、中央服务器和客户端的资源使用情况等等。这些因素彼此之间可能存在矛盾。例如,最大限度地提高轮次的吞吐量可能会引入偏见;因偏向于有少量或无数据的高性能设备而损害模型准确性;通过增加模型的复杂度来最大限度地减少训练损失,会使内存少、样本数据多或大、CPU 慢的客户端设备处于不利地位,等等。由于实际场景中的联邦学习所面对的训练和测试环境可能非常不同(使用不同的平台),所以,在测试阶段很有可能无法发现这些问题。

有很多控制措施会影响上述目标。其中,一些是我们熟悉的针对传统的机器学习问题所提出的数据中心解决方案,例如,通过尽可能完备的数据来实现模型的设置调优或更好的学习算法的超参数。还有一些是专门针对联邦学习而提出的方法,重点关注于以下这些问题:

  • 确定每一通信轮次中参与的客户端数量。确定完成一个通信轮次所需的最小设备数 M,以及开始一个通信轮次所需的设备数 M' 。
  • 中央服务器端的调度。除了最简单的情况外,联邦学习系统将同时在一个以上的模型上运行,因此需实现:支持多个客户端同时优化模型;支持超参数网格搜索;同时运行训练和测试评估工作负载等。中央服务器需要决定向当前轮次中加入的客户端设备提供哪些任务,这是一个调度问题的实例:为工作(训练或测试评估任务)分配资源(客户端设备)。由此会引发一些新的问题:公平的资源分配、避免客户端设备出现较长时间的空置、最小化等待时间,以及实现相对的优先级等等。
  • 客户端设备的调度。各种约束条件制约着客户端设备何时可以连接到中央服务器并执行工作。在这些约束条件下,可以做出各种调度选择。一个极端情况是将客户端设备连接到中央服务器后尽可能频繁地运行计算,但这会导致中央服务器和客户端设备的高负载和过度资源使用。另一个情况是设置一个固定间隔,根据各种外部因素的情况,调整整体和每轮参与工作的客户端设备数量。例如,谷歌开发的联邦学习系统旨在通过一种称为 "步伐引导" 的流量控制机制取得平衡,中央服务器根据这一机制指示客户端设备何时开始或停止工作。这样一个动态系统可以为大量的客户端设备实现时间上的负载平衡,并将连接尝试 "集中" 在特定的时间点上,以达到阈值 M'。但是,由于客户端设备可用性的随机性和动态性,尚缺乏有效的预测模型和反馈回路,开发出这样的机制实际上是非常困难的。

3 面向联邦学习的评价、测试

我们在上文回顾了传统机器学习的测试问题以及联邦学习面临的主要问题,联邦学习面临的主要问题也正是联邦学习不同于传统的机器学习而需要特别关注的测试和调优的问题。我们在这一章将结合几篇最新的论文,具体探讨面向联邦学习的评价、测试,并将在后续的章节关注调优的问题。

3.1 针对客户端设备的个性化联邦评价和优化:系统设计与应用

本文是来自 Apple 的研究人员 2021 年最新发表的研究成果[3],机器之心也对其进行过介绍[4]。文章具体描述了 Apple 联邦任务处理系统的设计。该系统的目的是支撑两个特定的联邦任务:对设备上的机器学习系统进行评估和调整,在终端设备上对系统进行个性化处理及实现。

在终端用户设备上而不是传统的服务器上进行处理,是实现终端用户隐私保护的一种非常有效的方法。Apple 将这一策略延伸到他们的许多机器学习(ML)解决方案中,如预测键盘、设备上的听写等等。为了实现良好的用户体验,这些基于 ML 的系统的个性化处理往往是非常重要的。例如,在上述两个系统中,针对用户的词汇和语言结构进行个性化处理的能力是非常关键的。本文聚焦于一个自动语音识别(automatic speech recognition,ASR)的特定设备上的个性化用例。这个用例要求对模型的全局(即所有终端用户通用)参数进行评价和优化 / 个性化处理,算法依托于分布在终端用户设备上的数据来构建设备特定的 ASR 语言模型。最终,文章提出了一个通用的系统,允许跨终端用户设备评价和优化 ML 系统,即允许 "联邦评价和调优"(federated evaluation and tuning,FE&T)的系统。

不过,本文提出的联邦评价和调优系统与经典的联邦学习(Federated Learning,FL)并不完全相同。本文的系统并不是为了在联邦环境中训练神经网络而设计的,其目标是针对分布在不同客户端设备上的 ML 系统在联邦环境中的评价和调优 / 个性化处理。该系统中的终端 / 客户端设备使用特定的应用插件完成机器学习任务,这些插件与设备上的任务调度逻辑、数据存储和结果报告逻辑进行通信。这些插件可以执行任意计算过程。在经典 FL 问题中,学习的参数是全局神经网络模型的参数,联邦学习(梯度下降)主要发生在各个客户端设备中,中央服务器只是 "简单" 地聚合各个模型的更新。而在联邦调优(federated tuning,FT)中,学习主要发生在中央服务器上,并且仅限于相对较小的一组全局参数(例如,个性化算法参数),最终是通过联邦数据来评估这些参数。

3.1.1 FE&T 和 ML 系统

作者最初设计的 ASR 系统用例是一个 "传统" 的基于 ML 模型的 ASR 系统。本文所讨论的实现个性化处理的插件化 ASR 模型是一个统计学(非神经性(non-neural))语法,需要应用特定的代码来修改实现。此外,在最初的用例中,作者假设只有 "充分匿名" 和 "孤岛" 的 ML 数据可供使用。在这种情况下,充分的匿名意味着单个数据无法以计算上合理的方式与特定的终端用户联系起来。孤岛式 ML 数据则是指特定用户的 ML 数据不能在不同的、特定应用的数据孤岛中汇总。基于这些假设,作者在文中专注于在个性化数据的背景下,如何测量和提高针对用户的 ML 系统的准确性问题。

作者考虑联邦评价(federated evaluation,FE)和在中央服务器端汇总单个评价结果的原因是,各个客户端设备上的评价数据是非独立同分布(Non-IID)的,而且每个设备上的数据往往相当有限。因此,单个评估结果存在大量的不确定性,只有汇总了许多客户端设备上的评价数据的全局结果才是有意义的。最后,作者认为联邦调优(federated tuning,FT)是 FE 的扩展。一个重要的区别是,FT 不是评估单一的 ML 系统,而是在设备上创建多个 ML 系统并进行综合评估。FT 的工作方式如下:将一个默认的 ML 系统设置为基线,利用一组从中央服务器发送的参数来修改基线 ML 系统的行为。根据基线和修改后的系统的准确度指标进行再次分析,以确定下一组参数的设置。

为了计算设备上的评价指标,我们需要存储或记录与待评价的 ML 系统的互动。存储的数据需要包括 ML 系统的输入和定义 ML 系统理想输出的 ground-truth 值。在本文所讨论的应用场景中,收集 ground-truth 数据往往是更具挑战性的任务,因为需要同时收集来能够表征积极和消极结果的数据。首先,作者讨论了如何收集 ground-truth 数据的问题。在 Apple 应用程序中,可以利用当前的设备环境提供应用程序列表。每当用户打开一个应用程序时,无论是从主屏幕、通过搜索用户界面还是通过应用程序建议的用户界面,我们都可以在设备上存储这些信息,即当前设备上下文向量和被启动的应用程序的名称。因此,我们既要获得所需的应用建议系统输入(设备上下文向量),也要获得应用建议用户界面最好提供的应用名称。不过,作者表示很多时候我们无法通过这种简单的方式收集 ground-truth 值,例如,在通过既定的单词错误率指标评估 ASR 准确性的任务中,需要一个没有错误的参考指标列表。在这种情况下,依靠用户互动得出的基础 ground—truth 是有问题的,因为评估数据会高度偏向于这种用户捕捉和纠正的错误情况。作者提出了一个可选的解决方案是要求终端用户提供相关的 ground-truth,例如要求用户对个别互动进行评分。从 groun-truth 标签质量的角度来看,这种数据不能像隐性信号那样自动收集,而且在很大程度上依赖于用户的偏好和参与,此外,这种标签的质量也高度依赖于用户,并且存在提供这种标签的不同人之间不一致的问题。针对这一问题,作者提出了另外一种可能的解决方案:利用半监督的 ML 方法。例如,我们可以设想一种师生训练的情况,在这种情况下,使用一个准确的 ML 模型提供伪 ground-truth 标签,这些标签被用来评估实际运行时的模型。

作者给出了本文讨论的系统模型。如图 5 所示,该系统可以支撑任意的联邦学习任务。执行 FL 任务的插件需要利用私人联邦学习(private federated learning,PFL)的补充(PFL Additions),它为联邦神经网络训练提供支持,其中最终的模型更新是在保证差异隐私(differential privacy,DP)的统计噪声下进行的。

图 5. 系统设计概览。

文献 [22] 中提出了一种经典的在安卓手机上面进行 TensorFlow 训练的联邦学习框架 ---SysBon[22]。该系统使人们能够使用 TensorFlow 对存储在手机上的数据进行深度神经网络训练,而这些数据只会保存在手机(设备)本地。在云端设备中,使用 Federated Averaging 组合更新权重,进而构建全局模型并将其推送给手机。该系统已实现规模化的应用,例如,手机键盘领域。作者在本文的讨论中将 FE&T 系统的设计与 SysBon 进行了对比。

在 FE&T 系统中,设备的参与是由系统级的前提条件和联邦任务的具体前提条件所决定的。对于前者来说,只有真正的客户端才能够参与该系统,通过类似于 SysBon 的设备认证机制来实现这一约束[22]。此外,设备需要选择加入数据收集计划,从而保护终端用户具有选择不参与的权利。作者表示,这种客户端设备选择方式可能会引发数据偏见问题(bias)。此外,客户端设备还需要插上电源,处于闲置状态并连接到网络中,以便运行联邦任务,这种要求也会导致偏见问题。不过,作者也表示引入 A/B 实验机制等方法可以帮助检测到此类的偏见。

此外,本文的系统提供了设备上的数据存储,并建议应用程序使用它来记录用户的交互数据和相关的 ground-truth 数据。数据存储在数据收集程序选择退出时被自动清除,如果设备选择退出,写入请求将被拒绝。为了应对因用户设备被破坏所引发的各类问题,客户端设备上的数据存储仍然是加密的,直到设备关闭或重新启动后的第一个用户解锁。此外,数据存储为每个应用提供可配置的默认实现,用于常见的设备数据保留策略。在本文的系统架构中,在各个客户端设备中存储的数据保存在本地的前提下,可以将从这些数据中得出的任务结果,即评估指标(FE&T)和统计学上的噪声模型更新(FL)通过加密渠道发送到中央服务器。此外,还可以分享设备上数据存储中持有的特定应用数据记录总量的信息,作为系统中健康遥测数据的一部分,以帮助衡量可用于特定应用联邦任务执行的设备的总体情况。当在服务器端记录数据(结果和遥测)时,我们会剥离所有用户和设备的标识(如 IP 地址),以避免此类服务器记录的数据可以被追溯到特定的用户或设备。终端用户可以在设备的隐私设置中检查与服务器共享的数据。

3.1.2 核心系统组件

设备端组件:

在本文系统架构中,用户终端设备上的组件包括数据存储(data store)、任务调度器(task scheduler)和结果管理器(results manager)。结果管理器主要负责发回任务结果,并填充设备上的数据库,允许终端用户检查与服务器共享的数据。除了任务结果外,结果管理器还收集并向服务器发送与健康有关的遥测数据。如果设备参与的系统级前提条件得到满足,任务调度器会定期连接到内容交付网络(content delivery network,CDN)中,下载可用的任务描述符列表。任务描述符的下载在每个注册插件的基础上以随机顺序进行,以更均匀地分配全局可用的计算资源。一旦下载了一个插件的所有任务描述符,调度器就会精确采样一个匹配的任务供插件执行。任务选择的可能性由包括在任务描述符中的采样率决定。虽然简单,但这种任务选择机制提供了一种有效的手段来控制系统中全局有多少设备正在尝试执行一个特定的任务。此外,设备上的匹配逻辑进一步限制任务的执行,这些匹配逻辑检查任务描述符中列出的额外前提条件。这些前提条件通常是指设备的全局变量,如设备或操作系统的类型和版本。这些前提条件也可以参考描述设备上存储数据的键。后者允许以灵活的方式只在特定的终端用户互动的数据上运行一个特定的任务,例如,在听写和助理请求的背景下进行的语音录制。一旦所有的任务先决条件得到满足,调度器就会下载实际的任务,包括任务的具体附件(例如,模型),并将其交给插件执行。

在经典 FL 的 SysBon 系统中,所有的任务分配是由中央服务器完成的,客户端设备定期与中央服务器通信,然后由中央服务器选定参与更新的客户端设备[22]。未被选中的客户端设备会收到何时重新连接的指示,从而调节设备连接的模式。在本文的系统设计中,作者没有考虑必须保证最低数量的设备同时连接到服务器的任务特定要求。本文主要关注的是,在合理的时间内,有足够数量的设备以异步方式进行报告,而不会因为过多的并发连接而使服务器不堪重负。

服务器端组件:

服务器组件包括任务管理器(task manager)、数据管理器(data manager)和开发者界面(developer interface)。任务管理器是服务器的核心组件。它管理所有任务及其附件(如模型)的存储、发布以及退出任务。一旦某项任务在预定的时间窗口内处于活动状态,或者一旦收到其目标数量的结果,任务就会退出。任务管理器还监测传入结果的流量,以确保产生流量的任务不至于压垮基础设施。最后,该组件还确保定期从中央结果数据库中自动清除旧任务的结果。数据管理器从传入的 HTTP 请求中删除任何敏感的元数据,并将结果和遥测信息转发到中央数据库。遥测信息包括围绕平均任务执行时间、错误情况和设备上可用数据量的统计信息。开发者界面由网络用户界面和 python 脚本库组成。网络用户界面主要用于监控任务状态和检查遥测数据,也允许下载结果。系统采用者(System adopters)主要通过脚本与系统互动,以安排任务并检索和处理每个任务的可用结果。

3.1.3 对一般 FL 任务的扩展支持

对于 FL 应用来说,客户端设备上的任务执行和中央服务器端的结果处理是相同的。为了进一步支撑 FL 应用,作者提出可以在中央服务器端和客户端增加一些共同的组件。对于客户端设备上的任务,可以增加一个神经网络训练库提供模型训练支持。可以通过一个中央聚合服务提供中央服务器端的结果,该服务聚合各个客户端设备中模型的更新,计算出当前训练迭代的平均模型。一旦系统的中央数据库中出现 FL 训练脚本预定的单个模型更新数量,聚合过程就会自动开始。FL 训练脚本负责协调多个训练迭代中的整体模型训练。

因为单个模型更新包含与设备上存储的数据直接相关的高维信息,在数据中心受到攻击的情况下,存储单个模型更新会增加风险。针对这一问题,作者使用临时性的实施策略以及基于局部和全局差分隐私保护的方法。就前者而言,单个模型更新在设备上使用与训练轮次相关的特定公钥进行加密。加密后的模型更新以随机顺序提供给聚合服务。聚合服务临时持有私钥,并在内存中对解密的单个模型更新进行聚合。为了进行差分隐私保护(DP),本地隐私管理器为模型更新增加了一个本地 DP 噪声版本。在服务器端,全局隐私管理器将中央 DP 噪音添加到最终更新的模型中,然后将其提供给 FL 训练脚本。

3.1.4 设备端个性化应用

作者在文中描述了两个围绕 ML 系统个性化处理的 FT 应用,以强调 FT 对设备上个性化的适用性。第一个应用是新闻个性化(news personalization)。对于新闻个性化应用来说,设备上的 ground-truth 数据获取比较容易(可以从用户与新闻内容的互动中获取),因此,作者的主要工作集中在所采取的具体 FT 方法中,具体包括 FT 中学习的方式和地点,以及系统在设备上的任务执行和服务器端(通常是基于脚本的任务结果处理)的灵活性。

该应用中的算法受几个参数的制约,例如文章个性化分数的时间衰减半衰期(the half life of the time decay)。这些参数的调整是非常具有挑战性的,因为新闻内容是不断变化的。因此,以快速的周转时间不断调整这些参数是很重要的。FT 允许我们快速优化这些参数,以满足这种周转时间的要求。

对于新闻个性化,设备上的评估 / 调优数据,包括 ground-truth 数据,可以从用户与新闻内容的互动中得到。例如,我们可以在设备上存储用户已经阅读的文章(用户点击了新闻文章的标题;正面标签),或者已经查看但没有阅读的文章(标题没有被点击;负面标签)的信息。设备上的系统插件能够接受一定数值范围内的参数。例如,如果目标是确定半衰期参数的最佳值,而开发者事先并不知道什么是比较好的值,可以定义一个涵盖所有可能的有效值的范围。在调整任务执行过程中,该插件在定义的参数空间上运行随机网格搜索,随机生成配置。再将这些配置应用于个性化算法,以预测用户阅读设备上的 tuning 数据库中的文章的可能性。将预测结果与 ground-truth 标签进行比较,计算得到每个随机生成的配置的预测损失。

运行一个单一的 FT 任务迭代需要计算数以千计的设备的损失和配置对。这些每次迭代的结果由特定应用的协调器脚本在服务器端进行平滑处理,以确定下一次迭代的搜索空间。优化 n 个参数的问题可以实现为一个 n 维聚类问题,聚类大小为 k,其中 k 可以被优化。具有最小预测损失的集群由以下公式确定:

其中,R 是聚类的集合,N 是每个聚类中的节点的集合。该函数能够求得聚类的平均损失,以每个点到聚类中心点的距离为权重,奖励那些紧密分组的聚类(具有较低的方差)和预测损失低的聚类(具有较高的预测精度)。具有最小预测损失的集群被用来确定 n 个维度中每个维度的最小值和最大值,进而构成了下一个 FT 任务迭代的搜索空间。这个过程重复进行,直到收敛,产生一组局部最优的参数值,这些参数是在调整任务中定义的。

为了证明这种方法的有效性,作者展示了两个不同的 FT 运行的结果。这两个 FT 运行的不同之处在于正在优化的个性化算法参数的数量,以及如何以基于规则的方式在设备上获得 ground-truth(正面和负面标签)(例如,文章的标题是否被点开)。表 1 给出了实验对比细节,包括预测损失的相对减少的结果。

表 1. 用于新闻个性化的 FT。

此外,作者还针对这两个 FT 进行了现场 A/B 实验,以衡量优化后的个性化算法参数对终端用户体验的影响。表 2 给出了具体的实验结果。

表 2. A/B 实验结果。

作者在文中给出的第二个应用实例是 ASR 个性化。作者定义了一个分布在终端用户设备和服务器上的"混合" 的 ASR 系统解决方案。混合 ASR 系统使用服务器端的 ASR 系统组合来计算其最终的识别结果,其中,将高度个性化的设备上 ASR 系统的识别结果与更通用的基于服务器的 ASR 系统的结果相结合。ASR 引擎在转录用户的语音输入时使用了由几十万个单词组成的通用词汇。为了能够识别特定用户可能说出的词汇和不太常见的语言结构,ASR 系统会在运行时动态地加载用户特定的统计语法。这些动态语法被拼接到较大的、通用的(即非用户特定的)设备上 ASR 系统的语法中。用户特定的语法可以在设备上从用户特定的文本数据源学习。这些设备上的数据源包括用户的联系人列表和联系人互动计数、互联网搜索历史、经常访问的地址 / 兴趣点、从键盘互动中学习的词汇、在阅读的网页和新闻文章中发现的命名实体等等。整个个性化算法利用了大约 30 个参数,这些参数管理着用户特定的语法编译和它们在运行时的动态应用。

FT 依赖于 FE,而 FE 又需要包括 ground-truth 标签的评价数据。原始评价数据来自于用户与 ASR 系统的常规互动,例如,当用户向语音助手讲话或口述文字信息时。作者对其中一些互动进行采样,将语音音频安全地存储在设备数据存储中。ground-truth 的生成过程更为复杂。ASR 的既定评估指标是字错误率(word error rate, WER),也翻译为误码率。所以我们的目标是减少 WER。字错误率被定义为单词(word)级 Levenshtein 距离与参考转录中的字数的比率:

其中,minimum word edits 指的是需要进行插入(Insertion)、删除(Deletion)、替换(Substitution)某些字才能与标准语句一样的最少字个数,reference words 就是标准语句的字个数。为了计算 WER,需要保证评估数据具有人工参考转录的标签,但因为对于 on-device 的应用而数据对第三方不可见,这是很难实现的。针对这一应用场景,作者提出引入一种半监督的学习方法进行评估,即利用机器学习的全局字置信度模型(Word confidence models),在没有参考转录的情况下估计字错误率(estimate word error rate,eWER)。

字置信度模型为每个假设的字 W 分配噪声概率分数 c(W,D),表示该字被正确识别的可能性。因此,字置信度模型使用的输入特征 D 为 ASR 解码过程得到的计算结果。在这项工作中,重要的是只依靠基本不受个性化语法影响的特征 D,例如声学似然分数和电话 / 字持续时间特征等等。作者使用下式估计长度为 | U | 的语句 U 的 WER:

其中,全局校准系数ρ 弥补了字置信度模型不能解释 ASR 字删除的问题。

表 3 给出了 eWER 指标与实际 WER 测量值的比较情况,其中的结果是针对单一数据源的简化形式的个性化处理,即用户地址簿中的联系人姓名,没有频率计数。由于存在一个小型的服务器端测试库,其中包括以每个语料为基础的联系人姓名衍生的个性化语法,因此可以估计这种特定类型的个性化和实际 WER 的比较值。表 3 中的第一行数据显示了这个数据库中的测试结果。由于这个测试库包含了人工生成的参考转录,我们可以直接将真实的 WER 与 eWER 进行比较。该表还给出了三个不同大小的联邦测试库的实验结果。这些联邦测试库中不包含参考转录,因此也没有真实的 WER 值。事实上,这些联邦测试库对我们来说是不可见的,也就是说,我们无法接触到底层的原始音频数据或相关的文字记录。如果我们假设我们集中持有的测试库与联邦测试库的分布相同,那么所有这些测试库的 WER 和 eWER 值应该是相似的。

基于 eWER 最小化的目标函数,我们通过 FT 调整全局参数,这些参数管理每个设备如何从局部数据源个性化其客户端 ASR 系统。作者使用服务器端 ASR 系统组合,将设备上 ASR 系统的结果与服务器端 ASR 系统的结果相结合。因此,最终的识别结果对服务器端是可用的,使我们能够衡量优化的个性化算法参数对最终转录准确度的影响,即实际的 WER。为此,作者定期从实际生产线中随机抽取几千个 ASR 系统组合后的匿名语音识别结果,并要求人类评分员在听完临时可用的语音音频后提供参考转录。ASR 系统的组合只影响到大约 10% 的针对我们助手的语音语料的结果。总的来说,我们观察到,大部分的语料都受到 ASR 系统组合的影响,而通用的服务器 ASR 系统在这方面表现并不好,也就是说,与其余 90% 的语音识别流量相比,转录准确度受到明显的误码率的影响。

表 3. 比较简化形式的联系人名单个性化的估计和实际 WER 值。

表 4 中给出的结果涉及 3,851 个语音助理指导的请求,其中最终的自动转录因 ASR 系统的组合而改变。我们可以自动检测出最终记录,这些记录包括由我们的设备上的个性化语法组件出现的单词或短语的语料。在下文中,我们把这些话语称为 "用户词汇" 话语。由于 ASR 系统的组合,最终结果发生了变化,但只涉及到源于通用语法的单词和短语,在下文中被称为 "通用词汇" 语料。表 4 中的第一个数据列显示了请求数,第二个数据列显示了在没有任何个性化的设备上 ASR 的情况下会达到的 WER。第三列数据则显示了 ASR 系统与客户端 ASR 结果结合后的误码率。考虑到整体流量,大约 3.9%(6.1%)的语音助理指导语受益于个性化客户端 ASR 的用户(通用)词汇语,特别是在用户词汇语料上,相对误码率降低了 16.4%。由于通用 ASR 系统的组合效应,即使是通用词汇语料,也实现了 1.4% 的相对误码率小幅降低。

表 4. 受系统组合影响的语料中的单词错误率。

3.2 用于人类活动识别的联邦学习的评价

本文是法语学术文献开放网站(hal.archives-ouvertes.fr)中 2021 年公开的一篇文章[5],该文章首次发表在 2020 年 IJCAI-PRICAI 的物联网 workshop 中。

普适计算促进了我们生活环境中互联电子设备的整合,以提供更加先进的服务。近年来,研究人员对机器学习方法在普适计算中应用的研究兴趣迅速增加。联邦学习是一种新的机器学习范式,它促进了边缘服务器的使用,非常适合于普适环境。联邦学习已经应用于许多实际场景中,然而,到目前为止,它在很大程度上仍然是概念性的,有待于进一步解释和测试。本文具体聚焦于评估在智能手机上进行的人类活动识别(Human Activity Recognition,HAR)的联邦学习。

3.2.1 普适计算与联邦学习

今天,大部分的计算基本上都是在 “云” 中完成的。“云”将强大的、灵活的、按使用量付费的框架提供给服务提供商。然而,基于云的架构存在很大的局限性,主要是与安全性、缺乏反应性有关的问题。此外,在实践中,“云”架构还限制了可以实施的服务的数量,其原因在于不可预测的通信延迟、对通过互联网传输的数据隐私问题以及在某些情况下带宽不足或成本过高问题等。

由于 “云” 架构存在的这些问题,人们开始考虑利用 “云” 中的边缘设备,通过利用边缘设备中的资源以提供新的、更高质量的计算服务。边缘的概念在 2009 年首次被提及[6],Cisco 在 2014 年将其概括为一种新的运营模式。Cisco 的主要思想是将计算和存储功能尽可能地靠近数据的起源端,也就是位于直接物理环境中的资源。

然而,使用边缘设备资源来运行服务也存在一些问题,例如,边缘设备资源无法支撑一些高运算量计算或大数据量存储需要。谷歌提出了联邦学习(FL)的概念以满足基于边缘设备的分布式模型训练。谷歌的联邦学习应用场景是个性化的打字辅助(type-writing assistance)。在这一应用场景中,联邦学习不是将边缘设备中的数据集中发送到中央服务器中,而是将在各个边缘设备本地学习到的局部模型融合成一个更通用的全局模型,将全局模型作为下一次本地学习迭代的引导模型并重新分配给本地设备。理论上,这样的全局模型能够满足更多的通用性要求,而本地学习的过程也能够提供更好的适应性。此外,FL 还可以节省通信成本,并通过避免经由网络发送在终端层面收集的数据而实现安全和隐私保护。FL 作为一种新的机器学习范式大大促进了边缘设备的使用,使基于边缘设备的普适计算成为可能。尽管如此,现阶段的 FL 在很大程度上仍然是概念性的,有待于进一步的解释和更广泛的测试。

图 6. FL 架构。

如图 6 所示,FL 依赖于一个分布式的架构,该架构由位于类似 “云” 架构中的服务器和一些设备组成,这些设备称为客户端。在整个 FL 网络中,客户端的数量是可变的和动态的。FL 的一个关键点是模型的聚合。在早期的 FL 文献中,聚合被实现为一个平均函数(FedAvg),即,平均化不同局部模型(客户端中的模型)的权重以得到新的权重,从而生成一个新的模型。此外,有研究人员提出了其它聚合规则:例如,FedPer(Federated learning with personalization layers)[7],这是一种结合了基础层和个性化层迁移学习的联邦学习算法;FedMA(Federated learning with matched averaging)[8],一个联邦层级学习的方案,包含了具有相似权重的节点的匹配和合并。

从理论上讲,FL 能够很好的适应各种场景条件变化,因为每个客户端都会不断地根据自己的经验和其他客户端学习;FL 能够保护隐私和效率,因为不通过网络传输数据,而是将数据保存在客户端本地;FL 能够适应边缘计算,因为 FL 中的聚合处理并不一定要依赖云资源。然而,联邦学习只在模拟数据和少数领域进行了测试和验证,这就留下了许多开放性的问题。事实上,目前还不清楚 FL 方法是否总能比纯粹的集中式或分布式方法带来更好的性能和稳健性。具体来说,作者认为数据分布和异质性仍是一个需要更多调查和测试的问题。在普适性领域,数据可能因主体、环境和条件的不同而有很大差异。本文的目标就是结合具体的应用场景分析和讨论这个问题。

3.2.2 人类活动识别

本文聚焦的应用场景是人类活动识别(Human Activity Recognition,HAR)。关于基于可穿戴传感器(通常由智能手机提供)的 HAR 的研究已经持续多年。目前,研究人员已经提出了许多方法来识别和分类人类的物理活动,如跑步、走路,还有互动和社会活动,如聊天、说话或游戏。本文关注的是使用机器学习技术的 HAR。最常见的方法是处理数据流的窗口以提取特征向量,然后,将特征向量输入分类器以输出识别结果。常见的分类器包括贝叶斯网络、决策树、随机森林、神经网络和支持向量机等等。由于人类活动可以被看作是一连串较小的子活动,因此,诸如条件随机场、隐马尔科夫模型或马尔科夫逻辑网络等顺序模型也被应用。今天,最流行和有效的使用机器学习技术的 HAR 显然是深度神经网络。然而,深度学习的效果高度依赖于大规模数据库,此外,深度学习会受到数据异质性的影响。

本文的研究目的是使用 UCI[9]和 REALWORLD 专门用于人类活动识别的数据库评估经典 FedAvg 算法与集中式训练方法的性能差别。选择这两个数据库的目的是分别展示 FL 在同质客户端(UCI)和异质客户端(REALWORLD)中的性能。实验使用密集神经网络(Dense Neural Network,DNN)和卷积神经网络(Convolution Neural Network,CNN)以比较联邦学习和传统集中式训练的深度学习方法,同时,对比 2 种不同的深度学习架构在联邦学习中的效果。DNN 模型的隐藏层由 400 个和 100 个神经单元组成。CNN 模型有 192 个大小为 1x16 的卷积滤波器,然后是 1x4 的池化层以及大小为 1024 的全连接层。作者强调在处理能力有限的边缘设备上使用浅层神经网络模型进行实验,并在联邦学习中减少通信成本。作者使用大小为 32 的 mini-batch SGD 训练模型,为了防止度拟合还使用了 0.50 的 drop-out 率,使用的开发工具是 TensorFlow。

对于 FL 测试,作者将数据库中每个参与者的数据根据类别统一分成 80% 的训练库和 20% 的测试库,另一个实例随机地模拟一个数据均匀分布和一个不均匀分布的数据库测试场景,供客户端使用。由于 UCI 数据库的规模较小且缺乏活动与主体的对应关系,作者将训练库和测试库划分为 5 个人工客户端。另一方面,将 REALWORLD 数据库中的每个主题视为一个客户端,每个客户端都拥有各自的数据,共计 15 个客户端。作者在测试中使用了 50 个通信轮次,每个客户端总共训练了 10 个局部 epoch,学习率为 0.005。

作者给出了 HAR 任务中经典集中式方法和 FedAvg 算法的实验对比,具体采用了 DNN 和 CNN 模型。针对测试库,作者对 FedAvg 进行了两次验证,一次是基于中央服务器端的聚合模型,另外一次是基于各个客户端模型的平均化准确度,即联邦准确度(federated accuracy)。作者使用 F1 分数,即精度和召回率的调和平均值,作为实验评价指标:

根据 HAR 研究的标准做法,实验还对比了所有类别的单个 F1 分数的宏观平均值:

其中,F_i1_score 表征第 i 个类别的 F1 分数,C 为类别集合。准确率的计算方法是令正确分类的数量除以实例的总数。

3.2.3 实验结果分析

表 5 给出了在 UCI 数据库中使用集中式方法时,基于标准的训练 - 测试监督学习模式的最优准确性结果。通过标准的集中式训练方法,本文使用的 CNN 模型能够达到 94.64% 的准确率。实验中没有使用任何预处理或超参数调优处理。本文使用的 DNN 架构得到的准确率较低,为 90.23%。表 5 中涉及到的模型参考文献均可在原文中查找到。作者分析,这些实验数据能够证实 CNN 更适合于这项任务。不过,作者也强调,本文研究的目的不是为了改进 HAR 领域的性能,而是使用可信的和标准的深度模型来评估 FedAvg。表 6 给出了 FedAvg 的实验结果。UCI 均匀数据库中服务器端的聚合 DNN(aggregated DNN)准确度为 94.37%,而联邦准确度为 93.78%。总的来说,由实验数据可以看出,宏观 F1 与每个模型的全局 F1 相似,这意味着模型没有偏向于某些类别。

表 5. UCI 库中经典集中式训练方法的效果。

表 6. UCI 库中服务器端集中式和联邦学习方法的实验比较。

表 7 给出了在 REALWORLD 数据库上其它最先进的集中式方法使用标准的训练 - 测试监督学习的 F1 结果。使用标准的集中式方法和 DNN 模型进行训练,测试准确度结果为 82.4%;使用标准的集中式方法和 DNN 模型进行训练,测试准确度结果为 84.45%。表 8 给出了集中式方法和 FedAvg 在 REALWORLD 数据库上训练得到的模型之间的比较结果。在 DNN 模型上使用 FedAvg 方法,服务器端和客户端的准确率分别为 72.32% 和 92.43%。

表 7. REALWORLD 库中经典集中式训练方法的效果。

表 8. REALWORLD 库中服务器层面经典方法 vs 联邦学习方法。

3.2.4 分析和讨论

由上一节的实验结果可知,相同的 FL 算法在不同的数据库和模型中表现不同,数据库所造成的区别和影响非常大。在 UCI 库中的实验可以看出,与集中式方法相比,利用 CNN 模型的 FedAvg 的效果接近于目前最先进的方法。然而,在 REALWORLD 数据库中 FedAvg 的性能较差。在这种情况下,也可以观察到服务器模型和客户端模型在准确性上的巨大差异。作者分析,这可能是由于本文实验中使用了一个参与者的数据作为客户端数据,也可能是由于 REALWORLD 的客户端数量(15)高于 UCI(5)。在 REALWORLD 数据库中,客户端倾向于基于自身的测试数据库快速的以较高准确度聚合(95%),但是基于完整的测试库则会导致较低的准确度(65%)。从这个角度,我们就可以解释为什么服务器模型不能获得高性能:因为客户端的模型是在不同的方向上学习的,因此 FedAvg 的平均权重处理方法无法从每个客户端模型的某些特定参数中获益(这些参数在模型中位置不一样,但是具有类似的值且针对相似的特征 [8])。实验中所展示的客户端损失的巨大标准偏差也进一步支持了这一观点。这可以被称为 "过度拟合",但是这种“过度拟合” 在联邦学习环境中可以看做一种理想的行为,因为客户端的模型确实应该是针对客户端设备 / 用户自身的专业化结果(selfspecializing to the device/user)。作者也强调,在联邦学习的环境中,必须强调过度拟合和专业化的概念,以更加系统性的方式加以评估。

本文的对比实验还表明:设计一个 FL 实验,用不同的数据库对客户端进行建模,要比客户端中数据均匀分布的情况更加现实,且更具有挑战性。另外,UCI 的数据比 REALWORLD 的数据更均匀,噪声更小。而 REALWORD 中的数据更加真实,因为它涉及 7 个不同的智能手机位置,并且是在户外收集到的。

作者强调的另一个问题是模型带来的影响。从整体上讲,DNN 和 CNN 模型性能相差不大。CNN 模型的标准偏差比 DNN 模型大得多,同时,二者通信轮次的变化也不同。FedAvg 的一个问题是,它是按坐标态(coordinate-wise)进行平均化的,这可能对平均化模型的性能有很大的不利影响。这个问题的出现是由于在 FL 过程中,一些不变量被参数所捕获,而这些参数在不同的客户端模型中只有排序的不同。虽然这些差异可以通过更多的通信轮次来解决,但这会造成较大的通信成本,而且如果客户端的数据彼此之间有很大差异,即便是执行多个通信轮次也无法改进效果。这一点在 CNN 中尤为突出,因为 CNN 包含比密集模型更多的特征层,此外,CNN 的 Dropout 层可能意味着不变量是由客户端模型中的不同神经元组学习的。为了更好地分析这一行为,作者认为有必要沿着通信轮次逐层分析模型权重的发散性,这可以使用标准的矩阵相似度指标(standard matrix similarity measures)或专门的深度学习分析来实现。

3.3 联邦学习的效果评价

关于这部分内容,我们节选自查尔姆斯科技大学和格滕堡大学的一篇硕士论文。这篇硕士论文对比了三种经典 FL 方法:FedAvg[8]、FSVRG(Federated Stochastic Variance Reduced Gradient)[11]和 CO-OP[12]。

3.3.1 对比方法介绍

关于经典 FedAvg,具体的实现算法如下 Algorithm 1。我们在这里不再赘述。

联邦随机方差降低梯度(FSVRG)通过采用分布式方法实现 SVRG(Stochastic Variance Reduced Gradient)来应对联邦学习的挑战(关于 SVRG 的详细介绍,请读者参考[23])。FSVRG 的理念是:集中进行一次代价较高的全局梯度计算,然后在每个客户端分别进行多次分布式随机更新。随机更新是通过客户端本地数据的随机排列迭代进行的,每个数据点执行一次更新。标准的 FSVRG 只有一个超参数:步长 h。然而,并不直接使用这个步长。相反,客户端 k 中也设有一个局部步长 h_k,与 n_k 成反比,n_k 为客户端 k 中训练样本的数量,h_k=h/n_k。

Algorithm 2 给出了 FSVRG 的完整描述,其中一个迭代的过程如下。首先,为了计算一个完整的梯度,所有客户端下载当前的模型 w_t 并计算相对于本地数据的损失梯度。然后,客户端上传梯度,中央服务器汇总后形成完整的梯度▽f(w_t)。接下来,所有客户端都初始化他们的本地模型(w_t)^k 和本地步长 h_k。在对其本地数据进行随机排列后,客户端利用之前计算的全部梯度采用特定的步长 h_k 迭代执行 n_k 个 SVRG 更新。最后,当所有客户端都计算并上传了他们最终的(w_(t+1))^k,服务器聚合全部(w_(t+1))^k,形成一个新的全局模型 w_(t+1),类似于 FedAvg。

FSVRG 主要关注的是数据稀疏的问题,即一些特征在数据库中很少表现出来,或者只出现在少数客户端设备中。这种稀疏结构是通过将梯度和模型参数与对角线矩阵相乘来生成的,其中,对角线矩阵包含关于特征被代表的频率的信息。在文献 [11] 中利用对角线矩阵进行缩放处理的目的是应对他们使用的 SVM 模型中模型维度 w 与输入 x 的维度相同的问题。但是,在一般神经网络模型中权重数量通常要比输入维度大得多。所以本文作者在实验中并未考虑这种缩放处理(Algorithm 2)。

CO-OP 主要考虑的是非同步的 FL 问题。CO-OP 在收到客户端模型和全局模型后就即时聚合。聚合处理并不是直接取平均值,而是通过一个基于模型年龄差异的加权方案进行的。使用 a 和 a_k 表征全局模型的年龄和客户端 k 模型的年龄。仅当满足 b_l≤a-a_k≤b_u 时聚合该局部模型,b_l 和 b_u 为指定的整数值,可将二者看作一个 filter。

CO-OP 训练程序如下。每个客户端都有自己的训练数据,并在向中央服务器请求当前的全局模型年龄 a 之前执行 E 轮优化算法。客户端判断其年龄差异是否符合限制条件。如果本地模型已经过时,那么客户端就会与全局模型进行协调,并重新开始。如果本地模型处于活跃状态,那么客户端就继续训练。否则,将本地模型上传到中央服务器聚合。CO-OP 的流程见 Algorithm 3。与 CO-OP 的原始描述 [12] 相比,Algorithm3 中对训练数据的访问方式进行了一些调整:令客户端在任何时候都能访问其所有的数据,而 [12] 中则是在某些随机的时间间隔内将数据聚集成一个批次。然后,客户端一次只能访问一个批次。根据本文中的实现方式,我们可以在更多的数据上进行训练,不受限于批次的约束。

3.3.2 基准评估

本文实验性能评估是基于 MNIST 数据库的分类任务完成的。MNIST 总共包含 70,000 张手写数字的标记图像。这些都是灰度图像,每张都是 28×28 像素的。进一步将 MNIST 数据库划分为由10,000 张图像组成的测试库和由 60,000 张图像组成的训练库。考虑到现有的各种性能测量方法,作者提出,不能只考虑使用准确率(Accuracy)作为评估指标。准确率是机器学习研究中唯一持续使用的衡量标准,所以在针对联邦学习环境下的机器学习模型进行评估也需要使用到这个衡量标准。不过,针对准确率仍有很多质疑的观点。首先,一些研究人员认为数据中存在的类别倾斜现象会导致准确率偏向于多数类别。在这种情况下,使用精确性(Precision)和召回率(recall)就很重要了,因为召回率考虑的是类别上的精确性,而精确性能够告诉我们在每个类别中的预测结果是否良好。其次,反对使用准确率的第二个论点是,准确率假定了错误分类的成本是相等的,但在实践中这个假设可能是有问题的,因为往往会出现一些类别比其他类别更重要的情况。使用对错误分类成本不敏感的性能指标,如 AUC,就可以完全回避这个问题。但是,AUC 只适用于二元分类任务。由于缺少多类别 ROC 分析的机制,现有的多类别 AUC 评估是基于二进制测量的推广和概括。作者表示,鉴于多类别 AUC 评估仍然是一种不连贯的 AUC 评估变体,本文不考虑任何基于 ROC 的评估方法。作者采用准确率(Accuracy)来量化分类性能。作者分析,在 MNIST 中,类别的倾斜问题并不普遍,而且作者没有找到合适的 cost-insensitive 的多类评估标准,作者认为使用精确率和召回率并不会给本文讨论的 FL 问题带来额外的好处。

作者使用贝叶斯相关 t 检验(The Bayesian correlated t-test)方法进行评估,具体在所有成对的算法组合之间进行测试。每次测试的结果都是一个后验分布图,描述了被测分类器之间准确率的平均差异。由于后验是一个概率密度函数,我们可以用它来推断给定观察数据的假设概率。然后,对这些后验的分析构成了最终的性能评估。作者给出如图 7 的示例解释贝叶斯相关 t 检验结果。其中,针对被测试的分类器 A 和 B,使用 3 次 5-fold 交叉验证进行评估,分类器 A 的平均准确率为 93.5%,分类器 B 为 92.9%。作者表示,我们可以认为图 7 中比较的两个分类器实际上是等效的,因为分布的大部分质量都在 rope 范围内。不过,这只是一个不确定的结论,因为 43.4% 的质量仍然在 rope 之外。如果这个分布有,比如说,95% 的质量在 - 0.01 的左边,那么说 A 实际上比 B 好可能是有意义的。然而,我们可以反过来说,A 应该是首选算法,因为 B 实际上比 A 好的概率只有 5.5%。

图 7. 分类器 A 和 B 之间的相关贝叶斯 t 检验的后验概率分布。垂直线定义了一个实际相等的区域,在这个区域中,准确率的平均差异不超过 1%。

作者使用 Python 库 baycomp 来进行贝叶斯相关的 t 检验(baycomp.readthedocs.io/en/latest/index.html)。在 baycomp 中,一个后验概率分布是由两个分类器在 k-fold 交叉验证的 i 次迭代中的准确率差异列表产生的。

分布式基准总共包含 100 个客户端,作者在这些客户端之间分配 MNIST 训练数据。Non-IID 数据表征因为有某些价值而特意发送给客户端的样本数据,图 8 举例说明了 IID 和 Non-IID 分布如何相互比较。

图 8. IID 和 Non-IID 数据比较。

适用于 folds 实验的 Non-IID 数据生成过程如下:

  1. 对数据库进行清洗。
  2. 将数据分为 5 个 folds。
  3. 对每个 fold 进行分类。
  4. 将每个 fold 分成 200 个大小为 70 的碎片。
  5. 为每个客户端唯一分配 2 个随机碎片位置。
  6. 在每个文件夹的碎片位置上为每个客户端分配 2 个碎片。

本文实验中使用的神经网络模型是一个有两个隐藏层的多层感知器。2NN 有两个隐藏层,每个隐藏层有 200 个神经元,每个神经元有一个 ReLu 激活函数。应用于 MNIST,该模型有 28×28=784 个输入和 10 个输出。输出层的激活函数是一个 softmax 函数。此外,使用交叉熵损失函数。2NN 总共有(784+1)-200+(200+1)-200+(200+1)-10=199210 个可训练参数。

在联邦学习中,网络吞吐量很重要,而上传速度尤其重要,因为它通常比下载速度慢。因此,作者在实验中将终止条件设置为每个客户端完成 100 次上传动作,这相当于 FedAvg(C = 0.1)、CO-OP 和 FSVRG 的 100 个客户端的 10000 次上传。就通信轮次而言,这意味着 FedAvg 有 1000 个通信轮次,FSVRG 有 50 个。FSVRG 只允许 50 个通信轮次,这是因为 100 个客户端中的每一个都会在每一轮次上传两次:一次是上传完整梯度,一次是更新的模型。

本文使用 Erlang 框架实现分布式的联邦学习,Erlang 很适合处理将计算分配给本地客户端节点的问题。一般使用 Erlang 或者 C 语言实现客户端的计算。不过,作者在本文实验中使用的是 Python 和机器学习库 Keras,主要是因为二者易于使用。我们需要处理模型分发任务的 Erlang 和执行机器学习任务的 Python 之间进行沟通。一个简单的方法是对 JSON 文件进行读写。另外一个更直接的实现 Erlang 互操作性的方法是通过 Erlang 端口,我们可以编写自定义的端口驱动或使用现有的接口,例如 ErlPort(github.com/hdima/erlport.org)或 Pylang。使用 Erlang 的传递性连接意味着客户端节点间的全连接网络;如果 a 连接到 b,那么 a 也会与 b 的所有邻居客户端节点建立连接,反之亦然。

为了更符合联邦学习的实际框架,作者还增加了一个用户客户端节点。该用户客户端节点代表一个数据分析师,他将机器学习任务分配给中央服务器,而中央服务器又将计算分结果分发给客户端。用户客户端节点由一个与中央服务器通信的 Erlang 节点和一个供程序员与 Erlang 节点通信的 Python 脚本组成。使用 Erlang 进行通信的另外一个好处是,我们可以很容易地将客户端之间的交互过程 转移到一个与中央服务器分开的单独计算机上。

图 9 中的节点 U、S 和 C 是用 Erlang 编写的。客户端节点 C_i , i = 1, 2, ..., n, 通过 JSON 与客户端 i 进行通信,这也用于客户端节点 U 和用户客户端节点之间的通信。在本文的案例中,用户客户端和一般客户端都是用 Python 编写的。由于作者采用了基于 JSON 的方法,用户客户端和一般客户端都可以用任何可以读写 JSON 文件的语言来编写,这使得 Erlang 框架具有语言上的独立性。

图 9. 客户端节点 U、S 和 C 是 Erlang 节点。用户客户端和一般客户端只需要通过 JSON 进行通信。

理想情况下,需要证明 Erlang 框架可以随着增加的客户端节点数量而扩展。然而,这要求每个客户端节点都能获得一个独立的处理器核心,由于作者并不具备 100 个处理器的条件,所以实验中需要客户端节点竞争资源。由于 CPU 是各客户端节点之间的共享资源,很明显本文的设置无法证明现实世界的可扩展性。作者在实验中会启动尽可能多的并发客户端,并让每个客户端节点做最少的工作,也就是立即回复给中央服务器。

在第一个实验中,只考虑了 Erlang 分布框架而没有考虑 Python 的计算和通过 JSON 的通信负载问题。由于在检查文件系统的更新时周期性的线程阻塞以及 Python 会带来的不可预测的开销,最终实验限制在三台四核机器的处理能力上。因此可以预见,第一个实验很快就达到了处理器不堪重负的地步。在第二个实验中,作者通过计算框架引入了 Python 和 JSON 文件之间的通信。通过引入额外的延迟,使得客户端数量实现线性扩展。

3.3.3 评估结果

作者在原文中给出了 FedAvg、CO-OP、FSVRG 和集中式学习之间的实验比较。作者首先对四种算法进行了最优超参数的实验。在确定各个算法的最优超参数后,作者通过 5-fold 交叉验证来评估搜索算法,包括基于贝叶斯相关 t 检验的比较。针对四种算法的超参数实验我们在这里不再赘述,我们重点分析 5-fold 交叉验证的实验结果。

将三次交叉验证的结果作为每个贝叶斯相关 t 检验的输入。作者进行了许多这样的实验,图 10(IID)和图 11(Non-IID)分别给出了结果的后验分布。图中竖线表示实际等值的区域,作者选择在 [-0.01, 0.01] 之间。每个图中的三个比较均是与集中式学习的比较。图 10 中的所有概率密度函数都有 95% 以上的质量在一个区域内。因为这个质量被解释为相对性能的概率,所以作者对 IID 数据做出以下推断:

  • FedAvg 实际上比 CO-OP 和 FSVRG 都要好。
  • 集中式学习实际上比 CO-OP 和 FSVRG 都要好。
  • FedAvg 和集中式学习实际上是等同的。
  • CO-OP 和 FSVRG 实际上是相当的。

类似的,图 11 中所有关于 Non-IID 数据的比较的密度图都有 95% 以上的质量在一个区域内。因此,作者对 Non-IID 数据做出如下推断:

  • FedAvg 实际上比 CO-OP 和 FSVRG 都要好。
  • CO-OP 实际上比 FSVRG 要好。
  • 集中式学习实际上优于 FedAvg、CO-OP 和 FSVRG。

不过,联邦算法受到上传数量的限制,可能会影响 CO-OP 和 FSVRG 的效果。针对这一问题,作者对 CO-OP 和 FSVRG 做了一定的修正,使其完成更多的上传,并把它们称为 CO-OP×5 和 FSVRG×10。实验结果如图 12,两种方法只进行了两次交叉验证的迭代。CO-OP×5 进行了 5 次上传,FSVRG×10 则进行了 10 次上传。FSVRG×10 的上传数量最多,但它用和 CO-OP×5 一样多的本地模型更新了全局模型。在图 12 中,只有 CO-OP×5 与 FSVRG×10 的比较,其质量的 95% 以上在三个区域之一。作者做出以下推断:

  • FSVRG×10 实际上相当于或优于 FedAvg
  • FSVRG×10 实际上优于 CO-OP×5
  • FedAvg 实际上相当于或优于 CO-OP×5。
  • 集中式学习实际上相当于或优于 FSVRG×10。
  • 集中式学习实际上比 CO-OP×5 要好。

图 10. 联邦优化算法在 IID MNIST 上以后验分布的形式进行的比较。每个算法都进行了 3 次 5-fold 交叉验证的迭代。每个比较在 rope 的两边都有一个质量 p,代表该边的算法实际上更好的概率。

图 11. 联邦优化算法在 Non-IID MNIST 上以后验分布的形式进行的比较。每个算法都进行了 3 次 5-fold 交叉验证的迭代。每个比较在 rope 的两边都有一个质量 p,它代表该边的算法实际上更好的概率。

图 12. 在 Non-IID MNIST 上的联邦优化算法之间的比较,以后验分布的形式展示,其中右上角标表示该算法执行了更多次上传。每个算法都进行了 2 次 5-fold 交叉验证的迭代。每个比较在 rope 的两边都有一个质量 p,代表该边的算法实际上更好的概率。

4 面向联邦学习的调优

在这一章中,我们将结合两篇最新的研究论文,探讨面向联邦学习的超参数调优问题。这两篇文章是来自 CMU 的同一个研究小组的研究成果[13][16]。

4.1 联邦学习中超参数优化的权值共享[13]

超参数优化是机器学习的一个重要组成部分,也是将机器学习方法自动应用于实际场景中的一个关键问题。在联邦学习(FL)的情况下,模型通过异构设备的分布式网络进行学习,在这种情况下的超参数优化比一般的机器学习更加困难。本文作者表示,他发现神经结构搜索(neural architecture search,NAS)技术的权值共享(使用相同的参数同时优化多个神经网络)是一种加速调整算法超参数的有效方法,例如在个性化联邦学习中的联邦平均法(FedAvg)。利用 FedAvg 和元学习之间的联系,同时在可微分 NAS 的启发下,本文提出了一种实用的联邦超参数优化方法,称为基于指数化梯度更新的 FedEx。

4.1.1 联邦超参数优化

首先,作者给出了联邦超参数优化问题的形式化介绍,并讨论其个性化变体与元学习的联系。FL 关注的是在一个由异质客户端组成的网络上的学习和优化,每个客户端都有自己的训练库 T_i、验证库 V_i 和测试库 E_i。使用 L_S(w)表示 w 参数化的 ML 模型在数据库 S 上的平均损失。为了定义超参数优化问题,作者假设有一类超参数为 a∈A 的算法 Alg_a,通过联邦访问(Federated Access)训练库 T_i 来计算输出。这里所说的联邦访问是指每个迭代对应于一个通信轮次,在这个轮次中,Alg_a 可以访问一些可以进行本地训练和验证的批次的 B 客户端。

假设 Alg_a 可以由两个子程序来描述,其超参数编码为 b∈B 和 c∈C,a = (b, c) 和 A = BxC。c 编码局部训练算法 SGD_c 的超参数,该算法将训练库 S 和初始化 w 作为输入,输出一个模型 SGD_c(S,w)。b 编码聚合步骤 Agg_b 的超参数,该步骤将初始化 w 和 SGD_c 的几个输出作为输入,并在 R^d 中输出一个新的模型参数。然后,全局超参数优化问题表征为:

(4.1)

在一些应用场景下,除了全局最优模型外,我们还希望得到特定于客户端设备的局部模型,即针对各个客户端进行微调的局部模型。作者限定:微调算法与 Alg_a 使用的本地训练算法 SGD_c 相同。在个性化的设置中,超参数优化问题为:

(4.2)

在非联邦设置中,全局目标(4.1)可采用常规的超参数优化方法进行处理。但是,将这种方法应用于个性化 FL 面临两个挑战:

  • 用于全局模型的验证数据是 “联邦” 的,因此,在任何一个时刻,整个数据库都不是立刻可用的。而中央服务器在每一轮通信中都可以访问一些客户端设备,进行一次或最多几次的本地训练和验证。因此,考虑到衡量 FL 复杂性的标准是“通信轮次数”,在这种情况下精确计算目标会大大增加成本。
  • 即使有非联邦数据,将标准方法应用于个性化目标函数(4.2)也是不现实的,因为评估它需要运行 n 次局部训练。

本文提出了一种 FedEx 方法,通过在每一个通信轮次中使用噪声验证来应对这两个问题,其方式类似于 SGD 加速常规的无噪声梯度下降。在介绍 FedEx 之前,作者首先给出了在 FL 中调整超参数的基线方法,即使用常规的超参数优化方法,使用单轮的验证数据作为全部验证目标的噪声替代。具体来说,作者使用连续消除(successive elimination,SEA)算法对一组超参数进行抽样后部分运行一定数量的通信轮次,以消除全部超参数(保留前 1/η个参数),重复这一过程,直到只剩下一个配置。基线方法的流程见 Algorithm 1。

4.1.2 引入权值共享(Weight-Sharing)的个性化 FL

首先回顾一下 NAS 中的分权方法。NAS 通常被设定为二层(bi-level)优化问题:

(4.3)

其中,C 表征网络配置项,L_train、 L_valid 评估一组网络配置和权值。如果所有的超参数都是结构化的,就像 NAS 中的情况一样,那么它们实际上本身就是可训练的模型参数。因此,我们可以考虑解决以下 “单级(single-level)”经验风险最小化(empirical risk minimization,ERM)问题:

(4.4)

由于需要在一个非常大的搜索空间中对许多架构进行全部或部分训练,解决 NAS 的 bi-level 或 ERM 表述的早期方法计算代价都非常高昂。权值共享(weight-sharing)将问题简化为训练一个单一的架构,一个包含搜索空间 C 中所有架构的 "超级网"[14]。构建超级网的一个直接方法是 "随机松弛(stochastic relaxation)",stochastic relaxation 中的损失被视为从 C 的某个分布中抽取 c 的期望值。然后,使用 SGD 更新共享权值,首先从这个分布中抽取一个架构 c,然后使用▽_wL(w, c)的标准无偏估计值来更新 w。

C 的分布本身可以调整或保持固定。在后一种情况下,训练结束时获得的共享参数必须是所有架构 c∈C 的 L(・, c)最小化的替代。本文讨论另一种情况,即,在 C 上适应一些θ- 参数化的分布 D_θ,得到目标函数如下:

(4.5)

由于架构超参数通常是离散值,所以 D 可以是简单的分类分布的乘积。

进一步的,作者基于权值共享的理念,提出了 FedEx 方法。将式(4.2)中的目标函数替换如下:                                                              

(4.6)

该目标函数是以权值共享目标(4.4)的形式提出的,因此我们可以用随机松弛代替它:

(4.7)

与 NAS 不同的是,FL 的超参数,如学习率,并不是单纯的极值点,因此,很难简单确定使用什么样的参数化分布 D_θ。作者发现,通过对 Unif|C | 的 k>1 的随机样本粗略地施加一个分类分布,并基于新产生的 k-simplex 使用指数化梯度更新θ,效果是不错的。这与更新 w 交替进行,在 NAS 算法中,这涉及到对当前目标梯度(w 和θ)无偏估计的 SGD 更新。参考 meta learning 的 Reptile 方法[15],作者将 Alg_a 的另一个子程序 Agg_b 看作是使用个性化目标的梯度代理来执行更新,该子程序汇总了局部训练的输出结果。作者将这种针对公式(4.7)的替代方法称为 FedEx,详细过程见 Algorithm 2。

与权值共享一样,FedEx 可以被看作是将调整局部超参数的复杂性降低到训练一个单一模型的复杂性。每一步对θ的更新都需要确定步长η_t。我们可以将 FedEx 视为 Algorithm 1 的调优形式,它实现了对超参数(w,θ)的联邦训练,其中本地训练 SGD 包括对 c~D_θ进行采样的步骤,中央服务器汇总对θ的指数化更新。因此,我们可以将 FedEx 包裹(Wrapped)在 Algorithm1 中,作者表示这是很有用的,原因如下:

  • Wrapper 可以为聚合步骤 Agg_b 调整 b 的设置,而 FedEx 则不能。
  • FedEx 本身有一些超参数,wrapper 可以对其进行调整。
  • 通过运行多个种子进程并进行早期停止处理,我们可以使用更大的迭代步骤来运行 FedEx,wrapper 可以主动放弃导致结果不佳的情况。
  • 我们可以直接将 FedEx 与运行在原始算法上的常规超参数优化方案进行比较,例如 FedAvg。
  • 通过使用 wrapper,我们能够使用局部扰动方案来确定 Algorithm 2 所给出的配置 c_1,...,c_k,同时仍然探索整个超参数空间。

4.1.3 实验结果分析

在本文的实验中,作者将 FedEx 实例化在 FedAvg 上。每个通信轮次 t 中,FedAvg 做如下聚合:

(4.8)

需要注意的是,原始的 FedAvg 方案是(4.8)的特例,ε_t=1,即更新是客户端模型输出的平均值。因此,严格来说,我们是在调整一个具有中央服务器学习率的 FedAvg 的泛化,也被称为 Reptile。作者这样做是为了通过 "ε_t 随时间衰减" 来减少模型的变化,与 FedAvg 不同的是,FedAvg 是通过衰减本地 SGD 的学习率来完成同样的事情。

首先,作者给出了 Shakespeare 下一个字符预测数据库中的实验结果。实验中,总的通信轮次设定为 4000,并允许每个单独的配置最多运行 800 个通信轮次。模型为一个两层的字符 LSTM(a two-layer character-LSTM)。如图 13 所示,我们看到 FedEx 在两种数据设置(IID、Non-IID)中,对于全局模型、个性化模型、在线评估的效果都比直接调优 FedAvg 的基线方法要好,而且在最终测试误差方面,改善幅度在 1.0-1.9% 之间。

图 13. FedEx 在 Shakespeare 下一个字符预测数据库上的 IID 客户端数据设置(顶部)和 Non-IID 客户端数据设置(底部)的评估结果。左侧为全局模型的性能,右侧为个性化模型的性能。

4.2 联邦超参数调控:挑战、基线以及与权值共享的联系[16]

本文的内容主要是对上文的一些扩展性分析。在上文介绍的基础上,作者具体说明如何选择传递给 Algorithm 2 的配置 c_1,...,c_k。虽然最简单的方法是从 (Unif(C))^k 中提取,但作者发现,如果配置之间的差异太大,这将导致不稳定的结果。为了在采样 c_i 之间独立插值并令它们相同,作者使用一个简单的局部扰动方法:c1 从 Unif(C) 中采样,c_2,...,c_k 则从 C 的局部邻域中均匀地进行采样。对于从区间 [a,b] 中抽取的连续超参数,局部邻域是 [c±(b-a)ε]:对于ε≥0,即一个缩放的 "ε- 球"。对于从集合{a,...,b} 中抽取的离散超参数,局部邻域为{c-[(b-a)ε],...,c+[(b-a)ε]}。请注意,虽然局部扰动确实限制了 FedEx 每个实例所探索的搜索空间的大小,但如图 14 所示,同一球中不同配置之间的性能差异仍然很大。

图 14. 使用不同扰动设置达到的性能值范围的比较。虽然ε=0.1 的范围比ε=1.0 的范围小得多(后者是整个空间),但它仍然涵盖了 FEMNIST(左)和 CIFAR(右)上不同性能水平的很大范围(大约 10-20%)。

作者在文章中给出了更多的实验结论。在本文实验中,作者在 FedAvg、FedProx 和 Reptile 的调优问题上实例化了 FedEx。其中,FedAvg 是用于联邦训练的最流行的算法,FedProx 是为异构客户端设备设计的扩展方法,Reptile 则是用于学习个性化设备初始化的兼容元学习方法。在第 t 轮通信轮次中,这些算法执行如下聚合:

(4.9)

对于 FedAvg 来说,a_t=1∀t。SGD_c 的局部训练为使用超参数 c 的 SGD 过程。作者调整了聚合和本地训练的几个超参数。对于前者,作者调整了中央服务器的学习率和动量,作者发现这样的调整在个性化的实验环境中效果较好。对于后者,作者调整了学习率、动量、权值衰减、局部 epoch 的数量、批次大小、dropout 和近似正则化。

使用上文中 Algorithm 1 来运行基线方法。实验结果将测试以下问题:由随机搜索(random search,RS)或连续减半算法(successive halving algorithm,SHA)wrapped 处理后的 FedEx,是否比直接在相同设置下运行的 RS 或 SHA 效果更好?这里的 "更好" 既指最终获得的测试精度,也指在线评估设置即测试超参数优化在中间阶段的表现如何。此外,作者在实验中还验证了 FedEx 对于单独 Wrapper 的改进效果,即针对一个良好的全局模型、非个性化模型的效果。作者在个性化目标上运行 Algorithm 1,并使用消除率η=3 的 RS 和 SHA,后者遵循 Hyperband[17]。为了得到 Algorithm 1 中 SHA 的消除轮次,作者将消除次数设定为 R=3,固定一个总的通信轮次预设值,并固定分配给任何配置的最大轮次数 a。

作者在三个数据库(Shakespeare、FEMNIST 和 CIFAR-10)上评估了 FedEx 在视觉和语言任务上的表现。作者考虑以下两种不同的数据设置:

  • 每个客户端设备都持有 IID 数据。虽然整个网络的整体数据可以是 Non-IID 的,但在划分成训练库、验证库和测试库之前,我们可以在每个客户端设备内随机地任意清洗、置换本地数据。
  • 每个客户端设备都持有 Non-IID 数据。在 Shakespeare 数据库中,每个客户端设备对应一个演员的数据,根据演员在剧中的时间位置分割客户端本地数据。在 FEMNIST 中,每个客户端设备都是数字书写者,本地数据被随机分割。在 CIFAR-10 中,作者未考虑 Non-IID 的数据设置。

对于 Shakespeare 和 FEMNIST,使用 80% 的数据进行训练,验证和测试各使用 10%。在 CIFAR-10 中,作者从训练 / 测试库中取出 10K 个样本进行验证。表 9 列出了主要实验结果,显示了单独使用 wrapper 算法进行调优后的目标模型和与 FedEx 结合后的目标模型的实验结果。实验结果表明,在大多数情况下,使用 FedEx 是同样有效或效果更优的。与 FedEx 结合的方法在绝大多数实验条件下的效果都更优,一般比 wrapper 方法能够提高 2 个或更多个百分点,只有在 IID FEMNIST 库中的表现与 wrapper 算法相当。

作者进一步在图 15 中展示了在线评估结果,具体包括与单独的 SHA 相比,FedEx wrapped 的 SHA 的测试误差与通信轮数的关系。我们可以看到,在大部分的训练中,除了最开始的阶段,FedEx 要么和替代方案差不多,要么比替代方案更好。作者分析,这是因为 FedEx 的随机性导致初始化时的更新不太确定。

表 9. 使用标准的超参数调优算法(SHA 或 RS)和在 FedEx 调优客户端设备上的训练超参数并使用标准的超参数调优算法进行中央服务器端(聚合)超参数调优时,得到的最终测试误差。目标模型是用于通过 wrapper 方法计算设备上的验证误差的模型,也是用于调优后计算测试误差的模型。

图 15. FedEx 在 Shakespeare 下一个字符预测数据库(左)、FEMNIST 图像分类数据库(中)和 CIFAR-10 图像分类数据集(右)的 Non-IID 数据设置(CIFAR-10 除外)中的在线评估结果。上侧为全局模型的性能,下侧为个性化模型的性能。

5 小结

本文重点讨论了面向联邦学习的模型测试和调优。我们首先回顾了传统的机器学习与一般的软件测试、调优的区别和联系,然后具体分析了在实际场景中应用联邦学习存在的主要问题,包括神经架构设计、模型选择、超参数优化和调试等等。接着,我们结合几篇最新的研究论文了解了面向联邦学习的评价和测试,既包括了针对具体应用场景的测试(人类活动识别),也包括了对一般联邦学习算法的测试。最后,我们集中介绍 CMU 研究小组关于联邦学习超参数调优的研究成果。

在实际场景中,联邦学习往往依赖于分散的、异构的客户端设备,包括移动设备、边缘设备,甚至是手机等移动应用,这就造成了对其上运行的机器学习算法进行测试和调优的难度更大,情况更复杂。我们这篇文章的内容仅仅是对这一领域的简单介绍,关于这方面的工作还有待研究人员不断深入的分析和研究,以推动联邦学习更快、更好的在实际场景中推广应用。

本文参考引用的文献:

[1] Zhang J M , Harman M , Ma L , et al. Machine Learning Testing: Survey, Landscapes and Horizons. IEEE Transactions on Software Engineering, 2020, PP(99):1-1., https://arxiv.org/abs/1906.10742

[2] Advances and Open Problems in Federated Learning, https://hal.inria.fr/hal-02406503v2/document

[3] Paulik M , Seigel M , Mason H , et al. Federated Evaluation and Tuning for On-Device Personalization: System Design & Applications. arXiv e-prints, 2021., https://arxiv.org/pdf/2102.08503.pdf

[4] Apple Reveals Design of Its On-Device ML System for Federated Evaluation and Tuning, https://medium.com/syncedreview/apple-reveals-design-of-its-on-device-ml-system-for-federated-evaluation-and-tuning-92fb2353b492

[5]  Sannara Ek, François Portet, Philippe Lalanda, German Eduardo Vega Baez. Evaluating Federated Learning for human activity recognition. Workshop AI for Internet of Things, in conjunction with IJCAI-PRICAI 2020, Jan 2021, Yokohama, Japan. ffhal-03102880f , https://hal.archives-ouvertes.fr/hal-03102880/document

[6] M. Satyanarayanan, P. Bahl, R. Cceres, N. Davies. The case for vm-based cloudlets in mobile computing[J]. IEEE Pervasive Comput, 2009, 8 ( 4 ) : 14 - 23.

[7] Manoj Ghuhan Arivazhagan, Vinay Aggarwal, Aaditya Kumar Singh, and Sunav Choud-hary. Federated learning with personalization layers, 2019.

[8] Hongyi Wang, Mikhail Yurochkin, Yuekai Sun, Dimitris Papailiopoulos, and YasamanKhazaeni. Federated learning with matched averaging, 2020

[9] Anguita Davide, Ghio Alessandro, Oneto Luca, Parra Xavier and Reyes-Ortiz. A Public Domain Dataset for Human Activity Recognition using Smartphones. 2013.

[10] Evaluating the Performance of Federated Learning, https://odr.chalmers.se/bitstream/20.500.12380/256401/1/256401.pdf

[11] Z. Wu, Q. Ling, T. Chen and G. B. Giannakis, "Federated Variance-Reduced Stochastic Gradient Descent With Robustness to Byzantine Attacks," in IEEE Transactions on Signal Processing, vol. 68, pp. 4583-4596, 2020, doi: 10.1109/TSP.2020.3012952.

[12] Y. Wang, “CO-OP: Cooperative machine learning from mobile devices,” Master’s thesis, Dept. Elect. and Comput. Eng., Univ. Alberta, Edmonton, Canada, 2017.

[13] Mikhail Khodak, et al. Weight-Sharing for Hyperparameter Optimization in Federated Learning, International Workshop on Federated Learning for User Privacy and Data Confidentiality in Conjunction with ICML 2020, https://www.cs.cmu.edu/~mkhodak/docs/FL2020Workshop.pdf

[14] Pham, H., Guan, M. Y., Zoph, B., Le, Q. V., and Dean, J. Efficient neural architecture search via parameter sharing.

In Proceedings of the 35th International Conference on Machine Learning, 2018.

[15] Nichol, A., Achiam, J., and Schulman, J. On first-order meta-learning algorithms. arXiv, 2018.

[16]Mikhail Khodak, et al. Federated Hyperparameter Tuning: Challenges, Baselines, and Connections to Weight-Sharing, https://arxiv.org/abs/2106.04502

[17] Liam Li, Kevin Jamieson, Giulia DeSalvo, Afshin Rostamizadeh, and Ameet Talwalkar. Hyperband: A novel bandit-based approach to hyperparameter optimization. Journal of Machine Learning Research, 18(185):1–52, 2018.

[18] Earl T Barr, Mark Harman, Phil McMinn, Muzammil Shahbaz, and Shin Yoo. The oracle problem in software testing: A survey. IEEE transactions on software engineering, 41(5):507–525, 2015.

[19]  Thomas Elsken, Jan Hendrik Metzen, and Frank Hutter. Efficient multi-objective neural architecture search via Lamarckian evolution. arXiv preprint arXiv:1804.09081, 2018. 

[20]  Chaoyang He, Haishan Ye, Li Shen, and Tong Zhang. Milenas: Efficient neural architecture search via mixedlevel reformulation. In Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2020. 

[21]  Esteban Real, Alok Aggarwal, Yanping Huang, and Quoc V Le. Regularized evolution for image classifier architecture search. In Proceedings of the AAAI Conference on Artificial Intelligence, volume 33, pages 4780– 4789, 2019. 

[22] Keith Bonawitz, Hubert Eichner, Wolfgang Grieskamp, Dzmitry Huba, Alex Ingerman, Vladimir Ivanov, Chloe Kiddon, Jakub Konecný, Stefano Mazzocchi, H. Brendan McMahan, Timon Van Overveldt, David Petrou, Daniel Ramage, and Jason Roselander. Towards federated learning at scale: System design, 2019.

[23] SVRG 算法的阅读理解和实践 https://caoxiaoqing.github.io/2018/05/11/SVRG 论文阅读笔记 /

分析师介绍:

本文作者为Wu Jiying,工学博士,毕业于北京交通大学,曾分别于香港中文大学和香港科技大学担任助理研究员和研究助理,现从事电子政务领域信息化新技术研究工作。主要研究方向为模式识别、计算机视觉,爱好科研,希望能保持学习、不断进步。

关于机器之心全球分析师网络 Synced Global Analyst Network

机器之心全球分析师网络是由机器之心发起的全球性人工智能专业知识共享网络。在过去的四年里,已有数百名来自全球各地的 AI 领域专业学生学者、工程专家、业务专家,利用自己的学业工作之余的闲暇时间,通过线上分享、专栏解读、知识库构建、报告发布、评测及项目咨询等形式与全球 AI 社区共享自己的研究思路、工程经验及行业洞察等专业知识,并从中获得了自身的能力成长、经验积累及职业发展。

感兴趣加入机器之心全球分析师网络?点击阅读原文,提交申请。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器之心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
联邦学习
联邦学习(Federated Learning,FELE)是一种打破数据孤岛、释放 AI 应用潜能的分布式机器学习技术,能够让联邦学习各参与方在不披露底层数据和底层数据加密(混淆)形态的前提下,通过交换加密的机器学习中间结果实现联合建模。该产品兼顾AI应用与隐私保护,开放合作,协同性高,充分释放大数据生产力,广泛适用于金融、消费互联网等行业的业务创新场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档