前言:联邦学习(Federated Learning)是在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下,在多参与方或多计算节点之间开展高效率的机器学习的一种新兴人工智能基础技术,与分布式机器学习不同的是联邦学习需要一种去中心化分布系统来保证用户的隐私安全,在保障数据安全和交换、训练效率前提下进行有效的机器学习。区块链作为一个去中心化、数据加密、不可篡改的分布式共享数据库,可以为联邦学习的数据交换提供数据保密性来对用户隐私进行保障,保证各参与方之间的数据安全,也可以保证多参与方提供数据进行模型训练的数据一致性区块链的价值驱动激励机制也能够增加各参与方之间提供数据、更新网络模型参数的积极性。基于区块链的应用优点,目前已经有一些应用区块链的联邦学习系统提出。本文对联邦学习以及区块链在联邦学习上的应用做了简单的介绍。

1.联邦学习

联邦学习的定义

联邦学习的特征

隐私是联邦学习的基本属性之一。联邦学习需要使用隐私技术来保证数据的隐私安全。目前已经使用的隐私技术包括安全多方计算(SMC)、微分隐私、同态加密等。同时也需要防止随机梯度下降的优化算法的参数更新带来的间接信息泄露。联邦学习与分布式机器学习的最大区别是去中心化,这也是保护数据隐私的重要手段之一。同时联邦学习还应该考虑恶意服务器或参与方利用错误的梯度搜集和参数更新破坏训练的正确性,这需要联邦学习提供数据的可审计性来保证参与方提供数据的安全性。

联邦学习的分类

图1.1 联邦学习的分类

横向联邦学习

横向联邦学习又叫基于样本的联邦学习,用于有相同特征空间,不同样本空间的数据集场景(图 1.1 a)。例如两个区域银行的用户样本可能差别很大,但是这两家银行的业务是相近的,所以用户样本的特征空间是相同的。这种场景下应用横向联邦学习来对不同样本的相同特征空间进行训练,用样本的多样性来增加模型的效果。横向联邦学习可以表示为:

2017年谷歌提出了一个应用于安卓手机模型更新的横向联邦学习解决方案。在这个框架中,每一个单独的用户利用安卓手机在本地更新模型参数并将更新后的参数传送到安卓云,从而与其他数据拥有者共同训练集中式模型。

垂直联邦学习

垂直联邦学习又叫做基于特征的联邦学习,被应用与不同数据集共享相同的样本空间,但特征空间不同的场景(图 1.1 b)。例如在同一地区的两个不同领域的公司,他们拥有相同的数据样本,但由于领域不同,他们用户样本的特征数据是不同的。垂直联邦学习用于对相同样本下的不同特征数据进行联合训练,联合多种特征空间来增加模型的效果。垂直联邦学习可以表示为:

针对垂直联邦学习的垂直分区数据,很多隐私保护机器学习算法已经被提出,包括合作统计分析、关联规则挖掘、安全线性回归等。

联邦迁移学习

联邦迁移学习应用于不同数据集的样本空间和用户空间的交集都很少的场景下(图 1.1 c)。例如在两个不同区域的两家不同领域的公司,它们的用户和用户的数据都极为不同,或者只有极小一部分交集。在这种情况下联邦迁移学习可以应用整个样本和联合的特征空间提供解决方案,也可以利用有限的公共样本来学习两个特征空间的公共表示,然后用于进行只有一边特征样本的预测。联邦迁移学习是对现在联邦学习系统的一个重要扩展,可以被表示为:

2.区块链

区块链作为一个去中心化的、不可变的、共享的分布式账本和数据库,它有很多优点适合来用于联邦学习的相关研究上。区块链是一个去中心化分布式数据库,在整个区块链网络里的所有节点都有相同的权利,它规避了中心化系统数据可能泄露的弊端,加强了隐私保护和数据的安全。区块链作为一个开放性系统,所有数据拥有者都可以自行加入并进行模型的参数更新工作。另外,区块链中的信息具有不可篡改和可以追溯的特性,这从一定程度上避免了恶意数据拥有者对系统的破坏。因此,区块链在联邦学习上的应用可以加强数据拥有者数据的隐私性和系统的安全稳定性。

