Persistent homology
Adapted from Wikipedia · Discoverer experience
In topological data analysis, persistent homology is a special way to study the shape of things by looking at their topological features. This means it helps us understand important patterns in data, like holes or connected parts, by looking at the data at different scales or resolutions. Features that stay the same over many scales are considered more important because they are likely real parts of the data, not just mistakes or noise.
To use persistent homology, we first need to represent the space we are studying as something called a simplicial complex. This is a mathematical way to break down a space into simple building blocks, like points, lines, and triangles. We then use a distance function to create a sequence of these blocks, getting bigger and bigger step by step.
One common way to do this is by using a group of points called a point cloud. We can look at how these points change as we move away from them, creating what’s called a offset filtration. We can also use something called the nerve to get a special kind of filtration known as the Čech filtration. Another method uses a sequence of structures called Vietoris–Rips complexes, known together as the Vietoris–Rips filtration. These tools help scientists and mathematicians understand complex shapes and patterns hidden in data.
Definition
Persistent homology is a way to study shapes by looking at their features at different scales. Imagine taking a photo of a landscape and then zooming in and out — some features, like a big mountain, stay visible even when you change the zoom. In persistent homology, we want to find these "sturdy" features that don’t disappear easily when we change how we look at the shape.
To do this, we need to represent the shape as a network of connected points and lines, called a simplicial complex. By looking at this network from many different "zoom levels," we can see which features last the longest. These long-lasting features are thought to be the true characteristics of the shape, while shorter ones might just be random noise or small details.
Stability
Persistent homology is a strong tool because it stays stable, meaning it doesn’t change much even if there is some noise or small changes in the data. This stability is measured using something called the bottleneck distance, which helps us understand how similar two sets of data are. When we make small changes to the data we are studying, the results from persistent homology also change only a little bit. This makes persistent homology reliable for finding real patterns in complicated spaces.
The study of these patterns uses special mathematical tools to compare different functions and their effects, ensuring that the important features of the space are captured accurately.
Computation
The main way to calculate persistent homology uses special math tools called upper-triangular matrices. This process can take a lot of time, depending on how many small shapes, or simplices, are involved.
Researchers are working hard to find simpler ways to represent these shapes, so the calculations can be done faster and more easily. They aim to use fewer simplices while still getting good results.
Software
There are different software tools that help scientists study how shapes change by looking at their features across various sizes. These tools work with special mathematical representations of spaces to find important patterns.
| Software package | Creator | Latest release | Release date | Software license | Open source | Programming language | Features |
|---|---|---|---|---|---|---|---|
| OpenPH | Rodrigo Mendoza-Smith, Jared Tanner | 0.0.1 | 25 April 2019 | Apache 2.0 | Yes | Matlab, CUDA | GPU acceleration |
| javaPlex | Andrew Tausz, Mikael Vejdemo-Johansson, Henry Adams | 4.2.5 | 14 March 2016 | Custom | Yes | Java, Matlab | |
| Dionysus | Dmitriy Morozov | 2.0.10 | 27 Jun 2023 | Modified BSD | Yes | C++, Python bindings | |
| Perseus | Vidit Nanda | 4.0 beta | GPL | Yes | C++ | ||
| PHAT | Ulrich Bauer, Michael Kerber, Jan Reininghaus | 1.4.1 | Yes | C++ | |||
| DIPHA | Jan Reininghaus | Yes | C++ | ||||
| Gudhi | INRIA | 3.10.1 | 1 July 2024 | MIT/GPLv3 | Yes | C++, Python bindings | |
| CTL | Ryan Lewis | 0.2 | BSD | Yes | C++ | ||
| phom | Andrew Tausz | Yes | R | ||||
| TDA | Brittany T. Fasy, Jisu Kim, Fabrizio Lecci, Clement Maria, Vincent Rouvreau | 1.5 | 16 June 2016 | Yes | R | Provides R interface for GUDHI, Dionysus and PHAT | |
| Eirene | Gregory Henselman | 1.0.1 | 9 March 2019 | GPLv3 | Yes | Julia | |
| Ripser | Ulrich Bauer | 1.0.1 | 15 September 2016 | MIT | Yes | C++ | |
| Cubicle | Hubert Wagner | v0.8 beta | May 2018 | GPL | Yes | C++ | Handles large 3D and 2D grayscale images (scalar voxel data) |
| the Topology ToolKit | Julien Tierny, Guillaume Favelier, Joshua Levine, Charles Gueunet, Michael Michaux | 0.9.8 | 29 July 2019 | BSD | Yes | C++, VTK and Python bindings | |
| libstick | Stefan Huber | 0.2 | 27 November 2014 | MIT | Yes | C++ | |
| Ripser++ | Simon Zhang, Mengbai Xiao, and Hao Wang | 1.0 | March 2020 | MIT | Yes | CUDA, C++, Python bindings | GPU acceleration |
This article is a child-friendly adaptation of the Wikipedia article on Persistent homology, available under CC BY-SA 4.0.
Safekipedia