这个警告在PATE分析中是什么意思?

2024-09-24 02:20:20 发布

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

进行头部分析时收到警告:

Warning: May not have used enough values of l. Increase 'moments' variable and run again.

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)

它是在增加执行分析“分析功能。但我想知道为什么会这样。你知道吗

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)

[皮西夫特]


Tags: dataanalysisepsperformprintnoiseteacherind
1条回答
网友
1楼 · 发布于 2024-09-24 02:20:20

TL;DR:perform_analysis希望通过使用更细粒度的计算来重新检查异常小的epsilon结果。

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

当这个函数返回一个非常小的依赖于数据的epsilon时,可能是因为a)数据具有很高的一致性,或者B)计算不够精确,并且真epsilon更高。当只计算了8个epsilon时,很可能它们恰好是数据中的异常,描绘了一幅过于乐观的整体epsilon图!因此,函数会看到一个非常小的epsilon,并警告您-可能需要增加moments变量来计算更多的epsilon,并确保找到真正的最小值。如果您在增加moments参数时仍然得到相同的结果,那么您的数据可能具有很高的一致性,因此与数据无关的epsilon相比,它确实具有很小的数据依赖epsilon。你知道吗

希望这对你来说是有意义的。如果您想了解更多关于这背后的数学细节,可以查看启发源代码的the research paper。你知道吗

相关问题 更多 >