另外想要进一步了解区块链,可以观看同课程同学制作的区块链相关知识视频:

快速了解区块链  快速了解区块链_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com

此外,保证区块链中的消息一致性也是在分布式系统中的一个重要问题,Paxos算法是莱斯利·兰伯特于1990年提出的一种基于消息传递的一致性算法。这个算法被认为是类似算法中最有效的,我们组制作的视频讲解了晦涩的paxos算法:

区块链Paxos算法  区块链Paxos算法_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com

区块链在联邦学习上的研究进展

基于区块链在联邦学习上的良好特性,目前,已经有不少文章探讨了区块链在联邦学习应用上的可行性和实际实现系统以及系统各方面特性的分析。

区块链联邦学习BlockFL

论文“On-Device_Federated_Learning_via_Blockchain_and_it”

https://arxiv.org/abs/1808.03949v1​arxiv.org

针对谷歌提出的安卓设备上联邦学习模型的局限性进行了探讨。谷歌提出的联邦学习模型Vanilla FL(图 2.1 a)由每个设备在本地进行模型训练和参数上传,通过一个中央服务器来进行模型的更新,使得用户数据只在本地设备上进行处理,以此来保证用户的数据隐私。其局限性在于该模型只依赖于一个单一的中央服务器,容易受到服务器故障的影响。同时也没有合适的激励基本来激励用户提供数据训练和上传模型参数。为了解决上述这些问题,作者提出了基于区块链的区块链联邦学习(BlockFL),用区块链网络来替代中央服务器,区块链网络允许交换设备的本地模型更新,同时验证和提供相应的激励机制。

如图 2.1 b所示,BlockFL的逻辑结构由设备和矿工组成。矿工在物理上是随机选择的设备或单独的节点。每个设备在BlockFL网路中计算并上传本地模型更新到相关联的矿工,矿工交换和验证所有的本地模型更新,然后运行工作量证明机制POW。当矿工完成POW,将生产一个新的区块,区块里记录了验证的本地模型的更新,然后将存储本地聚合模型更新的区块添加到区块链中,再由每个设备下载,设备从新的块中计算全局模型更新。本地设备上的全局模型更新可以确保在矿工或者设备故障时不会影响其他设备的全局模型更新。这样普通设备用户和矿工用户都能得到最新的全局更新模型,以此形成对用户的激励机制。同时作者还对BlockFL由区块链网络引起的延迟进行了分析。考虑通过调整块的生成速率即POW难度来使延迟最小化,以此增加系统的实用性。

图 2.1 Vanilla FL和BlockFL的系统结构

深度链 DeepChain

文献“DeepChain: Auditable and Privacy-Preserving Deep Learning with Blockchain-based Incentiv”

https://www.researchgate.net/publication/336361007_DeepChain_Auditable_and_Privacy-Preserving_Deep_Learning_with_Blockchain-based_Incentive​www.researchgate.net

进一步完善了应用区块链的联邦学习系统,考虑到第三方恶意的服务器或参与方提供错误的梯度搜集或者参数更新来破坏模型训练的正确性。联邦学习系统还需要保证梯度采集和参数更新的正确性。基于此类问题以及数据的隐私保护,作者提出了深度链模型(DeepChain)(图2.2 a)。深度链是一种基于区块链激励机制的安全分散框架和用于隐私保护的分布式深度学习的密码原语来提供数据机密性、计算可审计性和参与联邦训练的激励机制。

为了保证局部梯度的机密性,防止由梯度信息泄露导致的用户数据泄露,在深度链中每一个参与者将自身训练模型的梯度单独加密后再上传已经加密的梯度。工作者使用所有梯度来更新所有参与者协同加密的协作模型的参数。用户必须通过协同解密来获得已经更新的模型参数。协同解密需要至少 个参与者提供他们的私密共享来解密一个密码,以此来进一步加强数据的隐私性。为了防止恶意的参与者,避免由这些参与者提供不正确的梯度或者在解密阶段给出不正确的解密共享,参与者在上传梯度之前需要给出加密的梯度和正确性证明,并且允许第三方审核参与者的验证,以此来保证数据的可审计性。在参数更新后,参与者需要提供其解密共享和相应的正确性验证证明来下载协同解密参数,同样任何第三方都可以审核解密共享是否正确。以上过程如图 2.2 b所示。

