分布式机器学习(下)-联邦学习

原文链接:https://zhuanlan.zhihu.com/p/114028503

本视频来源于Shusen Wang讲解的《分布式机器学习》,总共有三讲,内容和连接如下:

  • 并行计算与机器学习(上)
  • 并行计算与机器学习(下)
  • 联邦学习:技术角度的讲解

这节课的内容是联邦学习。联邦学习是一种特殊的分布式机器学习,是最近两年机器学习领域的一个大热门。联邦学习和传统分布式学习有什么区别呢?什么是Federated Averaging算法?联邦学习有哪些研究方向呢?我将从技术的角度进行解答。 这节课的主要内容:

  • 分布式机器学习
  • 联邦学习和传统分布式学习的区别
  • 联邦学习中的通信问题
  • Federated Averaging算法
  • 联邦学习中的隐私泄露和隐私保护
  • 联邦学习中的安全问题(拜占庭错误、data poisoning、model poisoning)
  • 总结
<img src="https://pic3.zhimg.com/v2-56eb5d8aff7fa2e6d8b73eadaef14962_b.jpg" data-caption="" data-size="normal" data-rawwidth="1588" data-rawheight="652" class="origin_image zh-lightbox-thumb" width="1588" data-original="https://pic3.zhimg.com/v2-56eb5d8aff7fa2e6d8b73eadaef14962_r.jpg"/>

联邦学习有很实际的应用,如移动端会产生数据,但是server,比如谷歌想要从用户那里的数据进行学习。那么一种显然的解决方法就是把数据收集起来,然后学习。但是,现实生活中有着一定的限制,可能处于法律要求或者用户拒绝上传属于,没有一个中心节点可以得到所有的数据,呢么我们该如何去学习模型呢?这个就叫联邦学习。

<img src="https://pic4.zhimg.com/v2-5a2798d168e95340fb817295568aa710_b.jpg" data-caption="" data-size="normal" data-rawwidth="2466" data-rawheight="1378" class="origin_image zh-lightbox-thumb" width="2466" data-original="https://pic4.zhimg.com/v2-5a2798d168e95340fb817295568aa710_r.jpg"/>

联邦学习和传统的分布式学习有什么区别呢,主要有以下四点:

  • 用户对于自己的设备和有着控制权。
  • Worker节点是不稳定的,比如手机可能突然就没电了,或者进入了电梯突然没信号了。
  • 通信代价往往比计算代价要高。
  • 分布在Worker节点上的数据并不是独立同分布的(not IID)。因此很多已有的减少通信次数的算法就不适用了。
  • 节点负载不平衡,有的设备数据多有的设备数据少。比如有的用户几天拍一张照片有的用户一天拍好多照片,这给建模带来了困难。如果给图片的权重一样,那么模型可能往往取决于拍图片多的用户,拍照少的用户就被忽略了。如果用户的权重相同,这样学出来的模型对拍照多的用户又不太好了。负载不平衡也给计算带来了挑战,数据少的用户可能一下子算了很多epoc了,数据多的用户还早着。这一点上,联邦学习不像传统的分布式学习可以做负载均衡,即将一个节点的数据转移到另一个节点。

对于联邦学习,当下有这么几个研究热点:

Research Direction 1: Communication Efficiency

我们回顾一下并行梯度下降中(parallel gradient descent),第 [公式] 个worker执行了哪些任务

  1. 从server接收模型参数 [公式]
  2. 根据 [公式] 和本地数据计算梯度 [公式]
  3. [公式] 发送给server

然后server接收了所有用户的 [公式] 之后,这么做:

  1. 接收 [公式]
  2. 计算:[公式]
  3. 做一次梯度下降,更新模型参数:[公式]
  4. 然后将新的参数发送给用户,等待用户数据重复执行下一轮迭代

那么我们看一下 federated averaging algorithm,其可以用更少的通信次数达到收敛。

<img src="https://pic3.zhimg.com/v2-64857be48efe48eba20e7c0b4bd4b1dd_b.jpg" data-caption="" data-size="normal" data-rawwidth="996" data-rawheight="778" class="origin_image zh-lightbox-thumb" width="996" data-original="https://pic3.zhimg.com/v2-64857be48efe48eba20e7c0b4bd4b1dd_r.jpg"/>

