Menu

  • 联邦学习
    • Fair Resource Allocation in Federated Learning
      • 背景
      • 贡献
      • FedAvg
      • q-FFL
      • 解决方法 Fed Avg-Style q-Fair Federated Learning(q-FedAvg)
      • 实验
  • 脏数据
    • 脏数据的种类及处理方法
      • 数据缺失
      • 数据重复
      • 数据错误
      • 数据不可用
    • BI对数据的要求
      • 结构化
      • 规范性
      • 可关联
  • Approaches to address the data skew problem in federated learning
    • 数据倾斜 data skew
    • 背景
    • 贡献
    • 函数估计
      • 线性关系
      • 非线性关系
      • 联邦学习进行函数估计
      • 函数估计中的数据偏斜问题
      • 边界感知融合
      • 边界扩展数据交换
      • 实验验证
    • 表格数据分类
      • 问题
    • 解决表格的数据偏移
      • 边界感知融合
      • 边界扩展数据交换
      • 边界扩展数据交换的数据重建
      • 试验测试
    • 一般分类问题
    • 结论

联邦学习

Fair Resource Allocation in Federated Learning

背景

之前横向联邦学习一般都是follow google的FedAvg算法,将所有用户(或者随机一部分)更新的梯度取个平均作为中心模型的更新参数。显然,这种做法虽然对于所有用户来说,全局模型最后会收敛到一个最优值,但是对于单个用户,这个模型并不一定能达到局部最优。作者将之视为一个resource allocation fairness的问题,希望在全局最优的情况下,让所有用户个体都尽可能地达到最优值。

那么现在的问题是:怎么在全局模型的准确率不变的情况下,让每个用户模型的本地准确率也达到最高。作者认为当用户本地模型准确率偏离全局模型准确率的方差最小时可以认为这个模型就是公平的了。具体定义如下:

贡献

  • 提出了q-FFL一种新的目标可以提高联邦学习的准确度(q-Fair Federated Learning)
  • 设计一个可变的q-FedAvg方法,可以有效解决我们之前的q-FFL问题
  • 数据集和实验检验了结果,从经验上看,q-FFL能够在保持总体平均精度的同时,将设备间的精度差异平均降低45%。

FedAvg


其中Fk(w)是第k个用户本地的loss,nk是该用户具有的样本数量,N是总的样本数量。

这么做会导致不公平在不同设备键,譬如训练模型会倾向于大多数设备的数据而不是小部分的人群

q-FFL

重新评估reweight,赋予poor表现的设备更高的权重,因而减小神级网络的误差,必须是动态的

如果q是0就回归到了FedAvg方法了

解决方法 Fed Avg-Style q-Fair Federated Learning(q-FedAvg)

首先确定如何设置q是至关重要的。因此,为不同的q值训练一系列目标是很常见的,这样实践者就可以探索在准确性和手头应用程序的公平性之间的权衡。
解决这一系列目标的一个问题是,培训成本可能会大幅增加。特别是,为了以可伸缩的方式优化q-FFL,我们依赖于基于梯度的方法,其中步长与函数梯度的Lipchitz常数成反比,而梯度往往是未知的,是通过网格搜索选择的。由于我们打算优化q- FFL的各种q值,Lipchitz常数将随着我们改变q的所有值的需要q步长调整而改变。这可能很快导致搜索空间爆炸。为了克服这一问题,我们提出了利用在q = 0时通过网格搜索得到的Lipchitz常数来估计q- FFL目标族梯度的局部Lipchitz常数。这使我们能够动态地调整基于梯度的优化方法的步长,以实现q- ffl目标,避免对每个q进行手动调整
Lipschitz(利普希茨)连续定义:
有函数f(x),如果存在一个常量K,使得对f(x)
定义域上(可为实数也可以为复数)的任意两个值满足如下条件:
|f(x1)−f(x2)|≤|x1−x2|∗K
那么称函数f(x)满足Lipschitz连续条件,并称K为f(x)的Lipschitz常数。

