了解联邦学习和Fate框架

学习Fate框架

本次学习主要是初步了解:

  1. 为什么要进行联邦学习?
  2. 联邦学习是什么?
  3. Fate是什么?
  4. Fate中的基础概念。

1 联邦学习

1.1 介绍

  1. 数据监管越来越严格,保护越来越全面,鉴于安全性的考虑所以会出现数据孤岛.
  2. 联邦学习可以实现数据隔离(数据不泄漏到外部)(希望FL可以实现参与者地位对等\无损\共同获益等特性);
  3. FL主要分为横向和纵向FL。(Federated Learning)
  4. 横向一般数据集特征重合较多,但是数据来源差异较大;
  5. 纵向数据来源重合较大但是数据集间的特征比较孤立。

1.2 联邦学习的关键技术就是保护隐私和安全方法

  1. 同态加密
  2. 多方安全计算
  3. 姚式混肴电路
  4. 差分隐私DP

1.3 联邦学习特点

  1. 数据隔离:联邦学习的整套机制在合作过程中,数据不会传递到外部。
  2. 无损:通过联邦学习分散建模的效果和把数据合在一起建模的效果对比,几乎是无损的。
  3. 对等:合作过程中,合作双方是对等的,不存在一方主导另外一方。
  4. 共同获益:无论数据源方,还是数据应用方,都能获取相应的价值。

1.4 联邦学习分类

  1. 横向联邦学习(Horizontal Federated Learning)
    • 两个数据集的用户特征 ( X1, X2, … ) 重叠部分较大,而用户 ( U1, U2, … ) 重叠部分较小,又叫基于样本的联邦学习,用于有相同特征空间,不同样本空间的数据集场景。
    • 例如:两个区域银行的用户样本可能差别很大,但是这两家银行的业务是相近的,所以用户样本的特征空间是相同的。
  2. 纵向联邦学习(Vertical Federated learning)
    • 两个数据集的用户 ( U1, U2, … ) 重叠部分较大,而用户特征 ( X1, X2, … ) 重叠部分较小,又叫做基于特征的联邦学习,被应用 于不同数据集共享相同的样本空间,但特征空间不同的场景
    • 例如:在同一地区的两个不同领域的公司,他们拥有相同的数据样本,但由于领域不同,他们用户样本的特征数据是不同的。
  3. 联邦迁移学习(Federated Transfer Learning)
    • 两个数据集的用户 ( U1, U2, … ) 与用户特征重叠 ( X1, X2, … ) 部分都比较小,应用于不同数据集的样本空间和用户空间的交集都很少的场景下
    • 例如:在两个不同区域的两家不同领域的公司,它们的用户和用户的数据都极为不同,或者只有极小一部分交集。

2 FATE

2.1 FATE概念

  1. 官网:https://fate.fedai.org/
  2. FATE (Federated AI Technology Enabler) 是微众银行AI部门发起的开源项目,为联邦学习生态系统提供了可靠的安全计算框架。
  3. FATE项目使用多方安全计算 (MPC) 以及同态加密 (HE) 技术构建底层安全计算协议,以此支持不同种类的机器学习的安全计算,包括逻辑回归、基于树的算法、深度学习和迁移学习等。

2.2 FATE中的联邦学习算法

横向联邦学习、纵向联邦学习以及迁移联邦学习。

2.3 FATE中的三种角色

在Fate的概念中分成3种角色,Guest、Host、Arbiter

  • Guest:数据应用方。在纵向算法中,Guest往往是有标签的一方。一般由Guest发起建模流程。
  • Host:数据提供方
  • arbiter:用来辅助多方完成联合建模。主要的作用是用来聚合梯度或者模型,比如纵向lr里面,各方将自己一半的梯度发送给arbiter,然后arbiter再联合优化等等,arbiter还参与以及分发公私钥,进行加解密服务等等。

名词解释:

  1. 梯度:
    1. 梯度概念是建立在偏导数方向导数概念基础上的。
    2. 所谓偏导数,简单来说是对于一个多元函数,选定一个自变量并让其他自变量保持不变,只考察因变量选定自变量的变化关系。偏导数只能表示多元函数沿某个坐标轴方向的导数,如对于二元函数 z = x 2 + y 2 , ∂ z ∂ x = 2 x \color{red}{ z=x^2+ y^2,{{\partial z} \over {\partial x}} = 2x} z=x2+y2xz=2x 表示函数沿X轴方向的导数;而 ∂ z ∂ y = 2 y \color{red}{{{\partial z} \over {\partial y}} = 2y} yz=2y,表示函数沿Y 轴方向的导数。
    3. 方向导数:除开沿坐标轴方向上的导数,多元函数在非坐标轴方向上也可以求导数,这种导数称为方向导数。很容易发现,多元函数在特定点的方向导数有无穷多个,表示函数值在各个方向上的增长速度
    4. 一般来说,梯度可以定义为一个函数的全部偏导数构成的向量;事实上,梯度向量的方向即为函数值增长最快的方向。

2.4 FATE中主要包括

  • EggRoll:分布式计算和存储的抽象;
  • Federated Network:跨域跨站点通信的抽象;
  • FATE FederatedML:联邦学习算法模块,包含了目前联邦学习所有的算法功能;
  • FATE-Flow | FATE-Board:完成一站式联邦建模的管理和调度以及整个过程的可视化;
  • FATE-Serving:联邦学习在线推理模块。

2.5 dsl、conf

  • 为了让任务模型的构建更加灵活,目前 FATE 使用了一套自定的域特定语言 (DSL:domain-specific language) 来描述任务。
  • 在 DSL 中,各种模块(例如数据读写 data_io,特征工程 feature-engineering, 回归 regression,分类 classification)可以通向一个有向无环图 (DAG) 组织起来。通过各种方式,用户可以根据自身的需要,灵活地组合各种算法模块。
  • 借助FATE,我们可以使用组件的方式来构建联邦学习,而不需要用户重新开始编码。
  • FATE构建联邦学习Pipeline是通过自定义dsl和conf两个配置文件来实现的:
    1. dsl文件:用来描述任务模块,将任务模块以有向无环图(DAG)的形式组合在一起。
    2. conf文件:设置各个组件的参数,比如输入模块的数据表名;算法模块的学习率、batch大小、迭代次数等。
  • 每个模块都有不同的参数需要配置,不同的 party 对于同一个模块的参数也可能有所区别。为了简化这种情况,对于每一个模块,FATE 会将所有 party 的不同参数保存到同一个运行配置文件(Submit Runtime Conf)中,并且所有的 party 都将共用这个配置文件。
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值