Greedy Poisson Rejection Sampling
Gergely Flamich
TL;DR
Greedy Poisson Rejection Sampling (GPRS) reframes one-shot channel simulation as a greedy search for the first arrival of a Poisson process under a stretched density-ratio graph. The authors prove measure-theoretic correctness, derive runtime and codelength bounds, and show optimal or near-optimal performance for one-dimensional unimodal density-ratio problems, with an overall bound on codelength of $H[X| ext{Pi}]\le I[X;Y]+\log_2(I[X;Y]+1)+6$. They introduce parallel and branch-and-bound variants (PGPRS and GPRS_sac) that exploit problem structure to accelerate sampling and reduce coding costs, significantly outperforming A* coding on targeted tasks. The work provides a versatile, theory-grounded toolkit for efficient one-shot channel simulation and has practical implications for neural data compression and privacy applications, complemented by open-source implementation.
Abstract
One-shot channel simulation is a fundamental data compression problem concerned with encoding a single sample from a target distribution $Q$ using a coding distribution $P$ using as few bits as possible on average. Algorithms that solve this problem find applications in neural data compression and differential privacy and can serve as a more efficient alternative to quantization-based methods. Sadly, existing solutions are too slow or have limited applicability, preventing widespread adoption. In this paper, we conclusively solve one-shot channel simulation for one-dimensional problems where the target-proposal density ratio is unimodal by describing an algorithm with optimal runtime. We achieve this by constructing a rejection sampling procedure equivalent to greedily searching over the points of a Poisson process. Hence, we call our algorithm greedy Poisson rejection sampling (GPRS) and analyze the correctness and time complexity of several of its variants. Finally, we empirically verify our theorems, demonstrating that GPRS significantly outperforms the current state-of-the-art method, A* coding. Our code is available at https://github.com/gergely-flamich/greedy-poisson-rejection-sampling.
