一、分布式机器学习定义

分布式机器学习(DML)是指利用多个计算节点进行机器学习或者深度学习的算法和系统,旨在提高性能、保护隐私,并可扩展至更大规模的训练数据和更大的模型。

举个例子,一个由三个计算节点和一个参数服务器组成的分布式机器学习系统如下,训练数据被分为不相交的数据分片并被发送给各个计算节点,计算节点将在本地执行随机梯度下降(SGD)。计算节点将梯度或者模型参数发送至参数服务器。参数服务器对收到的梯度或者模型参数进行聚合(如计算加权平均之类的),从而得到全局梯度或全局模型参数。

一般分布式机器学习可以分为两类:面向扩展性的分布式机器学习面向隐私保护的分布式机器学习

面向扩展性的DML:主要用来解决不断增长的扩展性和计算需求问题的机器学习系统,即主要解决性能问题;
面向隐私保护的DML:主要用来保护用户隐私和数据安全,适用于具有纵向划分数据集的场景。

主流的机器学习平台:

Apache Spark MLlib:MLlib是Apache Spark的扩展机器学习库,是一个基于内存的DML框架,其提供了传统机器学习算法的分布式实现,例如分类、回归和聚类等。
GraphLab:是一个图并行计算平台,其提供了可扩展的机器学习工具包,并实现了一些基础算法如随机梯度下降和高性能梯度下降。
Apache Spark GraphX:也是一个图并行计算平台,是Spark中的一个新组件,实现了Pregel-like的块同步消息传递,其中Pregel是来自谷歌的基于块同步处理模型的并行图计算库。
DMTK:是微软发布的DML工具包,DMTK支持数据并行化的统一接口、大型模型存储的混合数据结构、大型模型训练的模型调度,以及实现高训练效率的自动化流水线。

二、面向扩展性的分布式机器学习

面向扩展性的分布式机器学习方案主要包括数据并行模型并行图并行任务并行混合并行交叉并行

2.1、数据并行

数据并行是先将训练数据划分为多个子集(也称为分片或者切片),然后将各子集置于多个计算实体中,之后并行地训练同一个模型。也就是说,数据并行方案可以利用不同的计算设备,通过使用同一个模型的多个副本,对多个训练数据分块(也称为分片或者切片)进行处理,并定期通信交换最新的模型训练结果,这种方法能够很好地适配快速增长的训练数据规模。

目前,主要有两种基于数据并行的分布式训练方法,即同步训练异步训练

在同步训练中,所有的计算节点在训练数据的不同分片上同步地训练同一个模型的副本,在各计算节点每执行完一个模型更新步骤后,每个计算节点产生的梯度就会被发送给服务器,服务器在收到所有计算节点的结果后再进行聚合操作。
在异步训练中,所有计算节点独立地使用其本地的训练数据集来训练同一个模型的副本,并将本地获得的模型梯度及时地推送给服务器,以便服务器更新全局模型。

数据并行能用于解决训练数据过大以至于不能存于单一计算节点中的问题,或者用于满足使用并行计算节点实现更快速的计算的要求。

2.2、模型并行

模型并行方案指的是一个模型(如深度神经网络模型)被分割为若干部分,然后将它们置于不同的计算节点中。该方案主要是为了解决深度神经网络模型不能加载到单一计算节点内存中的问题。

尽管将各个部分置于不同计算设备中确实能够改善执行时间(如使用数据的异步处理),但模型并行的主要目的是避免内存容量限制。拥有大量参数的模型由于对内存有很高的要求,所以不能放于单一计算设备中,但通过使用这种模型并行策略,内存容量限制也就不复存在了。

例如,深度神经网络模型的一个层可以被放入单一设备的内存中,且前向和后向传播意味着一台计算设备的输出以串行方式传输至另一台计算设备。在实践中,只有当模型不能放入单一设备中,且不需要将训练过程加速很多时,才会采用模型并行方法。

2.3、图并行

图并行方法,也称为以图为中心的方法,是一种用于划分和分配训练数据和执行机器学习算法的新技术,其执行速度比基于数据并行的方法要快几个数量级。

2.4、任务并行

任务并行也叫作以任务为中心的方法,指的是计算机程序在同一台或多台机器上的多个处理器上执行。它着力并行执行不同的操作以最大化利用处理器或内存等计算资源。任务并行的一个例子是一个应用程序创建多个线程进行并行处理,每个线程负责不同的操作。使用了任务并行的大数据计算框架有Apache Storm和Apache YARN。

2.5、混合并行与交叉并行

混合并行是指结合不同类型的并行方法,从而形成混合并行的方案,例如使用了数据并行和任务并行的Apache YARN和SystemML。在实践中,将数据并行和模型并行结合起来使用也是很常见的,例如谷歌的Downpour SGD中提出的分布式深度学习框架。

混合并行的覆盖范围可以进一步扩展,形成更加灵活的交叉并行,例如按层选择并行方式。这种交叉并行方法有时适用于训练大规模深度神经网络模型,例如对一些层使用数据并行,对另外一些层使用模型并行方法。

三、面向隐私保护的分布式机器学习

隐私保护的机器学习系统通常能保护以下信息:训练数据输入、预测标签输出、模型信息(包括模型参数、结构和损失函数)和身份识别信息(如记录的数据来源站点、出处或拥有者)。

3.1、隐私保护决策树

决策树是一种重要的监督机器学习算法,被广泛使用于分类和回归任务中。决策树的推理过程是找到满足一个样本的属性的叶节点。在分布式决策树算法中,根据数据的分布类型,可以被正式分为两类:

横向划分数据集
纵向划分数据集

在横向划分数据集中,DML系统中的每个计算节点拥有不同的样本,所有计算节点中的样本都具有相同的特征属性类别。例如,由于不同可穿戴设备的传感器是相同的,所以这些设备采集的数据具有相同的属性类别。然而,由于设备工作的环境不同,由不同计算节点收集的数据样本通常都是不同的。

在纵向划分数据集中,不同计算节点拥有的数据集的特征集是不同的,但这些样本可能来自同一个计算节点。例如,同一位患者在不同医疗机构的记录可以有不同的生理指标或疾病检测结果。

对于横向划分的DML,样本的聚集等价于数据集的扩大;而在纵向划分的场景下,类似于增加样本的特征类别数量。

3.2、隐私保护方法

在面向隐私的分布式机器学习中,常用的用于保护数据隐私的方法分为以下两个类别:

模糊处理。随机化、添加噪声或修改数据使其拥有某一级别的隐私,如差分隐私方法。
密码学方法。通过不将输入值传给其他参与方的方式或者不以明文方式传输,使分布式计算过程安全化,如安全多方计算,包括不经意传输、秘密共享、混淆电路和同态加密。

四、面向隐私保护的梯度下降方法

梯度下降方法需要在效率、精度、隐私之间做出权衡。例如,梯度值以明文形式被发送给协调方,并以梯度平均方法更新模型,从而在不降低全局学习精度的情况下用隐私换取效率。

典型的面向隐私保护的梯度下降方法包括朴素联邦学习代数方法稀疏梯度更新方法模糊处理方法密码学方法

4.1、朴素联邦学习

联邦平均方法是为了使朴素联邦学习能在水平划分数据集上使用而提出的一种方法。在联邦平均方法中,每一方给一个协调方(或是受信任的处理方,或是一个参数服务器)独立地上传明文形式的梯度或模型参数,最后,协调方将明文形式的更新模型发送给每一方。

当数据集是纵向划分的时,模型在各方间分配。在梯度下降方法里,目标函数能被分解为一个可微函数和一个线性可分函数。为了进行梯度下降,每一方将自己的数据用于各自的局部模型,从而获得中间结果,并将其正常发送给协调方。协调方将所有中间结果积累起来,并评估可微函数以计算损失和梯度。最后,协调方更新整个模型,并将更新后的局部模型发送给每个相关方。

