Privacy-Preserving Deep Learning via Additively Homomorphic Encryption论文理解

论文贡献:

安全上:系统不会向诚实但好奇的参数(云)服务器泄露参与者的信息。

精确度上:系统达到所有参与者联合数据集上训练的相应深度学习系统相同的精度。

 

 

技术总览:

我们的神经网络可以通过一个称为异步SGD的SGD变体进行训练,该变体具有数据并行性模型并行性

具体:

ASGD:①对神经网络的全局权重向量W_{global}进行随机初始化。②每次迭代时,在本地数据集(数据并行性)上运行神经网络的副本,并将相应的本地梯度向量G_{local}发送到云服务器。对于每个G_{local},云服务器随后更新全局参数,如下所示:

W_{global}:=W_{global}-\alpha \cdot G_{local}                                  (1)

\alpha为学习率。

更新后的全局权重参数W_{global}将广播所有副本,然后由这些副本替换旧的权重参数。更新和广播的过程被重复,知道达到预先定义的成本函数所需的最小值。对于模型并行性,通过向量W_{global}G_{local}的分量并行计算(1)处的更新。

Shokri-Shmatikov system:文中又介绍了一种Shokri-Shmatikov system,使用了梯度选择ASGD,由于噪声的存在,造成学习的精度下降。这里就不做介绍。

我们的系统

我的理解是对梯度下降进行同态加密,即:

全局参数更新公式:E(W_{global}):=E(W_{global})+E(-\alpha \cdot G_{local})             (2)

同态加密公式:    E(W_{global})+E(-\alpha \cdot G_{local})=E(W_{global}-\alpha \cdot G_{local})  (3)

此外,为保证全同态密文的完整性,每个客户端都将使用一个安全的通道,如TLS/SSL(彼此不同)来与服务器进行同态密文通信。

 

2.1:列出了全同态加密的定义

2.2:机器学习的运行机制:

SGD向量化:

\\W=(W_{1},...,W_{n_{gd}}) \subset \mathbb{R}^{n_{gd}} \\ G=(\frac{\delta J_{|batch|=t}}{\delta {W_1}},...,\frac{\delta J_{|batch|=t}}{\delta {W_n_{(gd)}}})                                       (4)

SGD更新法则:

W:=W-\alpha \cdot G    (5)

 

因此,计算梯度G,就可以更新权重W。因此,计算G时使用数据可以是分布式的(数据并行性)。此外,可以通过考虑向量的单独部分(即模型并行性)来并行更新过程。

 

Asynchronous SGD:

具体来说,AsynchronousSGD将其权重向量W和梯度G拆分为n_{pu}个部分,即

\\W=(W^{(1)},...,W^{(n_{pu})}) \\\\ G=(G^{(1)},...,G^{(1)},...,G^{(n_{pu})})

因此,(5)上的梯度规则变为:

W^{(i)}:=W^{(i)}-\alpha \cdot G^{(i)}

 

其中,公式在处理单元PU_i上计算,由于处理单元PU_1,...,PU_{n_{pu}}可以并行运行,ASGD显著提升了神经网络训练的规模和速度。

3.梯度泄露信息

例一(单个神经元):这里,激活函数为f,预测值为h_{W,b(x)-y}\overset{def}= f(\sum_{i=1}^{d}W_ix_i+b),真实值为y,那么,成本函数公式为:

(O1)注意到\eta _k/\eta =x_k,因此,如果\eta _k\eta被共享到云服务器,x_k将完全泄露。例如,如果随机选择1%的本地梯度,共享给服务器,那么\eta _{k}\eta共享的概率是(1/100)\times (1/100)=1/10^4,这是不可忽略的。

(O2)注意到梯度\eta _kx_k成正比(对所有的1\leqslant i\leqslant d)。因此,当x=(x_1,...,x_d)是一张图像时,可以使用梯度生成相关的“成比例图像”,然后通过猜测获得真实值y。

例二:通用神经网络,Fig3(b):

特别的:

 

其中W_{ik}^{(1)}是权重参数,将第1层的输入x_k与第2层的隐藏节点i连接起来; \xi _i是一个实数。

例三:Fig3(c)(通用神经网络,有规律的)

在有规律的神经网络中,我们有:

其中,符号都是例2的符号,b_{i}^{(1)}是第2层第i个节点的偏置量;\lambda \geqslant 0是正则项。

