当前位置: 首页 > news >正文

要马儿跑,又要马儿不吃草?聊聊联邦学习与分布式机器学习

今天讲最近很热的联邦学习

联邦学习大约是从2019年开始火起来的,不过,这个概念其实已经有一定的年头了。早在2016年,Google就已经在一篇论文中将“联邦学习”作为一个专业术语明确提出来了,而如果从联邦学习所涵盖的知识领域范围来算,人们讨论相关概念的历史就要更加的悠久,譬如说面向隐私保护的机器学习、面向隐私保护的数据分析等等等等,虽然名字大相径庭,但研究的核心对象可以说是同一个。

联邦学习可能会让一部分新接触的同学不明就里,光看名字一下子竟不知道她究竟是什么?又能干什么?其实,联邦学习要解决的是一个我们耳熟能详的问题——又要马儿跑又要马儿不吃草问题。又要马儿跑又要马儿不吃草,指的当然是存在着要求对立的矛盾了,而在政治学里,“联邦”体现了一种“分治”的思想,分治思想在计算机科学中其实运用十分广泛,而联邦学习就是用这种分治思想,巧妙地解决了矛盾问题。

那为什么联邦学习会在2019年开始大热,甚至有人干脆就把联邦学习说成是“5G时代的机器学习”?或者,换一种更直击灵魂的问法,就是:为什么我们都已经拼了命去学习各种“学习”?这边还没学完呢,那边怎么突然冒出个不明就里的“学习”又要我们学习?

这个问题,要从机器学习说起。

1、机器学习的数据隐私问题

机器学习有很多算法,还衍生出非常多的概念,我们在学习机器学习时,注意力很容易被这些算法和概念吸引了去,深陷其中,往往就很容易忽略了另一个重要的对象——数据。数据非常重要,我在《机器学习算法的数学解析与Python实现》中开篇就写,如果将机器学习比作一架真的机器,那么数据就是这架机器的燃料。

数据非常重要,甭管机器学习的算法多么复杂多么精妙,没有数据,照样寸步难行。训练机器学习模型需要喂数据,而数据质量如何,是好是坏,还将直接影响甚至决定机器学习模型的最终效果。

数据对机器学习非常重要,好的我知道了,但这和联邦学习会在2019年开始大热有什么关系呢?

答案正是数据,因为数据出问题了。

数据为什么会出问题?数据会出什么问题?这本身就是个很有趣的问题,如果你去找联邦学习的论文或者资料,你找到的答案大多是隐私安全。什么意思呢?你要训练模型,你需要数据,可是有一些模型,譬如说已经非常常用的推荐算法,推荐商品的,推小视频的,等等各种推荐算法,想要准确知道你的兴趣,第一步肯定是收集你的一些上网行为以及其它轨迹信息。

模型很想要你的信息,可是,你愿意给吗?

推荐算法、数据挖掘类的老教材,很爱举一个成功案例,说国外一对夫妻忽然收到某个著名电商寄来的母婴商品宣传册,开始觉得很奇怪,家里没婴孩啊,后来才知道,是自己年轻的女儿怀孕了。那时的智能算法在学校里严格来说,应该算作是一门介乎于“玄幻”和“魔幻”之间的知识门类,别看老师在讲桌上唾沫横飞,教室里估计没谁会真觉得能在生活里碰到它们。所以,老教材举完这个例子,还总觉得有点底气不足,多半还要加一句土味宣传话:智能算法,比你的家人更懂你。

不过,现在我们细品这个成功案例。为什么电商会知道女儿怀孕呢?自然是因为电商收集了女儿的用户数据,譬如说浏览网页的历史记录,然后通过某款推荐算法,推算出她对母婴类产品可能非常感兴趣。

可是,现在不同了,尤其是这两年,大家对推荐算法的新鲜劲早就过了,开始有点七年之痒的意思,对获取个人隐私信息这事尤其敏感,基本上一碰就炸毛。电商给用户寄宣传册这事,要换做现在,多半不是作为先进技术的成功范例放进教材让大家膜拜,而是作为技术翻车样本,放在法律学类的教材里,供法学院的同学们学习,从不同角度反复批判。

