Persistent homology
An introduction via interactive examples

×
Persistent homology is one of the most important tools in computational topology. Using persistent homology, we can extract topological features of a space at different spatial resolutions. Persistent pairs are detected for identifying relevant features of the underlying space, rather than artifacts of sampling, noise, or particular choice of parameters. To find the persistent homology of a space, the space must first be represented as a simplicial complex. In this section, we are going to introduce the notion of simplicial complex and the notion of simplicial homology, a powerful tool for studying topological spaces that will reveal itself as fundamental for understanding the information provided by persistent homology.

Simplicial complexes

A \(k\)-dimensional simplex (\(k\)-simplex for short) is the convex hull \(v_0v_1\cdots v_k\) of \(k+1\) affinely independent points \(v_0, v_1, \dots,v_k\) in the Euclidean space \(\mathbb{R}^n\) which are called its vertices. A face of \(\sigma=v_0\cdots v_k\) of a non-empty subset of the vertices of \(\sigma\).

A simplicial complex \(\Sigma\) is a finite collection of simplices such that:

A \(d\)-dimensional complex (\(d\)-complex) is a complex such that the maximum of the dimensions of its simplices is \(d\). We denote by \(\Sigma_k\) the set of all the \(k\)-simplices in \(\Sigma\).

The interactive example illustrates a simplicial complex composed by: Since the maximum dimension of its simplices is 2, the complex is a simplicial 2-complex. Looking at the only triangle in the complex, we see that its faces are its three delimiting edges and their boundary vertices. In a similar fashion, the faces of an edge are its boundary vertices.

Simplicial Homology

Homology aims at detecting \(k\)-dimensional holes in a shape, \(k\)-holes for short. A \(k\)-hole is detected by collecting the \(k\)-simplices around it. So for example:

The interactive example presents only two types of holes over the three that we can find on a 2-simplicial complex. In particular it has two 0-holes, since it is formed by two components and one 1-hole.

In the following, we describe the algebraic formulation that allows for detecting holes. For each notion introduced, we will furnish the corresponding geometrical example on our interactive figure.

The \(k\)-chain is the basic element we are going to consider. A \(k\)-chain is a formal sum of \(k\)-simplices on \(\Sigma_k\). The face relation among simplices induces a notion of boundary for \(k\)-chains. The boundary map \(\partial_k:C_k(\Sigma)\longrightarrow C_{k-1}(\Sigma)\) is defined, over each simplex \(\sigma=v_0\cdots v_k\), by $$ \partial_k(\sigma):=\hat{\sigma}_0+\dots+\hat{\sigma}_k, \qquad \quad \mbox{ for } i=0,\dots,k $$ where \(\hat{\sigma}_i\) is the convex hull of all vertices of \(\sigma\) but \(v_i\). Then, \(\partial_k\) is extended to all \(k\)-chains by linearity and by removing each pair of simplices appearing twice.

Given a \(k\)-chain \(c\), its \((k-1)\)-boundary is \(\partial_k(c)\) and the the image of the map \(\partial_k\) is denoted by \(B_{k-1}(\Sigma)\).

Among all the possible chains on a simplicial complex, we want to recognize a specific type of chains. A \(k\)-cycle is a \(k\)-chain \(c\) such that \(\partial_k(c)=0\). The kernel of \(\partial_k\) is denoted by \(Z_k(\Sigma)\).

In the following example, we can study different types of chains and boundaries. Lets consider the 1-chain composed by a set of edges. Its 0-boundary corresponds to the set of vertices that appears as a face of an odd number of edges.

In this case, we have only one 2-chain composed by a single triangle and its 1-boundary is composed by all its three edges.

Identifying the holes of an object means to discriminate between the cycles that are the boundary of some chain and those that are not. As we already know, the 1-chain around the triangle is a boundary, while the 1-chain around the hole is not. Notice that we may have multiple non-boundary chains representing the same hole.

It can be easily checked that \(B_k(\Sigma)\subseteq Z_k(\Sigma)\) by noticing that, for each \((k+1)\)-simplex \(\sigma\), each simplex in \(\partial_k(\partial_{k+1}(\sigma))\) appears exactly an even number of times, thus giving always a null contribute.

This allows us to define, the \(k\)-homology space of \(\Sigma\) as $$ H_k(\Sigma):= \frac{Z_k(\Sigma)}{B_k(\Sigma)} $$

The quotient over the \(k\)-boundaries avoids redundancies, thus letting all the possible \(k\)-chains around the same \(k\)-hole to fall in the same homology class.

For any homology degree \(k\), it holds that \(H_k(\Sigma)\) is a finite dimensional vector space. This means that the \(k\)-homology of a simplicial complex admits a finite basis of different \(k\)-homology classes \(h_1,\dots,h_{\beta_k}\) entirely expressing \(H_k(\Sigma)\). In formulas, $$ H_k(\Sigma)\cong \underbrace{\mathbb{Z}_2 \oplus\dots\oplus \mathbb{Z}_2}_{\beta_k \mbox{ copies of } \mathbb{Z}_2} $$

The integer \(\beta_k\) indicates a homological invariant, which is called the \(k\)-Betti number. Intuitively, \(\beta_k\) corresponds to the number of \(k\)-dimensional holes in the simplicial complex.

Theoretical basis. Building the simplicial chains in the way we have described is formally referred as build the chains by taking coefficients over \(\mathbb{Z}_2\). This is a common practice when working with simplicial homology in real applications since, working with \(\mathbb{Z}_2\), makes calculations much easier.

However, homology can be defined with coefficients in any Abelian group. The complete homological information uses \(\mathbb{Z}\) as coefficient group, which is able of dealing with the presence of torsion in a shape. It can be proven (see [Hat02] , Chapter X) that simplicial complexes embeddable in \(\mathbb{R}^3\) have no torsion and thus, their \(\mathbb{Z}\)-homology groups reduce to \(\mathbb{Z}_2\)-homology.



Next Section