作者 | 琥珀

出品 | AI科技大本营(公众号id:rgznai100)

【导语】据了解,全球有 30 亿台智能手机和 70 亿台边缘设备。每天,这些电话与设备之间的交互不断产生新的数据。传统的数据分析和机器学习模式,都需要在处理数据之前集中收集数据至服务器,然后进行机器学习训练并得到模型参数,最终获得更好的产品。

但如果这些需要聚合的数据敏感且昂贵的话,那么这种中心化的数据收集手段可能就不太适用了。

去掉这一步骤,直接在生成数据的边缘设备上进行数据分析和机器学习训练呢?

近日,Google 开源了一款名为 TensorFlow Federated (TFF)的框架,可用于去中心化(decentralized)数据的机器学习及运算实验。它实现了一种称为联邦学习(Federated Learning,FL)的方法,将为开发者提供分布式机器学习,以便在没有数据离开设备的情况下,便可在多种设备上训练共享的 ML 模型。其中,通过加密方式提供多一层的隐私保护,并且设备上模型训练的权重与用于连续学习的中心模型共享。

传送门:https://www.tensorflow.org/federated/

实际上,早在 2017 年 4 月,Google AI 团队就推出了联邦学习的概念。这种被称为联邦学习的框架目前已应用在 Google 内部用于训练神经网络模型,例如智能手机中虚拟键盘的下一词预测和音乐识别搜索功能。

图注:每台手机都在本地训练模型(A);将用户更新信息聚合(B);然后形成改进的共享模型(C)。

DeepMind 研究员 Andrew Trask 随后发推称赞:“Google 已经开源了 Federated Learning……可在数以百万计的智能手机上共享模型训练!”


让我们一起来看看使用教程:

从一个著名的图像数据集 MNIST 开始。MNIST 的原始数据集为 NIST,其中包含 81 万张手写的数字,由 3600 个志愿者提供,目标是建立一个识别数字的 ML 模型。

传统手段是立即将 ML 算法应用于整个数据集。但实际上,如果数据提供者不愿意将原始数据上传到中央服务器,就无法将所有数据聚合在一起。

TFF 的优势就在于,可以先选择一个 ML 模型架构,然后输入数据进行训练,同时保持每个数据提供者的数据是独立且保存在本地。

下面显示的是通过调用 TFF 的 FL API,使用已由 GitHub 上的“Leaf”项目处理的 NIST 数据集版本来分隔每个数据提供者所写的数字:

GitHub 传送链接:https://github.com/TalwalkarLab/leaf

# Load simulation data.source, _ = tff.simulation.datasets.emnist.load_data()def client_data(n):  dataset = source.create_tf_dataset_for_client(source.client_ids[n])  return mnist.keras_dataset_from_emnist(dataset).repeat(10).batch(20)

# Wrap a Keras model for use with TFF.def model_fn():  return tff.learning.from_compiled_keras_model(      mnist.create_simple_keras_model(), sample_batch)

# Simulate a few rounds of training with the selected client devices.trainer = tff.learning.build_federated_averaging_process(model_fn)state = trainer.initialize()for _ in range(5):  state, metrics = trainer.next(state, train_data)  print (metrics.loss)

除了可调用 FL API 外,TFF 还带有一组较低级的原语(primitive),称之为 Federated Core (FC) API。这个 API 支持在去中心化的数据集上表达各种计算。

使用 FL 进行机器学习模型训练仅是第一步;其次,我们还需要对这些数据进行评估,这时就需要 FC API 了。

假设我们有一系列传感器可用于捕获温度读数,并希望无需上传数据便可计算除这些传感器上的平均温度。调用 FC 的 API,就可以表达一种新的数据类型,例如指出 tf.float32,该数据位于分布式的客户端上。

READINGS_TYPE = tff.FederatedType(tf.float32, tff.CLIENTS)

然后在该类型的数据上定义联邦平均数。

@tff.federated_computation(READINGS_TYPE)def get_average_temperature(sensor_readings):  return tff.federated_average(sensor_readings)

之后,TFF 就可以在去中心化的数据环境中运行。从开发者的角度来讲,FL 算法可以看做是一个普通的函数,它恰好具有驻留在不同位置(分别在各个客户端和协调服务中的)输入和输出。

例如,使用了 TFF 之后,联邦平均算法的一种变体:

参考链接:https://arxiv.org/abs/1602.05629

@tff.federated_computation(  tff.FederatedType(DATASET_TYPE, tff.CLIENTS),  tff.FederatedType(MODEL_TYPE, tff.SERVER, all_equal=True),  tff.FederatedType(tf.float32, tff.SERVER, all_equal=True))def federated_train(client_data, server_model, learning_rate):  return tff.federated_average(      tff.federated_map(local_train, [          client_data,          tff.federated_broadcast(server_model),          tff.federated_broadcast(learning_rate)]))

目前已开放教程,可以先在模型上试验现有的 FL 算法,也可以为 TFF 库提供新的联邦数据集和模型,还可以添加新的 FL 算法实现,或者扩展现有 FL 算法的新功能。

据了解,在 FL 推出之前,Google 还推出了 TensorFlow Privacy,一个机器学习框架库,旨在让开发者更容易训练具有强大隐私保障的 AI 模型。目前二者可以集成,在差异性保护用户隐私的基础上,还能通过联邦学习(FL)技术快速训练模型。

最后附上 TF Dev Summit’19 上,TensorFlow Federated (TFF)的发布会现场视频:

参考链接:https://medium.com/tensorflow/introducing-tensorflow-federated-a4147aa20041

(本文为 AI科技大本营原创文章,转载请微信联系 1092722531)

