Inicio Artículos Guía para ingenieros sobre la IA explicable

Guía para ingenieros sobre la IA explicable

Mark Patrick, Mouser Electronics

Los algoritmos de aprendizaje automático (AA) han pasado a formar parte de nuestra vida rápidamente. El aprendizaje automático es un tipo de inteligencia artificial, y es más común de lo que parece. Estos algoritmos están tan omnipresentes que ni siquiera sabemos que están ahí: en los asistentes del móvil, en la planificación de rutas de tráfico, en los resultados que obtenemos al hacer una búsqueda en Internet, etc. El uso de algoritmos complejos y de grupos de múltiples algoritmos interconectados se está generalizando en los sectores industriales, médicos y de automoción, así que es necesario entender por qué un algoritmo de AA genera un resultado determinado. La IA explicable (xAI) se utiliza cada vez más para describir el resultado de un algoritmo y los factores subyacentes en los que se basa el resultado.

En este artículo vamos a explicar qué es la xAI y por qué es un elemento esencial para cualquier aplicación nueva de aprendizaje automático.

La IA y el aprendizaje automático en nuestra vida cotidiana

Es difícil precisar con exactitud el momento en el que el AA empezó a formar parte de nuestras vidas, ya que nunca ha habido una mención o un lanzamiento específico. Más bien, se ha ido introduciendo poco a poco y ha pasado a formar parte intrínseca de nuestra interacción diaria con la tecnología. Para muchos de nosotros, la primera experiencia fue con el asistente del móvil, como Voice, de Google, o Siri, de Apple. El AA se convirtió rápidamente en una funcionalidad esencial de los sistemas avanzados de asistencia a la conducción (SAAC), como el control de crucero adaptativo (ACC), el asistente de mantenimiento de carril (ALA) y la identificación de señales de tráfico. Hay otras aplicaciones donde también se usa el AA, aunque quizá no lo sepamos.  Por ejemplo, las empresas financieras y de seguros usan el AA para distintas funciones de procesamiento de documentos y los sistemas de diagnóstico médico lo utilizan para detectar patrones en los resultados de pruebas y resonancias magnéticas.

El aprendizaje automático se ha convertido rápidamente en parte de nuestra vida, y su capacidad de permitir la toma de decisiones ágil hace que lo usemos con mucha frecuencia.

Cómo toma decisiones un algoritmo

El hecho de que nos fiemos tanto de las decisiones que toman los sistemas con AA ha hecho que, recientemente, algunos consumidores y grupos de ética profesional hayan expresado su preocupación.

Para entender lo que hace un sistema de aprendizaje automático para llegar a un resultado o una probabilidad, vamos a examinar brevemente su funcionamiento.

El aprendizaje automático utiliza un algoritmo para copiar el proceso del cerebro humano al tomar decisiones. Las neuronas de nuestro cerebro tienen su equivalente en un modelo matemático de nuestra red neuronal que tiene el objetivo de crear un algoritmo. Al igual que nuestro cerebro, el algoritmo de la red neuronal artificial (RNA) es capaz de inferir un resultado con un determinado grado de probabilidad basándose en los conocimientos adquiridos. La RNA va entendiendo las cosas a medida que obtiene conocimientos, como ocurre con una persona desde su nacimiento. El entrenamiento de una RNA es una parte fundamental de cualquier modelo de aprendizaje automático. Además, hay diferentes tipos de redes neuronales para diferentes tareas. Por ejemplo, una red neuronal convolucional (RNC) es la mejor opción para el reconocimiento de imágenes, mientras que una recurrente (RNR) es el mejor modelo para gestionar el procesamiento del habla. La red adquiere conocimientos procesando una cantidad gigantesca de datos de entrenamiento. En una RNC, hacen falta decenas de miles de imágenes de diferentes animales, junto con su nombre, para lograr una aplicación de reconocimiento de animales. Hacen falta multitud de imágenes para cada especie y género, así como fotografías de distintas características y con distintos grados de iluminación ambiental. Tras el entrenamiento de un modelo, empieza la fase de pruebas con imágenes que el sistema aún no ha procesado. El modelo logra inferir un resultado según la probabilidad de cada imagen, y esta probabilidad va aumentando a medida que se introducen más datos de entrenamiento y se optimiza la red neuronal.

