缪昊洋,高谭芮,汤影
(成都理工大学计算机与网络安全学院,四川成都 610000)
联邦学习是为了解决数据孤岛问题而提出的[1]。但在联邦学习中,交换模型参数或者梯度信息已经不再安全[2]。为了更好地保护联邦学习的隐私安全,文献[3]提出了动态模型聚合权重的联邦学习框架。文献[4]结合区块链提出了一种去中心化、安全、公平的联邦学习模型。文献[5]在差分隐私的基础上进行改进,保证联邦模型训练过程免受推理攻击的影响。
基于保护联邦学习中客户端数据安全的目的,文中提出了一种基于生成模型的联邦学习算法(FedSGAN)。
联邦学习是一种机器学习技术,它能够让多个客户端共同训练一个模型。但是数据是保留在每个客户端内部的,这样可以避免将数据汇总到单个机构或者是服务器上,从而可以很好地保护数据隐私,解决数据孤岛问题,如图1 所示。联邦学习在医疗、金融等领域广泛应用[6-9]。
图1 联邦学习框架
半监督生成对抗模型[10](Semi-supervised Generative Adversarial Network,SGAN)结合了半监督学习和生成对抗模型的优点,已被广泛应用于图像生成[11]、文本生成[12]等领域。半监督生成对抗模型结构如图2 所示。
梯度深度泄露算法(Deep Leakage from Gradient,DLG)的主要原理是利用深度神经网络从待恢复图像的梯度信息中学习特征表示。具体而言,该算法通过将待恢复图像的梯度信息作为输入,构建深度神经网络模型,并通过反向传播算法来更新模型的权重参数。在模型训练完成后,该算法可以通过输入待恢复图像的梯度信息,利用已学习到的特征表示来进行图像恢复。
该节将介绍所提出的基于生成模型的联邦学习隐私保护算法——FedSGAN 算法。该算法主要由三个模块构成,如图3 所示。
图3 FedSGAN算法
第一个模块是SGAN 模块。该模块主要作用于联邦学习训练的开始阶段,初始化噪声向量z,通过生成器G(z)得到生成的图片x*,随后,生成的图片通过判别器D(x)得到对应的标签y*,最后,生成的图片和对应的标签组合起来得到伪数据集(x*,y*)。
第二个模块是训练模块。从SGAN 模块中得到伪数据集后,通过联邦学习本地模型进行训练,将训练好的模型参数w传输到服务器进行聚合。
第三个模块是聚合模块。服务器收到客户端发来的模型参数w后,将各个客户端的模型参数进行聚合,得到服务器的模型参数wG。随后服务器分发给各个客户端,进行下一轮的训练。
首先,各个客户端内部利用客户端本地数据集D训练本地的SGAN 网络模型。在训练一定轮次后,可以得到生成器G(z)和判别器D(x),其中,z是随机初始化的噪声向量,而x是客户端本地SGAN 模块生成的图片或者本地数据集。
随后,开始联邦学习训练。在联邦学习第t个训练轮次中,每个被选中的客户端都会随机初始化噪声向量zt,zt通过生成器G(zt) 得到伪数据集xt*。xt*再通过D(xt*)得到对应的伪标签yt*。此时的yt*肯定不会是完全正确的。通常来说,标签不正确定会影响最后的结果,但是,文献[13]提出了一种扰动标签的方法,该方法在每一次迭代过程中,将部分标签随机替换为错误标签,可以有效的防止过拟合。所以在算法的这一部分也是同样的理由,并不需要yt*是完全正确的。
最后,使用得到的(xt*,yt*) 进行客户端本地训练,更新模型参数wt得到wt+1,并且发送到服务器通过联邦平均(Federated Averaging,FedAvg)算法进行聚合,然后服务器端将聚合后的模型参数分发到各个客户端,进行下一轮次的训练。
FedSGAN 算法如算法1 所示。
算法1.FedSGAN 算法
输入:客户端数量N,客户端编号i=1,2,…,N,客户端本地数据集Dk,联邦学习迭代次数T,初始化模型参数w0。
输出:模型参数wT
实验使用DermaMNIST 来模拟现实中的联邦学习医疗图像分类场景[14]。该数据集是在HAM10000数据集的基础上改进而来。HAM10000 是常见色素性皮肤病变的大量多源皮肤镜图像集合[15]。
DermaMNIST 数据集由10 015 张皮肤镜图像组成,这些图像被分类为七种不同的疾病,被公式化为多类别分类任务。在实验中将图像分成训练集和测试集,比例为8∶2,其中,训练集8 010 张,测试集2 005 张。该数据集中每张图像大小为3×28×28。DermaMNIST 的各标签数量如表1 所示。
表1 DermaMNIST上各标签数量
在实验中,设置了10 个客户端,一个服务器。将大小为8 010 张图片的训练集随机分配到10 个客户端中,每个客户端本地训练集大小为801。需要注意的是,由于DermaMNIST 数据集各个标签数量并不平衡,所以对于数据的划分使用的是非独立同分布。
在训练过程中使用Adam 作为优化器,使用交叉熵作为损失函数,每批次大小为64,训练轮次为100,学习率为0.01,网络结构选用的是三层全连接,中间一层的神经元个数为50。
为了评估生成的图片与原图片之间的差异性,引入均方误差(Mean Squared Error,MSE)、峰值信噪比[16](Peak Signal-to-Noise Ratio,PSNR)、结构相似性[17](Structural Similarity,SSIM)这三种评价指标。
在实验结果中,如果MSE 的值越小,PSNR 的值越大(超过30 dB),SSIM 的值越接近1(取值为[0,1]),那么两幅图片越相似。
在实验开始阶段,首先训练客户端本地SGAN模块。训练完成后,得到每个客户端SGAN 模块中判别器的准确率,实验结果如表2 所示。
在完成对客户端SGAN 训练后,每个客户端不再使用本地数据集,而是在联邦学习训练的每一个轮次中随机生成噪声向量z。噪声向量z通过SGAN 中的生成器生成伪本地数据x*,x*再通过SGAN 中的判别器得到对应的标签y*。(x*,y*)通过客户端本地网络结构进行联邦学习训练。实验结果如表3所示。
表3 DermaMNIST上的准确率
根据在DermaMNIST 数据集上的准确率来看,FedSGAN 与FedAvg 两种算法之间仅仅相差0.02%。接下来,讨论两种算法中客户端数据的隐私安全性。为了更好地验证实验结果,使用DLG 算法对上述两个算法的客户端进行攻击,如图4 所示。
图4 DLG算法对客户端进行攻击
在图4中,第一列是客户端训练使用的图像,前两行使用的是FedAvg算法,即Derma MNIST中真实的图像,第一列第三行则是由SGAN 进行生成的伪数据。可以看到当DLG 算法迭代到150 轮的时候,得到的图片就是客户端训练使用的图片。
而由于FedSGAN 算法中客户端使用的是伪数据集x*,所以为了验证伪数据集x*与原数据集x的差异性,使用MSE、PSNR、SSIM 三种评价指标对生成的数据与原DermaMNIST 数据集进行评估,得到的实验结果如表4 所示。
表4 对图像进行评估
根据MSE、PSNR、SSIM 等评价指标计算的数据可以知道,利用SGAN 生成的伪数据x*与原数据集x完全不同。所以,FedSGAN 算法即使被DLG 算法攻击导致泄露x*,也依然可以保证原数据集x的隐私安全。
基于保护客户端数据安全的目的,提出了一种基于生成模型的联邦学习隐私保护算法FedSGAN,在DermaMNIST 上进行了仿真实验。实验结果表明,FedSGAN 与联邦学习经典算法FedAvg 在DermaMNIST 上的准确率仅仅相差0.02%。在此基础上使用DLG 算法对两种算法的隐私安全性进行验证。FedAvg 和FedSGAN 算法都能够被DLG 恢复客户端数据,但是由于FedSGAN 训练使用的是生成的伪数据集,根据MSE、PSNR、SSIM 等评价指标可知,FedSGAN 可以在保证分类准确率的基础上有效保护原有数据集的隐私安全。