联邦学习(Federated Learning)概述

联邦学习(Federated Learning)概述1.什么是联邦学习

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

哈尔滨工程大学 区块链讨论课

2018065124 杨儒浓

1.什么是联邦学习

也许很多人从未听说过联邦学习是联邦学习?甚至从词义本身也无法得知是何种领域的技术。今天我将为大家介绍一下这种近几年由人工智能与区块链技术结合并衍生出的一种全新概念,联邦学习。关于联邦学习的定义,可以理解为是在保证数据隐私安全及合法合规的基础上,利用各个节点掌握的数据实现共同建模,提升AI模型的效果。联邦学习最早在 2016 年由谷歌提出,原本用于解决安卓手机终端用户在本地更新模型的问题。目前广泛用于人工智能研究方向。

在详细介绍联邦学习之前,我们需要知道区块链和人工智能的联系。2016年人工智能棋手AlphaGo击败了当时的世界冠军职业九段棋手李世石,此后又在在中国棋类网站上以“大师”为账户注册账号与中日韩数十位围棋高手进行快棋对决,连续60局无一败绩。AlphaGo让全世界了解了人工智能的所取得的长足发展。

联邦学习(Federated Learning)概述

然而AlphaGo的训练需要将近300000盘比赛作为训练数据,才能取得优异的成绩。这说明了人工智能是靠数据来喂的,而且是大量优质数据。而人工智能成长的过程中,需要的算力和时间也是巨大的。因此,人们提出了协作运算的想法。然而多部门协作运算又会衍生出另一个问题,那就是跨组织传输数据的保密和计算贡献度的问题。

2.为什么要引入区块链

为了高效率的协调训练,来源于虚拟货币的区块链思想正好能完美解决上述问题。区块链技术,也就是这一类工作与隐私保护机器学习非常相关的技术,因为它还考虑了去中心化协作学习设置中的数据隐私。这一技术将联邦学习网络中的节点连接到了一起,日常生活中的手机,电脑甚至智能设备都可以是联邦学习的一部分。在区块链中,他们行使的职责是在本地完成计算,最后将计算完成的加密结果上传。

联邦学习(Federated Learning)概述

区块链技术,也就是这一类工作与隐私保护机器学习非常相关的技术,因为它还考虑了去中心化协作学习设置中的数据隐私。这一技术将联邦学习网络中的节点连接到了一起,日常生活中的手机,电脑甚至智能设备都可以是联邦学习的一部分。在区块链中,他们行使的职责是在本地完成计算,最后将计算完成的加密结果上传。

我们有了区块链技术以后。各个节点作为数据训练的参与者进行联合训练,其中可能需要提供的保密训练数据也能得到保护。而作为联邦学习网络中的记账者(可信第三方或者选中的节点)可以在完成集成数据并构建模型以后,在账本上记录各个节点所得的奖励,也就是训练完成的数据模型。因此联邦学习网络在高度发达的网络时代像是一个永不关机的训练机。

这样的共同建模需要满足以下三大前提:

1.双方均获得数据保护

2.共同提升模型效果

3.模型无损失

 

3.联邦学习分类

联邦学习依据分类方式划分有三种方式,分别为横向联邦学习(特征对齐的联邦学习),纵向联邦学习(样本对齐的联邦学习),联邦迁移学习(找到源领域和目标领域之间的相似性)。鉴于目前的联邦迁移学习理论还不够成熟。下文中,我将当今最常用的纵向联邦学习来解释联邦学习在生活的应用。

 

4.横向和纵向联邦学习

4.1 横向联邦学习

横向联邦学习的特征便是横向划分,也就是联合多个参与者的具有相同特征的多行样本进行联邦学习,即各个参与者的训练数据是横向划分的。在实际的运用过程中可以理解为,跨国企业(例如不同国家的超市)之间的合作,他们所共有的用户信息是明显不一样的,在共同训练用户模型的时候发现用户所具有的特征选项基本一致。因此这个时候运用到横向联邦学习的效率是最高的。

联邦学习(Federated Learning)概述

目前所应用的联邦学习流程可以理解为如下几步:

1.参与方各自从第三方可信机构的服务器中下载需要训练的模型

2.每个参与方利用本地数据训练模型(无需上传本地数据),加密梯度数据上传给第三方可信机构,第三方可信机构聚合各用户的梯度更新模型参数

3.第三方可信机构依据贡献度,返回更新后的模型给各节点

4.各参与方更新各自模型,并将模型用于实际问题之中

联邦学习(Federated Learning)概述

4.2 纵向联邦学习