这里的假设是上述协调方是诚实的和无好奇心的,且不与任何方有所勾结。假如协调方不满足前述条件,则每一方的梯度信息都有可能被泄露。

4.2、隐私保护方法

4.2.1、代数方法

代数方法旨在利用传输数据的代数特性保护原始训练数据。它通过保证每个诚实方对敌对方的输入和输出存在内部有效的输入输出对,即受保护的原始输入数据形式,提供了对隐私的保护。

4.2.2、稀疏梯度更新方法

稀疏梯度更新方法通过只更新梯度的子集的方式来保护隐私。这类方法用精度来换取效率,并且保护隐私程度较低。梯度是以明文方式传输的,所以这类方法是用隐私换取效率。

改善交流效率的方法包括结构更新和概要更新。结构更新方法只会更新一个稀疏梯度矩阵或一个低级梯度矩阵,而概要更新利用分段抽样和分层方法以消去梯度的值。

4.2.3、模糊处理方法

模糊处理方法通过随机化、泛化和压缩来使得数据模糊,虽然可以改善隐私性,但会降低准确度。在联邦学习中,本地差分隐私也可以用于给每一方的梯度加上噪声。

4.2.4、密码学方法

上述方法将每一方的明文梯度信息都暴露给了协调方或其他方。与此相反,密码学方法利用了同态加密和安全多方计算,在梯度下降过程中,保护每一方的梯度信息隐私。

安全模型有很多种类型,从针对诚实的但好奇的对抗方的模型,到针对恶意敌对方的模型,对于堕落变坏的假设也有很大不同,除了安全模型,每种方法公开的信息也是不同的。

在安全集中方法中,一个参与方只被允许学习被给予的一组明文梯度平均值。安全集中方法通过Shamir阈值秘密共享方法保护每一方的梯度信息,因此协调方只能公开一组梯度的平均值。然而,当协调方和n-1个其他方在一个n方组里相勾结时,输入的梯度就会被轻易地得知并暴露。因为上述安全集中是匿名的,所以可能会遭受到严重的投毒攻击。

另一种密码学方法介绍了存在一个或多个协作方,但所有协作方都不被允许学习任何关于梯度和模型信息的情况。对于基于同态加密的方法,以上约束能通过加入一个随机掩码来给数值解密。对于基于安全多方计算的方法,被信任的处理方能按要求生成独立材料。若有多个非勾结的协调方,每一方将生成自己的隐私数据的秘密共享信息,并将其分享给每一个协调方。之后,梯度下降过程将会在协调方之间进行。

当不能设定任何协调方时,可以使用一些不需要协调方的密码学方法,即进行安全多方梯度下降,其中每一方都只能学习自己的输入和输出。