q-FedSGD和q-FedAvg

实验

  • q = 0 and a tuned value of q > 0

    由图看出,q>0的时候更加集中
  • q-FFL (q > 0) compared with uniform sampling(前者优于后者)

脏数据

脏数据的种类及处理方法

数据缺失

缺一些记录,或者一条记录里缺一些值(空值),或者两者都缺。原因可能有很多种,系统导致的或人为导致的可能性都存在。如果有空值,为了不影响分析的准确性,要么不将空值纳入分析范围,要么进行补值。前者会减少分析的样本量,后者需要根据分析的计算逻辑,选择用平均数、零、或者等比例随机数等来填补。如果是缺一些记录,若业务系统中还有这些记录,则通过系统再次导入,若业务系统也没有这些记录了,只能手工补录或者放弃。

数据重复

相同的记录出现多条,这种情况相对好处理,去掉重复记录即可。但是怕就怕不完全重复,比如两条会员记录,其余值都一样,就是住址不一样,这就麻烦了,有时间属性的还能判断以新值为准,没有时间属性的就无从下手了,只能人工判断处理。

数据错误

数据没有严格按照规范记录。比如异常值,价格区间明明是100以内,偏偏有价格=200的记录;比如格式错误,日期格式录成了字符串;比如数据不统一,有的记录叫北京,有的叫BJ,有的叫beijing。对于异常值,可以通过区间限定来发现并排除;对于格式错误,需要从系统级别找原因;对于数据不统一,系统无能为力,因为它并不是真正的“错误”,系统并不知道BJ和beijing是同一事物,只能人工干预,做一张清洗规则表,给出匹配关系,第一列是原始值,第二列是清洗值,用规则表去关联原始表,用清洗值做分析,再好一些的通过近似值算法自动发现可能不统一的数据。

数据不可用

数据正确,但不可用。比如地址写成“北京海淀中关村”,想分析“区”级别的区域时还要把“海淀”拆出来才能用。这种情况最好从源头解决,即数据治理。事后补救只能通过关键词匹配,且不一定能全部解决。

BI对数据的要求

接下来,我们了解一下BI对数据的要求,结合上面脏数据的种类,中间的规避手段就是数据治理。

结构化

数据必须是结构化的。这可能是句废话,如果数据是大段的文本,比如微博,那就不能用BI做量化的分析,而是用分词技术做语义的分析,比如常说的舆情分析。语义分析不像BI的量化分析一样百分百计算准确,而是有概率的,人的语言千变万化,人自己都不能保证完全理解到位,系统就更不可能了,只能尽可能提高准确率。

规范性

数据足够规范。这么说比较含糊,简单来讲就是解决了上述各类脏数据的问题,把所有脏数据洗成“干净数据”。

可关联

如果想将两个维度/指标做关联分析,这两个维度/指标必须能关联上,要么在同一张表里,要么在两张有可关联字段的表里。

Approaches to address the data skew problem in federated learning

数据倾斜 data skew


简单来说数据倾斜就是数据的key 的分化严重不均,造成一部分数据很多,一部分数据很少的局面。

举个 word count 的入门例子: 它的map 阶段就是形成 (“aaa”,1)的形式,然后在reduce 阶段进行 value 相加,得出 “aaa” 出现的次数。若进行 word count 的文本有100G,其中 80G 全部是 “aaa” 剩下 20G 是其余单词,那就会形成 80G 的数据量交给一个 reduce 进行相加,其余 20G 根据 key 不同分散到不同 reduce 进行相加的情况。如此就造成了数据倾斜,临床反应就是 reduce 跑到 99%然后一直在原地等着 那80G 的reduce 跑完。

对于集群系统,一般缓存是分布式的,即不同节点负责一定范围的缓存数据。我们把缓存数据分散度不够,导致大量的缓存数据集中到了一台或者几台服务节点上,称为数据倾斜。一般来说数据倾斜是由于负载均衡实施的效果不好引起的。(百度定义)

  • 变量值很少: 单个变量值的占比极大,常见的字段如性别、学历、年龄等。
  • 变量值很多: 单个变量值的占比极小,常见的字段如收入、订单金额之类的。

