En los últimos años, las técnicas de aprendizaje profundo (deep learning) han superado a los métodos tradicionales basados en aprendizaje máquina (machine learning) tradicional a la hora de realizar tareas de reconocimiento de patrones complejas. En este post trataremos de explicar las razones.

Aprendizaje máquina y aprendizaje profundo

El paradigma tradicional de aprendizaje máquina se basa en extracción y selección de descriptores de características relevantes para la tarea encomendada. Estas características son normalmente diseñadas por expertos con un buen conocimiento del dominio de aplicación. Los sistemas de visión artificial basados en aprendizaje máquina tradicional utilizaban características que eran capaces de extraer información de la imagen describiendo la forma, textura y  color de los diferentes elementos presentes en la imagen. Por ejemplo, los bancos de filtros de Gabor  o Local Binary Patterns (LBP) eran de uso común para extraer características de textura de la imagen o características extraídas de un histograma o transformaciones del modelo de color se utilizaban para describir el color en la imagen.

Figura 1: Algoritmo de visión artificial clásico basado en características diseñadas manualmente sobre las que se aplica un algoritmo de aprendizaje máquina

Por ejemplo, en nuestro trabajo inicial para la identificación de enfermedades en plantas en ambientes reales a partir de imágenes, extrajimos características de textura (LBP) y de color (media y varianza del modelo de color Lab) de blobs y regiones de la imagen sospechosas de presentar una enfermedad. Este algoritmo requería introducir manualmente descriptores visuales que permitieran transformar la alta dimensionalidad de la señal de imagen en un conjunto reducido de números que describieran cada región de la imagen que fuera susceptible de presentar enfermedad.

Tal y como imaginará el lector, añadir nuevas enfermedades comenzó a ser gradualmente más complicado y, de forma adicional, el nivel descriptivo de los descriptores manualmente diseñados no era suficientemente complejo para tratar con enfermedades más complicadas o sutiles. Detallaremos la evolución de este algoritmo en futuros posts. Por ahora, es importante remarcar que el diagrama de nuestro algoritmo de identificación de enfermedades en plantas antes de dar el paso al aprendizaje profundo ocupaba un cartel DIN-A1. Este algoritmo lograba una precisión de 80% (Balanced Accuracy) para un conjunto de tres enfermedades. Sin embargo, cuando migramos a un diseño de algoritmo basado en aprendizaje profundo  el diagrama de diseño del algoritmo se redujo significativamente y la precisión del mismo se incrementó hasta 91%. En estos momentos alcanzamos una precisión del 99%.

Volvamos a la cuestión principal de este post: por qué las características generadas manualmente con el conocimiento del dominio, conjuntamente con potentes algoritmos de aprendizaje máquina como XGBoost, SVM o Random Forests, no puede competir con la capacidad de las técnicas de deep learning para aprender características con gran capacidad discriminativa para describir el problema. La respuesta la encontramos directamente en la descripción de Aprendizaje Profundo. De acuerdo con Yoshua Bengio, “Los métodos de aprendizaje profundo tratan de aprender jerarquías de características en las que las características a niveles altos de la jerarquía se basan en la composición de las características extraídas a niveles inferiores. Aprendizaje automático de características a niveles múltiples de abstracción permiten a un sistema aprender funciones complejas asociando el dato de entrada con la salida esperada directamente a partir del dato en bruto sin depender en el diseño manual de características por parte de un experto”. Esto quiere decir que los métodos basados en aprendizaje profundo son capaces de aprender las características más relevantes para la tarea objetivo y ser capaces de resolver el problema de forma óptima

El repositorio de imágenes naturales ImageNet consiste en más de 1000 clases diferentes y más de 1000 imágenes por clase. La tarea de clasificación a resolver trata de identificar en una imagen cuál de las 1000 clases está presente en la imagen. Durante el entrenamiento de una red neuronal profunda para resolver esta tarea, las características que el modelo aprende automáticamente son, cuanto menos curiosas. En la siguiente figura se pueden observar los distintos filtros aprendidos por la red en los diferentes niveles de jerarquía. Se puede apreciar que los filtros extraídos en la parte baja de la jerarquía se corresponden con descriptores de extracción de bordes o de oposición de color que nos recuerdan a la teoría de procesos oponentes de color y análisis de frecuencia que se realizan en el córtex visual humano. Además, estos filtros nos recuerdan a los bancos de filtros de Gabor para detección de texturas y al canal de color Lab que se han venido usando de forma habitual para el diseño de extractores de características visuales para alimentar modelos clásicos de aprendizaje máquina.