(a)DeepChain模型的结构[4]

(b) 参与者上传加密参数和下载协作模型参数过程

图 2.2 DeepChain模型和参数更新机制

为了实现激励机制,鼓励参与方加入联邦学习,深度链通过超时检查和货币惩罚机制为参与者提供公平性。深度链上产出数字货币“深币”(DeepCoin)。对于不能准时到达时间点和错误执行功能的参与者,深度链会采用货币惩罚机制,撤销或冻结不诚实参与者的预存款,将其重新分配给诚实参与者。以此来进一步避免不诚实参与者和激励参与者提供数据顺利模型的积极性。

深度链通过以上机制保障了联邦学习的保密性、可审计性和公平性。进一步提高了联邦学习的安全性和实际使用性。

区块链联邦学习的工作展望

在联邦学习的区块链中,不仅存储这最终训练的模型,存储了训练中不断迭代的模型。基于模型的定价有较好的市场前景,而过程模型的市场价值能够给模型训练的参与者,数据的提供者提供经济利益,从而鼓励参与者对模型的训练,进一步加强模型的效果。另一方面,可以考虑用迭代模型的训练过程和模型参数来进一步促进迁移学习的发展

另外,区块链的加密解密流程,以及工作量证明机制,这些过程的复杂性会很大程度上降低模型训练的效率。对于较为复杂的模型,模型参数的加密以及传输都需要较长的时间。区块链中存储的迭代过程中的模型规模过大也会导致需要较大的存储成本。未来的区块链联邦学习系统还需要进一步加强其实用性,提高其在应用中的实际价值。

参考论文

Qiang Yang, Yang Liu, Tianjian Chen, and Yongxin Tong. 2019. Federated Machine Learning: Concept and Applications. ACM Trans. Intell. Syst. Technol. 10, 2, Article 12 (February 2019), 19 pages. DOI:https://doi.org/10.1145/3298981

H. Brendan McMahan, Eider Moore, Daniel Ramage, and Blaise Agüera y Arcas. 2016. Federated Learning of Deep Networks using Model Averaging. CoRR abs/1602.05629 (2016). arXiv:1602.05629 http://arxiv.org/abs/1602.05629

Hyesung Kim, Jihong Park, Mehdi Bennis, and Seong-Lyun Kim. 2018. On-Device Federated Learning via Blockchain and its Latency Analysis. arXiv:cs.IT/1808.03949

J. Weng, J. Weng, J. Zhang, M. Li, Y. Zhang and W. Luo, "DeepChain: Auditable and Privacy-Preserving Deep Learning with Blockchain-based Incentive," in IEEE Transactions on Dependable and Secure Computing, doi: 10.1109/TDSC.2019.2952332.

