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

问题描述 投票:0回答:1

背景信息

我训练了一个分类器来预测三个标签:基于胸部X射线图像的COVID /肺炎/健康。这是COVID-Net的PyTorch实现。我使用一个训练集进行训练,使用一个验证集来保存性能最佳的模型,然后使用一个测试集来度量模型的“真实”性能。但是,我注意到我的模型“学习”到对正常/肺炎的分类确实很好,但是它只是忽略了人口不足的COVID集。因此,我选择低采样(减少其他班级(正常和肺炎)的训练次数,以得到相同的人群)。效果很好,但我的样本集已减少到1500个样本(低!)。结果比COVID-Net差一些,我达到了〜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 epochs100个周期后具有差异性隐私的模型混淆矩阵(epsilon:2.3)。看起来该模型根本不知道该怎么办。

可能的解释

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

也许因为我的样本集太小,很难实现差异化隐私,因此性能很差?但是,即使添加了一个很小的隐私(epsilon值> 20000),该模型在学习如何分类方面仍然很困难。所以我不确定。

python machine-learning pytorch privacy confusion-matrix
1个回答
0
投票

[似乎来自Facebook Research的PyTorch差异隐私库建立在Renyi差异隐私保证的概念上,该概念非常适合表示隐私保护算法的保证和异构机制的组合。我们需要对该COVID-Net数据集中的异质性进行良好的估算。

尤其是Rényi散度满足数据处理不平等。似乎当前的库更适合于数据集异构性更高的机器学习问题。该库正在使用差分私有随机梯度下降(SGD)算法的实现。它遵循随机初始化,梯度计算,限幅梯度,增加噪声并进行下降的顺序。削波和噪声参数可能随训练步骤和时期的数量而变化。

在深度学习问题上,不同隐私的成功与否取决于预处理梯度的程度,以保护隐私和privacy_accounting,从而跟踪培训过程中的隐私支出。需要强调的是,在差分私有深度学习中,模型准确性对训练参数(例如批大小和噪声水平)比对神经网络的结构更敏感。

在PyTorch库中,我们可以在ImageNet,MNIST,DCGAN等上看到示例。在所有这些示例中,我们可以看到如何更改上述参数(例如裁剪,批处理大小等)以获取所需的精度级别。 。请参考PyTorch DP库中的以下示例脚本。

PyTorch DP Example Scripts for Various Models

© www.soinside.com 2019 - 2024. All rights reserved.