机器学习(一)

目录

一、联邦学习(目标:解决数据的协作和隐私问题)

1、特点:

2、联邦学习体系

3、联邦学习应用案例

二、机器学习集合Fate框架

一、基本概念:

1、Fate概念:

2、Fate设计原则:

3、Fate框架的由来

二、整体架构:

三、利用FATE平台进行开发的流程如下:

四、具体使用FATE进行项目构建

1.数据准备及数据预处理

1.2横向数据集切分


一、联邦学习(目标:解决数据的协作和隐私问题)

1、特点:

  • 数据隔离: 联邦学习的整套机制在合作过程中,数据不会传递到外部。

  • 无损: 通过联邦学习分散建模的效果和把数据合在一起建模的效果对比,几乎是无损的。

  • 对等: 合作过程中,合作双方是对等的,不存在一方主导另外一方。

  • 共同获益: 无论数据源方,还是数据应用方,都能获取相应的价值。

2、联邦学习体系

  • 纵向联邦学习(样本对齐的联邦学习)

  • 1、概念:如果参与者的数据中样本重叠多,特征重叠少。例如:同一地区的银行和电商,就需要先将样本对齐,由于不能直接比对,我们需要加密算法的帮助,让参与者在不暴露不重叠的样本情况下,找出相同的样本后,联合他们的特征进行学习

    2、特点:样本重叠多,特征重叠少,

    3、使用场景:两个数据集的用户(U1,U2,......)重叠部分较大,而用户特征(X1,X2,......)重叠部分较小;

    4、如何实现纵向联邦学习、保护好数据隐私: 建模样本ID差集不向对方泄漏,在合作之初需要进行用户匹配,找出用户的交集,并且不能泄漏差集,因为这是企业最核心的资产

    方案一:

    • RSA 和 Hash 的机制,保证双方最终只用到交集部分,且差集部分不向对方泄露。

    1. 还是以前面提到的企业A和企业B来解释。假如企业A有[A1,AB2,AB3,AB4,AB5]五个客户,企业B有[AB2,AB3,AB4,AB5,B6]五个客户,那么如何在整个训练和应用的过程中保证双方只知道共同客户[AB2,AB3,AB4,AB5],而企业A不知道企业B有客户[B6],企业B不知道企业A有客户[A1]?

    2. 事实上,这可以用RSA和Hash机制来实现。企业B作为公钥的生成方,把公钥给企业A,企业A基于Hash引用一个随机数再交互传给企业B,企业B同时做Hash传给A,那么企业A就会最后做一个结果的交集。整个过程中,没有任何明文数据的传递,即使采用暴力或者碰撞方式,依然不能解析出原始的ID,通过这种机制就能很好保护企业A和企业B客户的差集部分。

    方案二:

    • 用同态加密技术

      用同态加密技术,这个过程中,各方的原始数据,以及数据加密态都没有被传输。交互部分,双方通过损失中间结果,用同态加密的机制进行交互,模型训练完之后,会各自得到一个模型,各自的模型会部署在各自的一方,就是如果A只提供了3个特征,那么A只有3个特征的模型,只提供2个特征,就只有2个特征的模型,任何一方的模型都没法单独去应用,只有共同应用的时候,才能进行决策

  • 横向联邦学习(特征对齐的联邦学习)

  • 1、概念:如果联邦学习的参与者们业务相似,数据的特征重叠多,样本重叠少,例如:不同地区的两家银行,就可以通过上传参数,在服务器中聚合更新模型,再将最新的参数下放完成模型效果的提升。

  • 2、特点:样本重叠少,特征重叠多

    3、使用场景:两个数据集的用户特征(X1,X2,......)重叠部分较大,而用户(U1,U2,......)重叠部分较小;

  • 联邦迁移学习

    1、概念:如果样本和特征重合的都不多,希望利用数据提升模型能力,就需要将参与者的模型和数据迁移到同一空间中运算。

    2、特点:样本重叠少,特征重叠少

    3、使用场景:两个数据集的用户特征(X1,X2,......)重叠部分较大,而用户(U1,U2,......)重叠部分较小;

3、联邦学习应用案例

两个场景和视觉领域的应用:

  1. 保险行业个性化定价

    对保险公司而言,个性化定价是很困难,因为保险公司一般只有业务数据、承保数据和理赔数据,用这么局限的数据来对客户做千人千面的定价基本无法实现。而通过联邦学习,可以融合来自互联网企业的数据集,综合出险数据和互联网数据(如年龄、职业、特定行为次数、出险概率等等)来构建基于保险定价的联邦学习产品,实现较精确的个性化保险定价。

  2. 小微企业信贷风险管理

    银行往往会希望获取到完备的数据集,例如来自央行征信报告、上下游、行政、税务、财务、舆情、无形资产、司法、声誉、工商等方面的数据,但实际情况却是非常受限的,基本只能获取到央行征信报告。因此就可以利用联邦学习,对合作企业用户的其他方面数据特征属性进行联合建模,来提高预测的准确度。

  3. 视觉领域

    在装备制造业、物联网AIOT、智慧安防等行业,行人检测、出行检测、区域检测、设备异常检测、安全帽检测、火焰检测、烟雾检测等情境下,由于存在标签数量少、数据分散、集中管理成本高等问题,就可以借助联邦学习拓宽市场,进一步提升算法准确率,形成网络效应,降低长尾应用成本,提升视觉业务总体的利润率。
     

