Un equipo de investigadores del MIT está trabajando para llevar las redes neuronales de aprendizaje profundo a los microcontroladores. El avance significa que la inteligencia artificial (IA) podría implementarse en pequeños chips de computadora en dispositivos médicos portátiles, electrodomésticos y los otros 250 mil millones de objetos que conforman el «internet de las cosas» (IoT). El IoT es una red de objetos físicos integrados con sensores, software y otras tecnologías, que ayudan a conectar e intercambiar datos con otros dispositivos y sistemas.
Él investigar está programado para ser presentado en la Conferencia sobre Sistemas de Procesamiento de Información Neural en diciembre. El autor principal de la investigación es Ji Lin, Ph.D. estudiante en el laboratorio de Song Han en el Departamento de Ingeniería Eléctrica y Ciencias de la Computación del MIT. Los coautores incluyen a Han y Yujun Lin del MIT, Wei-Ming Chen del MIT y la Universidad Nacional de Taiwán, y John Cohn y Chuan Gan del MIT-IBM Watson Lab.
Sistema MCUNet
El sistema se llama MCUNet y diseña redes neuronales compactas capaces de una velocidad y precisión extremas en dispositivos IoT, incluso con memoria y potencia de procesamiento limitadas. Este sistema puede ser más eficiente energéticamente y mejorar la seguridad de los datos.
El equipo desarrolló el sistema de «pequeño aprendizaje profundo» mediante la combinación de dos componentes: el funcionamiento de las redes neuronales y los microcontroladores. El primer componente es TinyEngine, un motor de interfaz que actúa como un sistema operativo dirigiendo la gestión de recursos. TinyEngine está optimizado para ejecutar una estructura de red neuronal específica seleccionada por TinyNAS, que es el otro componente. TinyNAS es un algoritmo de búsqueda de arquitectura neuronal.
Lin desarrolló TinyNAS debido a la dificultad de aplicar técnicas de búsqueda de arquitectura neuronal existentes a microcontroladores diminutos. Estas técnicas existentes eventualmente encuentran la estructura de red más precisa y rentable después de comenzar con muchas posibles basadas en una plantilla predefinida.
“Puede funcionar bastante bien para GPU o teléfonos inteligentes”, dice Lin. “Pero ha sido difícil aplicar directamente estas técnicas a microcontroladores diminutos, porque son demasiado pequeños”.
TinyNAS puede crear redes de tamaño personalizado.
“Tenemos muchos microcontroladores que vienen con diferentes capacidades de potencia y diferentes tamaños de memoria”, dice Lin. “Así que desarrollamos el algoritmo [TinyNAS] para optimizar el espacio de búsqueda para diferentes microcontroladores”.
Debido a que TinyNAS se puede personalizar, puede generar las mejores redes neuronales compactas posibles para microcontroladores.
“Luego entregamos el modelo final y eficiente al microcontrolador”, continúa Lin.
Se requiere un motor de interfaz limpio y delgado para que un microcontrolador ejecute la pequeña red neuronal. Muchos motores de interfaz tienen instrucciones para tareas que rara vez se ejecutan, lo que podría dificultar un microcontrolador.
“No tiene memoria fuera del chip y no tiene disco”, dice Han. «Todo junto es solo un megabyte de flash, por lo que tenemos que administrar con mucho cuidado un recurso tan pequeño».
TinyEngine genera el código necesario para ejecutar la red neuronal personalizada desarrollada por TinyNAS. El tiempo de compilación se reduce al descartar el código de peso muerto.
“Guardamos solo lo que necesitamos”, dice Han. “Y como diseñamos la red neuronal, sabemos exactamente lo que necesitamos. Esa es la ventaja del codiseño del algoritmo del sistema”.
Las pruebas demostraron que el código binario compilado de TinyEngine era de 1,9 a cinco veces más pequeño que los motores de microcontroladores similares, incluidos los de Google y ARM. El uso máximo de memoria también se redujo casi a la mitad.
Habilidad de MCUNet
Las primeras pruebas de MCUNet giraron en torno a la clasificación de imágenes. La base de datos de ImageNet se utilizó para entrenar el sistema con imágenes etiquetadas, y luego se probó su capacidad en otras nuevas.
Cuando se probó MCUNet en un microcontrolador comercial, clasificó con éxito el 70,7 por ciento de las imágenes nuevas. Esto es mucho mejor que la mejor combinación anterior de red neuronal y motor de interferencia, que tenía una precisión del 54 por ciento.
“Incluso una mejora del 1 por ciento se considera significativa”, dice Lin. «Así que este es un gran salto para la configuración de microcontroladores».
Según Kurt Keutzer, científico informático de la Universidad de California en Berkeley, esto «extiende la frontera del diseño de redes neuronales profundas aún más hacia el dominio computacional de pequeños microcontroladores de bajo consumo». MCUNet podría «llevar capacidades inteligentes de visión por computadora incluso a los electrodomésticos de cocina más simples, o habilitar sensores de movimiento más inteligentes».
MCUNet también mejora la seguridad de los datos.
“Una ventaja clave es preservar la privacidad”, dice Han. “No es necesario transmitir los datos a la nube”.
Al analizar los datos localmente, hay menos posibilidades de que la información personal se vea comprometida.
Además de eso, MCUNet podría analizar y proporcionar información sobre latidos cardíacos, presión arterial y lecturas del nivel de oxígeno, brindar aprendizaje profundo a dispositivos IoT en vehículos y otros lugares con acceso limitado a Internet, y reducir la huella de carbono usando solo una pequeña fracción de la energía necesaria para las grandes redes neuronales.