一开始还是sever把参数 [公式] 发送给worker节点,但是worker和之前就不一样了:

  1. 接收参数 [公式]
  2. 迭代以下过程:
    1. 利用 [公式] 和本地数据计算梯度 [公式]
    2. 本地化更新:[公式]

  3. [公式] 发送给server

然后server接收了全部的 [公式] 之后,这么更新

  1. 从用户那里接收 [公式]
  2. 用以下方程更新 [公式],这个新的模型就叫 [公式],下一轮迭代的时候再把这个新的 [公式] 发送给所有节点。
<img src="https://pic3.zhimg.com/v2-16989b48dd7d39c8a98bdca55e14b1bf_b.jpg" data-caption="" data-size="normal" data-rawwidth="1478" data-rawheight="764" class="origin_image zh-lightbox-thumb" width="1478" data-original="https://pic3.zhimg.com/v2-16989b48dd7d39c8a98bdca55e14b1bf_r.jpg"/>

我们把Federated Averaging和梯度下降对比一下,如果以communication为横轴,那么有上图,可见用相同次数的通信,Federated Averaging收敛的更快。两次通信之间Federated Averaging让worker节点做大量计算,以牺牲计算量为代价换取更小的通信次数。如果横轴以epochs为横轴,有以下结果:

<img src="https://pic1.zhimg.com/v2-509eef385500ace0b62a38f26b553971_b.jpg" data-caption="" data-size="normal" data-rawwidth="2082" data-rawheight="1172" class="origin_image zh-lightbox-thumb" width="2082" data-original="https://pic1.zhimg.com/v2-509eef385500ace0b62a38f26b553971_r.jpg"/>

我们可以看到相同次数的epochs,梯度下降的收敛更快。

<img src="https://pic3.zhimg.com/v2-2c2894434ca568e3b49124207ba4429d_b.jpg" data-caption="" data-size="normal" data-rawwidth="1572" data-rawheight="866" class="origin_image zh-lightbox-thumb" width="1572" data-original="https://pic3.zhimg.com/v2-2c2894434ca568e3b49124207ba4429d_r.jpg"/>

Federated Averaging算法首次由[1]提出,但是没有理论证明,论文[2]证明了Federated Averaging算法对于对同分布数据是收敛的,论文[3]首次证明了Federated Averaging算法对非独立同分布的数据也是收敛的,论文[4]和[3]得到了类似的结论,但是结果晚一点出来。

<img src="https://pic2.zhimg.com/v2-8bfd173a2d45a3868862d0b4f1f66603_b.jpg" data-caption="" data-size="normal" data-rawwidth="1550" data-rawheight="754" class="origin_image zh-lightbox-thumb" width="1550" data-original="https://pic2.zhimg.com/v2-8bfd173a2d45a3868862d0b4f1f66603_r.jpg"/>

减少通信次数是个大问题,减少通信次数并不是Federated Averagin这篇文章首次提出的,这里就列了一些文章,但是这些文章大都要求数据独立同分布,这就难以用到联邦学习中。[4]不要求数据独立同分布,但是不适用于深度学习,神经网络很难求对偶问题。

Research Direction 2: Privacy

<img src="https://pic2.zhimg.com/v2-cd59340ea97e37f768feb3ac414223b3_b.jpg" data-caption="" data-size="normal" data-rawwidth="1652" data-rawheight="920" class="origin_image zh-lightbox-thumb" width="1652" data-original="https://pic2.zhimg.com/v2-cd59340ea97e37f768feb3ac414223b3_r.jpg"/>

联邦学习中,用户的数据是始终没有离开用户的,那么数据是否安全呢?我们注意到算梯度的过程中实际上就是对数据进行一个变化,将数据映射到梯度。

<img src="https://picb.zhimg.com/v2-37fee4c20f47175a8cf33d82e77cc74e_b.jpg" data-caption="" data-size="normal" data-rawwidth="1570" data-rawheight="700" class="origin_image zh-lightbox-thumb" width="1570" data-original="https://picb.zhimg.com/v2-37fee4c20f47175a8cf33d82e77cc74e_r.jpg"/>

虽然数据没有发出去,但是梯度是几乎包含数据所有信息的,所以一定程度上,可以通过梯度反推出数据的。

<img src="https://pic2.zhimg.com/v2-dbc16c9c1a98520f250154366d5a78c4_b.jpg" data-caption="" data-size="normal" data-rawwidth="1600" data-rawheight="734" class="origin_image zh-lightbox-thumb" width="1600" data-original="https://pic2.zhimg.com/v2-dbc16c9c1a98520f250154366d5a78c4_r.jpg"/>

论文[1]说如果一个学习的模型是有用的,那么其肯定泄露了训练数据的信息,当然这点事很显然的。[2]提出额Model Inversion方法可以根据模型反推出数据,但是攻击效果不太好,因为Model Inversion只能看到最后的参数,联邦学习中,我们可以看到每一轮的梯度都是知道的,那么可以反推出更多的信息。[1]和[3]就做了这样的事情,虽然不能完全反推出原始数据,但是可以推出很多的特征,比如用户是男是女。

<img src="https://pic2.zhimg.com/v2-34755e641ed362c3e9d8d6315d85bc71_b.jpg" data-caption="" data-size="normal" data-rawwidth="1646" data-rawheight="600" class="origin_image zh-lightbox-thumb" width="1646" data-original="https://pic2.zhimg.com/v2-34755e641ed362c3e9d8d6315d85bc71_r.jpg"/>

文章[1]的大致思路如上,将梯度作为输入特征,然后学习一个分类器。其根本原理就是梯度带有用户信息。那么有没有办法抵御这种攻击呢,当前的主流做法就是加噪声,比如 DP。

<img src="https://picb.zhimg.com/v2-dadd58959bc0518dd16abb3465193bce_b.jpg" data-caption="" data-size="normal" data-rawwidth="1652" data-rawheight="756" class="origin_image zh-lightbox-thumb" width="1652" data-original="https://picb.zhimg.com/v2-dadd58959bc0518dd16abb3465193bce_r.jpg"/>

通常是往梯度里面加噪声,但是实验效果并不理想,噪声大了的话,收敛速度就很慢,甚至学习过程进行不下去,因为目标函数不下降了。噪声小了的话隐私保护效果就不好,还是可以反推出用户数据。加噪声会导致测试准确率下降几个百分点,这在工业界是很难接受的,往往下降一个百分点会带来几十万的损失。

Research Direction 3: Adversarial Robustness

第三个研究热点让联邦学习可以抵御拜占庭错误和恶意攻击。简单说就是worker中出了叛徒,如何学到更好地模型。

<img src="https://picb.zhimg.com/v2-1641d747eba8d1f6e103f0575452c21c_b.jpg" data-caption="" data-size="normal" data-rawwidth="2360" data-rawheight="1328" class="origin_image zh-lightbox-thumb" width="2360" data-original="https://picb.zhimg.com/v2-1641d747eba8d1f6e103f0575452c21c_r.jpg"/>

[1] 提出了数据poisoning attack,[2]提出了模型poisoning 攻击。有了攻击自然有防御措施,这里就列了三种防御措施。很多方法都假设数据是独立同分布的,但这点现实生活并不满足。总而言之,攻击比较容易,防御比较困难,还没有真正有效的防御。

<img src="https://pic2.zhimg.com/v2-fae2124344633f181eab6be6cf70e7dc_b.jpg" data-caption="" data-size="normal" data-rawwidth="1216" data-rawheight="482" class="origin_image zh-lightbox-thumb" width="1216" data-original="https://pic2.zhimg.com/v2-fae2124344633f181eab6be6cf70e7dc_r.jpg"/>

总结一下,联邦学习是一种比较特殊的分布式学习,目标是让多个用户不共享数据前提下共同训练一个模型,联邦学习有着其特有的挑战,首先数据不是独立同分布,另一个是数据通信代价高。然后还讲了几个研究挑战点。


欢迎关注公众号《差分隐私》