Cuando los niveles de probabilidad de inferencia en las tareas son suficientemente altos, los desarrolladores de aplicaciones pueden implementar el modelo de aprendizaje automático.

Una sencilla aplicación industrial periférica del aprendizaje automático es la supervisión del estado de un motor a través de su patrón de vibraciones. Si a un motor industrial le incorporamos un sensor de vibración (piezoeléctrico, MEMS o un micrófono digital), podemos registrar un conjunto detallado de características de vibración. Podemos añadir complejidad a los datos de entrenamiento a partir de motores que hayamos retirado con averías mecánicas conocidas, como rodamientos desgastados, problemas en el accionamiento, etc. El modelo resultante puede supervisar continuamente un motor y ofrecer información ininterrumpida sobre su estado. La ejecución de este tipo de redes neuronales en un microcontrolador de baja potencia recibe el nombre de TinyML.

¿Qué es la inteligencia artificial explicable?

Como ya hemos visto, el resultado obtenido por algunas aplicaciones basadas en AA ha generado preocupación por si estos resultados no fuesen imparciales. El debate sobre la supuesta parcialidad del AA y la IA tiene varios componentes, pero la idea de que los resultados del AA deberían ser más transparentes, justos y rectos desde un punto de vista ético y moral, está bastante generalizada. La mayoría de redes neuronales funcionan como una caja negra: la caja recibe datos y con ellos produce un resultado, pero no hay ninguna indicación sobre cómo se obtiene dicho resultado. En suma, cada vez es más necesario que una decisión basada en un algoritmo explique la base de su resultado, y es ahí donde entra la inteligencia artificial explicable (xAI).

En un artículo tan breve, solo podemos hablar de los conceptos fundamentales de la xAI, pero los documentos técnicos de NXP, un proveedor de semiconductores y PWC, una asesoría de administración, le resultarán informativos.

La imagen 1 muestra un planteamiento integral propuesto por NXP para desarrollar un sistema de IA fiable y ético.

planteamiento integral nxp
Imagen 1: planteamiento integral de NXP para obtener una IA fiable y ética (fuente: NXP).

Para ejemplificar los requisitos de la xAI, vamos a hablar de dos posibles aplicaciones.

Control de vehículos autónomos (automoción): imagine que se sube a un taxi con un conductor humano. Si el conductor va muy despacio, le puede preguntar por qué. Entonces, el conductor podría decirle, por ejemplo, que muchas carreteras están heladas debido al frío y que hay que tener muchísima cautela para evitar que el coche derrape. En un taxi autónomo, sin embargo, no se pueden hacer estas preguntas. Es posible que el coche decida ir despacio debido a que un conjunto de sistemas de aprendizaje automático (ambiental, tracción, etc.) ha determinado que bajar la velocidad es lo prudente, pero debería haber otra parte en el sistema del vehículo autónomo para explicar los motivos de un modo audible y visual para tranquilizar al pasajero.

Diagnóstico del estado del paciente (atención sanitaria): imagine un sistema automatizado para acelerar la identificación de distintos tipos de trastornos cutáneos. La aplicación recibe una foto de la anomalía en la piel del paciente y envía el resultado a un dermatólogo para que aplique un tratamiento. Hay numerosos tipos de trastornos cutáneos: algunos son temporales y otros permanentes, y algunos pueden ser dolorosos. La gravedad también puede variar, desde algo insignificante hasta una enfermedad mortal. Debido a toda esta variedad de trastornos, es posible que el dermatólogo piense que hay que hacer más análisis antes de poner un tratamiento. Si la aplicación de IA pudiera mostrar la probabilidad de su diagnóstico y de otros resultados de alto nivel inferidos, el especialista podría tomar una decisión disponiendo de más información.

Estos dos ejemplos nos ayudan a entender por qué la xAI es tan importante. Hay muchos otros dilemas éticos y sociales que se deben valorar en lo concerniente al uso de la IA y el AA en organizaciones de servicios financieros o gobernanza.

