In this paper, we suggested a new algorithm to estimate representations of
compact Lie groups from finite samples of their orbits. The algorithm takes as an input a point cloud
At its core, the algorithm enumerates the representations of the group in
All the illustrations found in our paper are implemented in notebooks/illustrations.ipynb. In addition, this repo
contains several other notebooks, described below.
For a general presentation of this work, see the talks in English or in Portuguese.
Basic experiments are found in notebooks/tutorial.ipynb, displaying the possibilities of
# Local imports.
from algebra import are_representations_equivalent
from orbits import sample_orbit_from_group, sample_orbit_from_algebra, print_hausdorff_distance
from liepca import get_lie_pca_operator
from optimization import find_closest_algebra
# Generate a dataset.
pts, groundtruth_rep = sample_orbit_from_group(
group="torus", # group considered, among "torus", "SU(2)" and "SO(3)"
group_dim=1, # dimension of the group (here, circle)
ambient_dim=4, # ambient dimension
nb_points=500, # number of sample points
frequency_max=4, # maximal weight
)
# Compute Lie-PCA.
lie_pca = get_lie_pca_operator(
pts=pts, # input point cloud
nb_neighbors=10, # number of neighbors for tangent space estimation
orbit_dim=1, # intrinsic dimension for tangent space estimation
)
# Project on Lie subalgebras.
optimal_rep, optimal_algebra = find_closest_algebra(
group="torus",
lie_pca=lie_pca,
group_dim=1,
frequency_max=4,
method="abelian", # optimization method, among "full_lie_pca", "bottom_lie_pca" and "abelian"
)
# Sanity check: compare groundtruth and estimated representations.
are_representations_equivalent(
group="torus", rep0=groundtruth_rep, rep1=optimal_rep, verbose=True
)
# Generate orbit.
orbit = sample_orbit_from_algebra(
group="torus",
rep_type=optimal_rep, # representation type (orbit-equivalence class) estimated above
algebra=optimal_algebra, # Lie algebra estimated above
x=pts[0], # initial point to generate the orbit, chosen arbitrarily
nb_points=1000, # number of points to sample
)
# Sanity check: Hausdorff distance between orbits.
print_hausdorff_distance(pts, orbit)In notebooks/image_analysis.ipynb, we gather our experiments with 2D and 3D images. As it turns out, common image
transformations, such as translations and rotations, when embedded in the Euclidean space, form orbits of
representations of Lie groups. This information can subsequently be used for various Machine Learning tasks.
Although aiming at implementing continuous symmetries, such as rotations for 2D images, common equivariant neural
networks only implements finite subgroups, or approximate symmetries. In notebooks/steerable_cnn.ipynb, we propose a
simple experiment to quantify how good are steerable convolutional neural networks at approximating
In notebooks/physics.ipynb, we put
Our last experiment is found in notebooks/cyclooctane.ipynb. As discovered recently, the space of conformers of
cyclooctane exhibits an intriguing topology: that of the union between a sphere and a Klein bottle. The Klein bottle
does not support an action of the torus




