哈伯,你好!
本文是关于保留隐私的机器学习的。我们将讨论为什么以及如何在训练(例如神经网络)时确保用户的隐私。
本文的大部分内容是对安德鲁·特拉斯克(Andrew Trask)演讲和演讲的重述。他是OpenMined社区的负责人。这些人通过机器学习中的隐私主题团结在一起。特别是,OpenMined正在使用PySyft库。这是PyTorch,Tensorflow或Keras的包装,用于私人机器学习。在本文中,我们将了解PySyft。
动机
让我们想对人类肿瘤进行分类。如果我们可以进行这样的分类,我们将为数百万人提供帮助。然后,我们的第一步是找到合适的数据集。请注意,此数据是私有数据,很难访问它。大多数人都不想公开谈论自己的病。
我将阐明为什么数据匿名化还不够。2007年,Netflix从500,000个用户那里发布了1000万部电影收视率。该数据集是创建最佳推荐系统的比赛的一部分。其中,人名和电影名被标识符代替。但是,研究人员能够使用带有IMDb的开放数据来识别个人。原始文章中有更多详细信息。
然后,您需要的不仅仅是匿名化。此外,我认为可以在我们无法访问的数据上训练神经网络。然后,将确保隐私,我们将能够建立一个肿瘤分类器。此外,我们将能够治疗其他疾病,例如痴呆症或抑郁症。如果我们学习在机器学习中使用私有数据,则可以解决重要的世界性问题。
远程执行/联合学习
假设我们是苹果。我们希望使我们的服务更好。例如,我们要改善自动完成功能。然后,我们需要数据:用户键入什么单词和顺序。我们可以从iPhone和iPad下载这些数据,并将其存储在公司的服务器上,并且数据集已准备就绪。但是我们侵犯了隐私!

由于数据不会进入模型,因此模型会进入数据。这是我们的第一个想法。我们将把神经网络发送给用户,我们将从他们的数据中本地学习,并获得具有更新权重的模型。``远程执行''的另一个功能是并行模型训练的能力,即 同时在不同的设备上。
PySyft — python- . , . . , Torch-, .
import torch as th
import syft as sy
hook = sy.TorchHook(th)
bob = sy.VirtualWorker(hook, id="bob")
x = th.tensor([1,2,3,4,5]).send(bob)
y = th.tensor([1,1,1,1,1]).send(bob)
z = x + y
bob._objects
z = z.get()
z
bob._objects
tensor.get()
. . , - ?
Differential Privacy
, , . , bag-of-words, , {"": " "}. . Differential Privacy — , .
.
. — . , . , , , . . , , . , . .

, - , 50/50. , . . , 60% ''. , . : 35% '', 25% '', 15% '' 25% ''. , 70% '' 30% ''. .
, . , , . , , .
. , . . , ( ).
. 'Remote Execution' , . , . .
. . , Secure multi-party computation Homomorphic Encryption. ?
:
- Apple , . .
- — "Differential Privacy". , . .
: