论文阅读:dp-promise:Differentially Private Diffusion Probabilistic Models for Image Synthesis

文章简介

  • 由Nanjing University of Science and Technology的wang等人写作;
  • USENIXsecurity 2024
  • 选择阅读这篇文章的原因是完成网安课程的翻转课堂汇报,因此选取了和本人研究方向有一定关联度的,解决利用敏感图像(如人脸)训练深度学习模型所引发的隐私问题。

问题导入

  • 在许多依赖图像数据的敏感领域,如人脸识别和医学图像处理, 由于隐私问题,收集或发布大规模数据集往往极具挑战;
  • 通常降低隐私泄露风险的直接解决方案 ,是使用与敏感图像分布相同的合成图像来训练这些模型;
  • 最新研究发现,生成模型(包括生成对抗网络(GANs)和扩散模型(DMs))生成的合成图像仍然会泄露私人数据的隐私。由于 DM 在合成图像生成方面比 GAN 更强大,因此本文以保护 DM 的训练数据隐私为目标。
  • 尽管过往研究已经证明了 DM 在差异化私人图像生成方面的显著性能,但它们在实现 DP 时可能会注入不必要的噪声;

DP: 在这一段文字中,“DP”指的是“Differential Privacy”,即“差分隐私”。差分隐私是一种保护数据隐私的技术,旨在确保数据集中单个个体的信息不会被泄露,即使该数据集被用于分析或训练机器学习模型。简而言之,差分隐私通过在数据或模型输出中添加一定量的随机噪声来保护个体隐私。

dp-promise: 后文中会提到的“差分私有扩散概率模型 dp-promise”是一种新型的模型,它在图像合成任务中应用了差分隐私的概念。该模型利用了前向过程中的固有噪声(DM噪声,可能指的是扩散模型的噪声),并且从理论上保证了近似的差分隐私。这意味着模型能够在保护数据隐私的同时进行图像合成,而不是像传统方法那样在已经存在噪声的前向过程之外再注入额外的差分隐私噪声,从而避免了损害模型的实用性。

解决思路

  • 可以观察到,基于 DM 噪声注入图像计算出的梯度是 “噪声” 梯度,在特定隐私预算下与 DP-SGD 梯度效果相同;
  • 因此,有可能在注入较少 DP 噪声的情况下实现与现有解决方案相同的 DP。也就是说,可以注入与现有解决方案相同数量的 DP 噪声,其中部分 DP 噪声由 DM 噪声实现。这样既能提高模型的实用性,又能确保与现有方案一样的 DP 保证。
  • 为了实现这一目标,本文提出了一个新颖的框架,即用于图像合成的差分隐私扩散概率模型(dp-promise),它基于对 DM 前向过程中提供的隐私保证的理论分析,通过减少注入的噪声来提高模型的实用性。

相关工作

暂略

方法

Overview

该方法主要是基于这样一种认识,即现有的差异化私有扩散模型注入了浪费性噪声。也就是说,用 DP-SGD 训练 DM 会在 DM 噪声的基础上注入 DP 噪声,这将导致重复注入噪声,进而损害模型的效用。为了解决这个问题,文章提出了用于图像合成的差分私有扩散概率模型(dp-promise),它在实现 DP时利用了 DM 噪声。图 2 描述了 dp-promise 的框架。
请添加图片描述图2:dp-promise框架,旨在在训练扩散模型(DMs)期间为私有数据提供隐私保障。"敏感"意味着存在隐私泄露的风险,而"私有"意味着存在隐私保障。

为了利用扩散模型(DM)中的噪声,我们将传统的DM训练(通过去除预测的噪声来恢复原始图像)分为两个阶段——第一阶段非私有训练(通过常规DM噪声实现DP)和第二阶段私有训练(通过DP-SGD实现DP)。

请添加图片描述

在第一阶段,我们遵循时间步[S, T]内的正常DM训练。回想第3.1节中的方程式(4),通过注入缩放的高斯噪声来生成噪声图像,这可以被视为实现GDP的高斯机制。然后,根据后处理性质,第一阶段中所有随后的DM训练操作立即被视为DP。命题2给出了将DM噪声与DP保证连接起来的正式证明。在第一阶段训练之后,在第二阶段,我们将DP-SGD应用于时间步[1, S-1]的DM训练,使用DP-SGD直接确保DP保证。总体而言,dp-promise在两个阶段确保了DP,同时避免了在第一阶段注入DP噪声以节省隐私预算。因此,dp-promise可以在不妥协DP保证的情况下提供更好的模型效用。算法1描述了dp-promise的完整过程。
请添加图片描述

命题2:

方程(4)满足2dαt/(1−αt)−GDP2\sqrt{d\alpha_{t} /(1 − αt )}-GDP2dαt/(1αt) GDP

证明:令x^:=x+λ(0,((1−αt)/αt)I)\hat {x} := x+\lambda(0, ((1 − α_t )/α_t )I)x^:=x+λ(0,((1αt)/αt)I)为方程(4)中生成噪声数据的步骤。对于任意两个数据点xxxx′∈Rdx′ ∈ R^dxRd,我们可以推导出maxx,x′∣∣x−x∣∣2=2dmax_{x,x′}||x − x||_2 = 2\sqrt{d}maxx,x∣∣xx2=2d 。因此,该过程的敏感性由2d2\sqrt d2d 界定。根据定理1,我们可以推导出生成噪声数据的程序满足2dαt/(1−αt)−GDP2\sqrt{d\alpha_{t} /(1 − αt )}-GDP2dαt/(1αt) GDP

