En el artículo anterior, exploramos los límites de la IA en relación con su capacidad de descubrimiento temprano del COVID-19. Vimos que, hasta cierto punto, el coronavirus podía ser considerado lo que denominábamos en dicho artículo como un desconocido sabido (Unknown Knowns).
Pero también vimos que, potencialmente, para su detección temprana mediante las técnicas de detección de anomalías necesitaríamos disponer de un conjunto de datos con el suficiente número de características (variables) y lo suficientemente grande en muestras anómalas. De esta manera podremos determinar en qué se comporta el coronavirus COVID-19 de forma significativamente diferente a otros coronavirus y otras enfermedades infecciosas, ya que, de no ser así, las técnicas de detección de anomalías no funcionan correctamente. Como puede verse en la figura de abajo, si somos capaces de realizar la detección temprana, entonces tendremos algo de tiempo para organizar una estrategia para combatir el foco de infección, incluso antes de que pase a ser una epidemia (y no digamos ya cuando se vuelve pandemia).

Fuente: Adaptado de Tomás Pueyo. “Coronavirus: the hammer and the dance” (el martillo y el baile), Medium.com. Las tres estrategias frente al COVID-19: no hacer nada, mitigación (EEUU, UK), y supresión (Italia, España, China, Corea del Sur), el martillo y la danza.
Estableciendo los problemas de IA a resolver
Así que nuestro problema, con vistas al futuro, es si es posible detectar de forma temprana no ya el COVID-19 sino realmente el COVID-20 que puede ser una mutación para finales de este otoño de 2020 del COVID-19, claro que en realidad esta búsqueda la haríamos primero sobre el COVID-19, porque de éste (desgraciadamente) ya empieza a haber información y sobre todo muestras en abundancia y sólo cuando estuviéramos seguros de su buen funcionamiento (con el COVID-19), lo pondríamos a vigilar la aparición de su sucesor (o un rebrote del COVID-19).
En este punto convendría usar datos de las varias cepas existentes que se han detectado, pues de esta manera nos aseguraríamos de que somos capaces de detectar ambas (suponiendo que pudieran existir diferencias relevantes en sus síntomas o en otras variables). Es bastante probable que las mutaciones que se produzcan no cambien radicalmente los síntomas, sino más bien la dinámica de la infección (tasa de transmisibilidad, tasa de mortalidad, etc.), por lo que en este caso un falso positivo, es decir, tomar como COVID-19 lo que en realidad pudiera ser COVID-20 es perfectamente asumible.
Así pues, nuestro problema original, desde el punto de vista de la Inteligencia Artificial (IA) y particularmente del aprendizaje automático (ML) es, en realidad, dos problemas distintos relacionados:
- Un avisador de una posible nueva enfermedad infecciosa: lo que implica si es posible determinar que un dato se sale de “lo normal” sin ningún tipo de entrenamiento (esto es mediante aprendizaje no supervisado) porque aún no sabemos lo que buscamos, sólo queremos detectar lo que se sale de lo normal.
- Un detector del COVID-20 entrenado con el COVID-19: lo que implica que si una vez detectamos varios casos “anormales” y tenemos un reducido número de muestras es posible entrenar a nuestro sistema con estas pocas muestras para clasificar correctamente nuevos posibles casos.
En este artículo hablaré sobre el primer problema, pero el segundo lo dejaré para otro artículo para no extenderme demasiado. En lo que sigue la mayoría de las gráficas las he obtenido usando la plataforma de aprendizaje automático denominada BigML (bigml.com). Se trata de una plataforma muy buena de una empresa que, aunque pasa por ser una estadounidense, su fundador Francisco J. Martín y parte de su equipo nuclear son españoles. Si no se indica otra cosa la fuente de las gráficas es BigML.com
Un clásico: el análisis de componentes principales y la distancia de Mahalanobis
La aproximación “clásica” consiste en trata de evitar en primer lugar la maldición de la dimensión de que hablamos en el artículo anterior. Para ello usa una técnica denominada análisis de componentes principales (conocido por PCA por sus siglas en inglés) que, sin entrar en detalles técnicos, permite describir un conjunto de datos algunos de las cuales posiblemente estarán correlacionadas (i.e. con asociación estadística) en términos de un grupo mucho más reducido de nuevas variables (“componentes”), no correlacionadas. Los componentes se eligen en función de la cantidad de varianza original (i.e. dispersión de valores) que describen, por lo que la técnica resulta adecuada para reducir la dimensionalidad de un conjunto de datos (por ejemplo, pasando de 200 a 10 variables, pero explicando el 40% de la varianza del conjunto original). De manera que no se necesita un número astronómico de muestras para implementar con éxito la técnica de detección de anomalías.

