差异隐私会显著降低模型性能

2024-04-25 14:26:16 发布

您现在位置:Python中文网/ 问答频道 /正文

背景信息

我训练了一个分类器来预测三个标签:基于胸部X光图像的新冠病毒/肺炎/健康。这是COVID-Net的PyTorch实现。我使用一个训练集进行训练,使用验证集保存性能最佳的模型,然后使用一个测试集测量模型的“真实”性能。然而,我注意到我的模型“学会”了对正常/肺炎进行很好的分类,但它忽略了人口不足的新冠病毒。因此,我选择样本不足(减少其他课程(正常和肺炎)的训练实例数量,以获得相同的人群)。这很有效,但我的样本集已减少到约1500个样本(低!)。结果比COVID网络稍差一些,我的准确率达到了80%左右,并且对人群不足类别(COVID)的敏感性较低,然后他们报告。我认为他们报告了更好的性能,因为他们不使用验证集,而是每个历元都使用测试集。我认为他们可能会因此间接地过度适应测试集。我选择了解释这一点,以便读者了解上下文

问题

我尝试通过使用差异隐私来为培训程序添加隐私。具体来说,我使用了Facebook's PyTorch-DP module。如果我选择几乎不增加隐私(这可以通过选择一个非常低的噪声乘数值(sigma),即1e-7)和一个非常高的增量来实现),那么培训也同样有效。因此,这并不是说模块本身没有工作/故障,而是,如果我使用较低的sigma(因此我添加了更多的噪声),那么我会获得更多的隐私(epsilon减少),但模型根本无法拟合数据。 问题是:我如何在确保我的模型在某种程度上仍然适合数据的同时,将隐私添加到有意义的程度

性能差异

Confusion Matrix of Model without Differential Privacy added 未添加微分隐私的模型混淆矩阵。这并不“好”,但至少有点意义,模型的准确率达到了80%

Confusion Matrix of Model with Differential Privacy (epsilon: 2.3) after 100 epochs 100个时代后具有差异隐私(epsilon:2.3)的模型混淆矩阵。看起来模型根本不知道该做什么

可能的解释

我读过一篇paper文章,其中指出添加差异隐私可能会导致性能下降,因为对于人口不足的类,准确性会降低。但是,我使用了欠采样,我认为这应该解决这个问题,但是精度仍然很差(对于所有类!)

可能是因为我的样本集太小,差异隐私更难实现,因此性能很差?然而,即使增加了一点点隐私,也会有一个epsilon值>;然而,该模型仍在努力学习如何分类。所以我不确定


Tags: 模型报告分类pytorch差异性能噪声样本
1条回答
网友
1楼 · 发布于 2024-04-25 14:26:16

Facebook Research的PyTorch差异隐私库似乎是基于Renyi差异隐私保证的概念构建的,该概念非常适合于表达隐私保护算法的保证和异构机制的组合。我们需要很好地估计这个新冠病毒网络数据集中的异质性

特别是,Rényi散度满足数据处理不等式。目前的库似乎更适合于数据集更异构的机器学习问题。该库使用差分私有随机梯度下降(SGD)算法的实现。它遵循随机初始化、梯度计算、剪裁梯度、添加噪声和进行下降的顺序。削波和噪声参数可能随训练步骤和时间的数量而变化

差异隐私在深度学习问题上的成功是由预处理梯度以保护隐私和隐私会计的程度驱动的,隐私会计在培训过程中跟踪隐私支出。强调了在差异私有深度学习中,模型精度对训练参数(如批量大小和噪声水平)比对神经网络结构更敏感

在PyTorch库中,我们可以看到ImageNet、MNIST、DCGAN等上的示例。在所有这些示例中,我们可以看到如何改变所提到的每个参数,如剪裁、批量大小等,以获得所需的精度级别。请参考PyTorch DP库中的以下示例脚本

PyTorch DP Example Scripts for Various Models

相关问题 更多 >