一个里程碑式的事件当数欧盟在2018年5月发布的GDPR,一般译作《通用数据保护条例》,对欧盟区的用户隐私数据收集作了非常严苛的规定。总之,大的趋势基本上确定了,不管国内还是国外,对用户数据的采集和使用将越来越趋向严格,也许,有的互联网企业还会在用户的安全性和便利性两者之间,做艰难选择,但选择的空间也将越来越小。

隐私信息的安全性不断提升,同时也就意味着,互联网企业能够合法获取的用户数据越来越少,对我们用户来说是好消息,对机器学习模型来说就是噩耗了。数据就是燃料,现在燃料都没有了,机器要怎么跑起来呢?可是,再难日子也总得过去下,数据不能拿了,可模型训练效果还想要提升,这就是我们前面所说的,又要马儿跑又要马儿不吃草,要求里就存在着对立的矛盾,怎办呢?

别怕,有问题就有机遇,联邦学习就正是在这时顺势崛起。那联邦学习怎么解决这个两难的问题呢?

很简单,答案两个字:分治

首先重新审视那个“又要马儿跑又要马儿不吃草”的问题,看看这对矛盾,是不是真的矛盾。以前,我们使用用户数据训练机器学习模型,第一步是获取用户数据,上传到服务器,然后第二步才是在服务器上使用用户数据进行模型训练。隐私数据泄露的问题出在哪呢?其实是出在第一步,第一步又并不涉及模型训练,所以,只要解决了第一步的问题,那就没有问题。

听起来很绕,不过也许大家已经想到了,很简单,只要模型训练在用户本地进行不就好了嘛!在用户本地训练模型,自然就不再需要将用户数据上传到服务器,当然也就不存在隐私泄露的问题了。这种将原本统一集中在服务器上进行的模型训练工作,分拆到各个数据生产者,也就是原来的客户端本地进行,就叫联邦学习。

不过,事情真就这么简单吗?

2、隐私问题解决了,数据不足的问题怎么办?

如果真的只是简单地将模型训练分拆,那么我们面临的第一个问题就是:数据不足的问题怎么解决?别看上面说了一大段,你仔细回想一下,问题的出发点是:为了保护用户隐私,把模型训练下放到客户端进行。但模型能用的数据,只是客户端的本地数据。本地数据量不够大,模型又拿不到其他客户端数据。所以,数据不足的问题还是没有解决。

症结出在哪呢?还是那句老话:机器学习算法依赖数据作燃料。我不厌其烦地重复这句话,是因为这句话看似简单,可是每次结合新的问题来看,总会产生新的理解。就拿前面的推荐算法来说吧,没错,现在我们可以拿到某个客户端的本地用户数据。数据有了吗?有了。数据够了吗?不够。问题就出在这。

推荐算法最常见的实现方法叫协同过滤,主要工作就是进行矩阵分解要分解矩阵你得首先有一个矩阵,而这个矩阵正是需要由用户以及相关的行为数据构建而成。一个用户产生的用户数据,在这里只是一行记录,也就是一条向量,要构成矩阵,就必须汇总来自不同用户所产生的数据。前面我们说,联邦学习用到了“分治”的思想,分治虽然打头是“分”字,但实际是分总结构,模型训练过程下放给客户端是“分”,而要让机器学习算法正常运转,还需要有个汇总的过程。

那联邦学习是怎么完成汇总的呢?很简单,只要把结果传上服务器就好了。只要把各个客户端训练模型时得到的结果(模型训练信息),统一上传到中央服务器,然后找一只大锅统统倒进去,拿出准备好的木头棒子搅拌搅拌,和在一起,汇总工作就完成了。最后再把汇总好的信息分发给各个客户端,客户端也就能用其它客户端的训练信息,更新自己的本地模型了。

等等,又要上传服务器?我不就是因为要保护隐私,不想上传服务器才搞的联邦学习吗,怎么绕一大圈,结果还是要回到上传服务器的老路上来?

别急,这次上传的,不再是赤裸裸的用户数据,而是在本地根据用户数据训练得到的训练信息,譬如说梯度信息,或者权重更新信息。是的,这次只上传这些模型训练过程中产生的训练信息,敏感的用户数据还在本地好好呆着呢。普通用户看到了这里,应该已经放心了,但专家还不放心:只上传模型就一定安全可靠吗?万一,通过上传的训练信息也能泄露用户数据呢?

