联邦学习(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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • DHCP简单配置-CISCO

    DHCP简单配置-CISCO

    2021年8月1日
    59
  • Git 切换分支命令

    Git 切换分支命令从Github上clone下来的项目都是主分支branch,为了开发的安全性,如何切换到其它分支呢?gitbranch查看本地分支*表示当前所处的分支,如下图所示:gitbranch-a查看项目所有分支:gitcheckout-b切换分支,例如我切换到stardard-base-4.x-dev:gitcheckout-bstandard-base-4.x-devorigin/standard-base-4.x-dev第二次切换直接填入分支名称即可。

    2022年6月20日
    81
  • 最详细的解决:UnboundLocalError: local variable ‘a‘ referenced before assignment

    最详细的解决:UnboundLocalError: local variable ‘a‘ referenced before assignment代码及报错如下解决很多人都非常困惑,为什么在test3中可以直接输出a,但是在test3中,使用a+=1的时候,就直接报错呢?首先,我们需要明确一个概念,就是全局变量与局部变量。如下图,大家觉得打印的a会是1还是3?答案是1,因为定义在test3外部的a是全局变量,而定义在test3内部的a是局部变量。此时,外面这个a与里面这个a没有任何关系。只不过是名字一样而已。其次,我们需要明确在函数内部是可以直接访问到全局变量的,所以上图中test1是可以直接输出a,b的。但是如果是直接在test2中实

    2022年6月16日
    45
  • java启动器_JAVA基础:Java 启动器如何查找类

    java启动器_JAVA基础:Java 启动器如何查找类Java启动器java将初始化Java虚拟机。虚拟机随即按以下顺序搜索和加载类:自举类-构成Java平台的类,包括rt.jar和i18n.jar中的类。扩展类-使用Java扩展机制的类。它们被捆绑为.jar文件,位于扩展目录中。用户类-开发人员和第三方定义的类,不使用扩展机制。在命令行上使用-classpath选项(常用方法)或使用CLASSPATH…

    2022年7月7日
    18
  • linux重启网卡的命令行,linux系统怎么重启网卡?linux重启网卡的三种教程

    linux重启网卡的命令行,linux系统怎么重启网卡?linux重启网卡的三种教程在实际工作中,经常会遇到Linux系统进行重启网卡的操作。在这里整理一下,进行多种方法的网卡重启。一、servicenetworkrestart1、首先用CRT工具连接到Linux命令行界面。或者进入操作系统界面,选择终端输入。2、如果我们对所有的网卡进行重启操作。可以尝试输入:servicenetworkrestart命令进行操作。3、样就完成了用servicenetworkr…

    2022年9月22日
    4
  • 小米6X 解BL锁教程 申请BootLoader解锁教程[通俗易懂]

    小米6X 解BL锁教程 申请BootLoader解锁教程[通俗易懂]小米6X线刷兼救砖_解账户锁_纯净刷机包_教程一、准备工作1、注册小米账号:点击注册(已有小米账号请忽视)2、在手机中登陆【小米账号】3、下载并解压【小米解锁工具】或点击这里下载安装二、开始解锁1打开【小米解锁官网】:http://www.miui.com/unlock/,点击【立即解锁】,输入【小米账号】,点击【立即登录】,填写好上诉信息后,点击【立即申请】,输入【短…

    2022年5月18日
    61

发表回复

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

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