隐私计算--21--分布式机器学习相关推荐

  1. 隐私计算与区块链的融合思考

    隐私计算是使数据"可用不可见"的技术,实践中仍存在着一些问题,例如,多方安全计算受到网络带宽或者延迟的影响,联邦学习对参与方和服务器之间的通信稳定性和带宽要求较高,可信执行环境依靠 ...

  2. 隐私计算加速崛起,这份技术趋势白皮书揭示了什么?

    去年9月1日,历经三次审议修改的<数据安全法>终于正式实施,也让数据安全领域的关键技术--隐私计算彻底火了,引起社会各界的广泛关注. 有人认为隐私计算如今是多光环加持,如张弦之箭,正开启属 ...

  3. 对话PlatON曲俊杰:隐私计算市场爆发尚需4个条件 |链捕手

    隐私计算越来越成为区块链行业的重点发展方向,PlatON作为主打隐私计算的知名项目,致力于成为全球新一代隐私计算和分布式经济体基础设施,其投资方包括万向区块链.复星集团联合创始人梁信军.Hashkey ...

  4. [机器学习入门] 深度学习简介,GPU计算的原理,分布式机器学习原理

    深度学习简介 深度学习的概念源于人工神经网络的研究.含多隐层的多层感知器就是一种深度学习结构.深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示. 深度学习采用的 ...

  5. 区块链与分布式隐私计算行业报告 | TokenInsigh

    我们选取了三个不同技术路径的分布式隐私计算项目,分别是采用安全多方计算方案的ARPA.采用Trusted Execution Environment(TEE)硬件支持方案的Trias和采用分布式云计算 ...

  6. 区块链与分布式隐私计算行业报告 | TokenInsight

    随着区块链技术的发展,其功能也从实现点对点的电子现金系统逐渐扩大到不同领域.隐私保护作为区块链中一个重要的课题,也在不断丰富扩充自己的含义--从仅仅确保交易隐私匿名性逐渐加入了对数据所有权.使用权的隐 ...

  7. 2023年3月份隐私计算市场洞察

    3月份隐私计算.联邦学习的市场概览 摘要:在隐私计算市场中,三股信息流如清风拂面,流转不息.采购意向,犹如花开满园,为供应商和服务提供商探明商机:招标信息,如云卷云舒,为客户了解市场动态提供重要参考: ...

  8. 隐私计算加密技术基础系列-Diffie–Hellman key exchange

    1 密码学 1.1 背景 隐私计算(Privacy-preserving computation)是指在保证数据提供方不泄露原始数据的前提下,对数据进行分析计算的一系列信息技术,保障数据在流通与融合过 ...

  9. 万字长文!深度剖析《数据安全法》下多方数据协同应用和隐私计算发展趋势

    本文作者:程勇 <数据安全法>的表决通过标志着国家鼓励数据依法合规利用.保障数据依法有序流通,明确国家实施大数据战略,推动以数据为关键生产要素的数字经济发展.<数据安全法>强调 ...

  10. 隐私计算头条周刊(11.27-12.3)

    开放隐私计算 收录于合集 #企业动态34个 #周刊合辑35个 #政策聚焦28个 #隐私计算34个 #隐私计算技术28个 开放隐私计算 开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社 ...

最新文章

  1. TensorFlow常用操作:代码示例
  2. 微信开发(02)之处理微信客户端发来的消息
  3. Xcode 修改系统的代码块样式 Code Snippet
  4. C++ opengl 使视野转头移动(站桩看世界)
  5. 【今日CV 计算机视觉论文速览】 25 Feb 2019
  6. 【MongoDB for Java】Java操作MongoDB
  7. 由系统调用想起的。。。
  8. Linux prerouting和postrouting的区别
  9. 金字塔原理读书笔记 一 为什么使用金字塔结构
  10. 从头学计量-SPSS攻克常见信度检验1
  11. html代码入门书记,“seo优化”学习基本的html代码知识(入门级)
  12. linux中dd命令详解,Linux dd命令详解
  13. python判断手机号运营商_python手机号码运营商归属测试
  14. 2012年国内薪资最高的IT公司排行
  15. sim卡在苹果手机显示无服务器,iPhone手机没有信号怎么办 手机提示无服务怎么解决...
  16. 前端对接身份证阅读器/标签打印机/扫码枪记录
  17. Spark教程(三)—— 安装与使用
  18. 6句话,读懂什么是通证经济
  19. java程序实现给图片添加logo
  20. 【计算机视觉】Lecture 26: 颜色和光线

热门文章

  1. 微信小程序获取后端数据
  2. VLAN 间路由配置
  3. windows便签快捷键_Windows10便签快捷键在哪里设置?
  4. 室外宽温1口千兆光纤收发器工业导轨式发送机接收机单模单纤单电口
  5. 现在90后程序员有必要考证吗?
  6. 2021年T电梯修理免费试题及T电梯修理考试试卷
  7. spring Aop 实现原理
  8. java 文件比对(四)-- 使用 diffutils
  9. 西门子G120变频器介绍
  10. donet使用linq