Hilbert's projective metric and Birkhoff's contraction theorem #
For two vectors x y : ι → ℝ over a finite type, Hilbert's projective metric is
TauCeti.hilbertProjectiveDist x y = ⨆ i, ⨆ j, log (x i * y j / (y i * x j)). On strictly
positive vectors this is the classical log (max_i (x i / y i) / min_i (x i / y i)): it is a
pseudometric which vanishes exactly on proportional vectors, so it is a metric on the rays of the
positive orthant. It is unchanged by rescaling either argument, by a common diagonal scaling of
both arguments, and by taking entrywise inverses.
A matrix K with strictly positive entries maps the positive orthant into itself, and its
projective diameter Matrix.projectiveDiameter K is the Hilbert diameter of its columns,
Δ(K) = ⨆ i i' j j', log (K i j * K i' j' / (K i j' * K i' j)). Every image K *ᵥ u of a
nonnegative vector lies within Δ(K) of every other. Birkhoff's theorem sharpens this to a
contraction: K contracts Hilbert's projective metric by the factor tanh (Δ(K) / 4) < 1.
Diagonal scaling invariance, inversion invariance and the contraction of K and of its transpose
are what make the alternating row and column normalisations of a positive kernel (the Sinkhorn
iteration) a contraction for Hilbert's projective metric.
Main definitions #
TauCeti.hilbertProjectiveDist x y: Hilbert's projective metric between two real vectors.Matrix.projectiveDiameter K: Birkhoff's projective diameter of a matrix.
Main results #
TauCeti.hilbertProjectiveDist_triangle,TauCeti.hilbertProjectiveDist_commandTauCeti.hilbertProjectiveDist_eq_zero_iff: the pseudometric laws, with zero distance exactly for proportional positive vectors.TauCeti.hilbertProjectiveDist_smul_left,TauCeti.hilbertProjectiveDist_mul_leftandTauCeti.hilbertProjectiveDist_inv: invariance under rescaling, diagonal scaling and inversion.Matrix.hilbertProjectiveDist_mulVec_le_projectiveDiameter: the images of nonnegative vectors under a positive matrix lie within its projective diameter of each other.Matrix.hilbertProjectiveDist_mulVec_le: Birkhoff's contraction theorem,d (K *ᵥ x) (K *ᵥ y) ≤ tanh (Δ(K) / 4) * d x yfor a strictly positive matrixKand strictly positive vectorsxandy.
References #
- G. Birkhoff, Extensions of Jentzsch's theorem, Trans. Amer. Math. Soc. 85 (1957), 219--227.
- P. J. Bushell, Hilbert's metric and positive contraction mappings in a Banach space, Arch. Rational Mech. Anal. 52 (1973), 330--338.
- E. Seneta, Non-negative Matrices and Markov Chains, Springer (2006), Chapter 3.
- G. Peyré and M. Cuturi, Computational Optimal Transport, Found. Trends Mach. Learn. 11 (2019), Section 4.2, for the use of this contraction in the Sinkhorn iteration.
Hilbert's projective metric #
Hilbert's projective metric between two real vectors, the supremum over all pairs of
indices of the logarithm of the cross ratio x i * y j / (y i * x j).
For strictly positive x and y this is log (max_i (x i / y i) / min_i (x i / y i)); the
pseudometric laws below are stated under the positivity they use. The formula is defined for all
real vectors, with Mathlib's conventions a / 0 = 0 and Real.log 0 = 0.
Equations
Instances For
The defining formula of Hilbert's projective metric.
Hilbert's projective metric is nonnegative: the diagonal cross ratios have logarithm 0.
Every vector is at Hilbert distance 0 from itself.
Hilbert's projective metric is symmetric.
Rescaling the first vector by a nonzero scalar does not change Hilbert's projective metric.
Rescaling the second vector by a nonzero scalar does not change Hilbert's projective metric.
A common diagonal scaling by a vector with nonzero entries does not change Hilbert's projective metric.
Taking entrywise inverses does not change Hilbert's projective metric.
Birkhoff's contraction theorem #
Birkhoff's projective diameter of a matrix: the Hilbert projective diameter of its columns,
⨆ j, ⨆ j', hilbertProjectiveDist (fun i ↦ K i j) (fun i ↦ K i j').
For a matrix with strictly positive entries this is the classical
Δ(K) = log max_{i, i', j, j'} (K i j * K i' j' / (K i j' * K i' j)), and it bounds the Hilbert
distance between any two images of nonnegative vectors under K.
Equations
- K.projectiveDiameter = ⨆ (j : κ), ⨆ (j' : κ), TauCeti.hilbertProjectiveDist (fun (i : ι) => K i j) fun (i : ι) => K i j'
Instances For
The defining formula of the projective diameter.
The projective diameter of a matrix is at most any nonnegative bound on all logarithmic cross ratios of its entries.
The images of two nonnegative vectors under a matrix with strictly positive entries lie within its projective diameter of each other.
Birkhoff's contraction theorem. A matrix K with strictly positive entries contracts
Hilbert's projective metric between strictly positive vectors by the factor
tanh (K.projectiveDiameter / 4), which is strictly less than 1.