Vista de la técnica PCA. Más de 200 variables de la diagnosis de la arritmia cardíaca y las 7 principales explican el 40% de la varianza observada en los datos. Posiblemente con estas 7 variables ya dispongamos todo lo que necesitamos para tener un clasificador («tiene arritmia cardíaca» o «NO tiene arritmia cardíaca»).
Una vez reducidas las dimensiones, existen varias maneras de detectar las anomalías. La mayoría de ellas intentan construir un perfil de lo que es “normal” y tratan de detectar las anomalías (conocidas en estadística como valores atípicos), que probablemente son generadas por una media diferente (un mecanismo diferente en nuestro contexto). Luego se trata de definir una métrica (denominada distancia de Mahalanobis) que nos permita decidir cómo de separada de la normalidad está un valor determinado y cuando supere un umbral que fijaremos nosotros en función de la aplicación, entonces clasificamos la muestra como «anómala». Por ejemplo, en la siguiente imagen los puntos en rojo son valores atípicos de la curva de carga de tráfico de un servidor Web. Estos puntos indican que probablemente el sitio web ha estado bajo ataque en esos momentos. El umbral podría estar en la mitad del eje vertical por lo que los tres puntos que superan este umbral serían muestras anómalas.
Detección de anomalías mediante bosques de aislamiento
Existe otra forma de detectar anomalías, que es más sencilla de implementar ya que consiste en aislar las anomalías, lo que tiene la gran ventaja de abrir la posibilidad de usar extensamente técnicas de muestreo mucho más de lo que permiten las técnicas de establecimiento de un perfil “normal”, creando algoritmos muy rápidos y con baja demanda de memoria.
Para ello construye lo que se denomina un “bosque aislado” (isolated forest). En realidad, se trata de generar aleatoriamente una cantidad grande de árboles de decisiones (decision trees). Los árboles decisión son como jugar a las 20 preguntas, en las que un jugador va preguntando cosas al otro (“¿es un animal o una cosa?, etc.”) hasta que el primero adivina lo que está pensando el segundo y gana, o bien se consumen las 20 preguntas sin haberlo adivinado en cuyo caso, gana el segundo jugador. Este sistema se usa mucho también para identificar averías o en servicios de asistencia telefónica a clientes.

Árbol de decisión: en cada nodo del árbol se toma una decisión basada en una variable (o pregunta). En las variables numéricas hay maneras de que el punto de corte sea donde permite maximizar la ganancia de información (el poder de separación) como se ve a la derecha en figura.
El “bosque de aislamiento”, se llama “bosque” porque un conjunto (ensemble) de árboles constituye un bosque, ya que normalmente se generan entre 128 y 256, aunque a veces se pueden usar más. Cada árbol se produce generando aleatoriamente una variable y un valor y el espacio resultante (por la división creada) se recorre recurrentemente dividiendo aleatoriamente las variables restantes y sus posibles valores, hasta que se aíslan las instancias (ejemplos, muestras) particulares. Al final hay distintas maneras de decidir cuál es el mejor clasificador (criterio de clasificación), pero para no complicar más la cosa, digamos que se decide por la mayoría del resultado de los árboles.
Y el término “aislamiento” viene de la idea de que los valores anormales se aislarán rápidamente en pocos pasos, mientras que los valores comunes tendrán que profundizar mucho en el árbol para aislarse. Si en una mayoría de estos árboles aleatorios determinadas muestras son aisladas con pocos pasos, esto es una sospecha grande de que estamos ante un valor atípico (outlier). Nuevamente, como sucedía con PCA y la distancia de Mahalanobis, también hay métricas para dar una puntuación de «anormalidad» pero no vamos a profundizar en ello.

