PLAN方法:解决 GAN 生成医学图像 Latent 空间中的隐私保护方法
?
论文:https://arxiv.org/abs/2307.02984
代码:https://github.com/perceivelab/PLAN
?
生成对抗网络 (GAN) 已经证明了其生成与目标分布匹配的合成样本的能力(比如 Sytle GAN 生成视网膜图)。
然而,从隐私角度来看,使用 GAN 作为数据共享的代理并不是一个安全的解决方案,因为它们往往会在latent空间中嵌入接近重复的真实样本。
最近的研究通过在潜在空间中聚合样本来解决这个问题,是受到k-匿名原则的启发,但这样做的缺点是将数据集的大小减少了k倍。
PLAN方法旨在通过提出一种隐空间(Latent Space)导航策略来缓解这个问题,该策略能够生成多种合成样本,这些样本可以支持深度模型的有效训练,同时以原则性的方式解决隐私问题。
我们的方法利用辅助身份分类器作为指导,以非线性的方式在潜在空间中的点之间行走,最小化与真实样本近似副本的碰撞风险。
论文实证,给定潜在空间中任意一对随机点,我们的行走策略比线性插值更安全。
然后,我们将寻路策略与k-same方法结合起来,并在结核病分类和『糖尿病视网膜病变分类』的两个基准测试中进行了测试,使用我们的方法生成的样本训练模型可以减轻性能下降,同时保持隐私保护。
对于糖尿病视网膜病变分类,使用了APTOS眼底图像数据集,这个数据集包含被眼科医生按照严重程度分为五级的视网膜图像。
为了模拟医学应用中常见的数据量有限的情况,随机选择了950张图像,均匀分布在各个类别中。
所有图像都被调整大小到256×256,并按照70%、10%、20%的比例划分为训练集、验证集和测试集。
?
比如使用StyleGAN来生成视网膜图:
但是,如果直接从GAN生成数据,可能会有隐私泄露的风险,特别是在图像与个人健康数据紧密相关的情况下。
?
k-SALSA是一个应用了k-匿名原则的算法,它在生成合成的视网膜底片图像时尝试保持隐私。
k-SALSA通过将k个真实样本合并成一个合成样本来实现这一点,这样可以保证合成样本不会直接映射回任何个体的真实样本。
选择真实样本:从真实数据集中选择k组样本。
样本聚合:将这k组样本在潜在空间中聚合,生成一个合成样本。这样做的目的是确保任何合成的图像都不会直接对应于任何一个具体的真实样本,从而增加了隐私保护。
风格对齐:k-SALSA方法特别提出了局部风格对齐策略,以确保合成的图像在视觉上类似于原始数据,保持了医学上的有效性,同时避免了暴露任何个人的特定特征。
但通过这种方法生成的数据集大小会减少k倍。
因为每k个真实样本只生成了一个合成样本。
如果原始数据集有N个样本,那么应用k-SALSA之后,只会有 N/k 个合成样本,这显著减少了数据集的大小。
?
而使用PLAN方法生成视网膜图像则添加了隐私保护的步骤:
PLAN方法提供了一个额外的隐私保护框架,允许在生成视网膜图像的同时减少潜在的隐私风险。
PLAN方法 具体步骤:
GAN训练:首先,需要使用真实的视网膜底片图像来训练一个GAN模型,这个模型能够学习和复现真实视网膜图像的分布。在这一阶段,模型的生成器(G)将能够从潜在空间(W)中产生新的图像(X)。
潜在空间优化:一旦模型被训练好,接下来的步骤是在潜在空间中定义和优化一个隐私保护的轨迹。这意味着我们要找到一组潜在向量 W  ̄ ) \overline{W}) W),使得从这些向量生成的图像与训练集中的图像有足够的差异,以保护个人隐私。这个过程需要避免那些可能对应于真实视网膜图像的潜在区域。
计算潜在空间中轨迹的等距离损失: L d i s t = ∑ i = 1 T ? 1 ∥ w ˉ i , w ˉ i + 1 ∥ 2 2 \mathcal{L}_{\mathrm{dist}}=\sum_{i=1}^{T-1}\left\|\bar{\mathbf{w}}_i,\bar{\mathbf{w}}_{i+1}\right\|_2^2 Ldist?=∑i=1T?1?∥wˉi?,wˉi+1?∥22?
这个公式是计算潜在空间中轨迹的“等距离损失”,确保在潜在空间中导航时,连续点之间的距离大致保持一致,以此促进样本多样性并防止模式崩溃。
用于在PLAN方法中优化潜在空间的路径,确保生成的合成样本具有多样性,同时避免生成与真实样本过于接近的图像
?
身份损失-隐私保护导航: L i d = ∑ i = 1 T K L [ ? i d ( G ( w ˉ i ) ) ∥ U ( 1 / n i d ) ] \mathcal{L}_{\mathrm{id}}=\sum_{i=1}^T\mathrm{KL}[\phi_{id}(G(\bar{\mathbf{w}}_i))\parallel\mathcal{U}(1/n_{\mathrm{id}})] Lid?=∑i=1T?KL[?id?(G(wˉi?))∥U(1/nid?)]
用于优化生成样本的身份不确定性,通过最大化与均匀分布的KL散度,来确保生成样本不会与任何特定的训练样本相似
?
正确分类-保持类别一致性: L c l a s s = ∑ i = 1 T C E [ ? c l a s s ( G ( w ˉ i ) ) , y ] \mathcal{L}_{\mathrm{class}}=\sum_{i=1}^T\mathrm{CE}\left[\phi_{\mathrm{class}}(G(\bar{\mathbf{w}}_i)),y\right] Lclass?=∑i=1T?CE[?class?(G(wˉi?)),y]
用于确保在潜在空间中生成的样本不仅隐私安全,而且在医学上具有正确的分类属性。
?
总损失函数: L P L A N = L d i s t + λ 1 L i d + λ 2 L l a b e l \mathcal{L}_{\mathrm{PLAN}}=\mathcal{L}_{dist}+\lambda_1\mathcal{L}_{id}+\lambda_2\mathcal{L}_{label} LPLAN?=Ldist?+λ1?Lid?+λ2?Llabel?
?
这个总损失函数结合了三个关键因素:样本多样性、隐私保护和类别准确性,以生成对下游任务(如疾病诊断)有用且隐私安全的合成医学图像。
?
合成数据集生成:通过优化的轨迹,我们可以在潜在空间中安全地移动,生成新的合成视网膜底片图像,这些图像既不会揭露个人身份,也包含了临床上有意义的特征,使其适合于如疾病诊断这样的下游任务。
实际应用:在实际应用中,我们可能会使用一个k-same方法来产生一些合成的视网膜底片图像,然后利用PLAN在这些样本之间的潜在空间进行导航,以增加数据集的大小,同时保留隐私保护。生成的扩展数据集然后可以用来训练下游的分类器 ? d o w n \phi_{down} ?down?,仅使用合成样本。
上面很多,但其实就 2 步:
生成合成视网膜底片图像前需要进行的GAN训练步骤,这是为了让生成器学会如何从潜在空间产生新图像,这些图像在视觉上与真实的视网膜底片图像相似。
一旦GAN训练完成,就进行潜在空间优化,以确保新生成的图像在保护隐私的同时,仍然具有临床应用所需的特征。
使用PLAN方法生成视网膜图像可以比作一种“照相术”:
拍摄准备(GAN训练):想象一下你有一个非常先进的相机(GAN模型),这个相机可以学习怎样拍摄出看起来像真实视网膜的照片。
首先,你需要给这个相机展示很多真实的视网膜照片,让它学习这些照片的样子。
这个学习过程就像是在给相机“训练”。
拍摄技巧(潜在空间优化):现在相机已经学会了怎样拍出像真实视网膜的照片,接下来的问题是怎样在拍照时保护人们的隐私。
这就需要用到一些特殊的拍摄技巧:
生成照片(生成合成样本):通过这些技巧,相机现在可以生成既看起来像真实视网膜又不会泄露个人信息的照片了。
实际应用:这些生成的照片可以被用于各种目的,比如帮助医生学习如何诊断眼病,而不必担心泄露病人的隐私信息。
?