-
Notifications
You must be signed in to change notification settings - Fork 358
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add double mixture privacy losses #277
base: main
Are you sure you want to change the base?
Conversation
9dfed70
to
11be431
Compare
DP Accounting changes: * Add accounting for mechanisms dominated by a pair of two mixture distributions * Add constructor method for discrete PLD of DoubleMixturePrivacyLosses to privacy_loss_distribution
11be431
to
8c514a9
Compare
Hi Jan, sorry for the delayed response. Wanted to follow up on this:
I think it is okay for now, and if someone requests we can work on optimizing later (either internally, or with your help).
It would be good to make sure any behavior specific to these classes are being tested. If you feel this is a lot of added work, we can potentially have you submit the current version and I can make a follow-up change that adds more robust tests. In addition, there are some upcoming changes to the structure of privacy_loss_mechanism that might affect the PR (the amount of work needed to correct the PR for these changes should be pretty small). So it may be best to wait until those changes are out to make a final pull request :) |
All right, let's do that. The existing tests do not look to complicated, so I can also take care of those. |
Hi Jan. The changes alluded to by Arun have been pushed now (see changes to Basically, your PR made us realize that it would be more natural to introduce a common class of |
Ok, great. I'm on a vacation / conference travel for the next couple of weeks, but I'll look into doing the rebase after that. |
Hi,
this is a draft pull request related to issue #274.
I have implemented instances of AdditiveNoisePrivacyLoss whose privacy loss distribution is dominated by a pair of two mixture distributions. The class hierarchy looks as follows:
I have kept the existing
MixtureGaussianPrivacyLoss
as a special case ofDoubleMixtureGaussianPrivacyLoss
for backwards compatibility and because it has certain optimizations that are not implemented in its super classes.Specifically, the
DoubleMixtureXYZ
classes are less optimized in the following sense:These optimization cannot be trivially generalized to the super classes, because they rely on the (inverse) likelihood ratio decomposing into a sum of single-distribution ratios. This is not the case when we have two mixtures.
Before I create a final pull request, it would be great if we could discuss the following questions:
DoubleMixtureXYZ
classes are currently only being tested via tests forMixtureGaussianPrivacyLoss
. Do we need separate tests for each class?