NEWS


RGAN 0.2.2

The mechanism must match the accountant

dp_discriminator_step() released a quantity the privacy analysis does not cover. Any 0.2.0, 0.2.1 or earlier-0.2.2 run is affected, independently of the accountant defect below.

Gradients are now scaled by the expected rather than the realised batch size, so the effective learning rate changes slightly; it is unbiased for the same quantity, and learning rates tuned on 0.2.1 may need revisiting.

Correspondence with a machine-checked proof

The accounting is now tied to a Lean 4 formalization that depends only on Mathlib, is free of sorry, and uses only Lean's three standard axioms.

Privacy correctness

dp_gan_trainer() reported an epsilon that was far too small in the regime DP-SGD normally runs in. Any 0.2.0 or 0.2.1 run with a sampling rate below 0.01 - that is, batch_size / nrow(data) < 0.01, which is the usual case - consumed substantially more privacy budget than it reported. Re-run the accounting for anything you have published.

Testing

RGAN 0.2.1

Privacy correctness

This release fixes three defects in post_gan_boosting(dp = TRUE) that caused the realised privacy loss to differ from the requested MW_epsilon. Version 0.2.0 was distributed on GitHub only. A run made with 0.2.0 did not receive the budget it asked for if any of the following applied:

Other fixes

New features

RGAN 0.2.0

Major New Features

Differentially Private GAN Training

Post-GAN Boosting

Improvements

Documentation

Training

Bug Fixes

Dependencies

RGAN 0.1.1 (2022-03-29)

RGAN 0.1.0