百科问答小站 logo
百科问答小站 font logo



各位大佬觉得联邦学习可以研究的问题有些什么 小白了解一下这个水深不深? 第1页

  

user avatar   yi-yun-50-37 网友的相关建议: 
      

最合适的还是直接关注最近顶会收了什么话题的文章

顶会每年收稿的趋势是怎么样,收了多少篇

以及做联邦学习的大组都在关注那些方向

基于这些信息就能有个大致的判断,至于每个话题的深度的难度,可以具体看看这些文章。

上面表格和一些论文的笔记 可以关注这个GitHub的更新 github.com/GillHuang-Xt


user avatar   lokinko 网友的相关建议: 
      

联邦学习准确来看是一种工程层面的科研,用于整合跨学科的研究内容。

在《Advances and Open Problems in Federated Learning》里有一段很准确的话来描述联邦学习的研究问题:

A key property of many of the problems discussed is that they are inherently interdisciplinary — solving them likely requires not just machine learning, but techniques from distributed optimization, cryptography, security, differential privacy, fairness, compressed sensing, systems, information theory, statistics, and more.


作为分布式机器学习,联邦学习会研究:

  • 模型同步/异步更新 加快模型更新效率;
  • 系统容错 保证系统的稳定性;
  • 恶意攻击 (backdoor 攻击、拜占庭问题等);
  • 中心化/去中心化 (对中心节点的不信任);
  • 横、纵向通信 (减少分布式系统的通信消耗);


作为隐私计算方法,联邦学习要保证计算安全性和计算精度:

下表源于中国信通院

过程保护 结果保护 计算性能 计算精度 理论场景
安全多方计算 ★★★★★ ★★☆☆☆ ★★★★★ 任意计算
联邦学习 ★★★☆☆ ★★★☆☆ ★★★★★ 机器学习
机密学习 ★★★☆☆ ★★★★★ ★★★★★ 任意计算
差分隐私 ★★★☆☆ ★★★☆☆ 任意计算
全同态加密 ★★★★★ ★★★★☆ ★★★★☆ 任意计算

PS:此处将联邦学习认定为模型明文传输。

目前的研究思路就是将不同隐私保护技术引用于此,例如用安全多方计算加密计算过程、用差分隐私加密计算结果等。如何保证半诚实或者恶意节点无法获得其他节点的数据,例如传统的明文梯度传输能够被半诚实的节点获取并破解,如何防止投毒、后门攻击等问题也需要考量。


作为机器学习算法,要研究模型精度、模型公平性、数据带来的统计影响

机器学习作为一种数据驱动的技术,很明显需要克服数据带来的各种统计影响和bias,例如在传统机器学习问题中的

  • 正负样本不均衡;
  • 数据的长尾分布;
  • 数据非独立同分布(Non-IID);

在传统应用场景中,数据量在中心,可以获取所有数据的整体信息,但是在联邦学习里,由于无法直接获取用户数据,所以很难发现和解决数据问题带来的影响。

Generative Models for Effective ML......考虑如何通过训练 GAN 在联邦学习里查看数据问题的技术;

Measuring the Effects...... 考虑研究 Non-IID 对模型收敛和模型精度的影响;

The Non-IID Data Quagmire...... 分析了 Non-IID 造成影响可能的原因猜测;


作为一种多用户参与收益的体系,要保证系统的可信、高效、奖惩措施

研究系统的激励机制和安全机制也是一大主题。基于区块链的记录保证实践过程的公平和不可违背性,激励机制的合理设计保证多用户有动机参与并对结果获益。如果要对构建一个联邦系统,在初始阶段必要获取足够的用户和数据才能训练出可靠地模型,打破冷启动的缺陷也需要足够有吸引力的激励措施(类似于区块链的用币奖励参与的用户)。


以上就是为什么很多综述都是从 Communication EfficientSystem HeterogeneityStatistical Heterogeneity、Incentive Mechanism、 Privacy Protection 的角度来介绍联邦学习问题的原因。


联邦学习的应用

学术上的应用就是 FL + ML,目前各种推荐系统、CV、NLP 模型与 Federated learning 的结合也有很多结果和创新点。

例如在 GAN + FL 中就存在很多方向:

  • Server 端单生成器,Client 端多个判别器;
  • Server 端单判别器,Client 端多个生成器;
  • Client 端的多个判别器+生成器;

