Machine Learning 隐私问题:联邦学习了解一下

ITDaily & AI 中国
每日最新 IT 圈 AI 圈新鲜事吐槽 给你想看的
Machine Learning 隐私问题:联邦学习了解一下文章插图
随着人们对隐私的日益关注 , 联邦学习(Federated Learning)已经成为现代机器学习中必不可少的概念之一 。 联邦学习(Federated Learning)面向的是在不向云服务器上传个人信息或可识别数据的情况下训练模型 。 你可能已经知道 , 一个机器学习模型需要大量的数据来训练 。 但有些时候 , 训练数据是敏感的 , 人们越来越不愿意与第三方分享他们的个人数据 。 随着人们对隐私的关注度越来越高 , 现在联邦学习(Federated Learning)在大多数机器学习应用中是必不可少的 。
数据诞生于边缘
全球超过10亿台手机、平板电脑、物联网设备等边缘设备不断产生数据 。 对于企业和开发者来说 , 这些数据可以通过训练更好的模型 , 让他们的产品 , 以及用户体验更好 。 通常情况下 , 客户端将数据发送到服务器 , 模型在服务器上运行推理并返回预测 。 一旦模型返回预测 , 客户端就会发送反馈信息 , 利用这些反馈信息 , 模型会进行自我修正 。 虽然这在收集数据和减少边缘设备的计算压力方面具有优势 , 但它面临着关于离线使用、延迟以及更重要的隐私问题 。
Machine Learning 隐私问题:联邦学习了解一下文章插图
云上的模型推理 。 图片由作者提供
虽然该模型可以在本地进行训练和推断 , 但它也有其局限性 。 单个用户提供的数据太少 , 模型无法得到充分的训练 。 在这种情况下 , 其他设备的数据并没有贡献 , 这就导致有一个非通用的数据 。 这已经成为隐私和更好的智能之间的斗争 , 直到最近才有几乎没有解决方案 。
联邦学习(Federated Learning)是如何工作的?在联邦学习(Federated Learning)中 , 服务器将训练好的模型(M1)分发到客户端 。 客户端在本地可用数据上训练模型 。 然后 , 这些模型被送回服务器而不是数据 , 在那里它们被平均化以产生一个新的模型(M2) 。 这个新模型(M2)现在作为主要模型 , 并再次被分发到客户端 。 这个过程不断重复 , 直到模型达到满意的结果 。 在每一次迭代中 , 模型都会比原来更好一些 。 因此 , 联邦学习(Federated Learning)诞生了更好的智能 , 同时用户的个人数据在其设备中是安全的 。
Machine Learning 隐私问题:联邦学习了解一下文章插图
Machine Learning 隐私问题:联邦学习了解一下文章插图
联邦学习(Federated Learning)最常见的例子是谷歌的键盘应用Gboard 。 机器学习模型改善了用户体验 , 比如滑动输入、自动更正、下一个单词预测、语音转文字等 。 联邦学习(Federated Learning)在这里发挥了巨大的作用 , 因为你输入的内容是你非常个人化的 , 你不会想把你的数据发送到服务器上 。 本地模型用你的数据进行训练 , 然后发送到服务器 , 就像来自不同客户端的众多其他模型一样 。 服务器将这些新模型的平均值产生一个新模型 。 服务器现在将最新的模型分发到客户端 。 这个过程永远重复 。
安全协议即使用户数据没有上传到服务器上 , 模型也有可能被逆向工程获取用户数据 。 为了解决这个问题 , 采用了模型聚合和客户端数据加密的方法 。
联邦学习(Federated Learning)协议将模型输出的数据进行组合和汇总 , 服务器只能访问汇总模型 , 而不能访问各个模型 。 在这里 , 设备只报告计算所需的数据 。 服务器将这个模型分发到所有的客户端 。
【Machine Learning 隐私问题:联邦学习了解一下】屏蔽用于在聚合过程中取消来自客户端的相反数据点 。 由于被屏蔽的值被发送到服务器 , 任何人都很难拦截这些值 , 并对任何个人数据进行反向工程 。
TensorFlow 联邦化TensorFlow Federated(TFF)是谷歌TensorFlow团队做的一个开源的去中心化数据联邦学习(Federated Learning)框架 。 TFF仍处于起步阶段 , 有很多需要改进的地方 。 在撰写本文时 , TFF只提供本地模拟运行时 , 没有部署选项 。
你可以使用pip包管理器安装TensorFlow Federated 。
pip install tensorflow_federatedTensorFlow Federated提供了两套接口 , 即Federated Learning(FL)和Federated Core 。 使用联邦学习(Federated Learning)接口 , 开发者可以实现联合训练或联合评估 , 开发者可以将联邦学习(Federated Learning)应用到现有的TensorFlow模型中 。 联合核心接口用于测试和表达新的联合算法 , 并运行本地的时间模拟 。