二、机器学习集合Fate框架

一、基本概念:

1、Fate概念:

微众银行AI团队于2019年1月份宣布对外开源的联邦学习平台,,它定位于工业级联邦学习系统,能够有效帮助多个机构在符合数据安全和政府法规的前提下,进行数据使用和联合建模

2、Fate设计原则:

  • 支持多种主流算法:为机器学习、深度学习、迁移学习提供高性能联邦学习机制

  • 支持多种多方安全计算协议:同态加密、秘密共享、哈希散列

  • 友好的跨域交互信息管理方案,解决联邦学习信息安全审计难的问题

3、Fate框架的由来

  • 式建模过程的联邦化

  • C协议下分布式算法(on WAN)易理解和易维护

  • 点数据传输安全性和可管理性,如何让交互部分是可以被管理和被审计的

  • 基础架构自适应,联邦学习可能会运行在CPU、GPU和端上,怎么让上层架构不受底层的影响

二、整体架构:

1、 EggRoll:分布式计算和存储的抽象;

(1) 核心功能:分布式计算和存储抽象

(2) 编程框架:面向算法开发者,通过API实现分布式计算

(3) 计算/存储架构:

  • 学习一方分布式计算和存储

  • 模块

(4) Meta-Service:元信息管理

  • Roll:数据/计算 调度(to eggs),聚合操作等

  • Egg:计算、存储引擎

2、 Federated Network:跨域跨站点通信的抽象;

(1) 核心功能:跨站点网络通信抽象

(2) 编程框架:Federaton API:面向算法开发者,通过API实现跨站点通信和交互。

(3) 通信架构

  • 联邦学习不仅需要分布式计算,还需要多个参与方跨站点通信和交互

  • 模块

    • Meta-Service:元信息管理

    • Proxy:应用层联邦学习路由

    • Federation:Global Object(i.e. data to be 'federated' among parties)抽象和实现

    • FATE-Exchange

3、 FATE FederatedML:联邦学习算法模块,包含了目前联邦学习所有的算法功能;

(1) 核心功能:联邦学习算法各个功能组件

  • eggRoll & Federation API:底层是 EggRoll 的算子,比如 Map 和 MapValues,Remote 和 Get 可以完成整个分布式计算的抽象;

  • MPC Protocol:包括同态加密、秘密共享等多种多方安全协议,

  • Numeric Operator:会抽象出数学算子,比如加法或者乘法;

  • ML Operator:用建好的数学算子构建机器学习算子,而不用管底层的安全协议是什么;

  • Algorithms:有了 ML 算子之后就构建各种算法模型。

4、 FATE-Flow | FATE-Board:完成一站式联邦建模的管理和调度以及整个过程的可视化;

(1) 核心功能:联邦建模Pipeline和可视化

(2) 整个一站式联合建模Pipeline需要统一的调度管理,而FATE-Board的作用就是将建模流程、步骤和效果等通过可视化的方式呈现出来,实现整个联合建模 Pipeline 可视化追踪,记录联邦学习的全过程。FATE-Flow能够完成下述管理:

  • 联邦机制下多方非对称DAG图Paser

  • 联邦建模生命周期管理

  • 联邦建模实验管理

  • 联邦建模模型管理

  • 联邦多方任务调度

5、 FATE-Serving:联邦学习在线推理模块。

· 核心功能:联邦在线模型服务

三、利用FATE平台进行开发的流程如下:

  1. 选择一个机器算法,设计多方安全协议;

  2. 定义多方交互的数据变量

  3. 构建执行工具流

  4. 基于EggRoll&Federation Api实现算法工作流中各个功能组件

四、具体使用FATE进行项目构建

1.数据准备及数据预处理

1.1获取数据集

1.下载数据集:车辆贷款违约预测

随着监管政策步入关键落地期,受合规监管标的限额影响,曾备受追捧的大额标的逐渐消失,小额分散的车贷业务成为了网贷平台转型的主要方向之一。车贷资产由于进入门槛低、借款额度低、流动性高、限期短等优点,但如何做好风险防控依然是行业的主要问题之一。国内某贷款机构就面临了这样的难题,该机构的借款人往往拖欠还款或拒不还款,导致该机构的不良贷款率居高不下。面对信贷风控问题,可建立风险识别模型来预测可能违约的借款人。

数据集给定某机构实际业务中的相关借款人信息,包含53个与客户相关的字段,其中loan_default字段表明借款人是否会拖欠付款。我们将通过FATE联邦训练方式的集训练模型,来预测测试集loan_default字段的具体值,即借款人是否会拖欠付款,以此为依据,降低贷款风险。

2.读取数据,观察数据信息

3.观测数据的属性名;

4.数据处理

(1) 首先要提取出我们最终要预测的属性值:

(2) 删除无用特征:

(3) 重新观察保留下来的特征:

(4) 数据归一化:

5.总结数据特征

6.创建索引

7.打乱数据,重新观察数据特征

1.2横向数据集切分

将数据集切分为特征相同的横向联邦形式切分策略:

前120000个数据作为训练数据,后30000个数据作为测试数据

训练数据中,前60000个作为机构A的数据,存为loan_1_train.csv,后60000个数据作为机构B的数据,存为loan_2_train.csv

测试数据不切分,存为loan_eval.csv

今天分享就到这里!

你可能感兴趣的:(拓展与总结(项目总结),深度学习,人工智能)