且由于 FL 对数据安全的独特保护能力,每个用户由于数据分布的差异很大,如何使得训练的模型更好地适用每一个用户,提高单个用户的体验。所以目前关于对模型的个性化 (Personalization)的研究也很多:

  • 需要构建多个 global model 来适应不同的用户;
  • 用多任务学习或知识蒸馏等技术对 global model 进行 fine-tune;
  • global model 与 local model 的混合;


最后就是工业应用,如何解决在不同应用场景部署联邦学习的问题,并对不同的任务进行分类。杨强按照业务不同将联邦学习按业务逻辑分为了横向联邦学习、纵向联邦学习联邦迁移学习,目前这个分类已经被推行到 IEEE 的国际标准中了。

在工业应用中,例如联邦学习+边缘计算领域是研究热点吗?

边缘端天生地匹配联邦学习的应用场景;而且目前来看,推荐系统、金融、医疗等领域对数据保护程度高、数据需求渴望强、数据量不够大的问题是最适合的一批领域应用。


最后,想要入门联邦学习可以看这篇回答:联邦学习该如何入门,学习路径怎样,有没有好的demo,以及paperlist?;想要了解前沿的联邦学习应用调研和文献搜索可以看这个GitHub库:lokinko/Federated-Learning,希望能让刚入门的你对联邦学习相关问题有所了解。


user avatar   simonxdong 网友的相关建议: 
      

了解一个领域/概念最好的方法,当然是读最先明确提出这个概念的第一篇文章了。Communication-Efficient Learning of Deep Networks from Decentralized Data 是最早提出 Federated Learning 概念的文章,Google 出品。

有了下面的论文笔记与解读,不有基础也能读懂这篇论文!


概念:

本文提出了一种新的机器学习范式,联邦学习 (Federated Learning)。

什么是联邦学习?

在定义联邦学习之前,我们要先来看一看传统的机器学习范式。

一般来说,机器学习必须的三大要素分别是:

数据,计算设备,模型(算法)

如果非要类比的话,上面的三要素分别相当于一家餐馆的:

食材,厨具,菜品(烹饪技法)

联邦学习要革新的主要是上面的数据这个要素。

现实生活中,数据大多是分散的分布在每个用户的手里。举个例子,你想训练一个能够根据照片自动推算年龄的模型,每个用户的手机上的照片就是你所需要的数据。

在传统的机器学习范式中,机器学习工程师首先要把散落在每个用户手里的数据搜集起来,合成一个大的数据集,然后再用这个数据集来训练自己的模型。

但是,这个搜集的过程,常常被人所诟病。最主要的担心,当时是隐私问题。所以,联邦学习就希望能够搭建一个机器学习范式,在这个范式里,用户不必上传自己的数据,而是只需要在本地用自己数据训练一个自己的模型,然后上传这个模型。

如果这里有1000个用户,云端就会收到1000个模型。云端再通过一定的方法,把这1000个模型合成一个模型,那么这个模型就可以认为是在1000个用户协同努力下得到的,这个模型也当然能够很好的处理每个用户的数据了。

看到这里,你会发现,这个过程其实很简单。无非就是之前我需要上传数据,现在改成上传模型了。是的,这么理解没有任何问题。

但是带来了一些问题:

  1. 用户 (local device) 和 云端 (server) 如何进行交互
  2. 上传模型并不是免费以及可靠的,如何处理其中的通信问题
  3. Server 如何把收到多个的模型合成一个

这篇文章是最早明确提出这种范式的,并对上面第一和第三个问题提出了最简单的解决方法。算法部分可以用这张图总结一下,

每个 round 开始的时候,server 选中一些 local device 参与到这一轮训练中(一般是全部都选),local device 要从 server 下载当前的 global model,作为自己 local model 的起点。然后每个 local device 以相同的起点,在自己的数据上进行训练,训练一定时间后,这些 local device 把自己的 local model 都上传到 server。server 然后把这些 local model 求平均,并这个这个平均作为最新的 global model。

然后下一个 round 重复上面的操作,直到模型收敛。

存在的问题

Federated Learning 里面一个的一个 Open Problem 是,如果每个 local device 上面的数据,是非常 biased,那么求平均就没那么有道理了。