背景

联合学习方法包括从多个数据源创建AI模型,而无需将大量数据移至中央环境。联合学习在战术联盟环境中非常有用,战术联盟环境中的数据可以由每个联盟伙伴单独收集,但是网络连接不足以将数据移至中央环境。但是,收集的此类数据通常是肮脏且不完善的。数据可能是不平衡的,在某些情况下,某些联盟伙伴可能会完全缺少某些类别。在这种情况下,用于联合学习的传统方法可能会导致模型非常不准确。在本文中,我们提出了即使在数据可能高度偏斜的环境下也可以产生良好机器学习模型的方法,

贡献

  • 研究了三类机器学习问题,并讨论了数据偏斜如何影响使用联合学习构建的模型。
  • 我们提出了两种有效的机制,这些机制可以导致联合学习在存在倾斜数据的情况下创建正确的模型。我们将这些机制称为
    – i)边界感知融合bounds-aware fusion
    –(ii)边界扩展数据交换bounds-expanding data exchange

函数估计

我们假设训练数据由多个数据点组成,每个数据点都包含一些N个特征x1,x 2 … xN和输出y

线性关系

例如,如果通过特征和输出变量之间的线性回归进行函数估计,则将有N + 1个系数(即K = N + 1,这些将是N + 1个值)α 0,α 1 … α ñ其提供的关系的最佳拟合:

非线性关系

如果该函数估计以非线性方式被完成,然后另一种方法将是一个模型的估算,其中ķ =(中号 + 1)Ñ,且系数将是β i,Ĵ其提供的最佳估计关系:

用于函数估计的另一种方法使用内核方法,其中假定一组函数(内核函数)定义所有感兴趣函数空间的基础。所估计的函数将被计算为核函数的线性组合。核函数k 1 … k K是在特征x 1 … x N上定义的函数,它们的线性组合将涵盖曲线拟合练习中所有其他感兴趣的函数。我们的目标是他们要拿出ķ coeffientsγ 1 …γ ķ其中规定关系的最佳估计:

联邦学习进行函数估计

函数估计中的数据偏斜问题


执行融合的问题在于,正在对适用于不同条件的函数估计进行平均。当估计适用于因变量的公共区域时,对不同的估计函数求平均值是正确的方法,而对于空间的不同区域则不是正确的方法。

为了处理数据偏斜,融合服务器需要知道估计的适用范围。在这种情况下,融合服务器可以确定估算值适用的区域,并进行分段融合,即仅对来自不同站点的估算值有效的系统部分进行平均

边界感知融合

当以这种方式完成聚合时,可以在存在共同重叠的区域中创建估计函数的聚合,但是要避免在不同函数范围内进行函数估计的区域。在这种情况下,该估计将导致更接近于基本事实的估计。

边界扩展数据交换

处理数据偏斜的另一种方法是交换一些数据,以便可以扩展每个站点的边界,以便它们可以变得相同。当不同的站点确定其边界时,他们可以向其他站点请求一些代表性数据点,这些数据点扩展了适用区域的边界以覆盖丢失的点。然后,可以使用这些额外的点以更好的方式推断函数,并且现在可以在同一公共区域上进行的聚合可以更接近于基本事实

实验验证


第一种算法(Naive算法)仅将每个定位的数据集分为多个批次,然后尝试将它们组合在一起。每个站点都在其本地可用数据上运行非多项式最佳拟合算法。由于所有站点都知道在这种情况下二次方程可以捕获这种关系,因此试图将二次方程拟合为基本事实。但是,由于测量的不同部分具有不同的关系,因此生成的融合模型相当不准确。但是,在这种情况下,交换一些信息(大约10%),可以使站点扩展其适用范围,并且navie融合算法在此数据交换后效果很好。当适合的模型知道每个位置的适用范围时,就会获得同等好的算法

