Seminario sobre Homología Persistente

Con motivo de la primera escuela de análisis topológico de datos realizado en Enero 2015 en el CIMAT, se tomo la iniciativa en el departamento de Matemáticas del Cinvestav-Zacatenco de realizar un seminario sobre el tema.

Se tomo como base uno de los principales artículos sobre el tema, los cuales los dejo como datos en las referencias de esta entrada.

Decidí compartir la lista de vídeos de las sesiones las cuales se encuentran cargadas en youtube. Los temas fueron explicados por el Dr. Aldo Guzmán, el cual es un buen expositor además de un muy buen matemático.

Espero sean de ayuda para aquellos que tienen curiosidad sobre el tema, las sesiones corren desde la 3 hasta la última. En caso de desear las notas pueden escribirme o directamente escribirle al Dr. Aldo, el cual estoy seguro que se las compartirá.

Lista de vídeos:

  1. Sesión 3
  2. Sesión 4
  3. Sesión 5
  4. Sesión 6
  5. Sesión 7
  6. Sesión 8
  7. Sesión 9
  8. Sesión 10
  9. Sesión 11
  10. Sesión 12
  11. Sesión 13

Espero puedan ver alguno de los vídeos y disfruten las explicaciones y detalles técnicos compartidos en el seminario.

Referencias:

1.-https://www.math.upenn.edu/~ghrist/preprints/barcodes.pdf

2.-http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.162.1437&rep=rep1&type=pdf

3.-http://www.cs.dartmouth.edu/~afra/papers/ijcv07/natural-ijcv.pdf

4.-http://www.ams.org/journals/bull/2009-46-02/S0273-0979-09-01249-X/S0273-0979-09-01249-X.pdf

 

Anuncios

Un ejemplo de homología persistente

Los aspectos teóricos de la Homología Persistente son mucho más elaborados para ponernos en una sola entrada en el blog,pero en mi caso no hay nada como mostrar un ejemplo práctico que permite esclarecer lo que se hace en teoría y hasta cierto punto indicar las piezas claves para aplicar dichas técnicas.

En general se puede pensar que el cálculo de la Homología Persistente es una técnica de aprendizaje no supervisado, el problema que surge es la interpretación de los resultados, ya que de un modo burdo la homología mide los “huecos” u “hoyos” de distintas dimensiones en un “espacio topológico”. Entonces pensar en lo que significa al obtener información de los grupos de homología de dimensión mayor a cero, requiere entender mejor el tipo de información y el fenómeno que genera dicha información.

Al igual que cualquier otra técnica para explorar datos, los primeros pasos es “limpiar” la información o explorarla.El segundo paso para calcular la homología persistente es definir una estructura de “complejo simplicial”, para esto existen muchas metodologías. Un ejemplo es para un grafo, un par de técnicas son “neighborhood complex” y “clique complex” las cuales se pueden revisar en la referencia [1]. El otro concepto es el de “filtración de un complejo simplicial”, la cual es pieza clave de como será implementado el cálculo de la persistencia homológica[2].

Una librería en R proyect que nos permite hacer el cálculo de la homología persistente es pHom [3].Hacemos unos ejemplos sencillos:

#Abrimos la librería
library(phom)
#Asignamos los datos
datos <- as.matrix(iris[,-5])
#Definimos dos parámetros que requerimos para hacer el cálculo  
max_dim <- 0
max_f <- 1
irisInt0 <- pHom(datos, 
                 dimension=max_dim,              # Dimensión máxima del cálculo de la homología persistente
                 max_filtration_value=max_f,     # Dimensión máxima de la filtración del complejo
                 mode="vr",                      # El tipo de filtración del complejo
                 metric="euclidean")
par(mfrow=c(2,1))  
#Construimos la gráfica de barras                              
plotBarcodeDiagram(irisInt0, max_dim, max_f, title="H0 Barcode de datos de Iris")               
#Construimos el diagrama de Persistencia
plotPersistenceDiagram(irisInt0, max_dim, max_f,title="Diagrama de Persistencia ")

Diagrama_y_barcode_de_homología_persistente_datos_Iris
El ejemplo es muy sencillo y no muestra cual es el beneficio de usar esta técnica ante otra y en qué tipo de situación puede ser beneficiosa. Con la intensión de mostrar qué es lo que detecta la técnica aplicamos el el cálculo de la Homología Persistente a dos muestras distintas, la primera generada por una distribución uniforme y la segunda una muestra de puntos sobre el circulo unitario, es decir el círculo de radio 1.

#Abrimos la librería
library(phom)
#Generamos la muestra uniforme
x1<-runifor(200)
y1<-runifor(200)
X2<t(as.matrix(rbind(x1, y1)))
#Definimos dos parámetros que requerimos para hacer el cálculo  
max_dim <- 1
max_f <- 0.6
Intervalos <- pHom(X2, 
                 dimension=max_dim,              # Dimensión máxima del cálculo de la homología persistente
                 max_filtration_value=max_f,     # Dimensión máxima de la filtración del complejo
                 mode="vr",                      # El tipo de filtración del complejo la cual es Vietoris-Rips
                 metric="manhattan")
#Podemos ver primero la gráfica de los puntos en el plano
plot(X2)
#Después generamos el diagrama de Persistencia
plotPersistenceDiagram(Intervalos, max_dim, max_f, title="Homología Persistente de una muestra uniforme sobre el plano")

Muestra_Aleatoria_Uniforme_sobre_el_plano

Diagrama_de_persistencia_de_una_muestra_uniforme_aleatoria_sobre_el_plano

El diagrama permite mostrar que el comportamiento de los grupos de homología a nivel 1(en azul) muestran cierta dinámica, pero no logra definirse un componente que persista mucho al paso de la filtración.Aquí implicaría revisar los trabajos recientes[4,5].

Ahora procedemos a realizar el análisis de una muestra uniforme sobre el círculo.

#Generamos la muestra
t<-2*pi*runifor(200)
x1<-cos(t);y1<-sin(t)
X2<-t(as.matrix(rbind(x, y)))
#Definimos dos parámetros que requerimos para hacer el cálculo  
max_dim <- 1
max_f <- 0.6
Intervalos <- pHom(X, 
                 dimension=max_dim,              # Dimensión máxima del cálculo de la homología persistente
                 max_filtration_value=max_f,     # Dimensión máxima de la filtración del complejo
                 mode="vr",                      # El tipo de filtración del complejo la cual es Vietoris-Rips
                 metric="manhattan")
#Podemos ver primero la gráfica de los puntos en el plano
plot(X2)
#Después generamos el diagrama de Persistencia
plotPersistenceDiagram(Intevalos, max_dim, max_f, title="Homología Persistente de una muestra uniforme sobre el plano")

Observamos en el diagrama de Persistencia que existen dos generadores que persisten ante el paso de la filtración, uno para los grupos de homología de grado cero y otros para grado uno, lo cual comparando contra la muestra uniforme muestra un resultado distinto.

Muestra_Aleatoria_Uniforme_sobre_un_círculo_de_radio_1

Diagrama_de_persistencia_de_una_muestra_aleatoria_sobre_el_círculo_unitario

Un comparativo entre esta técnica con la identificación de cluster o aglomeraciones puede resultar más interesante, ya que el análisis de cluster es la técnica usada por excelencia en el aprendizaje no supervisado. En otra entrada haré un comparativo de las técnicas.