纵向联邦学习作为最常用的联邦学习方式原理是在两个数据集的用户重叠较多而用户特征重叠较少的情况下,我们可以将已有的数据集进行纵向维度的切分。

联邦学习(Federated Learning)概述

如上图,也就是截取双方相同的样本ID(在这里可以理解为用户的主键)。因此,纵向联邦学习也称为样本对齐的联邦学习,在服务器训练多方提交的梯度数据前,找出参与者拥有的共同的样本ID,这一过程也叫“数据库撞库“。而纵向联邦学习的实现过程与上文中所提到的流程相同,在这里便不过多赘述。

在实际应用中,例如同一地区的银行和电商平台(此时的目标用户基本可以说是重合的)。两个平台各方可以输入自己手中的X和Y特征值在本地进行训练,银行拥有当地可以是用户的收支记录x1,电商平台拥有用户的消费记录和浏览记录x2,以这些数据为依据,对当地用户的行为和信用值Y进行评级,其本质是将多方对相同目标的不同特征描述进行训练提取。双方可以在保持自己所有的机密信息不被泄露的的情况下,依据汇总得到的模型数据对不同类型的用户采取不同的措施,例如是否继续推送贷款广告,奢侈品广告还是对目标用户停止放贷,等等。

联邦学习(Federated Learning)概述

5.总结

虽然近几年联邦学习的概念非常火热,但是该领域仍然处于起步阶段。除了在科学领域的少量应用,在城市管理,商业领域的应用依然停留在理论和实验阶段。当前存在的问题包括联邦学习体制跨国主体协作效率低,联邦迁移学习体制尚不完善,共识算法存在可利用的缺陷等问题。在联邦中每台节点机器实际交互的过程中,每一轮的模型迭代都需要严格的解密训练、加密上传的步骤,每一次的数据交换均需要实现于中心服务服务器复杂的连接建立和数据交换,因此相比于传统的直接收集数据进行统一数据训练来看,联邦学习的方式的效率会慢很多。

但是相信随着计算机科学的发展,相信在可预见的未来,更多的社会机构将会加入联邦学习体系,共同构建一个智慧的人工智能社会。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213441.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何查看linux中的ssh端口开启状态

    如何查看linux中的ssh端口开启状态

    2021年10月19日
    40
  • Git高阶实战技巧(4)

    Git高阶实战技巧(4)

    2021年5月24日
    101
  • 中图法中的分类号通常由哪两部分组成_北京航空航天大学排名

    中图法中的分类号通常由哪两部分组成_北京航空航天大学排名 V航空、航天   V1航空、航天技术的研究与探索     V11航空、航天的发展与空间探索     V19航空、航天的应用   V2航空     [V2-9]航空运输经济     V21基础理论及试验       V211空气动力学         V211.1理论空气动力学           V21

    2022年10月2日
    0
  • 互联网金融风控模型大全

    互联网金融风控模型大全一、市场调研目前市面主流的风控模型1、互联网金融前10名排行榜(数据截止日期2017-09-12)互联网金融公司排名分别是蚂蚁金服、陆金所、京东金融、苏宁金融、百度金融、腾讯理财通、宜信、钱大掌柜、万达金融和网易理财。1.1蚂蚁金服1.1.1大数据技术对接第三方征信公司芝麻信用分,通过用户信用历史、行为偏好、履约能力、身份特质、人脉关系五个维度对海量数据行综合的处理评估,同时也给予阿里电商交易…

    2022年4月29日
    53
  • STM32开发项目:ADS1115的驱动与使用

    STM32开发项目:ADS1115的驱动与使用日期作者版本说明2020.09.24TaoV0.0完成主体内容的撰写目录ADS1115介绍驱动源码头文件源文件使用指南基本步骤注意事项ADS1115介绍ADS1115是具有PGA、振荡器、电压基准、比较器的16位、860SPS、4通道Δ-ΣADC,数据通过一个I2C兼容型串行接口进行传输。有关它的详细说明可以参考官方数据手册。驱动源码头文件#ifndef__ADS1115_H__#define__ADS1115_H__#include…

    2022年10月29日
    0
  • 对象转json字符串字段丢失_excel某个对象程序库丢失

    对象转json字符串字段丢失_excel某个对象程序库丢失 在fastjson下将对象转json时会丢失部分属性的情况,出现这种情况的问题原因是由于属性命名不符合规范导致,比如:uId,一个字母后面紧跟着一个大写字母,导致反射get/set方法时会出现连续两个大写字母(getUId/setUId)。解决该问题的方法时在属性上加上注解:@JSONField(name="uId"),就可以解决该问题。或者是属性名serviceDeadline在get/…

    2022年9月18日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号