接下来,我们举一个例子来展示dp-promise如何在图像数据集上实现DP。在本文中,我们考虑在图像领域内的处理。令Dpriv=xi∈Rdi=1nD_{priv}= {x_i ∈ R^d}^n_{i=1}Dpriv=xiRdi=1n表示一个私有数据集,其中我们定义图像的通道数、高度和宽度分别为channel、height和width。因此,d=channel×height×widthd = channel × height × widthd=channel×height×width表示图像的维度。参考以前研究,对图像中的每个像素应用线性变换,将{0, 1, . . . , 255}范围内的整数值转换为区间[−1, 1]。

备注1:

在实际应用中,对于给定的时间步长 t,它属于集合 1,2,...,T{1, 2, . . . , T }1,2,...,T,我们有一个预先定义的递减序列 α1,α2,...,αT{α_1, α_2, . . . , α_T}α1,α2,...,αT,其中 α1α_1α1 接近于 1,而 αTα_TαT 接近于 0。(例如,如果设置参数 T = 1,000,那么序列 β1,β2,...,βT{β_1, β_2, . . . , β_T}β1,β2,...,βT 可以从 10−410^{-4}1042×10−22 × 10^{-2}2×102线性选择)。考虑到一个高维图像领域(例如,一个具有 32 × 32 分辨率和 3 个通道的彩色图像,这会导致维度 d = 3,072)。根据命题 2,当 t 接近 T 且 γt\gamma _tγt 接近 0 时,我们可以获得重要的差分隐私保障(例如,使用上述参数,当 t = 900 时,αt 的值将降至 0.0004)。相反,当 t 接近 0,γt\gamma _tγt 接近无穷大时,几乎无法提供隐私保障。

方法细节

dp-promise的两阶段训练

在扩散模型(DMs)的训练过程中,我们将在给定的时间步 S∈1,2,...,TS ∈ {1, 2, . . . , T}

04-28
### 差分隐私随机梯度下降(DP-SGD)算法及其实现 差分隐私随机梯度下降(Differentially Private Stochastic Gradient Descent, DP-SGD)是一种结合了差分隐私技术的机器学习优化算法,旨在保护训练过程中使用的敏感数据[^1]。以下是关于该算法的核心概念以及其实现的关键部分。 #### 1. 基础原理 DP-SGD 的核心思想是在传统的随机梯度下降(SGD)基础上增加噪声,从而满足差分隐私的要求。具体来说,为了确保模型不会泄露任何单个样本的信息,DP-SGD 对每一轮迭代中的梯度进行了裁剪和加噪处理。这种方法可以有效防止攻击者通过观察模型参数的变化推断出特定个体的数据是否存在训练集中[^2]。 #### 2. 实现细节 ##### (1)梯度裁剪(Gradient Clipping) 为了避免某些样本对整体梯度的影响过大,DP-SGD 需要对每个样本的梯度进行裁剪。通常会设置一个阈值 \(C\),使得如果某个样本的梯度范数超过此阈值,则将其缩放至不超过 \(C\)。这一过程可以用如下伪代码表示: ```python def clip_gradient(grad, C): norm = np.linalg.norm(grad) if norm > C: grad = (grad / norm) * C return grad ``` 此处 `clip_gradient` 函数的作用是对输入梯度向量进行裁剪,使其长度不超过指定的最大值 \(C\)[^1]。 ##### (2)添加噪声(Adding Noise) 在完成梯度裁剪之后,需要进一步向梯度中加入噪声以掩盖真实梯度的具体数值。常用的噪声形式为拉普拉斯噪声或高斯噪声。假设当前批次中有 \(m\) 个样本,则对于每一个被裁剪后的梯度 \(\nabla_i\),最终用于更新模型权重的梯度应为: \[ g' = \frac{1}{m} \sum_{i=1}^{m} (\text{clip\_gradient}(\nabla_i)) + N(0, \sigma I), \] 其中 \(N(0, \sigma I)\) 表示零均值、方差为 \(\sigma\) 的正态分布产生的噪声矩阵[^2]。 ##### (3)批量与 Lots 处理 实际应用中,DP-SGD 并不对每次单独的样本计算梯度并立即施加噪声,而是先将多个样本组合成一个小批量(batch),再由若干个小批量构成更大的集合——称为“Lot”。这样做的好处是可以减少因频繁引入噪声而导致的精度损失,同时保持较高的效率[^1]。 #### 3. 学习率的选择策略 除了上述提到的技术外,合理的学习率配置也是影响 DP-SGD 性能的重要因素之一。根据已有研究成果可知,采用固定学习率可能会因为缺乏灵活性而难以达到最佳效果;相比之下,动态调整或者自适应机制往往更加适合复杂的场景需求[^3]。 下面给出一段基于 TensorFlow Privacy 库实现的标准 Python 示例代码片段供参考: ```python from tensorflow_privacy.privacy.optimizers.dp_optimizer import DPKerasSGDOptimizer # 定义超参 l2_norm_clip = 1.5 # 裁剪系数 noise_multiplier = 0.7 # 噪声倍增因子 num_microbatches = 8 # 微批次数量 learning_rate = 0.15 # 初始学习速率 optimizer = DPKerasSGDOptimizer( l2_norm_clip=l2_norm_clip, noise_multiplier=noise_multiplier, num_microbatches=num_microbatches, learning_rate=learning_rate) loss_fn = tf.keras.losses.CategoricalCrossentropy(from_logits=True, reduction=tf.losses.Reduction.NONE) model.compile(optimizer=optimizer, loss=make_private_loss(loss_fn)) ``` 以上代码展示了如何利用第三方库快速搭建支持差分隐私特性的 SGD 优化器实例[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值