在PATE分析中,此警告是什么意思?

时间:2019-07-10 17:38:33

标签: python pytorch

进行PATE分析时收到警告:

  

警告:可能没有使用足够的l值。增加“ moments”变量,然后再次运行。

from syft.frameworks.torch.differential_privacy import pate
data_dep_eps, data_ind_eps = pate.perform_analysis(teacher_preds=preds, indices=indices, noise_eps=0.1)
print("Data Independent Epsilon:", data_ind_eps)
print("Data Dependent Epsilon:", data_dep_eps)

在增加了“ pate.perform_analysis”分析函数中“ moment”参数的值之后,它消失了。但是我想知道为什么会这样。

data_dep_eps, data_ind_eps = pate.perform_analysis(teacher_preds=preds, indices=indices, noise_eps=0.1,moments=20)
print("Data Independent Epsilon:", data_ind_eps)
print("Data Dependent Epsilon:", data_dep_eps)

[PySyft]

1 个答案:

答案 0 :(得分:0)

TL; DR:perform_analysis想通过使用更精细的计算来仔细检查异常小的ε结果。

pate.perform_analysis函数遍历数据(从技术上讲是隐私丢失随机变量)并计算各种epsilon。它使用moments参数来知道此迭代的粒度。使用默认的8 moments时,它将计算8ε。然后,它返回计算出的ε的最小值,如您所见in the source code

当此函数返回与数据相关的很小的epsilon时,可能是因为A)数据具有很高的一致性,或者B)计算不够精细,并且真实epsilon更高。当仅计算8个ε时,它们可能恰好是数据中的异常,从而描绘了整体ε的过于乐观的情况!因此,该函数会看到一个出乎意料的小epsilon,并警告您-可能想增加moments变量以计算更多epsilon,并确保您找到了实际的最小值。如果您在增加moments参数时仍然得到相同的结果,则您的数据可能具有很高的一致性,因此与独立于数据的epsilon相比,它确实具有较小的依赖数据的epsilon。

希望这对您来说很有意义。如果您想进一步了解其背后的数学原理,可以查看激发源代码的the research paper