sf.apps.points

Tools for building kernel matrices and generating point processes using GBS.

See also

Point processes

Point processes

A point process is a mechanism that generates random point patterns among a set of possible outcomes. Point processes are statistical models that can replicate the stochastic properties of natural phenomena, or be used as subroutines in statistical and machine learning algorithms.

Several point processes rely on matrix functions to assign probabilities to different point patterns. As shown in Ref. [14], GBS naturally gives rise to a hafnian point process that employs the hafnian as the underlying matrix function. This point process has the central property of generating clustered data points with high probability. In this setting, a GBS device is programmed according to a kernel matrix that encodes information about the similarity between points. When this kernel matrix is positive semidefinite, it is possible to use GBS to implement a permanental point process and employ fast classical algorithms to sample from the resulting distribution.

One choice of kernel matrix is the radial basis function (RBF) kernel whose elements are computed as:

\[K_{i,j} = e^{-\|\bf{r}_i-\bf{r}_j\|^2/(2\sigma^2)},\]

where \(\bf{r}_i\) are the coordinates of point \(i\), \(\sigma\) is a kernel parameter, and \(\|\cdot\|\) denotes a choice of norm. The RBF kernel is positive semidefinite when the Euclidean norm is used, as is the case for the provided rbf_kernel() function.

Functions

rbf_kernel(R, sigma)

Calculate the RBF kernel matrix from a set of input points.

sample(K, n_mean, n_samples)

Sample subsets of points using the permanental point process.