On this page
Covering the nuclear-norm ball by products of column balls
Imports 15 library modules and 29 external
- GaussianAnalysis.gaussian.measurable_matrix
- GaussianAnalysis.gaussian.gauss
- GaussianAnalysis.matrix.euclidean
- GaussianAnalysis.matrix.opnorm
- GaussianAnalysis.comparison.gauss_smoothing
- GaussianAnalysis.comparison.gauss_concentration
- GaussianAnalysis.comparison.slepian
- GaussianAnalysis.comparison.gordon
- GaussianAnalysis.comparison.escape
- GaussianAnalysis.comparison.sudakov
- GaussianAnalysis.probability.lindeberg
- GaussianAnalysis.probability.tuple_rows
- GaussianAnalysis.probability.subgaussian
- GaussianAnalysis.probability.conditioning
- GaussianAnalysis.fourier.small_ball
External: HB.structures, mathcomp.classical.all_ssreflect_compat, mathcomp.algebra.algebraic_hierarchy.ssralg, mathcomp.algebra.numeric_hierarchy.ssrnum, mathcomp.algebra.interval, mathcomp.algebra.matrix, mathcomp.algebra.ring_tactic, mathcomp.algebra.field_tactic, mathcomp.algebra.arithmetic_tactic, mathcomp.classical.boolp, mathcomp.classical.classical_sets, mathcomp.classical.functions, mathcomp.algebra.archimedean, mathcomp.reals.reals, mathcomp.analysis.ereal, mathcomp.analysis.topology_theory.topology, mathcomp.analysis.normedtype_theory.normedtype, mathcomp.analysis.sequences, mathcomp.analysis.derive, mathcomp.analysis.realfun, mathcomp.analysis.exp, mathcomp.analysis.measure_theory.measure, mathcomp.analysis.lebesgue_stieltjes_measure, mathcomp.analysis.lebesgue_measure, mathcomp.analysis.numfun, mathcomp.analysis.measurable_realfun, mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral, mathcomp.analysis.probability_theory.probability, mathcomp.analysis.probability_theory.normal_distribution
Required by 1 files of the paper proofs
Lemma 3.10 of Koehler and Sohn (arXiv 2608.27372, lines 2880-2948): for c0 d <= m, q <= C0 d, the m x q matrices of nuclear norm at most gam d are covered by C^(m q) translates of the product of q Euclidean balls of radius gam, one for each column, with C depending on c0 and C0 only. The paper bounds the volume of the nuclear-norm ball by Urysohn's inequality. Here the covering number is bounded in two steps (dual_ball_covering), for G = vec_mx g with g of law gauss (m * q):
- Sudakov's minoration (sudakov.v) covers the set K by Frobenius balls of radius lam = sqrt (r gam), since E max over K of <G, A> is at most r E opnorm G <= r (sqrt m + sqrt q) (escape.v);
- the dual Sudakov inequality covers each such ball by products of column balls of radius gam, since E colmax G <= E opnorm G.
The nuclear norm enters only through the duality <A, B> <= r opnorm B, so the results hold for every set K with this property.
- dual_ball_covering: for m, q > 0, r, gam > 0 and K with <A, B> <= r opnorm B for every A in K and every B, there are at most exp (48 (m + q) r / gam + 33) matrices such that every A in K is within gam of one of them for colmax.
- product_covering (Lemma 3.10): with r = gam d, d > 0, c0 > 0 and c0 d <= m, q <= C0 d, at most exp ((96 C0 + 33) / c0^2) ^ (m q) of them.
- matrix_small_ball, the covering step of Lemma 3.14 (lines 3498-3548): for distinct coordinates y_(g i j), i < n, j < q, of a tuple y of independent coordinates, and w_i in 'rV_m, if every column sum sum_i y_(g i j) w_i is within gam of any given vector with probability at most p, then colsum_mx g w y + B is in a measurable K as above with probability at most exp (48 (m + q) r / gam + 33) p^q: cover K, then use the independence of the columns.
Main results
| Results | Statement |
|---|---|
Lemma 3.10 of Koehler and Sohn: if c0 d <= m, q <= C0 d with c0 > 0 and d > 0, the m x q matrices of nuclear norm at most gam d (written by duality: <A, B> <= gam d opnorm B for every B) are covered by exp ((96 C0 + 33) / c0^2) ^ (m q) translates of the product of the column balls of radius gam (the ball of colmax, the largest Euclidean norm of a column). In general, a set K with <A, B> <= r opnorm B on K has such a covering of size exp (48 (m + q) r / gam + 33). Proved by Sudakov's minoration and the dual Sudakov inequality instead of Urysohn's inequality. | |
Small-ball probability of a random matrix with independent columns (the covering step of Lemma 3.14 of Koehler and Sohn): for distinct coordinates y_(g i j), i < n, j < q, of a tuple y of law tuple_prod mu N, and w_i in 'rV_m, if each column sum sum_i y_(g i j) w_i is within gam of any given vector with probability at most p, then the m x q matrix of these columns plus a fixed B lies in a measurable K with <A, C> <= r opnorm C on K (the nuclear-norm ball of radius r, for instance) with probability at most exp (48 (m + q) r / gam + 33) p^q. |
Declarations16 exported, 6 local
Context {R : realType} {m q : nat}. Implicit Types A B : 'M[R]_(m, q).
forall {R : realType} {m q : nat}, 'M_(m, q) -> RDefinition colmax A : R := \big[maxr/0]_(j < q) frobenius (col j A).
The largest Euclidean norm of a column, the norm of A as an operator from l^1 to l^2.
Stated in the README together with product_covering.
Used by 15 declarations in 1 file
forall {R : realType} {m q : nat} (A : 'M_(m, q)), 0 <= colmax A
Statement as written in the source
Lemma colmax_ge0 A : 0 <= colmax A.
Used by 1 declaration in 1 file
- this file: colmaxD
Used by 2 declarations in 1 file
- this file: colmaxD, matrix_small_ball
forall {R : realType} {m q : nat} [A : 'M_(m, q)] [c : join_Num_POrderNmodule_between_Algebra_BaseAddUMagma_and_Order_Preorder R], 0 <= c -> (forall j : 'I_q, frobenius (col j A) <= c) -> colmax A <= c
Statement as written in the source
Used by 2 declarations in 1 file
- this file: colmaxD, colmax_le_opnorm
Used by 3 declarations in 1 file
- this file: colmax_lipschitz, colmax_sep, dual_ball_covering
Used by 2 declarations in 1 file
- this file: colmax_lipschitz, colmax_sep
Statement as written in the source
Used by 2 declarations in 1 file
- this file: colmax0, colmax_sep
Used by 2 declarations in 1 file
- this file: colmax_le_frobenius, gopnorm_mean
Used by 2 declarations in 1 file
- this file: gopnorm_mean, colmax_sep
Statement as written in the source
Used by 2 declarations in 1 file
- this file: gopnorm_mean, colmax_sep
Context {R : realType} {m q : nat}.
Used by 1 declaration in 1 file
- this file: frob_sep
Used by 2 declarations in 1 file
- this file: frob_sep, colmax_sep
Let gopnorm_mean : (0 < m)%N -> (0 < q)%N -> \int[gauss (m * q)]_g colmax (vec_mx g : 'M[R]_(m, q)) <= Num.sqrt m%:R + Num.sqrt q%:R.
E opnorm G <= sqrt m + sqrt q, for G = vec_mx g of law gauss (m * q).
Used by 1 declaration in 1 file
- this file: colmax_sep
Let colmax0 : colmax (0 : 'M[R]_(m, q)) = 0.
Used by 1 declaration in 1 file
- this file: dual_ball_covering
Let frob_sep (K : set 'M[R]_(m, q)) (r lam : R) (s : seq 'M[R]_(m, q)) : (0 < m)%N -> (0 < q)%N -> 0 <= r -> 0 < lam -> (forall A, K A -> forall B, mxdot A B <= r * opnorm B) -> separated (fun A B => frobenius (A - B)) K lam s -> (size s)%:R <= expR ((2 * Num.sqrt 2 * r * (Num.sqrt m%:R + Num.sqrt q%:R) / lam + 4) ^+ 2).
Used by 1 declaration in 1 file
- this file: dual_ball_covering
Let colmax_sep (lam gam : R) (s : seq 'M[R]_(m, q)) : (0 < m)%N -> (0 < q)%N -> 0 < gam -> separated (fun A B => colmax (A - B)) [set B | frobenius B <= lam] gam s -> (size s)%:R <= 2 * expR (8 * lam ^+ 2 * (Num.sqrt m%:R + Num.sqrt q%:R) ^+ 2 / gam ^+ 2).
Used by 1 declaration in 1 file
- this file: dual_ball_covering
forall {R : realType} {m q : nat} [K : set 'M_(m, q)] [r gam : R], (0 < m)%N -> (0 < q)%N -> 0 < r -> 0 < gam -> (forall A : 'M_(m, q), K A -> forall B : 'M_(m, q), mxdot A B <= r * opnorm B) -> exists N : seq 'M_(m, q), (size N)%:R <= expR (48 * (m + q)%:R * r / gam + 33) /\ (forall A : 'M_(m, q), K A -> exists2 B : 'M[R]_(m, q), B \in N & colmax (A - B) <= gam)
Covering a set K of matrices on which every linear form is bounded by r times the operator norm (a set contained in the ball of radius r of the nuclear norm) by products of Euclidean balls of radius gam, one for each column: at most exp (48 (m + q) r / gam + 33) of them suffice.
Stated in the README together with product_covering.
Statement as written in the source
Theorem dual_ball_covering (K : set 'M[R]_(m, q)) (r gam : R) : (0 < m)%N -> (0 < q)%N -> 0 < r -> 0 < gam -> (forall A, K A -> forall B, mxdot A B <= r * opnorm B) -> exists N : seq 'M[R]_(m, q), (size N)%:R <= expR (48 * (m + q)%:R * r / gam + 33) /\ forall A, K A -> exists2 B, B \in N & colmax (A - B) <= gam.
Used by 2 declarations in 1 file
- this file: product_covering, matrix_small_ball
forall {R : realType} {m q : nat} [c0 C0 gam : R] [d : nat] [K : set 'M_(m, q)], 0 < c0 -> (0 < d)%N -> 0 < gam -> c0 * d%:R <= m%:R -> c0 * d%:R <= q%:R -> m%:R <= C0 * d%:R -> q%:R <= C0 * d%:R -> (forall A : 'M_(m, q), K A -> forall B : 'M_(m, q), mxdot A B <= gam * d%:R * opnorm B) -> exists N : seq 'M_(m, q), (size N)%:R <= expR ((96 * C0 + 33) / c0 ^+ 2) ^+ (m * q) /\ (forall A : 'M_(m, q), K A -> exists2 B : 'M[R]_(m, q), B \in N & colmax (A - B) <= gam)
Lemma 3.10 of Koehler and Sohn: when c0 d <= m, q <= C0 d, the matrices of nuclear norm at most gam d (written by duality with opnorm) are covered by C^(m q) products of column balls of radius gam, with C = exp ((96 C0 + 33) / c0^2).
Lemma 3.10 of Koehler and Sohn: if c0 d <= m, q <= C0 d with c0 > 0 and d > 0, the m x q matrices of nuclear norm at most gam d (written by duality: <A, B> <= gam d opnorm B for every B) are covered by exp ((96 C0 + 33) / c0^2) ^ (m q) translates of the product of the column balls of radius gam (the ball of colmax, the largest Euclidean norm of a column). In general, a set K with <A, B> <= r opnorm B on K has such a covering of size exp (48 (m + q) r / gam + 33). Proved by Sudakov's minoration and the dual Sudakov inequality instead of Urysohn's inequality.
Statement as written in the source
Corollary product_covering (c0 C0 gam : R) (d : nat) (K : set 'M[R]_(m, q)) : 0 < c0 -> (0 < d)%N -> 0 < gam -> c0 * d%:R <= m%:R -> c0 * d%:R <= q%:R -> m%:R <= C0 * d%:R -> q%:R <= C0 * d%:R -> (forall A, K A -> forall B, mxdot A B <= gam * d%:R * opnorm B) -> exists N : seq 'M[R]_(m, q), (size N)%:R <= expR ((96 * C0 + 33) / c0 ^+ 2) ^+ (m * q) /\ forall A, K A -> exists2 B, B \in N & colmax (A - B) <= gam.
Context {R : realType} {m q : nat}.
forall {R : realType} {m q : nat} [N n : nat], ('I_n -> 'I_q -> 'I_N) -> (nat -> 'rV_m) -> N.-tuple (measurableTypeR R) -> 'M_(m, q)
Definition colsum_mx N n (g : 'I_n -> 'I_q -> 'I_N) (w : nat -> 'rV[R]_m) (y : N.-tuple (measurableTypeR R)) : 'M[R]_(m, q) := \matrix_(a, j) \sum_(i < n) tnth y (g i j) * w i 0 a.
The m x q matrix whose column j is sum_i y_(g i j) w_i, for an N-tuple y and a layout g of n rows and q columns of its coordinates.
Stated in the README together with matrix_small_ball.
Used by 3 declarations in 1 file
- this file: colsum_mx_col, measurable_colsum_mx, matrix_small_ball
forall {R : realType} {m q : nat} [N n : nat] (g : 'I_n -> 'I_q -> 'I_N) (w : nat -> 'rV_m) (y : N.-tuple (measurableTypeR R)) (j : 'I_q), (col j (colsum_mx g w y))^T = \sum_(i < n) tnth (tuple_pick (g^~ j) y) i *: w i
Statement as written in the source
Lemma colsum_mx_col N n (g : 'I_n -> 'I_q -> 'I_N) w (y : N.-tuple (measurableTypeR R)) (j : 'I_q) : (col j (colsum_mx g w y))^T = \sum_(i < n) tnth (tuple_pick (g^~ j) y) i *: w i.
Used by 1 declaration in 1 file
- this file: matrix_small_ball
forall {R : realType} {m q : nat} [N n : nat] (g : 'I_n -> 'I_q -> 'I_N) (w : nat -> 'rV_m), measurable_fun [set: N.-tuple _] (colsum_mx g w)
Statement as written in the source
Lemma measurable_colsum_mx N n (g : 'I_n -> 'I_q -> 'I_N) w : measurable_fun setT (colsum_mx g w).
Used by 1 declaration in 1 file
- this file: matrix_small_ball
Local Open Scope ereal_scope.
forall {R : realType} {m q : nat} [N n : nat] [g : 'I_n -> 'I_q -> 'I_N] [mu : nat -> probability (measurableTypeR R) R] [w : nat -> 'rV_m] (B : 'M_(m, q)) [K : set 'M_(m, q)] [r gam p : R], (forall (i : 'I_n) (j : 'I_q) (i' : 'I_n) (j' : 'I_q), g i j = g i' j' -> i = i' /\ j = j') -> (0 < m)%N -> (0 < q)%N -> 0 < r -> 0 < gam -> 0 <= p -> (measure_matrix_display default_measure_display).-measurable K -> (forall A : 'M_(m, q), K A -> forall C : 'M_(m, q), mxdot A C <= r * opnorm C) -> (forall (j : 'I_q) (nu : nat -> probability (measurableTypeR R) R), (forall i : 'I_n, nu i = mu (g i j)) -> forall z : 'rV_m, (tuple_prod nu n [set s | (frobenius (\sum_(i < n) tnth s i *: w i - z) <= gam)%R] <= p%:E)%E) -> (tuple_prod mu N [set y | K (colsum_mx g w y + B)%R] <= (expR (48 * (m + q)%:R * r / gam + 33) * p ^+ q)%:E)%E
Small-ball probability of a random matrix with independent columns. The entries y_(g i j) are distinct coordinates of a tuple y of law tuple_prod mu N. If, for every column j, the sum sum_i y_(g i j) w_i is within gam of any given vector with probability at most p, then the matrix colsum_mx g w y + B lies in a measurable set K with <A, C> <= r opnorm C on K with probability at most exp (48 (m + q) r / gam + 33) p^q: cover K by that many products of column balls (dual_ball_covering) and use the independence of the columns.
Small-ball probability of a random matrix with independent columns (the covering step of Lemma 3.14 of Koehler and Sohn): for distinct coordinates y_(g i j), i < n, j < q, of a tuple y of law tuple_prod mu N, and w_i in 'rV_m, if each column sum sum_i y_(g i j) w_i is within gam of any given vector with probability at most p, then the m x q matrix of these columns plus a fixed B lies in a measurable K with <A, C> <= r opnorm C on K (the nuclear-norm ball of radius r, for instance) with probability at most exp (48 (m + q) r / gam + 33) p^q.
Statement as written in the source
Theorem matrix_small_ball N n (g : 'I_n -> 'I_q -> 'I_N) (mu : nat -> probability (measurableTypeR R) R) (w : nat -> 'rV[R]_m) (B : 'M[R]_(m, q)) (K : set 'M[R]_(m, q)) (r gam p : R) : (forall i j i' j', g i j = g i' j' -> i = i' /\ j = j') -> (0 < m)%N -> (0 < q)%N -> (0 < r)%R -> (0 < gam)%R -> (0 <= p)%R -> measurable K -> (forall A, K A -> forall C, mxdot A C <= r * opnorm C)%R -> (forall (j : 'I_q) (nu : nat -> probability (measurableTypeR R) R), (forall i : 'I_n, nu i = mu (g i j)) -> forall z : 'rV[R]_m, tuple_prod nu n [set s | (frobenius (\sum_(i < n) tnth s i *: w i - z) <= gam)%R] <= p%:E) -> tuple_prod mu N [set y | K (colsum_mx g w y + B)%R] <= (expR (48 * (m + q)%:R * r / gam + 33) * p ^+ q)%:E.