Homología persistente - Persistent homology
- Consulte homología para obtener una introducción a la notación.
La homología persistente es un método para calcular características topológicas de un espacio a diferentes resoluciones espaciales. Se detectan características más persistentes en una amplia gama de escalas espaciales y se considera que es más probable que representen características reales del espacio subyacente en lugar de artefactos de muestreo, ruido o una elección particular de parámetros.
Para encontrar la homología persistente de un espacio, el espacio primero debe representarse como un complejo simplicial . Una función de distancia en el espacio subyacente corresponde a una filtración del complejo simplicial, que es una secuencia anidada de subconjuntos crecientes.
Definición
Formalmente, considere una función de valor real en un complejo simplicial que no es decreciente en secuencias crecientes de caras, por lo que siempre que sea una cara de in . Entonces, para cada, el conjunto de subniveles es un subcomplejo de K , y el orden de los valores de en los simples en (que en la práctica es siempre finito) induce un orden en los complejos de subnivel que define una filtración
Cuando , la inclusión induce un homomorfismo en los grupos de homología simplicial para cada dimensión . Los grupos de homología persistente son las imágenes de estos homomorfismos, y los números de Betti persistentes son las filas de esos grupos. Los números de Betti persistentes coinciden con la función de tamaño , un predecesor de la homología persistente.
Cualquier complejo filtrado sobre un campo puede ser llevado por una transformación lineal preservando la filtración a la llamada forma canónica , una suma directa canónicamente definida de complejos filtrados de dos tipos: complejos unidimensionales con diferenciales triviales y complejos bidimensionales con homología trivial .
Un módulo de persistencia sobre un conjunto parcialmente ordenado es un conjunto de espacios vectoriales indexados por , con un mapa lineal cuando , con igual a la identidad y para . De manera equivalente, podemos considerarlo como un functor desde considerado como una categoría hasta la categoría de espacios vectoriales (o -módulos ). Existe una clasificación de módulos de persistencia sobre un campo indexado por :
Cada uno de estos dos teoremas nos permite representar de forma única la homología persistente de un complejo simplicial filtrado con un código de barras o diagrama de persistencia . Un código de barras representa cada generador persistente con una línea horizontal que comienza en el primer nivel de filtración donde aparece y termina en el nivel de filtración donde desaparece, mientras que un diagrama de persistencia traza un punto para cada generador con su coordenada x, la hora de nacimiento y su Coordenada y la hora de la muerte. De manera equivalente, los mismos datos están representados por la forma canónica de Barannikov , donde cada generador está representado por un segmento que conecta los valores de nacimiento y muerte trazados en líneas separadas para cada uno .
Estabilidad
La homología persistente es estable en un sentido preciso, lo que proporciona robustez frente al ruido. Existe una métrica natural en el espacio de los diagramas de persistencia dada por
Cálculo
Existen varios paquetes de software para calcular los intervalos de persistencia de una filtración finita. El algoritmo principal se basa en llevar el complejo filtrado a su forma canónica mediante matrices triangulares superiores.
Paquete de software | Creador | Último lanzamiento | Fecha de lanzamiento | Licencia de software | Fuente abierta | Lenguaje de programación | Características |
---|---|---|---|---|---|---|---|
OpenPH | Rodrigo Mendoza-Smith, Jared Tanner | 0.0.1 | 25 de abril de 2019 | Apache 2.0 | sí | Matlab , CUDA | |
javaPlex | Andrew Tausz, Mikael Vejdemo-Johansson y Henry Adams | 4.2.5 | 14 de marzo de 2016 | Personalizado | sí | Java , Matlab | |
Dionisio | Dmitriy Morozov | 2.0.8 | 24 de noviembre de 2020 | BSD modificado | sí | C ++ , enlaces de Python | |
Perseo | Vidit Nanda | 4.0 beta | GPL | sí | C ++ | ||
PHAT | Ulrich Bauer, Michael Kerber y Jan Reininghaus | 1.4.1 | sí | C ++ | |||
DIPHA | Jan Reininghaus | sí | C ++ | ||||
Gudhi | INRIA | 3.4.0 | 15 de diciembre de 2020 | MIT / GPLv3 | sí | C ++ , enlaces de Python | |
CTL | Ryan Lewis | 0,2 | BSD | sí | C ++ | ||
phom | Andrew Tausz | sí | R | ||||
TDA | Brittany T. Fasy, Jisu Kim, Fabrizio Lecci, Clement Maria, Vincent Rouvreau | 1,5 | 16 de junio de 2016 | sí | R | ||
Eirene | Gregory Henselman | 1.0.1 | 9 de marzo de 2019 | GPLv3 | sí | Julia | |
Ripser | Ulrich Bauer | 1.0.1 | 15 de septiembre de 2016 | MIT | sí | C ++ | |
el Kit de herramientas de topología | Julien Tierny, Guillaume Favelier, Joshua Levine, Charles Gueunet, Michael Michaux | 0.9.8 | 29 de julio de 2019 | BSD | sí | Enlaces de C ++ , VTK y Python | |
libstick | Stefan Huber | 0,2 | 27 de noviembre de 2014 | MIT | sí | C ++ | |
Destripador ++ | Simon Zhang, Mengbai Xiao y Hao Wang | 1.0 | Marzo de 2020 | MIT | sí | CUDA , C ++ , enlaces de Python | Aceleración de GPU |