Skip to content

[Feature Request] Quasi-Monte Carlo point sets for the Sliced Wasserstein module #835

Description

@Samuel-Vangu

Motivation

ot/sliced.py currently generates projection directions purely at random
(get_random_projections normalizes Gaussian vectors; get_projections_sphere
uses QR on a random matrix) — standard Monte Carlo (MC) sampling over the
sphere.

A recent paper, "Quasi-Monte Carlo for 3D Sliced Wasserstein"
(Nguyen, Bariletto & Ho, ICLR 2024), shows that replacing these random
directions with deterministic, low-discrepancy QMC point sets on the
sphere reduces the approximation error of Sliced Wasserstein, especially in
3D. They call this Quasi-Sliced Wasserstein (QSW).

Since QSW is deterministic, the paper also proposes Randomized QSW
(RQSW)
: applying a random rotation to a QMC point set, which provably
preserves both low discrepancy and unbiasedness — making it a drop-in,
unbiased replacement for the current random sampling in stochastic
optimization settings (e.g. gradient flows).

What I'd like to propose

A scoped-down first PR covering one construction:

  • A QMC point set on the sphere via generalized spiral points (simple,
    closed-form, no optimization needed).
  • Its randomized version, RQSW via random rotation — reusing the same
    QR-based rotation mechanism get_projections_sphere already has, just for
    a full (d, d) rotation instead of (d, 2).

The paper covers other QMC constructions too (equal-area mapping,
energy-minimizing points) as possible follow-ups if this is of interest.

Before I start

  1. Would a QMC-based option for this module be of interest?
  2. New dedicated function, or a method= option on the existing API?

Happy to adjust based on feedback. Thanks!

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions