摘要: 隐私数据与机器学习看似矛盾,其实不然。如何有效保护机器学习训练中的隐私数据?谷歌专家给出了答案——PATE框架,就算你不太懂隐私保护的知识,也可以通过PATE框架来保护机器学习里的训练数据。
最近关于互联网隐私引发大众的关注于讨论,前有Facebook“数据门”,小扎不得不换下常穿的灰色短袖和牛仔装,换上深蓝色西装参加国会听证;后有百度总裁李彦宏称中国用户愿用隐私方便和效率引发网友强烈反感,网友评论说,牺牲隐私不一定换来效率,还可能换来死亡,比如搜索到莆田医院,还可能换来经济损失,比如大数据杀熟等等;近来有知乎强制隐私搜集条款,引发部分用户卸载APP,国内很多APP若不同意给予相关权限,则无法正常使用,这真是陷入两难境地。为什么现在很多应用会收集数据呢,《未来简史》这本书中给了答案——未来的世界数据为王,人类可能只是放大版的蚂蚁,用于产生数据。有了数据后,加上合适的算法可以完成很多事情,这些技术均与机器学习、深度学习以及数据科学相关。人们担心自己的数据被收集后会被泄露或者是被不正当使用,因此,如何将隐私数据很好地保护起来是公司需要考虑的主要问题之一。本文将分析隐私与机器学习二者的关系,并设计了一种PATE框架,能够很好地避免被动地泄露用户隐私数据,下面带大家一起看看吧。
在许多机器学习应用中,比如用于医学诊断的机器学习,希望有一种算法在不存储用户敏感信息(比如个别患者的特定病史)的情况下,就可以完成相应的任务。差分隐私(Differential privacy)是一种被广泛认可的隐私保护模型,它通过对数据添加干扰噪声的方式保护锁发布数据中潜在用户的隐私信息,从而达到即便攻击者已经掌握了除某一条信息以外的其它信息,仍然无法推测出这条信息。利用差分隐私,可以设计出合适的机器学习算法来负责任地在隐私数据上训练模型。小组(Martín Abadi、 Úlfar Erlingsson等人)一系列的工作都是围绕差分隐私如何使得机器学习研究人员更容易地为隐私保护做出贡献,本文将阐述如如何让隐私和机器学习之间进行愉快的协同作用。
小组最新的工作是PATE算法(Private Aggregation of Teacher Ensembles,PATE),发表在2018年ICLR上。其中一个重要的贡献是,知道如何训练有监督机器学习模型的研究人员都将有助于研究用于机器学习的差分隐私。PATE框架通过仔细协调几个不同机器学习模型的活动来实现隐私学习,只要遵循PATE框架指定程序,生成的模型就会有隐私保护。
为什么需要隐私机器学习算法?机器学习算法的工作方式通过大量数据并更新其参数来学习数据中的关系。理想情况下,希望这些机器学习模型的学习到一般模型(比如“吸烟患者更容易患心脏病”),而不是训练特定实例(比如“Jane Smith患有心脏病”)。不幸的是,机器学习算法没有学会默认地忽视这些细节,如果想用机器学习来解决某个重要的任务,比如癌症诊断模型,当发布机器学习模型时(比如开源癌症诊断模型),可能无意中透露训练集的相关信息,恶意攻击者可能从发布的模型获得关于Jane Smith的私密信息,这就是差分隐私应用的地方。
如何定义和保护隐私?科学家在分析数据时提出了很多方法来提供隐私保护,比较流行的做法是在分析数据之前,删除私人细节或随机值替代等。一般将电话号码和邮编等细节匿名处理,然而匿名数据并不总是足以满足要求,当攻击者获得关于数据集中表示个体的辅助信息时,这种匿名操作提供的隐私性就会大大降低。因此,定义和保护隐私是困难的,很难估计出攻击者能够获得的信息范围。 差分隐私是用于隐私保护的模型,其基本思想是随机化部分机制的行为以提供隐私,将随机性引入到学习算法中的直觉是很难从训练好的模型中根据训练数据辨别出隐私行为。 本文使用的差分隐私版本是要求训练集改变一个例子时学习到的任何特定参数的概率大致相同。这样做的原因是,如果单个病人(Jane Smith)的数据不影响模型学习的结果,那么该病人的数据就不会被记录,其隐私受到保护。本文将这种概率称为隐私预算(privacy budget),较小的隐私预算对应更强的隐私保护。
在PATE中,首先在数据子集中分离出私有数据集,如下图所示。如果Jane Smith记录在私有数据集中,那么它只在一个分区中存在。在每个分区上训练机器学习模型,将其称为教师模型(teacher model)。教师模型的训练方式是没有约束的,这也是PATE的主要优点之一。所有的教师解决相同的机器学习任务,但它们都是独立训练的。即,只有一位教师分析了Jane Smith记录的数据。
隐私保护和由聚合机制预测标签的正确性都源于教师之间达成的共识。当大多数教师投票某一类别时,增加噪声并不会改变投票最多的类别结果,这表明聚合机制有非常强的隐私保证。
差分隐私能够很好地与机器学习的任务相一致,比如在学习过程中,记住像Jane Smith病例这样的特殊训练实例是侵犯隐私的行为,也是一种过拟合现象,降低了模型泛化能力。
这一过程促使我们聚合机制进行改进,使其具有选择性:教师只对学生提出的部分问题作出回应。当教师提问时,首先检查教师之间的共识度是否足够高,若投票数大于设定的阈值,则接受学生的询问,否则拒绝。阈值的设定是随机的,以便在选择过程中提供隐私性。下图表明了该过程:
主要影响方法提供的隐私保护的强度有两个:
- 1.教师之间的共识:共识越强烈,输出相应标签所花费的隐私预算也越少。
- 2.学生询问的数量:学生询问标签时,教师产生标签花费的预算会被添加到总的隐私成本中,尽可能少地对教师进行训练,增强提供的隐私保护。 加强教师共识,需要在小量数据集上训练一大批教师模型,提高这些模型的准确性和泛化能力将有助于提升共识。
PATE框架已经开源,并且可在TensorFlow模型库中调用,使用以下代码克隆相关程序并设置变量:
cd
git clone https://github.com/tensorflow/models
cd models
export PYTHONPATH=$(pwd):$PYTHONPATH
cd research/differential_privacy/multiple_teachers
第一步是训练教师模型,以下演示的是在MNIST手写体数据集上训练250位教师模型:
python train_teachers.py --nb_teachers=250 --teacher_id=0 --dataset=mnist
python train_teachers.py --nb_teachers=250 --teacher_id=1 --dataset=mnist
...
python train_teachers.py --nb_teachers=250 --teacher_id=248 --dataset=mnist
python train_teachers.py --nb_teachers=250 --teacher_id=249 --dataset=mnist
训练好后,加载这些教师模型,并应用聚合机制来监督学生模型的训练:
python train_student.py --nb_teachers=250 --dataset=mnist --stdnt_share=1000 --lap_scale=20 --save_labels=True
可以看到,在聚合机制中引入了拉普拉斯尺度1/20的噪声,训练好后保存在文件/tmp/mnist_250_student_clean_votes_lap_20.npy中。运行分析脚本来了解学生模型保护差异隐私的界限值,并将noise_eps设置为 2/lap_scale:
python analysis.py --counts_file=/tmp/mnist_250_student_clean_votes_lap_20.npy --max_examples=1000 --delta=1e-5 --noise_eps=0.1 --input_is_counts
以上设置再现了PATE框架,感兴趣的读者可以在Github查阅全部代码。
更多PATE相关资源- 2017 ICLR上发表的PATE论文以及会上演讲;
- 2018 ICLR上发表的文章,将PATE应用于多分类以及不平衡数据;
- Github上关于PATE的代码;
- Github上关于优化后PATE隐私分析的代码;
在机器学习的应用中,隐私应该被认为是盟友,而不是敌人。随着技术的改进。差分隐私很可能会成为一个有效的正则化工具,能产生更好的行为模型。对于机器学习研究人员而言,就算不太懂隐私保护的知识,也可以通过PATE框架来保护机器学习里的训练数据。
本文由阿里云云栖社区组织翻译。文章原标题《Privacy and machine learning: two unexpected allies?》
原文链接