你的Siri收集了你的个人数据?联邦学习介绍

2023-11-18

MIT Technology Review - Apple Siri

这是 MIT Technology Review 12月11日的 Newsletter 的部分摘录,大概意思是,iPhone 上的 Siri 在听到我们个人说 "Hey Siri" 时有反应,但是对其他人说的都没有反应,按理来说,训练一个这种模型,会需要收集我们大量的声音数据,并且这些数据都会保存在苹果,但苹果并没有这么做,那它是怎么做到的呢?这就说到了今天的主角,联邦学习 (Federated Learning)

什么是联邦学习?

联邦学习是一种训练数据去中心化的机器学习训练方式,最早在2016年由谷歌提出,目的是通过对保存在大量终端的分布式数据展开训练学习,最终汇总得到一个高质量的中心化机器学习模型。

在苹果 Siri 的例子上,每台手机都是一个终端设备,我们的音频信息都只保存在自己的手机上,苹果通过联邦学习的方式,用我们每个人的音频都训练得到了一个本地模型,然后再整合成一个统一的模型。通过这中方式,既能得到定制化的模型,又能保护用户数据隐私。

NIPS2019 Workshop - Google

上面这个图是 NIPS 2019 workshop 上,Google 联邦学习的负责人在会上的讲义,这个领域相对较新,但在2019年的关注度有了跨越性的增长。联邦学习到底解决了什么问题呢?

解决了什么问题?

数据隐私

用户个人的数据隐私越来越受重视,前有欧盟的 GDPR,在当时短时间内逼出一堆公司软件条款变更,最近一个月印度也爆出将要发布新的政策来保护印度公民的数据,初次之外,中国有网络安全法和数据管理办法,美国加州有 CCPA《加州消费者隐私法案》,所有这些法律的颁布,都指向了用户数据隐私保护,可以预见,在没有数据和隐私保护的情况下,使用用户的数据去做训练,难度会越来越大。

从另一个角度来说,一些用户的数据隐私保护的要求是更高的。比如说医疗数据,病人不愿意,医院也不改泄漏,没有数据,怎么把机器学习和深度学习这一套东西用到医疗行业里?

数据孤岛

在大数据时代,我们期待的是有大量的数据来完成模型的训练,但大数据往往只专属于几个巨头,多数的公司是没有足够的数据的,并且不同公司之间的数据共享基本是不可能的,法律不允许,公司政策不允许,公司利益不允许等,这导致了众多公司只拥有自己的一部分小数据,难以用来训练一个好的模型。

怎么解决?

Nvidia Federated Learning

上图 Nvidia 和伦敦国王学院合作的项目,是联邦学习应用在医疗领域。每个医疗机构的用户数据是很敏感的,不能共享,但是一个医疗机构内的数据量太小,没法训练处好的模型,用联邦学习训练可以解决这个问题,训练流程是这样的:

  1. 云端服务器将一个统一模型下发给多个医疗机构端的服务器。
  2. 每个医疗机构用本地的数据进行几个 batch 的训练。
  3. 各个医疗机构把训练之后的模型参数上传到云端服务器。
  4. 云端服务器将从多个医疗机构那边得到的模型训参数进行整合、更新,一轮训练结束。
  5. 云端服务器将更新后的模型重新下发给多个医疗机构,开始下一轮训练。

在整个训练过程中,各个医疗机构的数据没有共享,用户隐私得到保护,同时又能共享训练处一个不错的模型可以共用。

不过,上述的这个过程并不是完全保密的,比如云端服务器是可能可以从每个医疗机构传上来的模型参数反推出一些用户数据,有挺多加密的方法可以加入到机器学习和深度学习的过程中,来确保全链条的隐私安全,可以用的一些方法有同态加密,差分隐私,安全多方计算等。

展望

联邦学习从提出到现在就三年多的时间,还有挺多问题没有被解决,或者没有被完全解决,比如终端数据的异构性、联邦学习整套框架的工程化、云端模型整合的方式等,还是有不少可以做研究的方向。

针对联邦学习,整理了一个 Github,由浅入深,包括了一些博文、论文、视频、教程等,将这些内容划分了主题,有兴趣的朋友可以进一步了解一下,欢迎 加星、提PR。

Github: https://github.com/weimingwill/awesome-federated-learning

References

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

你的Siri收集了你的个人数据?联邦学习介绍 的相关文章

  • 性能测试入门——完整的测试流程

    性能测试一般的压测流程 需求收集 测试准备 测试执行 结果分析与调优 测试报告与总结 1 1 需求收集 性能测试需求一般在项目需求阶段就可以收集 测试人员进入项目应尽快开展此项活动 1 性能需求的来源 需求文档 问卷调查 历史数据统计分析等
  • Vue的用途

    我使用Vue和React已经很长一段时间了 两个框架上实践代码量都在10万行以上 不得不说都是都很不错的 帮助开发者减少很多工作量 某种框架是现代化Vue和React在两者之间的选择并不像选择苹果或香蕉一样简单 两者在工程实践上的差异让我们
  • Eclipse下启动tomcat报错:/bin/tool.jar which is referenced by the classpath, does not exist.

    1 错误 在Eclipse下启动tomcat的时候 报错为 Eclipse下启动tomcat报错 The archive D Program Files Java jdk1 7 0 10 lib tools jar which is ref
  • python后端学习(八)网络通信

    TCP IP 为了把全世界的所有不同类型的计算机都连接起来 就必须规定一套全球通用的协议 为了实现互联网这个目标 互联网协议族 Internet Protocol Suite 就是通用协议标准 因为互联网协议包含了上百种协议标准 但是最重要
  • (转)那些年不容错过的硅谷IT公司

    来源 https zhuanlan zhihu com p 20677434 那些年不容错过的硅谷IT公司 Mingche SuMingche Su 1 年前2016 年 3月 27 日星期日下午 12 点 34 分 1 Houzz 是一个
  • 解决MySQL installation error : Initializing Database安装MySQL提示initialize database报错

    解决MySQL installation error Initializing Database安装MySQL提示initialize database报错 当我们在安装MySQL数据库时 在 Initializing Database 就
  • C语言之——快速排序qsort库函数的讲解

    qsort函数C语言编译器函数库自带的排序函数 也叫快速排序函数 之前我写过一篇关于冒泡排序的代码讲解 大家感兴趣的话可以先看一看我对于冒泡排序的讲解 相比较于冒泡排序 快速排序可以用更加快捷的速度去排列升降序 它的时间复杂度只有O N l
  • 使用Vue+elementUI实现CRUD

    文章目录 前言 一 简介 二 使用Vue Cli搭建Vue项目 1 vue cli 介绍 2 axios js 介绍 3 Element Ul 介绍 4 moment js 介绍 5 搭建项目 6 添加main js配置 7 修改App v
  • Dockerfile07 -- Dockerfile构建python

    文章目录 一 Dockerfile搭建python 1 创建python目录 2 编写dockerfile文件 3 修改网站内容 一 Dockerfile搭建python 1 创建python目录 2 编写Dockerfile python
  • Wifi隔离 (AP隔离)的原理及实现

    1 wifi隔离是什么 无线隔离又称客户端隔离 client isolation 也称AP隔离 指的是阻止连接路由器的设备之间互相访问 多见于无线通信方面 常见于路由器设置中 AP隔离非常类似有线网络的VLAN 虚拟局域网 将所有的无线客户
  • 大数据—— Flink 的优化

    目录 一 Flink内存优化 1 1 Flink 内存配置 二 配置进程参数 2 1 场景 2 2 操作步骤 三 解决数据倾斜 3 1 场景描述 3 2 解决方式 3 2 1 数据源的消费不均匀 调整并发度 3 2 2 数据分布不均匀 四
  • C++11智能指针(unique_ptr、shared_ptr、weak_ptr)boost::scoped_ptr

    C 11智能指针 unique ptr shared ptr weak ptr 码农小非 的专栏 CSDN博客 c shared ptr weak ptr 原创 智能指针拾遗 原创 智能指针拾遗 qicosmos 江南 博客园 shared
  • java - 异常和断言

    什么是异常 异常就是指在程序运行的过程中发生一些不正常的时间 除0溢出 数组下标越界 所要读取的文件不存在 java的异常是Throwable派生类的一个实例 Throwable类包含在java lang中 Error类 LinkageEr
  • 论文学习笔记(7):Teacher Guided Neural Architecture Search for Face Recognition

    目录 摘要 一 介绍 二 相关工作 三 研究方法 3 1 知识蒸馏 3 2 教师网络指导下的神经网络架构搜索 3 2 1 搜索宽度 3 2 2 搜索深度 3 2 3 搜索目标 四 实验 4 1 数据集 来自AAAI2021 文章链接 htt
  • Python 类与对象、模块、异常

    类内置方法 模块 是将一组函数放在一起共享公共的主题 将其存储在一个 py文件中 使用import命令导入 Python3中部分函数 异常捕捉 try fh open testfile W fh write This is a testfi
  • Kali Linux中英文切换

    Kali linux默认为英语 可以执行以下命令切换为中文 echo LANG zh CN UTF 8 gt etc default locale 切换好 执行 reboot 重启即可 同理 切换为英文 echo LANG en US UT
  • 2022-渗透测试-OWASP TOP10详细讲解

    1 sql注入 原理 SQL 注入就是指 web 应用程序对用户输入的数据合法性没有过滤或者是判断 前端传入的参数是攻击者可以控制 并且参数带入数据库的查询 攻击者可以通过构造恶意的 sql 语句来实现对数据库的任意操作 分类 1 报错注入
  • 发小要开商场,让我给写个商场管理系统。报酬就去唱个歌?

    前言 昨天我发小喊我去唱歌 我心想还有这种好事 这铁公鸡平常一毛不拔的 居然还请我唱有陪唱的 那这咱们就拒绝不了啊 刀山火海这都得上啊 话说今天陪唱的小姐姐长的确实还不错 唱了两个小时 发小做我旁边让我帮个忙 我就知道他是无事献殷勤 那没办
  • Java-集合(List接口及其常用的实现子类)

    List接口基本介绍 1 List集合类中元素是有序的 即添加顺序和取出顺序一致 且可以重复 2 List集合类中的每个元素都有其对应的顺序索引 即支持索引 3 List容器中的元素对应一个整数型的序号 记载其在容器中的索引位置 可以根据序
  • C语言:二分法查找

    什么是二分法查找 二分法查找是通过循环平分的方式 来进行查找想要的数或数据 那么 要怎么编写这样的代码呢 首先 要把一系列的数组存入变量当中去 将其当成已知数据 比如将1 10十个数字存到变量中去 就可以写成 然后就要知道 查找数据是通过下