举个例子。

传统机器学习里面,我们有 MNIST 数据集,里面的图片是 0-9 共 10 种手写数字。

那么可能在 Federated Learning 的情况下(假设正好有 10 个 local users),就是有个用户只有 0 的图片,另外一个用户只有 8 的图片,....。虽然总量没变,但是每个用户手里的数据是 biased 的,是 Non-IID(非独立同分布) 的,这会对优化造成很大的影响。

从这个角度来看,Federated Learning 好像也并不是什么全新的概念。如果不用 local device 上面的数据是 IID (独立同分布)的,那么 Federated Learning 就相当于是 Distributed Learning。

当然,还有其他的问题:

The FederatedAveraging Algorithm

做法很简单,就是我们上面描述的过程:

总共有 K 个 local devices, 每次选取一定数量 (C,总数的比例) 的 local device, 在上面做 local training,然后上传 local models,最后对这些 local models 求平均。

这里 C,作者认为可以类比传统方法的 batch size,所以可以称之为 global batch size

具体分析可以看这里:

如果 local device 每个 round 不只优化一步的话,称之为 FedAvg


所以,这个实验中有这么几个关键参数:

  • K,local devices 的总量
  • C,有多少比例的 local devices 参与了当前 round
  • E,每个 local device 在自己的 dataset 上训练多少 epoch
  • B,每个 local device 在自己的 dataset 上 batch size 是多大(正无穷代表batch size=dataset size)

在做平均的时候,模型们从相同的初始化开始很重要

这个是这篇 paper 观察到的一个现象,具体看这个图。

右边是两个 models 从相同的初始化开始,明显”合体“后效果要更好一些。

实验 Setting

这篇文章的方法其实是非常简单的,我们主要是要来看一下实验的设计,如何来验证和探究这种新学习范式的有效性。

数据分割

MNIST 有两种数据分割的模式:

IID 数据分割

MNIST 总共有 60,000 训练数据,有 100 个 local device,那么每个上面就是有 600 个 sample,抽取方式是随机。

Non-IID 数据分割

我们首先根据 label 来对数据进行一个排序,然后把 60,000 个 sample 分成 200 个小块,每个小块里面有 300 个 sample。注意这里排序的目的,是人为的让每个小块里面,都是同一种数据。然后每个 local device 将随机的得到两个小块。

这样分割完之后,每个 local device 都只有两种数字。

Language Modeling 也有两种数据分割的模式:

数据来源于 The Complete Works of William Shakespeare,大概形式长这个样子,就是角色有自己的台词,然后不断的进行角色切换

Non-IID 数据分割

总共有 1146个 local device,每个 local device 能够拿到一个 play 里面的某个角色的所有台词。这么做的比较有意思的是,整个dataset非常的 unbalance,因为有些角色可能台词特别多,有些角色(比如龙套那种)台词特别好,作者认为这样一个数据分布可以很好的模拟现实中不同 local device 的情况。

IID 数据分割

总共有还是有 1146 个 local device,只不过数据是随机均匀分割的。

结果分析

每轮多少 Local Devices 参与

这里先来看看每一轮的参与率对结果的影响。

这个表里面的数字代表:

达到预先设定好的 test accuracy 需要多少个 round。如果是横线,代表这种方法永远无法达到预先设定的 accuracy。

从这个表我们观察出来的这些信息:

  1. Local Batch Size, B 小一点反而有利于 Global Model 的收敛。
  2. 增加 C 对 Full Batch Size (B 是正无穷)帮助不大。
  3. 相对于 IID 的情况,Non-IID 情况下,增加 C 对网络收敛帮助更大。

而且,从上面看,增加 C 对收敛的提速作用并不是线性的,所以后面的时候,都设置 C=0.1 了。

增加 Local Training Steps

增加 Local Training Steps 有两种方法:

  1. 减小 Local Batch Size, B
  2. 增加 Local Epoch, E

Local Training Steps 最小的情况就是前面说的 FedSGD ,其中 E = 1,B=正无穷。这种方法其实等价于 full-batch (non-stochastic) gradient descent 可以看做是一个 baseline 方法 。但是这种方法其实我们已经知道效果肯定不是很好,因为 generalization ability 不太好。

