|如何在机器学习的框架里实现隐私保护?( 二 )


|如何在机器学习的框架里实现隐私保护?
本文插图

图3:TEE 实现方案
同态加密 , 是一种加密方法 , 可以在密文上计算而不需要密钥 , 而且计算结果是机密的 , 需要使用密钥才能解密成明文 。 一般地 , 同态加密算法仅实现了同态加法和同态乘法 , 因此需要把计算归约成一个数域上的加法和乘法电路 。 例如为了实现在神经网络上的同态加密计算 , 需要对网络做一些改动使得其只包含加法乘法和多项式运算操作:把 ReLU 换成多项式激活函数 , 运算使用定点数等 , 来自微软研究院的 SEAL 项目[2]是目前比较流行的相关开源项目 。 但同态加密的实际应用还面临很大困难 , 由于它只能进行加法和乘法操作 , 相比于明文运算增加了相当大的计算开销 , 所以现在的技术大约只能扩展到 MNIST 和 CIFAR 的推断部分[3] 。
多方安全计算是参与方以各自隐私数据为输入共同计算一个函数值 。 在整个过程中 , 各参与方除了计算结果 , 对他方的隐私数据没有额外的认知 。 多方安全计算能够同时确保输入的机密性和计算的正确性 , 其思想本质是输入数据是计算结果的一种冗余表示 , 有(无穷)多种输入样例对应相同的计算结果 , 因此引入随机数来掩盖这种冗余性从而实现机密计算 。 多方安全计算需要设计协议来实现加法和乘法操作 , 但它的瓶颈在于通信复杂度的提升[4] , 如广泛应用的 Beaver 协议对于每个乘法操作需要一轮通信开销 。
当前开源项目 Facebook CrypTen [5]和 Openminded PySyft [6] 用 Python 实现了多方安全计算的协议 , 可以进行如数据分离 , 数据模型分离等场景下的模型训练和推断 。 当前的研究热点是如何设计协议 , 降低通信开销 , 以及如何连接应用场景和技术实现 。
|如何在机器学习的框架里实现隐私保护?
本文插图

表1:机密计算技术特征
表1总结了三种机密计算技术的特征 。 机器学习研究者尝试着把这些机密计算的技术和机器学习的过程结合实现对计算过程隐私的保护 , 以及使用它们来降低模型差分隐私所需要的噪音[7] 。
|如何在机器学习的框架里实现隐私保护?
本文插图

第二章 模型的隐私
(Model privacy)
机密计算可以做到在训练过程中保护数据的隐私 。 那么训练后的模型会造成隐私训练数据的泄露吗?答案是可能的 , 因为机器学习的模型都会在一定程度上过拟合(泛化鸿沟) , 模型自身会记住(部分)训练数据 , 从而导致发布模型会造成隐私训练数据的泄露 。 一个例子是模型反向工程(model inversion, 从模型推断训练数据)[8], 如图4就是攻击者只用姓名和人脸识别系统的黑盒(blackbox)访问恢复出的训练集中的数据 。 另一个例子是成员推断(membership inference) , 它推断某个样本是不是在训练集中 , 较高的成员推断成功率显示模型对训练数据的隐私有泄露[9] 。
|如何在机器学习的框架里实现隐私保护?
本文插图

图4:从人脸识别模型通过黑盒攻击恢复出训练集中的数据 , 其中左图为攻击推断结果 , 右图为真实图像[8]
差分隐私(Differential Privacy, DP) 可以衡量和控制模型对训练数据的泄露 。 它从统计意义上刻画了单个数据样本对模型的影响 。 一个随机算法 M 符合 (?,δ)-DP 意味着对于任何两个相邻的数据集 S, S' 和任意事件 E 满足
P(M(S)∈E))≤e^? P(M(S' )∈E)+δ. (1)
实现算法差分隐私的一种通用做法是加噪音 。 加噪音会带来模型的性能损失 , 差分隐私机器学习(differential private machine learning) 就是研究如何更节省地加噪音 , 如何在给定隐私损失的要求下 , 加最少的噪音取得最好的性能 。 微软和中山大学在这方面的论文介绍了相关的研究工作[10] 。 研究人员发现加入的噪音和优化算法会相互影响:噪音会让优化算法避开最差曲率方向 , 优化算法的收缩性可以弱化之前步骤加的噪音 。 他们在分析中利用这种相互影响 , 推导出了一个新的基于期望曲率的理论性能界 , 可以显式地看出梯度扰动比另外两种扰动方式(目标扰动和输出扰动)的优势 , 并且给出了另外两种扰动无法利用这种相互影响的原因 。 据此 , 梯度扰动是一种实现差分隐私机器学习的有效算法 。


推荐阅读