随机推荐

  • Python,使用Anaconda安装Levenshtein,出现: Failed building wheel for xxx错误

    出现原因 缺失相应的whl文件 解决办法 下载并安装对应的whl文件 点击下方链接 即可找到并下载相对应的whl文件 Unofficial Windows Binaries for Python Extension Packages 例如
  • flink学习44:基于行的操作分组和窗口的聚合

  • 华为/华三交换机配置自动备份到FTP/SFTP

    数据通信 建设篇 第一章 华为 华三交换机配置自动备份到FTP SFTP 数据通信 建设篇 下章内容 华为 华三交换机配置自动备份到FTP SFTP 背景介绍 注意事项 华为交换机配置自动备份 新华三交换机配置自动备份 参考来源 下章内容
  • Syslog日志服务器配置 For CentOS 7.8(Syslog+LogAnalyzer+LAMP)

    声明 本教程仅供学习 研究 测试使用 本文作者不承担任何法律责任 本次中央日志服务器采用rsyslog提供日志接收服务 Mariadb作为后端数据库提供日志存储服务 一 安装CentOS 7操作系统 1 CentOS7的操作系统安装过程本文
  • ASP.NET中上传文件到数据库

    介绍 为什么要将文件保存到数据库呢 理由很多 最直接的就是 将文件放入数据库以后 可以对文件进行更好的管理 特别是文本文件 图片等 如果不使用数据库 数量巨大的时候 很难做到有效的管理和区别 特别是需要作一些与文字密切相关的应用的时候 将文
  • Python3使用urllib访问网页

    介绍 改教程翻译自python官网的一篇文档 urllib request是一个用于访问URL 统一资源定位符 的Python模块 它以urlopen函数的形式提供了一个非常简单的接口 可以访问使用多种不同协议的URL 它也提供了一个稍微复
  • 通过Nginx(basic auth)实现Prometheus账号密码登录

    一 原因 因客户Red Hat 7 5服务器安装部署grafana无法添加prometheus数据源 以及无法修改初始密码 为确保环境访问安全 特别研究通过账号密码认证访问prometheus 搜索了很多资料 但都缺这缺那 所以我这里记录下
  • AppStore 提审时的“出口合规证明”处理

    对于加密的管理 Apple不比之前严格了 一般选 否 也能通故审核 每次提交审核的时候都会让确认是否使用了Apple以的加密算法 在窗口提示了我们可以看到 可以在Xcdoe的info plist文件中增加App Uses Non Exemp
  • 众多Android 开源项目推荐,给力工作给力学习

    FBReaderJ FBReaderJ用于Android平台的电子书阅读器 它支持多种电子书籍格式包括 oeb ePub和fb2 此外还支持直接读取zip tar和gzip等压缩文档 项目地址 http www fbreader org F
  • jFinal框架下controller接参

    一 表单参数 1 前端 contentType x www form urlencoded 2 apipost接口测试 3 controller接参 1 注解 getPara获取参数 2 注解 默认参数 若方法的参数名为注解名 则jFina
  • Python 基础知识

    进阶选手 Python 进阶知识 Aimin20210819的博客 关注VXG AIMIN2020 更多 目录 1 Python 是怎么理解 2 Python数据类型 四种数据类型
  • 在Firefox浏览器中导入Burp Suite证书

    在日常的渗透中 经常就是在浏览器用bp来抓包 在配置完浏览器的代理的时候就会涉及CA证书问题 在设置完代理后 再访问百度时 就会出现如下图的问题 第一步 导出证书 打开burp suite 找到 代理 Proxy 在选择 选项 Option
  • 指针加法:c = (int *) ((char *) c + 1)与 c=c+1 的区别

    示例代码 include
  • Qt通过QSttings类读取*.ini配置文件

    目录 ini文件 什么是ini文件 格式 需要的参数 需要了解的API 单例 单线程实例 多线程实例 设计一个读取ini文件的类 AppSettings类 ini文件 什么是ini文件 INI Initialization File 是微软
  • DTO和POJO实体类之间值映射

    package cn test util import java lang reflect Method import java util List public class AutoMapper public static
  • Git:Git中的远程操作和标签管理--分布式版本控制系统

    文章目录 理解分布式版本控制系统 克隆仓库 远程推送 拉取远程仓库 配置Git 标签管理 本篇主要总结关于Git中远程操作的相关事项 理解分布式版本控制系统 在进行远程操作前 首先要理解什么是分布式版本控制系统 理解这个问题时要思考这样的问
  • 从均值方差到有效前沿

    这篇文章的主要目的是介绍有效前沿这个理论工具和分析框架 我们由均值方差分析展开 逐步推演到有效前沿 然后 我们又说到有效前沿在投资或者量化中的应用场景 最后我们也总结了有效前沿的一些问题 尤其是敏感性问题 在教程中 特意加入了一些实验代码
  • 学习日记——物联网云平台组件(云消息的后续处理)

    百度云物联网组件图 设备通过MQTT等协议将数据上报到百度云平台 百度云通过主题来将设备分发给其他设备 并且可以通过规则引擎来将数据发送给时序数据库对象存储等等其他云服务 来实现我们想要的各种功能 规则引擎 一 规则引擎简介 使用规则引擎功
  • [qiankun]实战问题汇总

    qiankun 实战问题汇总 ERROR SyntaxError Cannot use import statement outside a module 问题分析 解决方案 子应用命名问题 问题分析 解决方案 jsonpFunction
  • 你的Siri收集了你的个人数据?联邦学习介绍

    MIT Technology Review Apple Siri 这是 MIT Technology Review 12月11日的 Newsletter 的部分摘录 大概意思是 iPhone 上的 Siri 在听到我们个人说 Hey Sir