Giter Site home page Giter Site logo

series-of-sign / autodp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yuxiangw/autodp

0.0 1.0 0.0 2.66 MB

autodp: A flexible and easy-to-use package for differential privacy

License: Apache License 2.0

Python 24.95% Jupyter Notebook 74.89% Starlark 0.15%

autodp's Introduction

autodp: Automating differential privacy computation

Highlights

  • Advanced DP techniques (e.g., Renyi DP, Moments Accountant, f-DP) working behind the scene.
  • Easily customizable. Bring your own mechanism in any way you want.
  • Strong composition over heterogeneous mechanisms.

All new autodp "Mechanism" API

The three main classes of the autodp 'mechanism' API.

New features that come with the new API

  1. Object oriented design: see check out autodp_core.py
  2. Zoos are open with many private animals: mechanism_zoo, transformer_zoo, calibrator_zoo.
  3. Added support for f-DP and privacy profile alongside RDP.
  4. Stronger RDP to (eps,delta)-DP conversion.
  5. Privacy amplification by X.
  6. Exactly tight privacy accounting for Gaussian mechanisms and their compositions.
  7. Interpretable privacy guarantee via Hypothesis testing interpretation for any Mechanism.

The new API makes it extremely easy to obtain state-of-the-art privacy guarantees for your favorite randomized mechanisms, with just a few lines of codes.

How to use?

It's easy. Just run:

pip install autodp

or

pip3 install autodp

Check out the Jupyter notebooks in the tutorials folder to get started.

Notes:

  • pip should automatically install all the dependences for you.
  • Currently we support only Python3.
  • You might need to run pip install autodp --upgrade

To use the current version at the master branch

Install it locally by:

pip install -e .

Research Papers:

How to Contribute?

Follow the standard practice. Fork the repo, create a branch, develop the edit and send a pull request. One of the maintainers are going to review the code and merge the PR. Alternatively, please feel free to creat issues to report bugs, provide comments and suggest new features.

At the moment, contributions to examples, tutorials, as well as the RDP of currently unsupported mechanisms are most welcome (add them to RDP_bank.py)! Also, you may add new mechanisms to mechanism_zoo.py. Contributions to transformer_zoo.py and calibrator_zoo.py are trickier, please email us!

Please explain clearly what the contribution is about in the PR and attach/cite papers whenever appropriate.

Legacy: the moments accountant API from autodp v.0.11 is still supported:

  1. An RDP (Renyi Differential Privacy) based analytical Moment Accountant implementation that is numerically stable.
  2. Supports privacy amplification for generic RDP algorithm for subsampling without replacement and poisson sampling.
  3. Stronger composition than the optimal composition using only (ε,δ)-DP.
  4. A privacy calibrator that numerically calibrates noise to privacy requirements using RDP.
  5. Bring Your Own Mechanism: Just implement the RDP of your own DP algorithm as a function.

Examples:

Composing Subsampled Gaussian Mechanisms (high noise)Composing Subsampled Gaussian Mechanisms (low noise)

Figure 1: Composing subsampled Gaussian Mechanisms. Left: High noise setting with σ=5, γ=0.001, δ=1e-8. Right: Low noise setting with σ=0.5, γ=0.001, δ=1e-8.

Composing Subsampled Laplace Mechanisms (high noise)Composing Subsampled Laplace Mechanisms (low noise)

Figure 2: Composing subsampled Laplace Mechanisms. Left: High noise setting with b=2, γ=0.001, δ=1e-8. Right: Low noise setting with b=0.5, γ=0.001, δ=1e-8.

autodp's People

Contributors

yuxiangw avatar jeremy43 avatar samellem avatar borjaballe avatar series-of-sign avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.