上表中有一个公式

我们来理解一下。En 是一个 round 的总样本数。而且 KB 是一个 step 需要的样本数,所以这个 u 的含义是平均到每个 local device 上面,一个 round 里面有多少 step。但是这里的 K 其实应该是 0.1K,但是因为这个表里的所有试验都是 0.1K,所以乘不乘这个 0.1 也就无所谓了。

趋势还是比较明显的,Local Training Steps 越多,需要的 communication rounds 就越少。

关于上表的分析(来自论文作者):

  1. 既然减小 B 或者增加 E 带来的 mu 的增加都可以有效的减少 rounds,那么当我们在调参的时候,就可以先调 B。因为 B 受硬件限制的,但是 E 不受硬件设备。B 小了对收敛速度好,但是 B 太小了有个副作用,就不足以完全利用 local device 的计算能力,所以我们最好先根据 local device 的能力来确定 B。
  2. 有趣的是,FedAvg 的准确率要比 FedSGD 高。作者的解释是 model averaging produces a regularization benefit similar to that achieved by dropout

关于上表的分析(来自本文作者):

  1. 在 LSTM 上面的 Non-IID 的表现要比 IID 更好,但是在 MNIST 上面却不是。这个可能是因为二者划分 Non-IID data 的方式不同。
  2. 其实真正决定每个 round 里面,每个 local device 要迭代多少 samples 是 E。所以在 CNN 这个表里面,固定 E=5 ,可以观察到 B 越小,收敛的越快。这个点很有趣

Local Training 是不是越多越好

这个实验里面,一直增加 E。加入 E 增加到无穷大。也就是说每个round都train无限多步,那么大概率那么最后收敛的点都是一样的,所以 communication 只需要一个 round 就够了,多了也没用。

事实证明,E 确实不是越大越好。这件事情说来也好理解,如果在每个 local device 优化的太远的话,那么在 local dataset 就 over-optimized 了,而且这样的话,每个 local model 之间的 bias 也太大了。

其实,Federated Learning 里面两个比较本质的 Open Problem:

  1. 如何处理 Non-IID 的问题?
  2. 如何平衡(local 和 server)同步频率和收敛效果的问题?

其实这两个问题都是在探究同一个主题,那就是在 local dataset 更新的时候,更新得到的 local model 其实是在 local dataset 上面 bias 的。

当然,同步频率越高,这个 bias 就越低,但是 communication cost 也会越大。最极端的情况,local device 每更新一个 local batch 就同步,这么做的话,其实跟普通 SGD 几乎是一样的,但是显然不符合 Federated Learning 的语境。

CIFAR 实验

CIFAR 的数据分割是 IID 的。

CIFAR 10 总共有 50000 Training Samples,1000 Testing Samples。分割时候,分到 100 个 local device 上面,每个上面有 500 随机采的 Training Samples 和 100 Testing Samples。

  • Standard SGD(传统方法):

Batch size=100,197500 updates,86% Acc。

如果用 Federated Learning 来模拟这个过程,那么就需要 197500 rounds 的通信。

不同的线代表不同的 Learning Rate


这个图的横轴是多少 batch 参与更新。从这个图来看,还是传统的 SGD 效果最好。可以这么理解:SGD 的不同batch 是一种 sequence 的关系。举个例子,第二个 batch 更新的对象是第一个 batch 更新之后那个模型。但是在 Federated Learning 的场景下,由于不同 batch 是分布在不同的 local device 上面的,所以不同 local device 上面的 batch 并不是 sequence 的关系。

另外,作者这里claim了一个点:

Further, we see that both standard SGD and FedAvg with only one client per round (C = 0), demonstrate significant oscillations in accuracy, whereas averaging over more clients smooths this out.

就是说,好像 FedAvg 的曲线比 SGD 的还要更稳定一些。这样的结论其实不负责任的,因为 FedAvg 在画这个图的时候,能够画的点要比 SGD 少很多,所以看起来曲线更加的平滑。这很大可能是因为作图的原因,而非真正的稳定性更好。


user avatar   shusenwang 网友的相关建议: 
      

其实联邦学习就是一种特殊的分布式学习。分布式学习已经被研究十几年了,Low-hanging fruits早就被人摘了。联邦学习有一些特殊的设定,比普通的分布式学习要困难一些,所以还是有的做的。

联邦学习有这几个方向可以研究,做得好了肯定可以在顶会上发论文:

  1. 降低算法通信次数,用少量的通信达到收敛。数据是IID的,已经被研究比较透彻了。联邦学习的困难在于数据不是IID的。
  2. 研究联邦学习中的隐私问题。联邦学习其实不会保护隐私,很容易从梯度、模型参数中反推出用户数据。提出攻击和防御的方法都可以发表出论文。
  3. 研究联邦学习的鲁棒性。比如有节点恶意发送错误的梯度给服务器,让训练的模型变差。设计新的攻击方法和防御方法都可以发表出来论文。

我打算在我下学期的深度学习课上讲联邦学习。我先录了个课程视频,大家有兴趣可以看一下(需要科学上网)。

视频: youtube.com/watch?

课件: github.com/wangshusen/D

在墙外连知乎,想上传个大图片都困难,视频传不上去。我就不传知乎了。


user avatar   hong-hui-niu-rou-fan 网友的相关建议: 
      

12/11/2019 更新:

来来来,让58位作者,带着105页的文章来告诉你到底有哪些可以研究的问题:

Advances and Open Problems in Federated Learning

贴一下摘要和目录吧:

Abstract

Federated learning (FL) is a machine learning setting where many clients (e.g. mobile devices or whole organizations) collaboratively train a model under the orchestration of a central server (e.g. service provider), while keeping the training data decentralized. FL embodies the principles of focused data collection and minimization, and can mitigate many of the systemic privacy risks and costs resulting from traditional, centralized machine learning and data science approaches. Motivated by the explosive growth in FL research, this paper discusses recent advances and presents an extensive collection of open problems and challenges.

----------------------------------------------------------------------

Federated Learning作为一个年轻的研究领域,有很多可以研究的问题。

其实FL说白了很简单,就是在decentralized data上的机器学习。什么是decentralized data?就是因为某些原因(隐私政策,私有数据,统一收集代价太大等等),无法将数据集中在一起。

如何在这种情况下依然可以获得一个高质量的机器学习模型,成为了一个单独的研究领域。

简单举几个具体的可以研究的问题的例子:

Federated Optimization algorithms

如何设计在decentralized data 中收敛的更快的Optimization algorithms.

在FL的setting下,不再有一个集中收集数据的地方,数据集分散在若干clients中,那么不能再对数据作出i.i.d的假设。

举一个简化的例子,比如要设计一个识别数字分类器,在一般的setting下,我们会有一个包含十个数字类别(0-9)的数据集,每个类别可能有几百张样本。

可是在FL的setting下,假设有十个clients,其中的某些client可能只有0,2,4,5这四种类别的图片,这意味着在这个client的数据中训练得到的分类器只认识这四种图片。

在其他client的数据中训练得到的分类器可能只认识另外几种类别。那么如何聚合这些分类器从而得到一个有效的识别数字的分类器?

Communication cost

FL的应用场景之一,就是移动设备上的模型训练。FL通过不上传用户数据的方式,既可以保护数据的隐私,又可以训练高质量的模型。

既然是在移动设备上,通信的带宽自然而然的就成为了一个瓶颈。如何在尽量减少设备和服务器通信的情况下,训练一个可用的模型是一个很有意思的问题。

Personalization

获得全局最优的模型,和最适合某个client的模型,这两者之间不可避免的成为一个矛盾。

那么一个比较好的解决方案就是在完成全局模型训练之后,在每个client的数据上继续训练得到一个最适合于这个client的模型。如何设计一个好的personalization的策略?

扩展FL到更多的场景

强化学习,GAN,推荐系统等等其他的机器学习的热门问题,如何扩展到FL的setting中?

以上只是部分可以研究的问题,还有很多很多。ML领域近期发展速度放缓,很多坑已经被填的差不多了,剩下的都是难啃的骨头。这好不容易有一个新坑,必须要跳啊少年。


user avatar   fei-te-yang-51 网友的相关建议: 
      

先说结论:联邦学习的水还很深!

