Persistent homology
Adapted from Wikipedia · Adventurer experience
Persistent homology
In topological data analysis, persistent [homology](/wiki/Homology_(mathematics) is a way to study the shape of things. It helps us see important patterns in data, like holes or connected parts, by looking at the data from different distances. Features that stay the same from far to near are thought to be real parts of the data.
To use persistent homology, we need to represent the space we are studying as something called a simplicial complex. This breaks down a space into simple pieces, like points, lines, and triangles. We then use a distance measure to create a steps of these pieces, getting bigger step by step.
One common way to start is by using a group of points called a point cloud. We watch how these points change as we move away from them, making what’s called a offset filtration. We can also use something called the nerve to make a special kind of steps known as the Čech filtration. Another method uses structures called Vietoris–Rips complexes, known together as the Vietoris–Rips filtration. These tools help scientists and mathematicians find complex shapes and patterns hidden in data.
Definition
Persistent homology is a way to study shapes by looking at their features at different sizes. Imagine taking a picture of a landscape and zooming in and out — some features, like a big mountain, stay visible even when you change the zoom. In persistent homology, we look for these strong features that don’t disappear easily when we change how we see the shape.
To do this, we turn the shape into 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 lasting features are thought to be the true parts of the shape, while shorter ones might just be random details.
Stability
Persistent homology is a strong tool because it stays stable. This means it doesn’t change much, even if there is some noise or small changes in the data. We measure this stability using something called the bottleneck distance. This 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. This ensures 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 trying to find simpler ways to represent these shapes. They want to make the calculations faster and easier. They aim to use fewer simplices while still getting good results.
Software
There are different software tools that help scientists study how shapes change. These tools work with special math ideas to find important patterns in shapes.
| 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