在函数估计中有两种基本方法可用于处理数据偏斜。第一种是边界感知融合,包括计算适用的限制并仅当它们适用于输入空间的相同区域时,才汇总来自不同站点的AI模型。第二种是边界扩展交换,是交换少量数据,以便所有站点对其估计模型都具有相同的适用范围。这两种方法都产生了一个融合模型,该模型比融合参数的朴素方法更准确。

表格数据分类

问题

  • (1)合作伙伴之间存在数据不平衡
    一个合作伙伴为第1类提供了数千个训练样本,而另一伙伴为该类提供了数十个训练样本。在这种情况下,通过联合学习构建的结果模型可能非常差2,并且需要技术来解决这种环境中的数据不平衡问题。
  • (2)一个或多个伙伴的class缺失

    当一个或两个合作伙伴的训练数据的class不在另一个合作伙伴的数据中时,就会发生此数据偏斜问题。
    就大致意识是site1中的class有2,site2中的class有4
  • (3)一个或多个合作伙伴缺少特征
  • (4)一个或多个合作伙伴的值缺失

解决表格的数据偏移

边界感知融合

与功能估计的情况一样,解决表格数据中数据偏斜问题的合理选择是在不同站点的数据集之间的特征空间中识别公共区域,并尝试仅在具有数据的站点之间融合模型在公共区域。使用通用数据。在这种方法中,将需要一种用于发现伙伴之间的训练数据重叠的方法。这可以作为联合培训开始之前的先决条件在融合服务器上实现。它将实现为使得融合服务器将在训练之前要求每个合作伙伴提供信息,这些信息描述了他们每个功能所拥有的数据范围

该方法将为所有合作伙伴的利益提供一套通用的训练模型,该模型将利用合并的训练数据。对于要素空间中在不同站点之间存在重叠数据的区域,将使用融合在不同站点上训练的模型的AI模型。**在要素空间中没有重叠的区域,即只有一个站点有数据,将使用该模型。**为了对不在训练数据集的任何区域中的点执行推理,将使用最近的AI模型。

在具有两个独立特征的站点上进行分类时,将在三个不同站点之间使用的模型示例如图14所示。图的顶部显示了可以针对三个站点训练AI模型的特征区域。底部显示了生成的融合,具有边界意识。在要素空间中两个或多个站点拥有共同数据的区域中,它们的AI模型融合在一起。另一方面,在仅使用一个适用模型的区域中。图中显示了完成融合的几个示例区域。

边界扩展数据交换

当数据倾斜并且伙伴站点之间并非所有类和功能都存在时,有限的数据交换方法可以帮助提高准确性。少于2%的数据交换总数可能足以显着提高使用联合学习技术训练的模型的准确性

边界扩展数据交换的数据重建

  • 估计
    为了解决缺少类,特征或值的问题,可以使用一种简单的估计方法来重建每个伙伴站点上的数据。
    可以通过多种方法(例如,简单的平均值(均值/中位数))使用表格数据中可用的其他要素来创建要素模型,从而估算单个站点内的缺失值,要素或类别。可以通过任何学习机制创建模型,但是简单的方法(例如逻辑回归)可能就足够了。
  • 过度采样
    对于合作伙伴之间数据不平衡的情况,可以使用传统的过度采样技术(如综合少数群体过度采样(SMOTE)8)及其后续改进(例如Borerline- SMOTE 9或ADASYN )在现场以较少的数据重建训练数据。

过采样的一种主要技术是SMOTE(合成少数过采样技术,Synthetic Minority Over-sampling TEchnique)。在这种技术中,少数类是通过生成合成算例而不是通过替换来进行过采样的,而且对于每一个少数类的观察值,它都计算出k最近邻(k-NN)。但这种方法仅限于假设任意两个正实例之间的局部空间属于少数类、训练数据不是线性可分的情况下,这种假设可能并不总是正确的。根据所需的过采样量,随机选择k-NN的邻域。

