jax_privacy.matrix_factorization.toeplitz.minsep_sensitivity_squared
- jax_privacy.matrix_factorization.toeplitz.minsep_sensitivity_squared(strategy_coef, min_sep, *, n, max_participations=None)[source]
Returns the sensitivity of the Toeplitz matrix.
With max_participations = 1 (and any min_sep, say min_sep = 1), this is the same as single participation.
The result is exact (tight) when the Toeplitz coefficients are non-negative and non-increasing. If the coefficients do not satisfy these assumptions, they are projected onto the set of non-negative non-increasing sequences (via absolute value and reverse cumulative max), and the result is an upper bound on the true sensitivity.
Reference: While this code actually predates the paper, this result is published in https://arxiv.org/pdf/2405.13763, Theorem 2.
- Parameters:
strategy_coef (
Array) – The nonzero coefficients of the Toeplitz matrix C used in the matrix mechanism with factorization A = B C. That is, coef are the leading nonzero entries of C[:, 0]. C is of size n x n; if len(coef) < n, the remaining coefficients are assumed to be zero. If len(coef) > n, then only the first n coefficients are used.min_sep (
int) – The minimum separation between two participation of a worst-case client/sample. Note that we use the definition in [(Amplified) Banded Matrix Factorization: A unified approach to private training](https://arxiv.org/abs/2306.08153). For a user participating on iteration $i$ and then again on iteration $j$, the separation is $j -i$; that is, a min_sep of 1 allows participation on every iteration.n (
int) – The size of the matrix C (see coef above).max_participations (
int|None) – The maximum participation of a worst-case user.
- Return type:
Array- Returns:
The sensitivity squared. This is exact when strategy_coef is non-negative and non-increasing, and an upper bound otherwise.