Skip to content

gdamaskinos/dpscd

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 

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