(感觉这里还可以欠采样,缩小多的数据集合)

  • GAN
    他们有能力在培训数据相对较少的站点上创建全新的培训样本,这将使其成为可能。使用此方法,具有大量训练数据的站点将使用其数据来训练GAN。该训练的模型将以很少的训练样本传递给合作伙伴,这样他们就可以运行模型并在其本地站点生成新的训练样本。此方法不需要站点之间的任何形式的数据交换,并且可以可靠地重现训练样本以解决数据不平衡问题。

试验测试

信用卡贷款风险分析
30个匿名特征
目标是检查数据偏斜的影响,而不是试图找到最佳的信用卡风险算法,因此我们在数据集中训练了一个随机森林,以识别所提供数据集中最重要的特征。预测风险的最重要的两个特征是相对重要性,分别为0.54和0.10

用于区分该数据集的欺诈交易和正常交易的AI模型是一个三层神经网络,分别使用16、4和1个神经元。前两层是经过整流的线性单元,而最后一层使用了S型激活函数,表明该交易不是欺诈行为。每个站点都训练自己的模型,并使用上面概述的不同方法来创建融合模型。在该过程中进行了10次迭代,以更好地了解联合学习过程的准确性。

一般分类问题

在一般分类的情况下,用于分类的输入可以是未预定义为特定特征的输入信号。此类输入的示例包括图像,声音,振动数据,传感器数据以及可用于分析的任何其他种类的复杂输入。分类问题取决于问题的性质,例如,来自电话的传感器数据可用于分类一个人是走路,跑步,坐下还是站立


使用两种联邦学习对分区数据进行分类的问题。在每种口味中,不考虑不同位置上存在的类别差异的准确性非常低

与功能估计或表格数据的情况不同,很难定义可以确定可用于分类的数据不适用或不适用的上下文。对此的确定将需要具有在本地训练数据集中具有负样本的能力,或者要求神经网络具有声明其正在遇到从未遇到过的数据样本的能力。

联邦融合仍然存在的未解决问题之一是,我们是否能够找到能够表征每个模型适用范围的表征,就像我们在函数估计或对表格数据进行分类的情况下所做的那样。这将允许在不允许数据交换的情况下解决数据倾斜问题。但是,我们还没有一种了解神经网络适用范围的好方法。

结论

在本文中,我们研究了在拥有部分训练数据的每个站点的数据高度偏向的情况下,进行联合学习所带来的挑战。我们研究了三个机器学习问题,函数估计,基于表格数据的分类模型和基于原始数据(例如图像或音频)的分类模型。我们已经表明,用于边界感知的融合和边界扩展的数据扩展的方法是解决数据倾斜问题的有效策略。

虽然这两种方法都可以用于函数估计和表格数据分类的问题,但是我们只能使用边界扩展数据交换对原始数据进行分类。在未来的工作中,我们将探索有效的方法来设计和实现原始数据分类的边界感知融合方法。

