Vision pytorch-topological
aims to be the first stop for building
powerful applications using topological machine learning algorithms,
i.e. algorithms that are capable of jointly leveraging geometrical and
topological features in a data set
To make this vision a reality, we first and foremost need to rely on exceptional documentation. It is not enough to write outstanding code; we have to demonstrate the power of topological algorithms to our users by writing well-documented code and contributing examples.
Here are short-term and long-term goals, roughly categorised:
- Provide consistent way of handling batches or tensor inputs. Most of the modules rely on sparse inputs as lists.
- Support different backends for calculating persistent homology. At
present, we use
GUDHI
for cubical complexes andgiotto-ph
for Vietoris--Rips complexes. It would be nice to be able to swap implementations easily. - Check out the use of sparse tensors; could be a potential way forward for representing persistence information. The drawback is that we cannot fill everything with zeroes; there has to be a way to indicate 'unset' information.
- Add (rudimentary) support for alpha complexes: a basic implementation is already present.
At present, the module supports Wasserstein distance calculations and bottleneck distance calculations between persistence diagrams. In addition to this, several 'pseudo-distances' based on summary statistics have been implemented. There are numerous kernels out there that could be included:
- The multi-scale kernel by Reininghaus et al.
- The sliced Wasserstein distance and kernel by Carrière et al..
This list is incomplete.
There are quite a few topology-based layers that have been proposed by members of the community. We should include all of them to make them available with a single, consistent interface.
- Include
PersLay
. This requires a conversion from TensorFlow code. - Include
PLLay
. This requires a conversion from TensorFlow code. - Include
SLayer
. This is still an ongoing effort. - Include
TopologyLayer
.
- Include signature loss from
topological-autoencoders