Árbol de aislamiento: muestra difícil de aislar, porque es muy común. A la izquierda el árbol y a la derecha las subdivisiones (en 2D) que las decisiones van haciendo sobre el conjunto de datos hasta que un valor queda aislado.

Árbol de aislamiento: muestra anómala, rápidamente queda aislada. Sólo ha necesitado de dos subdivisiones del espacio.
Un enfoque basado en redes neuronales: autocodificadores
La otra forma principal de llevar a cabo la detección de anomalías es mediante el uso de redes neuronales artificiales, en particular unas denominadas autocodificadoras que aprenden la forma más eficiente de codificar los datos mediante aprendizaje no supervisado. El objetivo del autocodificador es aprender una representación de un conjunto de datos, típicamente a través de una reducción de su dimensionalidad, pero con la ventaja de que admite transformaciones no lineales a diferencia de la técnica del PCA, lo que le permite reconstrucciones con menos pérdida de información (o equivalentemente, mayor capacidad de detección en este caso). De hecho, la versión más simple de una autocodificador está fuertemente relacionada con la técnica PCA, aunque los pesos de los nodos de esta red no son exactamente iguales a las componentes principales del PCA y, en general, no son ortogonales (a diferencia de aquélla).
Junto con esta reducción, la red aprende a reconstruir lo que ha aprendido, intentando generar de la versión reducida una representación tan próxima como sea posible a la entrada original. La forma más simple es una red neuronal prealimentada (feedforward) no recurrente (la salida no vuelve a realimentar la entrada), con una capa de entrada, una o más capas ocultas y una capa de salida, que tiene exactamente el mismo número de nodos que la capa de entrada y su propósito es reconstruir su propia entrada.

Imagen: red neuronal autocodificadora. La versión con dimensionalidad menor es la capa oculta «Codigo» (Code). Fuente: “How to use machine learning for anomaly detection and condition monitoring”, Vegard Flovik, Medium.com
Nuevamente estamos ante un uso de una técnica distinto del que fue concebida inicialmente, que era obtener una representación de un conjunto de variables con otro conjunto menor de variables, de manera que esta representación más simple, ocupe menos espacio y sufra menos de la maldición de la dimensión al tiempo que sigue manteniendo bastante bien la distribución estadística del conjunto original (en otras palabras, las características que definen nuestro objeto de interés, por ejemplo una imagen en alta resolución o el patrón de una enfermedad).
Como en el caso de los árboles de decisión, la originalidad proviene del uso de los autocodificadores ya que la detección de la muestra anómala se produce bajo la asunción de que el deterioro de la situación “normal” afecta a la interacción entre las diversas variables, lo que se traducirá en el aumento del error de reconstrucción de la distribución de probabilidad para identificar los datos anómalos. Aquí como ya hemos comentado en las técnicas anteriores hay una métrica para evaluar y decidir cuando el error de reconstrucción es aceptable o se ha de clasificar como una «anomalía».
Y con esto concluyo este artículo. Hemos descrito a alto nivel, cómo hacer frente al primero de nuestros problemas para detectar el futuro COVID-20. En otro artículo veremos si es posible entrenar un detector de COVID-20 a partir de las muestras anómalas que hayamos detectado (y de las cuales sólo sabemos que son “diferentes”).
Nos vemos pronto…