为了解决隐私问题,谷歌曾在2017年提出联合学习。联合学习是一种分布式机器学习方法,用于在智能手机、智能手表、笔记本电脑等边缘设备收集的数据上计算机器学习模型。另一种最新的技术包括gossip学习,这是一种分散的替代联合学习的方法。
虽然这些方法强调数据隐私,但选择正确的框架或库来安全地训练你的模型会变得很麻烦。这就是像PySyft这样关注隐私的工具发挥作用的地方,因为像PyTorch这样的库并没有开箱即用的设施来执行联合学习。简单地说,PySyft是PyTorch周围的一个掩护,它为PyTorch增加了额外的功能。
PyTorch与PySyft
PyTorch是一个开源的机器学习框架,有利于构建深度学习项目。它强调灵活性,允许深度学习模型用成语Python表达。PyTorch的使用很自然,就像Numpy/ SciPy/ Scikit-learn等,但具有强大的GPU加速功能。此外,它支持动态计算图,允许你在飞行中改变网络的行为方式,与谷歌的TensorFlow等框架中使用的静态图不同。
另一方面,PySyft是一个开源框架,能够在深度学习中实现安全的私人计算。它将私人数据与模型训练解耦,在PyTorch、Keras和TensorFlow等主要深度学习框架中使用联合学习、差异隐私、同态加密(HE)和多方计算(MPC)。
为什么是PySyft?
大多数软件库和框架让你在你拥有的信息上进行计算,并在你控制的机器内部看到。这意味着,如果不首先获得该信息或机器的所有权,你就不能计算信息。PySyft的开发者说,这限制了人类的合作,并系统地推动了数据的集中化,因为如果不把数据放在一个地方,你就无法使用数据。
Syft生态系统计划改变这个系统,允许开发者和研究人员编写软件,可以在机器上计算他们不拥有的信息,包括云中的服务器、个人台式机、手机、笔记本电脑、网站和边缘设备。"无论你的数据想住在你的所有权中,'Syft生态系统'的存在是为了帮助把它放在那里,同时允许它被私人用于计算,"OpenMined团队说。
PySyft如何工作?
PySyft的原理首次发表在一篇题为 "保护隐私的深度学习的通用框架 "的研究论文中,其首次实施由OpenMined领导,这是一个开源社区,希望通过降低进入私人人工智能技术的门槛,使世界更加保护隐私。
PySyft的主要组成部分包括一个名为SyftTensor的抽象。它代表了数据的转换状态,并可以被链起来。头部的链状结构是PyTorch张量,SyftTensors所体现的条件变化分别用父属性向上访问和用子属性向下访问。
(来源:arXiv)
PySyft相对简单,几乎与标准的PyTorch、Keras或TensorFlow相似。下面的视觉图说明了使用PySyft建立的一个简单的分类模型。
(来源:OpenMind)
走向数据隐私
随着我们的进步,隐私可能会成为下一代深度学习框架的基本构建块之一。PySyft是在深度学习中启用隐私模型的首批尝试之一。而PyTorch也在进行类似的工作,在边缘设备上执行ML模型,以保护隐私,减少延迟,并实现新的互动用例。
例如,其PyTorch Mobile仍处于测试阶段,允许开发人员和研究人员无缝地从训练模型到部署模型,同时完全留在PyTorch生态系统内。它提供了一个端到端的工作流程,简化了移动设备的研究和生产环境,同时通过联合学习技术为保护隐私的功能铺平了道路。
PyTorch和PySyft的区别》一文出现在《印度分析杂志》上。