|View source on GitHub|
Creates aggregator for mean with adaptive zeroing and clipping.
tff.learning.robust_aggregator( *, zeroing: bool = True, clipping: bool = True, weighted: bool = True, debug_measurements_fn: Optional[Callable[[
tff.aggregators.AggregationFactory]] = None ) ->
Zeroes out extremely large values for robustness to data corruption on clients, and clips in the L2 norm to moderately high norm for robustness to outliers.
Adaptive clipping approach is as described in Andrew, Thakkar et al. (2021) https://arxiv.org/abs/1905.03871, which the robust_aggregator applies without the addition of noise.
For details on clipping and zeroing see
tff.aggregators.zeroing_factory. For details on the quantile-based
adaptive algorithm see
||Whether to enable adaptive zeroing for data corruption mitigation.|
||Whether to enable adaptive clipping in the L2 norm for robustness.|
||Whether the mean is weighted (vs. unweighted).|
A callable to add measurements suitable for debugging
learning algorithms. Often useful values include None,
if debug_measurement_fn yields an aggregation factory whose
weight type does not match