首先,联邦学习作为机器学习的一种,离不开用一堆数据建立一个机器学习模型。但问题是:现在大家隐私意识上来了,数据特别值钱要各自拿着不能放手,别的不说,远有欧盟的GDPR(General Data Protection Regulation,通用数据保护条款),近有咱国家互联网信息办公室出台的《数据安全管理办法》(征求意见稿),这关头SEI敢顶风作案?

但人工智能总得发展啊,模型还是要一起建才能挣钱啊,于是值得研究的问题就来了:

Q1:为啥非得联邦呢?我自己玩行吗?

自己数据不够啊,以现实场景举例:

有些情况我没遇见过,但恰巧有别人遇见过。(这情况就是横向联邦思路可以处理的)

又或者同一个问题,别人看问题的角度跟你不一样,博采众长当然是好的。(也就是纵向联邦的原理)

还有,大佬向你传授成功学,经历虽然不能给你,你遇到的生活场景也肯定不一样,但总结的经验总能给你上一课。(联邦迁移学习来了!)

Q2:那联邦学习跟普通机器学习啥区别?

还是刚刚讲的,我怎么能把我precious的数据给你呢?抛开数据价值而言,这明晃晃的数据安全法规,都表明了在未来数据隐私会受到怎样的重视。

但问题是为了共同富裕,大家还是要共同建模的,这就是所有联邦学习宣传片中说的解决“数据孤岛”问题。

Q3:联邦跟隐私保护机器学习【此处应有上百个引用】有啥区别?

如果只是方法建模方面,个人感觉其实没什么区别,说破天也都是保护着数据不泄露共同建个模型。(另外也有一些情况,强调数据不出本地,加密了也不行)

但是,联邦学习叫Federated Learning,联邦通常有两个英文词,一个是federal,另一个是commonwealth,一看就知道了吧,联邦学习土一点不严谨一点可以叫共同富裕学习,不仅仅包括了刚刚说的建模过程,还包括大家利益绑定,利益分配等多重意思在里面。所以共同建模时谁贡献大需要被表扬,谁老是搞破坏等问题也是联邦学习的范畴。联邦把个体当做有血有肉的个体,而不仅仅考虑是哪里的数据,因而是比较有人情味的。

Q4:联邦的效果更好吗?

效果,效率?比自家捧着自己的数据玩肯定要好的多。但实话实说,比把数据集中到一起的训练方式而言,效果效率都是小于等于,只能说相差不大。

因而这也是一个可以研究的问题方向——如何进一步提升联邦的效果,降低损耗。

Q5:联邦学习是怎么做到的?

横向联邦目前最流行的做法是模型各自训练,再把模型叠加,就像把人的大脑平均一下再还回来,虽然目测(非线性的各种模型)会在每次平均后变成豆腐脑,但多轮迭代后还是可以收敛出一个全知大脑。

Q6:联邦就真的安全吗?

这......就是在下目前正在研究的问题!目前还没定论。


这上面每个问号背后都有一大堆的研究问题,抛开机器学习的角度而言,都还可以从法学角度研究,从经济学角度研究,从哲学角度研究,甚至从社会学角度进行研究。

联邦学习的水还是很深的,希望以上内容能对有志于此的小白产生一些帮助。


↓↓↓给首答点个赞同吧!




  

相关话题

  联邦学习+边缘计算领域是研究热点吗? 
  大四年级,完全没接触过高数,目前对机器学习产生浓厚兴趣,该如何学习数学? 
  当前农业机械化都尚未普及的中国,未来可不可能跨级实现农业AI化? 
  非CS背景,如何快速上手机器学习? 
  如何评价深度学习相关顶级期刊论文难复现的问题? 
  如何看待「2020福州人工智能围棋大赛」疑似众多队伍使用开源程序「KataGo」参赛? 
  数学理论上可不可以绝对识别ps过的照片(可以作为法律证据的)? 
  AI 真的很危险吗? 
  柯洁与 AlphaGo 三场皆负,对围棋今后的发展会有哪些影响? 
  深度学习中,模型大了好还是小了好呢? 

前一个讨论
马化腾称「王者荣耀将举办 AI 电竞赛,希望激发青年人对通用 AI 的研究兴趣」,有哪些看点值得关注?
下一个讨论
如何理解深度学习源码里经常出现的logits?





© 2024-06-29 - tinynew.org. All Rights Reserved.
© 2024-06-29 - tinynew.org. 保留所有权利