如O(1)所述,服务器知道\eta _{k}\eta的概率不可忽略。此外,在FIG3(C),我们使用了如下:

是数据x_k的近似值,在FIG3(C)中,我们使用\lambda =0.1,其他和例2一样。\frac{\lambda W_{ik}^{(1)}}{\xi _i},这一项是噪音值,但是真实值(0)仍然可见。

4.我们的系统:精准度无下降的隐私保护深度学习。

我们的系统如Fig4所示,由一个公共云服务器和N个学习参与者组成。

学习参与者:参与者共同设置公钥pk和私钥sk,以实现同态加法方案。密钥sk对云服务器保密,但是所有的参与者都知道。每个参与者将建立一个彼此不同的TLS/SSL安全通道,以通信和保护同态密文的完整性。

然后,参与者在本地保存他们的数据集,运行一个基于深度学习的神经网络副本。运行本地深度学习的初始(随机)权重W_{global}由参与者1初始化,参与者最初也向服务器发送

,其中W^{(i)}_{global}也是构成W_{global}的第i部分向量。将神经网络每次执行后得到的梯度向量G分解为n_{pu}个部分,即

然后又与学习率\alpha相乘,最后使用公钥pk进行加密。来自每个学习参与者的加密结果

被发送到服务器的处理单元PU_i。同样注意的是,学习率\alpha可以根据[14]中的描述在每个学习参与者进行本地的适应性变化。

如Fig4所示,每个参与者1\leq k\leq n将执行以下步骤:

1.下载服务器处理单元PU_j中存储的所有密文E(W_{global}^{(j)})(所有的j\in I_k^{(down)}=[1,\eta _{pu}])。通常I_k^{(down)}=[1,\eta _{pu}],即参与者将下载全局权重的所有加密部分,但如果学习参与者的下载带宽受限,则有可能出现I_k^{(down)}\nsubseteq [1,\eta _{pu}]

2.使用密钥sk解密上述密文,以获取W^{(i)}_{global},并将这些值替换到

的相应位置。

3.从本地数据集中获取一小批数据。

4.使用步骤2和3中的W_{global}值和数据项,计算相对于变量W_{global}的梯度

5.加密并发送密文

E(-\alpha \cdot G^{(i)})\forall i \in I_k^{(up)}\subset [1,\eta _{pu}]

回服务器的相应处理单元PU_i。上传的子集

 取决于参与者k的选择。对于完全上传,素有加密的梯度

都将上传到服务器。

W_{global}加密部分的下载和上传可以在两个方面异步进行:参与者彼此独立;处理单元也相互独立。

云服务器

云服务器是递归更新加密权重参数的常用地方。特别是,服务器上的每个处理单元PU_i在接收到任何加密E(\alpha \cdot G^{(i)})后,计算:

5.实例化我们的系统:

在本节中,我们使用加法同态加密方案来实例化第4节中的系统。我们使用以下方案来显示我们系统的两个实例:基于LWE的加密和Paillier加密。

5.1 使用LWE加密

1.\overset{g}{\leftarrow}代表离散高斯随机抽样,因此

x \overset{g}{\leftarrow}\mathbb{Z}_{(0,s)}代表 x出现的概率与exp(-\pi x^2/s^2)成正比。

2.\mathbb{Z}_{q} \subset (-q/2,q/2)是长度为q,以0位中心的整数集。

3.c=(c_{1},c_{2}) \in \mathbb{Z}_{q}^{1\times (n+l)}

4.n_{gd}用prec位表示的梯度数量;n_{gradup}:云服务器每个处理单元更新的梯度数量;n_{pu}:云服务器处理单元的数目

基于LWE的加密:

1.随机生成数   生成3个数q=q(\lambda ),l,s,并且都是正整数,返回pp=(q,l,p)pp=(q,l,p)。 

 数据编码和加密:

可以表示实数a\in \mathbb{R},prec位精度,整数\left \lfloor a\cdot 2^{(prec)} \right \rfloor。Fig4中实现加密E(\cdot ),因为W_{global}^{(i)}\alpha \cdot G^{(i)}都在空间\mathbb{R} ^{L_i},其中,L _i是区分的长度,因此

 

它充分描述一个真实向量的加密

 这个加密时对l=L_i

对于向量r,t\in \mathbb{R}^{L_i},解密为

 

注解:最后的实例化部分还没怎么看懂,如果看懂了还会继续更新。

 

 

 

 

 

 

 

 

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页