weixin.qq.com/r/di4EHC- (二维码自动识别)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479501.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎样将Embedding融入传统机器学习框架?

文 | 石塔西源 | 知乎LR本身是一个经典的CTR模型&#xff0c;广泛应用于推荐/广告系统。输入的特征大多数是离散型/组合型。那么对于Embedding技术&#xff0c;如何在不使用深度学习模型的情况下&#xff08;假设就是不能用DNN&#xff09;&#xff0c;融入到LR框架中呢&#x…

推荐系统中的Embedding

推荐系统之Embedding一、什么是embedding&#xff1f;1. 让embedding空前流行的word2vec&#xff1a;2. 从word2vec到item2vec二、Graph Embedding1. 经典的Graph Embedding方法 — DeepWalk2. DeepWalk改进 — Node2vec3. 阿里的Graph Embedding方法EGES三、深度学习推荐系统中…

美团下一代服务治理系统 OCTO 2.0 的探索与实践

本文根据美团基础架构部服务治理团队工程师郭继东在2019 QCon&#xff08;全球软件开发大会&#xff09;上的演讲内容整理而成&#xff0c;主要阐述美团大规模治理体系结合 Service Mesh 演进的探索实践&#xff0c;希望对从事此领域的同学有所帮助。 一、OCTO 现状分析 OCTO 是…

技术动态 | 跨句多元关系抽取

本文转载自公众号&#xff1a;知识工场。第一部分 概述关系抽取简介关系抽取是从自由文本中获取实体间所具有的语义关系。这种语义关系常以三元组 <E1,R,E2> 的形式表达&#xff0c;其中&#xff0c;E1 和E2 表示实体&#xff0c;R 表示实体间所具有的语义关系。如图1所示…

网络解析(一):LeNet-5详解

原文链接&#xff1a;https://cuijiahua.com/blog/2018/01/dl_3.html 2018年1月9日21:03:313994,282 C摘要LeNet-5出自论文Gradient-Based Learning Applied to Document Recognition&#xff0c;是一种用于手写体字符识别的非常高效的卷积神经网络。一、前言LeNet-5出自论文Gr…

LeetCode 69. x 的平方根(二分查找)

文章目录1. 题目2.解题2.1 二分查找2.2 牛顿迭代1. 题目 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根&#xff0c;其中 x 是非负整数。 由于返回类型是整数&#xff0c;结果只保留整数的部分&#xff0c;小数部分将被舍去。 示例 1:输入: 4 输出: 2 示例 2:输入: 8…

Google综述:细数Transformer模型的17大高效变种

文 | 黄浴来源 | 知乎在NLP领域transformer已经是成功地取代了RNN&#xff08;LSTM/GRU&#xff09;&#xff0c;在CV领域也出现了应用&#xff0c;比如目标检测和图像加注&#xff0c;还有RL领域。这是一篇谷歌2020年9月份在arXiv发表的综述论文 “Efficient Transformers: A …

从ReentrantLock的实现看AQS的原理及应用

前言 Java中的大部分同步类&#xff08;Lock、Semaphore、ReentrantLock等&#xff09;都是基于AbstractQueuedSynchronizer&#xff08;简称为AQS&#xff09;实现的。AQS是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架。本文会从应用层逐渐深入到…

论文浅尝 | 利用知识-意识阅读器改进的不完整知识图谱问答方法

论文笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士生&#xff0c;研究方向为知识库问答。来源&#xff1a;ACL2019链接&#xff1a;https://www.aclweb.org/anthology/P19-1417/本文提出了一种融合不完整知识图谱与文档集信息的end2end问答模型&#xff0c;旨在利用结构…

MVP模式在Android中的应用(附UML高清大图,使用RecyclerView举例)

传了一张图&#xff0c;图比较大&#xff0c;请移步下载&#xff1a;http://download.csdn.net/detail/u011064099/9266245 在看代码之前&#xff0c;首先简单看一下什么是MVP模式&#xff1a;http://www.cnblogs.com/end/archive/2011/06/02/2068512.html MVP最核心就是将界面…

Facebook大公开:解决NLG模型落地难题!工业界的新一波春天?

文 | 小喂老师编 | 小轶作为NLP领域的“三高”用户&#xff08;高产、高能、高钞&#xff09;&#xff0c;FaceBook最近&#xff08;2020年11月&#xff09;又发表了一篇高水准文章&#xff0c;目前已被COLING-2020接收&#xff0c;号称解决了自然语言生成&#xff08;NLG&…

论文浅尝 | 如何利用外部知识提高预训练模型在阅读理解任务中的性能

论文笔记整理&#xff1a;吴桐桐&#xff0c;东南大学博士生&#xff0c;研究方向为自然语言处理。链接&#xff1a;https://www.aclweb.org/anthology/P19-1226/近年来&#xff0c;机器阅读理解已经逐渐发展为自然语言理解方向的主流任务之一。最近&#xff0c;预训练模型尤其…

美团外卖前端容器化演进实践

背景 提单页的位置 提单页是美团外卖交易链路中非常关键的一个页面。外卖下单的所有入口&#xff0c;包括首页商家列表、订单列表页再来一单、二级频道页的今日推荐等&#xff0c;最终都会进入提单页&#xff0c;在确认各项信息之后&#xff0c;点击提交订单按钮&#xff0c;完…

LeetCode 807. 保持城市天际线

文章目录1. 题目2. 解题1. 题目 在二维数组grid中&#xff0c;grid[i][j]代表位于某处的建筑物的高度。 我们被允许增加任何数量&#xff08;不同建筑物的数量可能不同&#xff09;的建筑物的高度。 高度 0 也被认为是建筑物。 最后&#xff0c;从新数组的所有四个方向&#…

提供一个Android原生的Progress——SwipeToRefreshLayout下拉刷新时的等待动画

先来上个图看看效果&#xff1a; 这里我为什么要单独把这个拿出来呢&#xff0c;因为最近才开始接触Android最新的东西&#xff0c;也就是5.0以上的东西&#xff0c;发现Android提供的SwipeToRefreshLayout是没有上拉加载更多的&#xff0c;在网上找了不少第三方提供加载更多的…

导师实验室对学生影响有多大?

读博士导师非常重要&#xff0c;比你们想象得还要更重要。一个优秀的导师不仅在科研帮上很多忙&#xff0c;而且让你懂得怎么做科研&#xff0c;更重要的他教会你怎么做一个合格的学者。 跟这种导师工作&#xff0c;你会发现科研其实是一件非常有趣的事情&#xff0c;它带来的乐…

论文浅尝 | 使用孪生BERT网络生成句子的嵌入表示

论文笔记整理&#xff1a;吴杨&#xff0c;浙江大学计算机学院&#xff0c;知识图谱、NLP方向。https://www.ctolib.com/https://arxiv.org/abs/1908.10084动机谷歌的 BERT 预训练模型&#xff0c;已经能够在两个句子的语义相似度匹配等需要输入一对句子的任务上取得了非常好的…

美团点评效果广告实验配置平台的设计与实现

一. 背景 效果广告的主要特点之一是可量化&#xff0c;即广告系统的所有业务指标都是可以计算并通过数字进行展示的。因此&#xff0c;可以通过业务指标来表示广告系统的迭代效果。那如何在全量上线前确认迭代的结果呢&#xff1f;通用的方法是采用AB实验&#xff08;如图1&…

LeetCode 832. 翻转图像(异或^)

文章目录1. 题目2. 解题1. 题目 给定一个二进制矩阵 A&#xff0c;我们想先水平翻转图像&#xff0c;然后反转图像并返回结果。 水平翻转图片就是将图片的每一行都进行翻转&#xff0c;即逆序。例如&#xff0c;水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。 反转图片的意思是图…

MVP模式在Android中的应用之图片展示选择功能的框架设计

前言&#xff1a;虽然安卓出现的时间比其它平台软件比较晚&#xff0c;但是在我们的安卓开发中&#xff0c;一样可以使用我们所熟知的设计模式来给它一个合理、完善的结构&#xff0c;这样&#xff0c;才可以使我们在平常开发的时候减少冗余代码的发生&#xff0c;真正的提高效…