内容简介:深度神经网络的训练和推断过程中,往往伴随着数据集信息的泄露。随着各类机器学习服务的发布和推广,用户通常只需要在本地对数据进行预处理、提取浅层特征后,发送到第三方平台或云端进行进一步的学习。但该过程中,用户的隐私数据面临着巨大的泄露风险:攻击者可以通过对第三方平台所收集到的中层特征进行攻击,恢复出用户的输入数据,如人脸信息、指纹信息等。因此,研究者希望提出一种新型隐私保护机制,使得即使攻击者知道神经网络内部参数,也无法从中层特征恢复出输入数据。
论文链接: https://arxiv.org/abs/1901.09546
深度神经网络的训练和推断过程中,往往伴随着数据集信息的泄露。随着各类机器学习服务的发布和推广,用户通常只需要在本地对数据进行预处理、提取浅层特征后,发送到第三方平台或云端进行进一步的学习。但该过程中,用户的隐私数据面临着巨大的泄露风险:攻击者可以通过对第三方平台所收集到的中层特征进行攻击,恢复出用户的输入数据,如人脸信息、指纹信息等。因此,研究者希望提出一种新型隐私保护机制,使得即使攻击者知道神经网络内部参数,也无法从中层特征恢复出输入数据。
该工作的核心在于研究一种中层特征可加密的神经网络。神经网络的中层特征往往包含丰富的信息,在整个神经网络中起到承上启下的作用。对中层特征加密,一方面要求加密后的特征无法泄露用户的敏感信息(输入数据等),另一方面需要使加密后的特征能够继续通过神经网络,完成下游任务。这要求在数据的隐私性和网络模型的精度之间找到一个平衡点。
在本文中,来自上海交大的研究者提出使用复数神经网络实现隐私保护,将目标隐私信息编码隐藏到复值特征的特定相位之中,从而实现隐私保护。总的来说,本文提出的算法类似于同态加密,但是相比于传统同态加密算法的极高的计算复杂度,该复数神经网络可以非常高效地进行运算,仅仅将计算复杂度提高到传统网络的两倍,提升了加密算法的应用潜力。一般来说,即使攻击者破解了神经网络的内部参数和中层特征,也无法破译隐私信息。
核心算法
研究者提出使用复数神经网络实现隐私保护,并通过一系列可能的攻击测试了该网络的安全性。具体而言,他们将神经网络原始的实数特征(实数表示的中层特征)转化为复数特征,搭建了复数神经网络,如下图(a)所示。
该复数神经网络可分为三个模块:
-
本地的编码模块。输入图片 I 首先通过编码器 g 提取浅层特征 a=g(I);再旋转一定角度进行加密,从而将真实特征隐藏到复值特征的特定相位之中: 其中θ为随机旋转角度,b 为干扰项,不包含任何与 a 有关的信息;最后将加密结果 x 发送到云端。
-
位于云端的处理模块。处理器Φ对用户发来的加密数据 x 进行处理,获取深层信息 h=Φ(x),并将处理结果发送回本地用户端。
-
本地的解码模块。收到云端的处理结果 h 后,先对 h 进行逆向旋转解密,再通过解码器 d 对解密后的信息进行解码,得到最终的输出: ,其中 R(⋅) 表示复数的实部。
注意,如果将特征 a+bi 旋转θ角度,其在处理模块Φ中对应的所有特征都应该被旋转了相同的角度,这样才能确保对 h 旋转解密后再解码,从而得到正确的结果。因此处理模块的操作需要满足下式,其中Φ_j 表示处理模块的第 j 层,f_j 为第 j 层的输出。
为确保该式成立,需要调整神经网络内部各层的实现细节。对于卷积层,需要将偏置项 bias 删去;对于 ReLU 层,使用 作为替代;对于 batch-normalization 层,有 ;对于 max-pooling 层,根据实部和虚部选择各个特征中模长最大的点;对于 dropout 层,随机选择一些特征并丢掉。
为了进一步提高隐私保护的能力,使攻击者无法猜测出真实的特征 a,研究者利用 GAN 的思想对编码器 g 进行训练。若用 a'表示使用随机角度θ'解密得到的特征,即 ,那么理想情况下 a 和 a'应该服从相同的分布,使攻击者无法分辨出真实的特征。因此他们引入一个辨别器 D,并使其无法分辨 a 和 a'。基于WGAN的编码器训练时损失函数如下:
复数神经网络的总 Loss 可以写成下式:
实验设计
研究者基于 ResNet-20/32/44/56/110、LeNet、VGG-16 和 AlexNet 等网络结构,在 CelebA、CIFAR-10、CUB-200 等数据集上开展实验,针对不同的攻击方式做了测试,结果证明,本文提出的复数神经网络可以有效抵御各种攻击,保证了用户数据的安全性,同时不破坏网络的分类能力。
他们设计了三种网络结构作为 baseline 进行比较实验,如上图 b 所示。Original network 指普通的深度神经网络;With noises 指在原始的网络中,通过直接对真实特征 a 加噪实现加密,γ为控制噪音振幅的参数;With additional layers 指在原始网络中加入 GAN 中所包含的多余层数。由于在复数神经网络的编码部分引入了 GAN 的结构,为了公平比较,在这里也对网络结构进行同样的修改,但不引入对抗训练。
研究者针对以下几种攻击方式设计了实验:
基于重建图像的攻击
此类攻击可能直接使用加密后的特征进行图像重建,也可能利用辨别器找到最佳角度θ ̂后,用解密后的特征 a^*=dec(R(xe^(-iθ ̂ ))) 重建图像。部分重建结果如下图所示。
对于利用辨别器找到最佳角度θ ̂的攻击方法,下图提供了在 CelebA 数据集上使用不同角度进行解密后的特征重建图片的结果,同时,他们统计了使用辨别器所找出的最佳角度与真实角度的差值,如下表所示,可以看出,辨别器无法准确地找出正确的旋转角度。
基于敏感信息的攻击
输入图片中的某些特征可能是敏感信息(如性别,肤色),传统的神经网络对敏感特征无法有效地隐藏,导致攻击者可以利用中层特征训练一个新的分类器,获得敏感信息。研究者设计了一系列实验以评测复数神经网络对敏感信息的保护作用。此类攻击可以分为以下几种类型:
-
使用用户数据集的原始图片训练分类敏感信息的分类器,通过 dec(a^* ) 重建输入图片后,输入分类器提取敏感信息;
-
直接使用 a^*训练一个分类器,并提取敏感信息;
-
使用 dec(a^*) 重建的图片训练分类器,并提取敏感信息;
-
利用 k-NN 算法,为 a^*寻找数据集中最接近的 K 个 a,从而提取对应的敏感信息。
前三种攻击类型的实验曲线如下图所示
第四种攻击的结果见下表,该表中还提供了各个网络的分类错误率与图片处理速度。可以看出,尽管引入了少量的计算量,复数神经网络可以有效地抵抗针对敏感信息推断的攻击。
作者联系方式:zqs1022@sjtu.edu.cn,qszhang.com
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 复数神经网络的反向传播算法及 PyTorch 实现方法
- 从一个复数点积算法看NEON的汇编优化
- Go 语言函数式编程系列教程(五) —— 数据类型篇:浮点型与复数类型
- 神经网络 – 序列预测LSTM神经网络落后
- 神经网络历史以及浅析神经网络与感知机
- 【神经网络】11行Python代码实现的神经网络
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。