联邦学习

目录

联邦机器学习(Federated machine learning)

联邦学习重要节点及里程碑

举例说明

名词解释

迭代模型平均(iterative model averaging):

非独立同分布(non-IID):

鲁棒性

同步随机梯度下降

非平衡数据(imbalanced data)

联邦学习与分布式机器学习 

参考文献


联邦机器学习(Federated machine learning)

        又名联邦学习(Federated Learning),联合学习,联盟学习。联邦机器学习是一个机器学习框架,能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。

        受限于法律法规、政策监管、商业机密、个人隐私等数据隐私安全上的约束,多个数据来源方无法直接交换数据,形成“数据孤岛”现象,制约着人工智能模型能力的进一步提高。联邦学习的诞生即是为了解决这一问题.

        联邦学习技术及数据隐私保护大会上明确提出了“联邦机器学习”这个概念。 [2] 数据是机器学习的基础 。而在大多数行业中,由于行业竞争、隐私安全、行政手续复杂等问题,数据常常是以孤岛的形式存在的。甚至即使是在同一个公司的不同部门之间实现数据集中整合也面临着重重阻力。在现实中想要将分散在各地、各个机构的数据进行整合几乎是不可能的,或者说所需的成本是巨大的。随着人工智能的进一步发展,重视数据隐私和安全已经成为了世界性的趋势。每一次公众数据的泄露都会引起媒体和公众的极大关注,例如Facebook的数据泄露事件就引起了大范围的抗议行动。

        针对数据孤岛和数据隐私的两难问题,多家机构和学者提出解决办法。联邦学习的技术理论基础可以追溯到分布式数据库(Distributed Database)关联规则挖掘技术,

        数据矩阵的横向的一行表示一条训练样本,纵向的一列表示一个数据特征。联合多个参与者的具有相同特征的多行样本进行联邦学习,即各个参与者的训练数据是横向划分的,称为横向联邦学习(Horizontal Federated Learning)。横向联邦学习也称为特征对齐的联邦学习(Feature-Aligned Federated Learning),即横向联邦学习的参与者的数据特征是对齐的。横向联邦可以增加训练样本总量

        联合多个参与者的共同样本的不同数据特征进行联邦学习,即各个参与者的训练数据是纵向划分的,称为纵向联邦学习(Vertical Federated Learning。纵向联邦学习也称为样本对齐的联邦学习(Sample-Aligned Federated Learning),即纵向联邦学习的参与者的训练样本是对齐的。纵向联邦可以增加训练数据特征维度。

        联邦学习是一种新兴的人工智能基础技术,在2016年提出,其设计目标是在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下,在多参与方或多计算结点之间开展高效率的机器学习。

        联邦学习的系统构架可扩展至包含多个数据拥有方的场景。 例如两个数据拥有方(即企业A和B)的场景,企业B还拥有模型需要预测的标签数据。出于数据隐私保护和安全考虑,A和B无法直接进行数据交换,可使用联邦学习系统建立模型。第一部分:加密样本对齐;第二部分:加密模型训练。

        联邦学习的参与方对本地数据具有完全的自治权限,可以自主决定何时参与建模。联邦学习的过程分为自治和联合两部分,其中自治部分是指参与方各自建立模型,联合部分是指将各自建立的模型进行整合,在云端进行参数的聚合与更新,并将更新好的参数返回到参与方的终端,各个终端开始下一次的迭代.

联邦学习重要节点及里程碑

Google:联邦学习移动端应用框架

        谷歌公司提出了基于个人终端设备的“联邦学习”(Federated Learning)算法框架,而AAAI Fellow 杨强教授与微众银行随后提出了基于“联邦学习”(Federated Learning)的系统性的通用解决方案,可以解决个人(2C)和公司间(2B)联合建模的问题。

微众银行:发布联邦学习开源项目FATE

        2019年2月,微众银行AI团队对外发布自主研发的联邦学习开源项目FATE(Federated AI Technology Enabler)。FATE提供了一种带有数据隐私保护功能的分布式安全计算框架,为机器学习、迁移学习算法提供隐私计算支持。同时,FATE提供了一套跨域交互信息管理方案,提供联邦学习信息安全审计功能

李晓林:提出知识联邦学习理论体系 

        2020年,李晓林教授提出知识联邦理论体系(7),知识联邦是一个安全多方应用框架,它支持安全多方查询、安全多方计算、安全多方学习、安全多方推理等联邦应用。知识联邦关注的是数据到知识的全生命周期隐私安全保护,包括知识创造、管理和使用及其监管,设计目标是面向生产环境的知识联邦生态系统,致力于推动人工智能发展。

 

举例说明

        假设有两个不同的企业 A 和 B,它们拥有不同数据。比如,企业 A 有用户特征数据;企业 B 有产品特征数据和标注数据。这两个企业按照上述 GDPR 准则是不能粗暴地把双方数据加以合并的,因为数据的原始提供者,即他们各自的用户可能不同意这样做。假设双方各自建立一个任务模型,每个任务可以是分类或预测,而这些任务也已经在获得数据时有各自用户的认可,那问题是如何在 A 和 B 各端建立高质量的模型。由于数据不完整(例如企业 A 缺少标签数据,企业 B 缺少用户特征数据),或者数据不充分 (数据量不足以建立好的模型),那么,在各端的模型有可能无法建立或效果并不理想。联邦学习是要解决这个问题:它希望做到各个企业的自有数据不出本地,而后联邦系统可以通过加密机制下的参数交换方式,即在不违反数据隐私法规情况下,建立一个虚拟的共有模型。这个虚拟模型就好像大家把数据聚合在一起建立的最优模型一样。但是在建立虚拟模型的时候,数据本身不移动,也不泄露隐私和影响数据合规。这样,建好的模型在各自的区域仅为本地的目标服务。在这样一个联邦机制下,各个参与者的身份和地位相同,而联邦系统帮助大家建立了“共同富裕”的策略。 这就是为什么这个体系叫做“联邦学习”。

 

名词解释

迭代模型平均(iterative model averaging):

        什么是迭代模型: 迭代模型是周期模型

        软件的生命周期分为6个阶段,即需求分析、计划、设计、编码、测试、运行维护

瀑布模型

        瀑布模型是最早出现的软件开发模型,是所有其他软件开发模型的基础框架。与软件的生命周期不同的是,它缺少了软件运行维护阶段。

描述:每个阶段都只执行一次,因此是线性顺序的软件开发模型。
  正是由于每个阶段只执行一次,所以前面的需求分析和设计尤为重要。

优点:

        为项目提供了按阶段划分的检查点,强调开发的阶段性。

        强调早期的计划及需求调查。

        强调产品测试。

缺点:

        在各个阶段之间极少有反馈。

        只有在项目周期的后期才能看到结果,所以风险往往至后期的测试阶段才显露,因此失去了及早的纠正过程。

        单一流程,开发中的经验教训不能反馈应用于本产品的过程。

        适用项目:需求比较明确且变更很少的项目。

迭代模型

联邦学习_第1张图片

 

        开发迭代是一次完整地经过所有工作流程的过程:(至少包括)需求工作流程、分析设计工作流程、实施工作流程和测试工作流程。实质上,迭代模型是类似小型的瀑布式项目。
        一次迭代过程包括了所有软件开发流程,每一个迭代都会产生一个可以发布的产品,这个产品是最终产品的一个子集

适用项目: 适合于事先不能完整定义产品的所有需求,计划多期开发的项目。

非独立同分布(non-IID)

独立同分布:

        在概率论与统计学中是指一组随机变量中每个变量的概率分布都相同,且这些随机变量互相独立。如实验条件保持不变,一系列的抛硬币的正反面结果是独立同分布。一组随机变量独立同分布并不意味着它们的样本空间中每个事件发生概率都相同。例如,投掷非均匀骰子得到的结果序列是独立同分布的,但掷出每个面朝上的概率并不相同。

non-iid的意思即变量之间非独立,或者非同分布

非独立:对象之间存在关系。例如以某人的行为为随机变量,在某时刻观测到行为behavior1,某时刻观测到行为behavior2,这两个行为之间可能有某种联系。例如一个人走在路上,淋雨了(behavior1),撑开伞(behavior2),它们之间有时序关系。

非同分布:两次观测的概率分布相同。例如某变量服从均匀分布,我们进行了一次观测;过一会服从正态分布,我们又进行了一次观测。这两次观测的变量就是非同分布

FL中的non-iid

        在联邦学习中,non-iid的意思一般是值不符合同分布的情况,因为数据的分布肯定是独立的,但是它们不一定服从同一采样方法。例如全集中有100类图片,某设备中都是风景类图片,某设备中都是人物类及植物类图片,前者是一种分布(1/100),后者是另一种分布(2/100)。反之,如果某设备中有这100类图片,其他设备中也有这100类图片,那么它们就是同分布的。

        训练集和测试集分布不一致被称作数据集偏移(Dataset Shift)。西班牙格拉纳达大学Francisco Herrera教授在他PPT《Dataset Shift in Classification: Approaches and Problems》里提到数据集偏移有三种类型:

       Covariate Shift 协变量偏移:

        独立变量的偏移,指训练集和测试集的输入服从不同分布,但是服从同一个函数关系。训练集训练出一个模型,在测试集使用模型时效果不够好,因为测试集的协变量(x)分布与训练集不同.

        Prior Probability Shift 先验概率偏移:

        目标变量的偏移。比如垃圾邮件的分类,很可能在实际场景中邮件样本绝大多数都是垃圾邮件,只有少部分不是垃圾邮件,但是我们的训练集的数据类别占比是50%,50%,这就形成了先验偏移问题。

        Concept Shift 概念偏移:

        独立变量和目标变量之间关系的偏移。指目标变量(模型试图预测的内容)的统计特性随时间以不可预见的方式发生变化的情况。举个例子:季节虽然没有在温度数据中被明确说明,但是可能会影响温度的数据。另一个例子,消费者购买行为随时间的变化可能是受经济增强所影响,但是经济增强并没有显示的在数据中说明。

        突然漂移:一个新概念在短时间内出现(例如,在 2020 年 3 月 COVID-19 开始时,股价突然变化)。

        逐渐漂移:一个新概念会在很长一段时间内逐渐取代旧概念(例如,您会看到越来越少的新石油公司和越来越多的新技术公司)。

        增量漂移:旧概念在一段时间内逐渐变为新概念(例如,股票价格逐渐稳定上涨)

现在也有很多论文写了联邦学习中的非独立同分布,但是他们的分类也是有略微区别的,下面我们分别来看看他们是怎么区分的。

Advances and Open Problems in Federated Learning

        最新在2021年修订,其中的第3章第1节, Non-IID Data in Federated Learning 介绍了联邦学习中的非独立同分布情况。这篇文章介绍了五种no I.I.D.的情况:协变量偏移、先验概率偏移各一种,将概念漂移拆分成了两种情况,以及数据的数量倾斜共五种情况

Non-identical client distributions:

        Feature distribution skew 特征分布偏差(covariate shift协变量偏移):同一类别,有不同的表现形式,如同样的数字,不同人的写法不一样

        Label distribution skew 标签分布偏差(prior probability shift先验概率偏移):同样的标签,有不同的表现形式,当客户被绑定到特定的地理区域时,不同客户的标签分布也不同——袋鼠只在澳大利亚或动物园;一个人的脸只在世界上少数几个地方;

        Same label, different features 相同的标签,不同的特征(concept shift):

        Same features, different label 相同的特征,不同的标签(concept shift)

        Quantity skew or unbalanced数量倾斜或不平衡:不同的客户端可以拥有非常不同的数据量。

        每个设备中的数据分布不能代表全局数据分布,即每个设备中类别是不完备的。可以任意设定哪些比例的设备拥有哪些比例类别的样本。例如10分类问题中,5%的设备有3类样本,10%的设备有5类样本,30%的设备有10类样本……哪些比例的设备、哪些比例的样本类别都是可以改变的参数,从而决定了non-iid的程度。

        给出了non-iid的一个评价方法,即全局目标函数的最小值与本地目标函数最小值之和。设想non-iid程度最小,即每个设备中分布都一样,那么本地目标函数最小值的加权和就是全局目标函数的最小值。现在由于non-iid从中作梗,每个本地目标函数优化方向都出了偏差,最小值是最适合本地那两类数据的(如手写数字1和2),它们加权平均在一起,不等于全局目标函数的最小值。

鲁棒性

        鲁棒是Robust的音译,也就是健壮和强壮的意思。它也是在异常和危险情况下系统生存的能力。比如说,计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,就是该软件的鲁棒性。

同步随机梯度下降

        (Synchronous Stochastic Gradient Descent,SSGD)是基于随机梯度下降(Stochastic Gradient Descent,SGD)的方法,一种常用的分布式机器学习算法,用于在多个计算节点上并行计算梯度,加速模型训练过程。

        传统的随机梯度下降(SGD)算法每次只更新一个样本的梯度,因此每次迭代的计算量较小,但迭代次数较多。而同步随机梯度下降算法则将多个计算节点的计算结果进行同步,从而减少了迭代次数,提高了训练效率。

        SSGD的基本思想是将训练数据划分成多个子集,每个计算节点只负责计算其中一个子集的梯度,并将计算结果进行平均后更新模型参数。由于每个计算节点只处理部分数据,因此可以同时进行多个迭代,从而加速了训练过程。

具体来说,SSGD的算法流程如下:

1、将训练数据随机分成若干个块(chunks),每个块包含若干个样本。

2、每个计算节点从其负责的块中选择一部分数据进行计算,得到该块对应的梯度。

3、所有计算节点将各自的梯度进行平均,得到全局梯度。

4、每个计算节点根据全局梯度更新模型参数。

5、重复执行步骤2-4,直到达到一定的迭代次数或收敛。

联邦学习_第2张图片

 

        与传统的SGD相比,SSGD的主要优点是可以利用GPU等并行计算设备,提高计算效率。由于每次迭代中只更新一次模型参数,SSGD的计算量相对较小,也更容易实现并行化。在同步随机梯度下降中,由于所有计算节点都使用相同的参数更新规则进行训练,因此需要确保所有计算节点的计算过程保持同步

        然而,SSGD也存在一些缺点。首先,由于每个迭代中只更新一次模型参数,因此收敛速度可能会较慢。其次,由于每个小批次只使用m个样本进行更新,可能会引入更多的噪声,导致训练过程不稳定。因此,在实际应用中,需要根据具体情况选择合适的批量大小和小批量策略,以平衡计算效率和训练效果。

非平衡数据(imbalanced data)

        不平衡分类是指分类预测建模问题,其中每个类标签的训练数据集中的示例数量不平衡。也就是说,类分布不等于或接近等于,而是有偏差或偏斜。

        不平衡分类问题是分类问题的一个示例,其中已知类中的示例分布有偏差或偏斜。分布可以从轻微的偏差到严重的不平衡,其中少数类中有一个示例,而多数类中有数百、数千或数百万个示例。

        理想数据集正负样本是均等的,这有利于机器学习模型训练。现实中正负样本常常不均等,而且正负样本比例相差甚大,如下图橘红色样本仅占10%左右。

联邦学习_第3张图片联邦学习_第4张图片

 

什么是非平衡数据集?当正负样本占比相差过大时,就是非平衡数据集。

        * 轻微失衡。一个不平衡的分类问题,其中示例的分布在训练数据集中有少量不均匀(例如 4:6)。

        * 严重失衡。一个不平衡的分类问题,其中示例的分布在训练数据集中大量不均匀(例如 1:100 或更多)。

 联邦学习_第5张图片

 (1条消息) 非平衡数据(imbalanced data)简单介绍_python机器学习建模的博客-CSDN博客

 

联邦学习与分布式机器学习 

分布式学习是包含联邦学习的。

        分布式学习有两种场景:一个是数据量太大,需要把它分布到各个节点上充分利用各个节点的计算资源。另外一个是,数据天生就是分布式的存在于各个节点上。

        联邦学习适用于第二个场景,同时联邦学习更进一步强调,由于隐私保护的原因,各个节点的原始数据不能共享。如何在不共享原始数据的情况下,进行学习任务是联邦学习要解决的问题。

参考文献

联邦学习_通信百科 (c114.com.cn)

联邦学习介绍(非常详细) (biancheng.net)

联邦机器学习_百度百科 (baidu.com)

你可能感兴趣的:(联邦学习,人工智能,深度学习)