你没看错,理论上,即使只通过训练过程中产生的中间信息,也是有可能提取一些用户数据的。原理解释起来比较复杂,不过也不用过于恐慌,就我目前看到的文献资料,只通过这些信息想要还原出完整的原始数据集,目前应该还没有办法,但从中抽取一些有价值的信息,倒是有不少研究成果。这个话题很复杂也很有趣,有机会我们展开说说。总之,这里我们只要简单记住模型训练产生的中间信息,也有可能泄露用户信息就可以了。

那联邦学习怎么解决模型的安全问题呢?很简单,加密。把这些统统加密,不但客户端与服务器的往来信息全程加密,连那个搅拌和在一起的过程也要进行加密,确保整个过程不会因为有明文而泄露出任何有价值的信息来。

这就是联邦学习——一方面确保了你的数据还在你手里,另一方面也确保了现有的机器学习算法能够获取充足的数据继续顺利运行。一个方案,解决了两个看似互为矛盾的热点问题。现在,你也许能猜到,为什么会有人称之为5G时代的新机器学习。

3、信息孤岛会卷土重来吗?

这里我想多说一点,保护隐私当然是联邦学习的一大重要卖点,但这绝不是全部的故事。请允许我再一次重复那句老话:机器学习算法依赖数据作燃料。化石燃料在工业时代引发争端甚至战争的故事,我们已经看得太多,那机器学习时代,同样作为燃料的数据,会不会也能引起“数据战争”呢?可以确定的是,数据已经被许多公司视为重要资产,甚至可能直接影响公司在市场上的竞争力,自然是不能拱手让人了,没准还要多加几把锁,生怕让人看了去。

那是否又要重新回到前互联网时代的信息孤岛的老路上去呢?而这次的信息孤岛,不再是因为技术,而是因为利益,更复杂,也更难解决。更重要的是,这必将又对机器学习的应用发展产生人为的严重限制,长远来看,大家都是输家。有没有办法打破这个僵局呢?

有,联邦学习就是其中一条可能的道路。联邦学习重要的学习方式有三种,前面我们介绍的CS架构的联邦学习是第一种学习方式,称为横向联邦学习,丰富了数据的数量。而第二种学习方式称为纵向联邦学习,可以丰富数据的维度,十分适合不同公司的数据集进行合作互补,同时又不必公开自有数据的内容,确保数据所有权不流失。最后一种学习模式称为迁移联邦学习,是迁移学习和联邦学习的结合体。想了解迁移学习的同学可以看我之前的文章,乘风破浪的迁移学习!四字成语讲明白这个大热研究方向教材方面,推荐迁移学习领域的泰斗——杨强教授新写的《迁移学习》这本书。

到这里,联邦学习也就大致介绍完了,那重点技术都介绍完了吗?当然没有,怎么个“搅拌和在一起”,我们都还没说呢。别看只有六个字一句话,你一定能猜到,这才是联邦学习的核心重点。这部分技术其实来源于另一个更为广阔的研究领域,叫分布式机器学习。

根据《分布式机器学习:算法、理论与实践》介绍,分布式机器学习最初的研究对象是在数据和训练规模日益庞大的背景下,如何突破单机硬件资源的限制,对数据进行分布式存储,机器学习如何进行分布式训练,具体又分为三类并行模式:计算并行模式、数据并行模式和模型并行模式,涵盖范围非常广,而联邦学习则正是使用了其中的一部分成果。正因如此,很多人认为联邦学习其实应该算作分布式机器学习下面的一条子问题。

前面我们说,联邦学习是多条模型训练进程同时进行,而如何进行汇总,也就是如何“搅拌和在一起”,是联邦学习的一个核心问题,同样也是分布式机器学习的一大研究重点。在这个方面,我推荐阅读《分布式机器学习:算法、理论与实践》,这本书是从分布式机器学习的角度来进行撰写,在你研究联邦学习和其它机器学习并行问题的时候,能够给你更为广阔的视野。

 

作者简介:

莫凡,网名木羊同学。娱乐向机器学习解说选手,《机器学习算法的数学解析与Python实现》作者,前沿技术发展观潮者,擅长高冷技术的“白菜化”解说,微信公众号“睡前机器学习”,个人知乎号“木羊”。

 

