Closed SaitejaUtpala closed 1 year ago
Yes, the scaling parameters are correct. mechanism_zoo.GaussianMechanism
takes sigma
as the noise as if the sensitivity is 1.
Instead of
rdp_total = mech.RenyiDP self.propagate_updates(rdp_total, type_of_update="RDP")
I usually just use the following instead:
self.set_all_representation(mech)
which is equivalent to your code in this case but is slightly more general.
btw, you will have to add params["prob"]
for the code to work I think.
@yuxiangw. Thanks! one more question if we want to pick best leanring rate (by picking best training error achieved) privately. Is there any reference ?
Sorry I just saw this. I would Papernot and Steinke https://arxiv.org/abs/2110.03620 is the SOTA on hyperparameter tuning with DP. (and RDP). A student of mine has an implementation but I don't know her timeline of merging it into autodp.
@yuxiangw Thanks for the pointer!. Will take a look. Is there a way to cite this library ? I don't see any paper associated with the library.
You should cite the work that proposes the specific method you used. autodp is here to help with privacy accounting and to put everything together. the first version of autodp was a release as part of this paper from AISTATS'19 and then at the Journal of Privacy and Confidentiality https://arxiv.org/abs/1808.00087.
I also typically just cite the repo itself.
@misc{autodp, author = {autodp}, title = {AutoDP: Automating Differential Privacy Computation}, year = {2021}, url = {https://github.com/yuxiangw/autodp}, }
@yuxiangw Great talk at MIT!. I have a question regarding composing difference mechanisms with different rounds and with different sensitivities. Assume that am we are composing in following way
Then to get epsilon for delta = 1e-6, this is right way to pass parameter configs right
My main question is about scaling of sigma parameters
params["sigma1"] = sigma1/(L1)
andparams["sigma2"] = sigma2/(L2)
, as far as I can understand this seems necessary right? Thanks!