Skip to content

Differentially Private Stochastic Coordinate Descent.

License

Notifications You must be signed in to change notification settings

gdamaskinos/dpscd

Repository files navigation

DP-SCD

Author: Georgios Damaskinos (georgios.damaskinos@gmail.com)

DP-SCD is a privacy-preserving optimization algorithm introduced in Differentially Private Stochastic Coordinate Descent.

Requirements

  • Python (3.5+)
  • pip install sklearn pandas seaborn wget sympy

Quick-start

The following reproduces a single (out of the total of 10 used) run for the result shown in Figure 1(a) (DP-SCD (ε=0.1)).

python driver.py --app RR --solver PSCD --max_iter 50 --lambda 1e-4 --eps 0.1 --lot_ratio 1000 --C 0.1 --dataset msd --dual --valid_size 0.25 --seed 1

Components

  • Preprocessor: Loads the data and handles preprocessing. Information on how to obtain the data is embedded to the code.

  • Optimizer: Implements the various optimization algorithms, namely SCD, SGD, DP-SCD, DP-SGD, in an application-agnostic manner.

  • Applications (ridge regression, logistic regression, SVMs): Implement the application-specific code required by the Optimizer to perform training.

  • Driver: Tool for parallel (single machine) training and evaluation for a given set of hyperparameters.

  • Accountant: Tool for measuring the privacy loss based on the moments accountant.

About

Differentially Private Stochastic Coordinate Descent.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages