论文阅读:Privacy-Preserving Deep Learning

Privacy-Preserving Deep Learning

文章链接:http://www.cs.cornell.edu/~shmat/shmat_ccs15.pdf

发表于CCS2015

文章提出的动机:

  • 深度学习所需的大量数据收集存在明显的隐私问题。用户的个人高度敏感数据,如照片和录音,由收集这些数据的公司无限期保存。用户既不能删除它,也不能限制它的使用目的。此外,集中保存的数据受到法律传唤和法外监督。许多数据所有者(例如,可能希望将深度学习方法应用于临床记录的医疗机构)因隐私和保密问题而无法共享数据,因此无法从大规模深度学习中受益。

创新点:

     模型训练过程中选择性分享参数 提出了SSGD 和DSSGD架构

论文阅读:Privacy-Preserving Deep Learning

算法:

DSSGD——分布式选择SGD

回顾深度学习模型的训练过程,就是其模型参数的更新过程:

论文阅读:Privacy-Preserving Deep Learning

传统的方法是将大量的数据集中到一个数据集中训练模型,在这里作者给出了一种新的训练方法——用户在本地用自己的数据训练模型,然后通过某种方法优化彼此的模型参数,从而提升训练效果也保护数据隐私。

剩下的问题是:需要交换的信息是什么?怎么进行交换?

第一个问题的答案是参数梯度,第二个问题是本文要解决的问题。

论文阅读:Privacy-Preserving Deep Learning

本地训练:

首先,用户初始化自己的模型参数,然后按照标准的SGD算法在本地用自己的数据训练模型。然后将选取参数梯度上传到全局参数。

选择梯度方法:1. 将所有的梯度按照绝对值从大到小排序,选择前k大的梯度上传;2. 选取所有参数梯度绝对值中大于阈值参数梯度,然后再从其中随机选择一部分上传。

论文阅读:Privacy-Preserving Deep Learning本地训练并选择上传梯度

这样其他的用户就可以下载用户i上传的梯度来更新自己本地的参数。

用户上传下载的顺序有Round Robin、random order和asynchronous三种。

参数服务器聚合梯度

另外一个需要解决的问题便是服务器端如何聚合聚合参数和对用户的下载请求做出响应。

论文阅读:Privacy-Preserving Deep Learning服务器聚合梯度并对用户请求做出响应

需要说明的是服务器端保存用户部分的梯度变化,虽然不会直接泄露用户的数据信息,但是现在也有GAN等方法可以对用户的隐私进行攻击