diff --git a/mindarmour/diff_privacy/mechanisms/mechanisms.py b/mindarmour/diff_privacy/mechanisms/mechanisms.py index a1103373e80aa26d2b93cabe044fac48f569c49f..f0e0063d68ced8eebdd4336b8d8ab9326b76b552 100644 --- a/mindarmour/diff_privacy/mechanisms/mechanisms.py +++ b/mindarmour/diff_privacy/mechanisms/mechanisms.py @@ -343,9 +343,9 @@ class _MechanismsParamsUpdater(Cell): class AdaClippingWithGaussianRandom(Cell): """ Adaptive clipping. If `decay_policy` is 'Linear', the update formula is - $ norm_bound = norm_bound - learning_rate*(beta-target_unclipped_quantile)$. - `decay_policy` is 'Geometric', the update formula is - $ norm_bound = norm_bound*exp(-learning_rate*(empirical_fraction-target_unclipped_quantile))$. + norm_bound = norm_bound - learning_rate*(beta - target_unclipped_quantile). + If `decay_policy` is 'Geometric', the update formula is norm_bound = + norm_bound*exp(-learning_rate*(empirical_fraction - target_unclipped_quantile)). where beta is the empirical fraction of samples with the value at most `target_unclipped_quantile`. @@ -355,7 +355,7 @@ class AdaClippingWithGaussianRandom(Cell): learning_rate(float): Learning rate of update norm clip. Default: 0.001. target_unclipped_quantile(float): Target quantile of norm clip. Default: 0.9. fraction_stddev(float): The stddev of Gaussian normal which used in - empirical_fraction, the formula is $empirical_fraction + N(0, fraction_stddev)$. + empirical_fraction, the formula is empirical_fraction + N(0, fraction_stddev). Default: 0.01. seed(int): Original random seed, if seed=0 random normal will use secure random number. IF seed!=0 random normal will generate values using