Makes a DPQuery
to estimate vector averages with differential privacy.
tff.utils.build_dp_query(
clip, noise_multiplier, expected_total_weight, adaptive_clip_learning_rate=0,
target_unclipped_quantile=None, clipped_count_budget_allocation=None,
expected_clients_per_round=None, geometric_clip_update=True
)
Supports many of the types of query available in tensorflow_privacy, including
nested ("per-vector") queries as described in
https://arxiv.org/pdf/1812.06210.pdf, and quantile-based adaptive clipping as
described in https://arxiv.org/abs/1905.03871
Args |
clip
|
The query's L2 norm bound, or the initial clip if adaptive clipping
is used.
|
noise_multiplier
|
The ratio of the (effective) noise stddev to the clip.
|
expected_total_weight
|
The expected total weight of all clients, used as the
denominator for the average computation.
|
adaptive_clip_learning_rate
|
Learning rate for quantile-based adaptive
clipping. If 0, fixed clipping is used.
|
target_unclipped_quantile
|
Target unclipped quantile for adaptive clipping.
|
clipped_count_budget_allocation
|
The fraction of privacy budget to use for
estimating clipped counts.
|
expected_clients_per_round
|
The expected number of clients for estimating
clipped fractions.
|
geometric_clip_update
|
If True, use geometric updating of the clip.
|
Returns |
A DPQuery suitable for use in a call to build_dp_aggregate and
build_dp_aggregate_process to perform Federated Averaging with
differential privacy.
|