4 月13日-4 月14日,CSDN 将在北京主办“Python 开发者日( 2019 )”,汇聚十余位来自阿里巴巴IBM英伟达等国内外一线科技公司的Python技术专家,还有数百位来自各行业领域的Python开发者。目前购票通道已开启,早鸟票限量发售中,3 月15日之前可享受优惠价 299 元(售完即止)。

推荐阅读:

  • 300道Python面试题,备战春招!

  • 2018中国开发者真实现状:40岁不做开发,算法工程师最稀缺!

  • 人生苦短,Python之父要解开这个困惑

  • 从起源、变体到评价指标,一文解读NLP的注意力机制

  • 女子偷师男子学校,变身区块链开发工程师,却说: “这次女人不会再缺席了!”

  • 云漫圈 | 如何给女朋友解释什么是HTTP

  • 从程序媛到全球研发副总裁,技术女神进击史!

  • 杨超越杯编程大赛上热搜:不懂技术真不敢追星女子偷师男子学校,变身区块链开发工程师,却说: “这次女人不会再缺席了!”

  • 为啥程序员下班后只关显示器从不关电脑?

❤点击“阅读原文”,查看历史精彩文章。

让数百万台手机训练同一个模型?Google把这套框架开源了相关推荐

  1. 全球数百万台 Mac 疑似因 Big Sur 更新险酿计算灾难,苹果官方回应来了!

    整理 | 夕颜 出品 | CSDN(ID:CSDNnews) 近日,苹果在发布会上推出了数款专用芯片M1支持的Mac新品,包括Mac book.MacBook Pro和Mac mini系列.随之一起重 ...

  2. 这个路由器漏洞已存在12年,可影响全球数百万台设备引发供应链攻击

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人",已经成为支撑社会正常运转的最基本元素之一,软件 ...

  3. 开源的 DNS 转发软件 Dnsmasq 被曝7个漏洞,可劫持数百万台设备

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 以色列安全咨询公司 JSOF 披露了 Dnsmasq 中的被统称为"DNSpooq" 的7个漏洞,可被用于针对数百 ...

  4. 新的 OpenWrt RCE 漏洞曝光,影响数百万台网络设备

    执行摘要 随着物联网的不断发展,物联网安全也越来越受到关注.自 2016 年下半年的 Mirai 僵尸网络攻击 事件之后,物联网相关的威胁层出不穷,多个在野漏洞被攻击者所利用,多个僵尸网络相继被研究人 ...

  5. 恶意软件“EXPENSIVEWALL”感染数百万台安卓设备

    Check Point发现一款Android恶意软件"ExpensiveWall",该名称根据其用来传播的应用程序中的其中一款命名,这款应用为墙纸应用"Lovely Wa ...

  6. KCdoes NetUSB 严重漏洞影响多家厂商的数百万台路由器

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 SentinelOne 公司的网络安全研究员发现,KCodes NetUSB 组件中存在一个高危漏洞 (CVE-2021-45608),影响网件 ...

  7. 一窥谷歌神经机器翻译模型真面貌 其底层框架开源

    去年,谷歌发布了 Google Neural Machine Translation (GNMT),即谷歌神经机器翻译,一个 sequence-to-sequence ("seq2seq&q ...

  8. 联想曝新型UEFI漏洞,影响70款数百万台笔记本电脑

    7月13日消息,联想公司生产的超70款笔记本电脑正受三个 UEFI 固件缓冲区溢出漏洞的影响,即CVE-2022-1890.CVE-2022-1891 和 CVE-2022-1892,这些漏洞能让攻击 ...

  9. 单张GPU搞定GPT-3超参数!先训练小模型,再“一键迁移” | 已开源

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 丰色 发自 凹非寺 量子位 | 公众号 QbitAI "一 ...

最新文章

  1. Oracle中Hint深入理解(原创)
  2. 使用SVG中的Symbol元素制作Icon
  3. dz seo插件_河北seo优化网络推广报价单
  4. linux inode100%
  5. 用installshield打包的asp.net程序
  6. ACM程序设计选修课——1036: Hungar的菜鸟赛季(YY)
  7. scala-jdbc-scalike操作jdbc数据库
  8. 使用adb命令启动APK方法
  9. 阿里巴巴矢量图标引入方法
  10. IIS:CS0016: 未能写入输出文件
  11. 按步搭建简单IoT微服务(3)
  12. @CacheEvict
  13. linux 拍照软件有哪些,六款基于Linux的开源照片管理软件推荐
  14. Photoshop从入门到精通所有视频教程(43G)以及素材资料免费拿
  15. 图像识别技术发展趋势分析
  16. 中国的南方人和北方人有什么区别?总算说透了!
  17. 实现QQ音乐项目的一些技术点jQuery,html5
  18. 新闻稿发布中没题材咋办?
  19. 抽象代数 04.05 群的直积
  20. 【Leetcode】487. Max Consecutive Ones II

热门文章

  1. Exchange Server 2013 安装完成后配置外部URL
  2. 思科生成树命令之debug spanning-tree(本文转载自:www.91ccie.coml
  3. 回到未来 – 大胆畅想如何追赶并超越腾讯模式
  4. ICRA2021 SLAM方向论文汇总
  5. php定时刷新token,PHP 定时任务获取微信access_token的简单示例
  6. 论文: Generating Software Test Data by Evolution---自己觉得很好的句子----(1)introduction
  7. 【转】ubuntu下实用的三款录屏软件
  8. ActivityRouter 框架简单实用
  9. ROW_NUMBER() OVER函数的基本用法
  10. Win10命令行激活 电脑组装