联邦学习 + 脏数据+Approaches to address the data skew problem in federated learning相关推荐

  1. 基于联邦学习的多源异构数据融合算法 Multi-Source Heterogeneous Data Fusion Based on Federated Learning

    5.基于联邦学习的多源异构数据融合算法 Multi-Source Heterogeneous Data Fusion Based on Federated Learning 摘要:随着科技的迅猛发展, ...

  2. 洞见科技解决方案总监薛婧:联邦学习助力数据要素安全流通

    近日,由国家工业信息安全发展研究中心.华东江苏大数据交易中心.国家金融科技测评中心联合主办的<2022数据要素安全流通论坛--联邦学习专场(二)>成功举办,论坛以「推动创新 交互未来」为主 ...

  3. 启智平台发布联邦学习开源数据协作项目 OpenI 纵横

    --新一代人工智能开源开放平台基础全面确立 2019年6月18日, OpenI启智新一代人工智能开源开放平台技术委员会2019年第二次会议在鹏城实验室举行,OpenI技术委员会主席黄铁军同鹏城实验室. ...

  4. 4 月 29 日晚 8 点,为你揭秘联邦学习背后数据可用不可见的奥秘

    随着机器学习技术的不断发展和用户数据量的不断增多,如何在保障数据安全的同时实现平台间机器学习模型的协作训练成为了一个新兴话题.2016年,谷歌提出"联邦学习"(Federated ...

  5. 笔记︱联邦学习与隐私计算的案例集锦(一)

    文章目录 1 联邦学习与隐私计算 1.0 联邦学习背景 1.1 横向联邦学习(HorizontalFederatedLearning,HFL) 1.2 纵向联邦学习(VerticalFederated ...

  6. [联邦学习TFF]构建自己的联邦学习模型

    TFF 全称 tensorflow_federated,为谷歌的联邦学习框架. 在TFF官网的Building Your Own Federated Learning Algorithm 界面中,介绍 ...

  7. 联邦学习中常见的Clients数据Non-IID非独立同分布总结

    联邦学习 写在前面 联合概率分布 联邦学习中客户端数据Non-IID分布的五种类型: 类型1:Feature distribution skew (convariate shift) 类型2:Labe ...

  8. 双项通过|百度点石通过信通院「可信数据流通平台」、「联邦学习」双项测评

    随着时代的发展,信息技术逐渐与生产生活交汇融合,数据安全已成为事关国家安全与经济社会发展的重大问题.2021年12月20日, 由中国信息通信研究院(以下简称"信通院").中国通信标 ...

  9. AI 大数据在数据隐私保护下如何普惠共享?CCF TF「联邦学习」研讨会给出了答案

    雷锋网 AI 科技评论按:3 月 24 日,由 CCF 主办.微众银行和深圳大学微众金融科技研究院协办的第 14 期中国计算机学会技术前线研讨会于深圳大学科技楼二号报告厅圆满召开,研讨会的主题为「联邦 ...

最新文章

  1. flask sqlalchemy踩坑记录
  2. java 装配_java – 无法自动装配方法
  3. Rundeck crontab格式
  4. DBA工具——DMV——通过sys.dm_exec_procedure_stats查看存储过程执行信息
  5. 转 10 个最佳的 Node.js 的 MVC 框架
  6. QFile练习(20200213)
  7. 深入解析Java字节码和字节码操作类库ASM源码解析
  8. 直播进行中|谁在玩转数字中国?腾讯里约带你启动数字化转型之旅
  9. python matplotlib绘图大全(散点图、柱状图、饼图、极坐标图、热量图、三维图以及热图)...
  10. 20 年后,我们怎么看电影?
  11. python+splinter实现12306网站刷票并自动购票流程
  12. Oracle 11g xe版本---总结1
  13. K8S_Google工作笔记0005---搭建k8s集群(kubeadm方式)
  14. SM3密码杂凑算法实现及说明
  15. 计算机光驱无法启用,光驱提示:无法访问G:\函数不正确解决方法
  16. 用java在正方体上贴图片_THREE.js为正方体的6个面贴上图片
  17. SQL开窗函数(窗口函数)详解
  18. zynq Linux软件中断,Linux Zynq GPIO中断
  19. java几个注解的作用及比较(@RestController、@Controller、@ResponseBody、@RequestBody等)
  20. 孤立森林算法 python_孤立森林(isolation forest)

热门文章

  1. aria2+ariang+nginx linux 离线下载部署
  2. 启动root用户 银河麒麟_麒麟系统使用root权限运行程序
  3. [人工智能-深度学习-14]:神经网络基础 - 常见loss损失函数之逻辑分类,对数函数,交叉熵函数
  4. 微信小程序Day4学习笔记
  5. Word如何调整页边距
  6. 花三分钟,一起了解一下消费全返模式是怎么样的?消费者又消费又赚钱
  7. canvas教程13-使用图片
  8. java 日期比较_java日期大小比较
  9. 第十六届全国大学生智能车竞赛三个创意组别总决赛比赛成绩
  10. 暂时性死区(TDZ)