A la hora de diseñar soluciones de aprendizaje automático, estas son algunas ideas que los desarrolladores de sistemas integrados deben tener en cuenta.

  • ¿Los datos de entrenamiento ejemplifican una representación suficientemente amplia y diversa del elemento que se debe inferir?
  • ¿Se ha contrastado que los datos de ensayo tengan una representación equitativa de todos los grupos de clasificación y que la cantidad de estos sea suficiente?
  • ¿Es necesario explicar el resultado inferido del algoritmo?
  • ¿Puede la red neuronal dar una respuesta basándose en la probabilidad de los resultados que ha excluido?
  • ¿Hay alguna limitación legal o normativa sobre los datos de procesamiento de la aplicación de AA?
  • ¿Se ha protegido la aplicación de AA de enemigos que pudieran ponerla en peligro?
  • ¿Se puede afirmar que la aplicación de AA es fiable?

El desarrollo de aplicaciones de aprendizaje automático

Actualmente, un gran número de desarrolladores de sistemas integrados trabajan en proyectos con funciones de aprendizaje automático, como el TinyML del que hemos hablado al principio. Sin embargo, el AA no se limita a plataformas periféricas. Los conceptos se pueden ampliar fácilmente a grandes instalaciones industriales. Algunos ejemplos de estas funciones son la visión artificial, la supervisión de estado o la seguridad.

Los proveedores más importantes de semiconductores disponen ahora de microcontroladores y microprocesadores optimizados para aplicaciones de aprendizaje automático. Un ejemplo son los procesadores de aplicaciones NXP iMX-8M Nano-Ultralite. El Nano-Ultralite (NanoUL) forma parte de la serie NXP iMX-8M Plus y cuenta con un núcleo cuádruple primario Arm® Cortex®-A53, que funciona a una velocidad de hasta 1,5 GHz, y un procesador genérico de núcleo Cortex-M7 que funciona a 750 MHz para tareas de baja potencia y en tiempo real.

La imagen 2 muestra los bloques más importantes del NanoUL iMX-8M, que incluyen un completo conjunto de conectividad, interfaces periféricas, funciones de seguridad, relojes, temporizadores, «watchdogs» y bloques PWM. El compacto procesador de aplicaciones NanoUL mide 11 x 11 mm.

esquema funcional
Imagen 2: esquema funcional del NanoUL iMX-8 Plus de NXP (fuente: NXP).

Para ayudar a los desarrolladores de aplicaciones con el NanoUL iMX-8 Plus, NXP ofrece el kit de evaluación i.MX 8M Nano UltraLite (ver imagen 3). Este kit se compone de una placa base y una placa de procesador NanoUL, y es una plataforma completa en la que se pueden desarrollar aplicaciones de aprendizaje automático.

kit de evaluacion nxp
Imagen 3: el kit de evaluación NXP i.MX 8M NanoUL, con los componentes principales resaltados (fuente: NXP).

Ya existe un ecosistema establecido de recursos, marcos y plataformas de aprendizaje automático para crear prototipos de diseños de AA, tanto con microcontroladores periféricos de baja potencia como con microprocesadores de gran potencia.

TensorFlow Lite es una variante de Tensor Flow (Google), un marco de AA corporativo y de código abierto, y se ha diseñado específicamente para microcontroladores de baja potencia y con poca necesidad de recursos. Se puede ejecutar en los núcleos de la serie Arm Cortex-M y solo ocupa 18 kB de memoria. TensorFlow Lite ofrece todos los recursos necesarios para implementar modelos en dispositivos integrados.

Edge Impulse tiene una filosofía más inclusiva: una solución integral que incluye la incorporación de los datos de entrenamiento, la selección del mejor modelo de red neuronal para la aplicación, las pruebas y la implantación final en un dispositivo de borde. Edge Impulse funciona con TensorFlow y Keras, dos marcos de AA de código abierto.

Los avances en la IA explicable

Aprender a diseñar y desarrollar aplicaciones de AA integradas es una gran oportunidad para que los ingenieros de sistemas integrados mejoren sus conocimientos. Al pensar en las especificaciones y el funcionamiento de la aplicación final, también conviene pensar en la aplicación de los principios de la IA explicable en el diseño. La IA explicable está cambiando nuestra manera de ver el aprendizaje automático. Los desarrolladores de sistemas integrados pueden hacer contribuciones importantes incorporando más contexto, confianza y fiabilidad en una aplicación.