Figura 2: Filtros extraídos por una red convolucional (CNN) cuando es entrenada sobre ImageNET. Se puede observar que las primeras capas aprenden filtros asociados a conceptos de bajo nivel como cambios de color o detección de bordes mientras que los filtros de más alto nivel se asocian a conceptos asociados a la tarea.

La capacidad de las capas convolucionales que se apilan en una red neuronal profunda (DNN) para extraer filtros que puedan describir de forma jerárquica una señal de entrada para cumplir con una determinada tarea puede ser aplicado a otros tipos de datos diferentes a imagen. Recientemente hemos publicado un trabajo donde analizamos los beneficios de aplicar técnicas de aprendizaje profundo en vez de utilizar técnicas clásicas de aprendizaje máquina para analizar la señal de electrocardiograma (ECG) de pacientes con insuficiencia cardiaca para identificar si la señal de ECG es candidata para ser desfibrilada por un desfibrilador automático (DEA).

En nuestro estudio, repetimos un estudio anterior que analizaba la mejor combinación de características y descriptores de la señal de ECG que han sido definidos durante las últimas décadas con el fin de identificar ritmos desfibrilables por numerosos grupos de investigación y empresas trabajando en el campo de la resucitación. Estas características diseñadas manualmente fueron diseñadas para detectar características de la señal conocidas por el ser humano tales como irregularidad en la función de onda, ausencia o estrechamiento o ampliación de los complejos QRS, anchos de banda más pequeños o ritmos ventriculares elevados entre otros.

Decidimos que, en vez de utilizar las características clásicas preexistentes, íbamos a diseñar una red neuronal profunda (DNN) basada en capas convolucionales que permitieran aprender aquellos filtros que eran óptimos para describir nuestra señal y capas recurrentes que permitieran el modelado de las dependencias temporales de los filtros aprendidos.

El primer aspecto que encontramos de interés fue que, el método basado en aprendizaje profundo mejoraba la precisión de otros métodos y requería menos tiempo de señal para obtener una precisión correcta. Este hallazgo fue más importante en el caso de la detección de insuficiencias cardiacas extrahospitalarias que presentaban una señal mucho más ruidosa.

Pero el hallazgo más importante lo encontramos al analizar la separabilidad de la descripción de alto nivel (embedding) que la red profunda había aprendido durante el proceso de aprendizaje. Esto se aprecia claramente en la Figura 3. Cuando proyectamos las características diseñadas manualmente (que fueron seleccionadas como las mejores características para un abordaje del problema desde el aprendizaje máquina clásico) en un mapa bidimensional y las comparamos con las características aprendidas por la red de aprendizaje profundo durante el proceso de aprendizaje, apreciamos que las características extraídas por la DNN presentan una mayor separabilidad que las diseñadas manualmente.

Figure 3: Análisis de las características extraídas manualmente y las extraídas por la red convolucional.

Conclusión:

El poder descriptivo de las arquitecturas de aprendizaje profundo para describir jerárquicamente datos complejos y no estructurados en niveles más altos de abstracción las habilita para extraer características optimizadas para realizar la tarea encomendada de forma automática.

Estos algoritmos son capaces de extraer aquellas características que mejor resuelven la tarea sin intervención humana. Este hecho puede resultar de importancia crítica. Hace unos meses el MIT publicó un artículo sobre detección de cáncer de mama donde utilizaron imágenes que habían sido analizada por radiólogos. Sin embargo, para entrenar la red neuronal no utilizaron como verdad terreno el diagnóstico de los radiólogos sino el estado de salud del paciente cinco años después. Los modelos generados extrajeron patrones y una descripción de alto nivel de la imagen que permite diagnosticar el riesgo de cáncer cinco años antes de que el diagnóstico pudiera ser realizado. Esto habría resultado imposible mediante el uso de descriptores de características prediseñados por humanos expertos que están basados en conocimiento existente. En un escenario totalmente diferente, los sistemas basados en aprendizaje por refuerzo (basado en aprendizaje profundo) que superan a jugadores humanos en el ajedrez, go o starcraft aprenden estrategias totalmente desconocidas e inesperadas para los humanos.

Las técnicas de aprendizaje profundo permiten extraer de forma automática la mejor representación interna del dato para la tarea objetivo y esta representación puede extraer información actualmente desconocida o ignorada por el ser humano con gran flexibilidad y eficacia.

Lo más sorprendente es que estas afirmaciones no son válidas solo para los dominios de imagen en agricultura o señales médicas, sino que aplica en cualquier otro dominio como industria, control de calidad entre otros.