扫码关注作者

 

 

RECOMMEND

推荐阅读

《分布式机器学习:算法、理论与实践》

作者:刘铁岩、陈薇、王太峰、高飞

ISBN:978-7-111-60918-6

点击链接了解详情并购买

01

卖点:

  • 全面展示分布式机器学习理论、方法与实践

  • 微软亚洲研究院机器学习核心团队潜心力作

  • 鄂维南院士、周志华教授倾心撰写推荐序

  • 内容前沿全面,讨论系统深刻,全彩印刷

 

推荐语:

微软亚洲研究院机器学习研究团队所著,刘铁岩博士领衔撰写!全面阐述分布式机器学习算法、理论及实践的著作。全彩印刷!人工智能大牛周志华教授倾情推荐!联邦学习进阶必读。

 

 

《迁移学习》

作者:杨强、张宇、戴文渊、潘嘉林 

ISBN:978-7-111-66128-3

点击链接了解详情并购买

02

卖点

  • 杨强教授领衔撰写,研究团队十余年艰苦研究工作的积累。·迁移学习“开山之作”,解决人工智能的“最后一公里”问题。

  • 张钹院士作序,邓力、高文、李开复、周志华(按姓氏拼音排序)联袂推荐。

  • 本书为迁移学习方向首本算法、理论、应用方面成熟、成体系的总结。

推荐语:

杨强教授领衔撰写,迁移学习“开山之作”,解决人工智能的“最后一公里”问题。张钹院士作序,邓力、高文、李开复、周志华联袂推荐。

更多精彩回顾

书讯 |9月书讯(下)| 开学季,读新书

书讯 |9月书讯(上)| 开学季,读新书

上新 | 一本书带你吃透Nginx应用与运维
书单 | 开学季——计算机专业学生必读的10本畅销经典

干货 | 巨详细!使用OpenCV和OpenVINO轻松创建深度学习应用

收藏 | 开学季——想打好数学基础?这些经典教材你最需要!

视频 | 4min视频带你了解阿里B2B电商算法

赠书 |【第20期】实践深度学习?先接住这三板斧再说

点击阅读全文查看更多AI好书 

相关文章:

  • 太忙没空去看湖景?来看阿里云DLA如何快速构建数据湖
  • 【第21期】以实际项目作驱动,换种方式学Java
  • 确定了!图灵奖得主John Hennessy将来CNCC 2020做特邀报告!
  • Webpack优化——将你的构建效率提速翻倍
  • 用 Python 画哆啦 A 梦
  • 红帽资深解决方案架构师魏新宇:云原生应用构建之路
  • 为什么Spark能成为最火的大数据计算引擎?它是怎样工作的?
  • 主题沙龙 | 订阅模式和SaaS 行业的未来
  • 程序员过关斩将——应对高并发系统有没有通用的解决方案呢?
  • 8个流行的Python可视化工具包,总有一款适合你
  • 20张图片梳理工业软件全貌
  • 使用pandas进行数据快捷加载
  • 大数据必备的十大工具
  • SpringBoot基于jar包启动核心原理及流程详解
  • 【第22期】网络安全在身边|最强学习书单整理
  • ES10 特性的完整指南
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • java小心机(3)| 浅析finalize()
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 翻译--Thinking in React
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 前端面试题总结
  • 如何利用MongoDB打造TOP榜小程序
  • 译自由幺半群
  • 终端用户监控:真实用户监控还是模拟监控?
  • 自定义函数
  • ​油烟净化器电源安全,保障健康餐饮生活
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (3)llvm ir转换过程
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (补)B+树一些思想
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (算法)Game
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转载)利用webkit抓取动态网页和链接
  • .htaccess 强制https 单独排除某个目录
  • .mysql secret在哪_MySQL如何使用索引
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • @JSONField或@JsonProperty注解使用
  • [bzoj2957]楼房重建
  • [C++]C++基础知识概述
  • [CLickhouse] 学习小计
  • [EFI]MSI GF63 Thin 9SCXR电脑 Hackintosh 黑苹果efi引导文件
  • [IE9] 解决了傲游、搜狗浏览器在IE9下网页截图的问题