Creación de aplicaciones de IoT eficaces con tinyML y aprendizaje automático automatizado
IoT permite el monitoreo continuo de entornos y máquinas utilizando sensores diminutos. Los avances en tecnologías de sensores, microcontroladores y protocolos de comunicación hicieron posible la producción en masa de plataformas de IoT, con muchas opciones de conectividad, a precios asequibles. Debido al bajo costo del hardware de IoT, los sensores se están implementando a gran escala en lugares públicos, residenciales y en máquinas.
Estos sensores monitorean las propiedades físicas asociadas con sus entornos de implementación, las 24 horas del día, los 7 días de la semana, y generan una gran cantidad de datos. Por ejemplo, los acelerómetros y giroscopios desplegados en una maquinaria giratoria registran constantemente los patrones de vibración y la velocidad angular del rotor unido al eje. Los sensores de calidad del aire monitorean continuamente los contaminantes gaseosos en el aire, en interiores o exteriores. Los micrófonos de un monitor para bebés siempre están escuchando. Los sensores dentro de los relojes inteligentes miden constantemente parámetros de salud vitales. Asimismo, varios otros sensores como el magnetómetro, la presión, la temperatura, la humedad, la luz ambiental, etc., miden las condiciones físicas dondequiera que se implementen.
Los algoritmos de aprendizaje automático (ML) permiten el descubrimiento de patrones interesantes en estos datos, que están más allá de la comprensión del análisis y la inspección manuales. La convergencia de los dispositivos de IoT y los algoritmos de ML permite una amplia gama de aplicaciones inteligentes y experiencias de usuario mejoradas, que son posibles gracias a la inferencia de aprendizaje automático de bajo consumo, baja latencia y ligereza, es decir, tinyML. Muchas verticales de la industria están siendo revolucionadas por esta convergencia como se articula en la Figura 1, incluidas, entre otras, las tecnologías portátiles, el hogar inteligente, las fábricas inteligentes (Industria 4.0), la automoción, la visión artificial y otros dispositivos electrónicos de consumo inteligentes.
tinyML con aprendizaje automático automatizado
Los algoritmos ML implementados en pequeños microcontroladores (MCU) en dispositivos IoT son particularmente interesantes debido a sus múltiples ventajas:
- Privacidad y seguridad de los datos:la inferencia ML ocurre en los microcontroladores integrados locales, en lugar de tener que transmitir flujos de datos a la nube para su procesamiento. Los datos permanecen en el dispositivo y en las instalaciones, donde son privados y seguros.
- Ahorro de energía:los algoritmos tinyML consumen mucha menos energía debido a la poca o nula transmisión de datos.
- Baja latencia y alta disponibilidad:dado que la inferencia se realiza localmente, la latencia es del orden de milisegundos y no está sujeta a la disponibilidad ni a la latencia de la red.
haz clic para ver la imagen en tamaño completo
Figura 1:tinyML agrega funcionalidades avanzadas a los dispositivos tradicionales de IoT (Fuente:Qeexo)
El aprendizaje automático automatizado que utiliza datos de sensores implica los pasos articulados en la Figura 2. La configuración de los sensores y la recopilación de datos de calidad para la aplicación de aprendizaje automático de destino se completan antes de estos pasos. Una plataforma de aprendizaje automático automatizado como Qeexo AutoML gestiona todo el flujo de trabajo para crear modelos de aprendizaje automático ligeros y de alto rendimiento para MCU de clase Arm Cortex-M0-to-M4 y otros entornos restringidos.
haga clic para ver la imagen en tamaño completo
Figura 2:Flujo de trabajo de Qeexo AutoML (Fuente:Qeexo)
tinyML con arquitectura ARM® Cortex ™ M0 +
La proliferación de tecnologías de IoT y los requisitos de implementación a gran escala de los sensores están ampliando aún más los límites de las arquitecturas de microcontroladores y la computación de aprendizaje automático. Por ejemplo, las MCU Arm Cortex M0 + que funcionan a 48 MHz se utilizan ampliamente en placas de sensores diseñadas para aplicaciones de IoT debido a su perfil de bajo consumo de energía. Extrae solo 7 mA por pin de E / S en comparación con la versión Cortex M4 que se ejecuta a 64 MHz y consume 15 mA.
El bajo consumo de energía de la clasificación de MCU Cortex-M0 + se produce a costa de una memoria y un perfil informático reducidos. Las MCU M0 + solo pueden realizar operaciones matemáticas de punto fijo de 32 bits, no tienen soporte aritmético de saturación y carecen de capacidades DSP. Basado en esta MCU, Arduino Nano 33 IoT, una de las plataformas de IoT populares, viene con solo 256 KB de flash y 32 KB de SRAM. En contraste, un módulo de sensor popular con arquitectura Cortex M4, el Arduino Nano 33 BLE Sense puede realizar operaciones de punto flotante de 32 bits, tiene DSP y soporte aritmético de saturación, así como cuatro veces el flash y ocho veces la SRAM.
La implementación de algoritmos de aprendizaje automático en el M0 + es mucho más desafiante en comparación con la implementación en un M4 debido a estos tres desafíos principales:
- Computación de punto fijo: El aprendizaje automático típico con datos de sensores implica el procesamiento de señales digitales, la extracción de características y la ejecución de inferencias. La extracción de características estadísticas y basadas en frecuencia (por ejemplo, análisis FFT) de las señales de los sensores es crucial para el desarrollo de modelos de aprendizaje automático de alto rendimiento. Los flujos de datos de sensores que representan fenómenos físicos del mundo real son de naturaleza no estacionaria. En términos generales, cuanto mejor sea la información extraída de las señales de los sensores no estacionarios, mejores serán las oportunidades para desarrollar modelos de aprendizaje automático con alto rendimiento. Realizar operaciones matemáticas en representación de punto fijo mientras se mantiene la precisión y el rendimiento de calidad comercial es un desafío. La canalización de aprendizaje automático de punto fijo completo comienza con la representación de los datos del sensor y se extiende hasta la inferencia del modelo para generar resultados de clasificación / regresión.
- Baja capacidad de memoria: 256 KB de flash y 32 KB de SRAM imponen restricciones estrictas sobre el tamaño de los modelos de aprendizaje automático y la memoria en tiempo de ejecución que estos modelos pueden utilizar durante la ejecución. Los problemas de aprendizaje automático del mundo real a menudo tienen límites de decisión / clasificación complicados representados por modelos de aprendizaje automático con una gran cantidad de parámetros. Para los modelos de conjuntos basados en árboles, la resolución de problemas tan complicados puede resultar en árboles profundos y una gran cantidad de impulsores, lo que afecta tanto al tamaño del modelo como a la memoria en tiempo de ejecución. La reducción en el tamaño del modelo a menudo tiene el costo de sacrificar el rendimiento del modelo, por lo general, no es el criterio más deseable para compensar.
- Baja velocidad de CPU: La baja latencia siempre ha sido una métrica clave al seleccionar un modelo para implementaciones comerciales. La velocidad de reloj de 16 MHz que sacrificamos en una arquitectura M0 + de 48 MHz en comparación con la arquitectura M4 de 64 MHz marca una gran diferencia cuando se trata de mediciones de latencia de nivel de milisegundos.
AutoML M0 + Framework
Desarrollado para abordar estos desafíos, Qeexo AutoML proporciona una canalización de aprendizaje automático de punto fijo, altamente optimizada para la arquitectura Arm Cortex M0 +. Esta canalización incluye el manejo de datos de sensores en punto fijo, cálculo de características de punto fijo e inferencia de punto fijo para los algoritmos de conjuntos basados en árboles como Gradient Boosting Machine (GBM), Random Forest (RF) y eXtreme Gradient Boosting ( XGBoost) algoritmos. Qeexo AutoML codifica los parámetros del modelo de conjunto en estructuras de datos muy eficientes y los combina con una lógica de interpretación que da como resultado una inferencia extremadamente rápida en el objetivo M0 +. La Figura 3 articula la canalización de aprendizaje automático de punto fijo desarrollada por Qeexo para el objetivo integrado Arm Cortex M0 +.
haga clic para ver la imagen en tamaño completo
Figura 3:Canal de inferencia de Qeexo AutoML M0 + (Fuente:Qeexo)
Qeexo AutoML realiza la compresión y cuantificación de modelos con patente en trámite para reducir aún más la huella de memoria de los modelos de conjuntos desarrollados sin comprometer el rendimiento de la clasificación. La Figura 4 describe el proceso de entrenamiento de Qeexo AutoML para el objetivo integrado Cortex M0 +.
haga clic para ver la imagen en tamaño completo
Figura 4:Proceso de capacitación de Qeexo AutoML M0 + (Fuente:Qeexo)
Poda inteligente
La poda inteligente permite la compresión de modelos sin pérdida de rendimiento. En términos simples, Qeexo AutoML primero construye un modelo de conjunto de tamaño completo según lo recomendado por un optimizador de hiperparámetros y luego selecciona de manera inteligente solo los impulsores más poderosos.
Este enfoque de hacer crecer un modelo más grande y luego podarlo inteligentemente para la implementación de destino es mucho más efectivo que construir un modelo más pequeño en primer lugar. Un modelo inicial más grande brinda la oportunidad de seleccionar impulsores (o árboles) de alto rendimiento que, en última instancia, dan como resultado un mejor rendimiento del modelo.
Como se muestra en la Figura 5, el modelo de conjunto comprimido es aproximadamente 1/10 th el tamaño del modelo completo a la vez que tiene un mayor rendimiento de validación cruzada. (El eje X representa la cantidad de árboles (o impulsores) en el modelo de conjunto y el eje Y representa el rendimiento de validación cruzada). Tenga en cuenta que nuestro método de poda inteligente Qeexo AutoML selecciona solo los 20 impulsores más potentes, lo que da como resultado una compresión del 90% en el tamaño del modelo.
haga clic para ver la imagen en tamaño completo
Figura 5:Poda de modelo inteligente de AutoML de Qeexo (Fuente:Qeexo)
Cuantización de modelos de conjuntos
Qeexo AutoML realiza la cuantificación posterior al entrenamiento de los algoritmos de conjunto. La cuantificación posterior al entrenamiento es una característica comercializada para modelos basados en redes neuronales y se admite de manera inmediata en marcos como TensorFlow Lite. Sin embargo, la cuantificación de modelos de conjuntos es la técnica pendiente de patente de Qeexo que puede reducir el tamaño del modelo aún más mientras mejora la latencia a nivel de MCU con poca o ninguna degradación en el rendimiento del modelo. La canalización Qeexo AutoML M0 + genera modelos de conjuntos de punto fijo representados con precisión de 32 bits. Las opciones adicionales para la cuantificación de 16 y 8 bits pueden reducir aún más los modelos en ½ y ¼, respectivamente, con una aceleración de 2x a 3x.
Ejemplos de casos de uso de tinyML
¿Cuáles son algunas aplicaciones o casos de uso de tinyML? Hay posibilidades ilimitadas y aquí destacamos algunas:
- Queremos hacer una pared inteligente habilitada para IA en la que los usuarios puedan tocar para controlar la iluminación (encender / apagar y cambiar la intensidad de la luz). Podemos definir los gestos con las manos asociados con el encendido / apagado y el control de intensidad, luego recopilar y etiquetar los datos de los gestos usando un módulo de acelerómetro y giroscopio adjunto a la parte posterior de la pared. Con estos datos etiquetados, Qeexo AutoML puede usar algoritmos de inteligencia artificial para construir un modelo para detectar gestos de "golpe" y "limpieza" en la pared para controlar la iluminación. En el video a continuación, puede ver un prototipo de muro inteligente desarrollado por Qeexo AutoML en minutos.
- Al utilizar el aprendizaje automático y la IoT, queremos asegurarnos de que los envíos se manejen con sumo cuidado según las pautas de envío. En el video a continuación, puede ver cómo una caja de envío habilitada para IA puede detectar cómo se ha manejado el envío desde el origen hasta el destino.
- La convergencia de IA con IoT también puede hacer que las encimeras de cocina sean inteligentes. El siguiente video muestra modelos creados por Qeexo AutoML para detectar varios electrodomésticos de cocina.
- La supervisión de máquinas es uno de los casos de uso más prometedores de tinyML. En el video a continuación, se detectan múltiples patrones de fallas de la máquina.
- La detección de anomalías es otro escenario que se beneficia enormemente del aprendizaje automático. A menudo, es difícil recopilar datos para varias fallas en un entorno industrial, mientras que es relativamente fácil monitorear el estado operativo saludable de la máquina. Con solo observar el estado operativo saludable, los algoritmos de Qeexo AutoML pueden desarrollar sistemas de inteligencia artificial para la detección de anomalías, como se muestra en la parte 1 (a continuación), la parte 2, la parte 3 y la parte 4.
- El reconocimiento de actividad mediante sensores integrados en dispositivos portátiles es otro caso de uso que beneficia nuestra vida diaria. El video a continuación muestra cómo construir una solución de reconocimiento de actividades usando Qeexo AutoML en minutos.
Tecnología de Internet de las cosas
- Creación de aplicaciones híbridas de blockchain / nube con Ethereum y Google
- La cadena de suministro y el aprendizaje automático
- Transceptores bidireccionales 1G para proveedores de servicios y aplicaciones de IoT
- Sensores y procesadores convergen para aplicaciones industriales
- Creación de robots con Raspberry Pi y Python
- Impulsar la confiabilidad y mejorar los resultados de mantenimiento con el aprendizaje automático
- IoT y educación:superando la brecha digital
- Mejora del monitoreo de la contaminación del aire con sensores de IoT
- IoT industrial y los componentes básicos para la industria 4.0
- ¿Pueden los sistemas ERP y MES mantenerse al día con IIoT?
- La visión artificial es clave para la industria 4.0 y la IoT