【联邦学习+区块链】联邦学习与区块链相关推荐

  1. solidity 编程练习_学习Solidity编程语言并开始为区块链开发

    solidity 编程练习 Learn to program in Solidity in this full tutorial from Dapp University. Solidity is a ...

  2. 区块链基础学习(二)

    二.以太坊介绍 首先我们要知道我们为什么要学习以太坊,主要有以下四个原因: 以太坊是区块链2.0的代表,学习以太坊能了解到区块链技术的所有知识 引入了智能合约,拓宽了区块链的应用场景 对开发者友好.对 ...

  3. 区块链基础学习(一)

    一.区块链简介 1.1.区块链与区块链技术 区块链是将记录(区块)通过密码学串联并加密的链式数据结构.而区块链技术,是通过P2P网络和区块链来实现数据存储的去中心化.不可逆和不可篡改.比特币正是构建在 ...

  4. 区块链需要学习哪些东西_区块链主要学习哪些知识?

    原标题:区块链主要学习哪些知识? 就业市场分析公司Buring Glass发布的数据显示,2017年区块链行业就业岗位发布数量同比增长115%,而根据Indeed.com统计结果,这一数字则达到了惊人 ...

  5. 尹成学院区块链 Go 学习大纲-取得大纲试看视频联系微信yinchengak48

    网址:http://www.1cxy.net GO技术交流QQ群:254416566 所处阶段 主讲内容 技术要点 学习目标 第一阶段Go语言开发入门实战 1.Go语言介绍及开发环境搭建 1.Go语言 ...

  6. 区块链需要学习哪些东西_学习区块链需要什么基础?小白必看

    区块链技术很多朋友,并不是十分了解.但是现在随着前端时间高层的发布,现在承认区块链不得不活了,那么想学区块链需要什么基础呢?如何能做到高效地学习,掌握合理地方式十分关键,分清主次,紧抓基础是高效学习的 ...

  7. 区块链是什么?区块链能做什么?区块链学习路线分享

    2017年区块链在某些领域的应用已经相当成熟,比特币(加密数字货币),以太坊(区块链开发平台),超级账本(面向企业的分布式账本平台).也有一些处在起步阶段的应用(智能合约,证券.资产管理,公证防伪,知 ...

  8. 区块链需要学习哪些东西_学习区块链需要哪些 这些基础知识要知道

    基于区块链技术未来的发展前景,以及区块链人才的严重紧缺,当前许多人都萌生了自学区块链技术的想法,可是作为一种刚刚兴起几年而已的技术,如何能做到高效地学习呢?掌握合理地方式十分关键,分清主次,紧抓基础是 ...

  9. 通过python构建一个区块链来学习区块链

    了解区块链Blockchains如何工作的最快方法就是构建一个区块链.你来到这里是因为,和我一样,你对加密钱币的崛起感到很兴奋.而且你想知道区块链是如何工作的,想了解它们背后的基本技术. 但理解区块链 ...

  10. 区块链需要学习哪些东西_2020年学区块链需要什么基础?(非常详细)

    每日都会回答网友众多知识问题,最近有个朋友发邮件来问2020年学区块链需要什么基础的相关内容,希望能对你了解并给您来有所帮助.事实上,关于这个问题,并没有一个正式权威的统计,每位朋友都有各自的观点,不 ...

最新文章

  1. Java——容器(Comparable)
  2. PMCAFF | 阿里PM的可用性测试秘籍:有理有据的用户体验优化
  3. String类的对象的方法 格式小结 java 1202
  4. Lwip的udp编程
  5. Logistic模型原理详解以及Python项目实现
  6. 前端工程师应该懂的ps基本操作
  7. 三分钟看懂神经网络机器翻译
  8. 中国网络词“no zuo no die”被收入美国俚语词典
  9. 用pygame做一个简单的python小游戏---生命游戏
  10. 新手程序员去哪里?避雷小技巧交给你
  11. Robocup 2D 的学习
  12. srsLTE:高度模块化的 3GPP LTE 开源库
  13. 管理信息系统期末报告:大象基金信息管理系统分析与设计报告
  14. `Computer-Algorithm` 算法术语,自定义算法术语
  15. vue和SpringBoot搭建项目(原创)
  16. linux共享文件夹找不到
  17. 基于 Google Flutter 的 WanAndroid 客户端,支持 Android 和 iOS。包括 BLoC、RxDart 、国际化、主题色、启动页、引导页,拥有较好的项目结构比较规范的代
  18. UTF8编码格式的中英文字符如何换行
  19. 概率统计笔记:白噪声与随机游走
  20. 【读书】——《富有的习惯》读后感

热门文章

  1. MySQL学习(四)——MySQL的登录
  2. 用c语言对图像进行模板匹配,[转载]模板匹配的基本概念
  3. 术语FXO和FXS的含义是什么
  4. for循环和嵌套循环
  5. 频率与听感的对应关系
  6. 考试系统mysql数据库设计_《在线考试系统数据库设计与实现》.doc
  7. kotlin基础教程:<6>map集合
  8. html使用a跳转页面,HTML之a标签的使用
  9. Cesium 车辆跟踪事件气泡弹窗追随
  10. 解决qt5在windows系统下中文乱码的问题的简单方法