Índice del Contenido[Esconder][Espectáculo]
Los modelos de aprendizaje automático están por todas partes en este momento. Durante el día, probablemente utilice estos modelos mucho más de lo que cree. Los modelos de aprendizaje automático se utilizan en tareas comunes, como navegar en las redes sociales, fotografiar y consultar el clima.
Es posible que un algoritmo de aprendizaje automático le haya recomendado este blog. Todos hemos oído hablar del tiempo que lleva entrenar estos modelos. Todos hemos escuchado que entrenar estos modelos requiere mucho tiempo.
Sin embargo, hacer inferencias sobre estos modelos suele ser costoso desde el punto de vista computacional.
Necesitamos sistemas informáticos que sean lo suficientemente rápidos para manejar la velocidad a la que utilizamos los servicios de aprendizaje automático. Como resultado, la mayoría de estos modelos se ejecutan en centros de datos masivos con clústeres de CPU y GPU (incluso TPU en algunos casos).
Cuando tomas una foto, quieres máquina de aprendizaje para mejorarlo instantáneamente. No desea tener que esperar a que la imagen se transfiera a un centro de datos, se procese y se le devuelva. En este caso, el modelo de aprendizaje automático debe ejecutarse localmente.
Cuando dices "Hola Siri" o "OK, Google", quieres que tus dispositivos respondan de inmediato. Esperando a que su voz sea transmitida a las computadoras, donde será evaluada y se obtendrán los datos.
Esto lleva tiempo y tiene un efecto perjudicial en la experiencia del usuario. En este caso, desea que el modelo de aprendizaje automático también funcione localmente. Aquí es donde entra TinyML.
En esta publicación, analizaremos TinyML, cómo funciona, sus usos, cómo comenzar a utilizarlo y mucho más.
¿Qué es TinyML?
TinyML es una disciplina de vanguardia que aplica el potencial revolucionario del aprendizaje automático a los límites de rendimiento y potencia de los dispositivos pequeños y los sistemas integrados.
La implementación exitosa en esta industria requiere una comprensión profunda de las aplicaciones, los algoritmos, el hardware y el software. Es un subgénero de aprendizaje automático que utiliza modelos de aprendizaje profundo y aprendizaje automático en sistemas integrados que emplean microcontroladores, procesadores de señales digitales u otros procesadores especializados de ultra bajo consumo.
Los dispositivos integrados habilitados para TinyML están diseñados para ejecutar un algoritmo de aprendizaje automático para un trabajo específico, generalmente como parte del dispositivo. informática de punta.
Para funcionar durante semanas, meses o incluso años sin recargar o reemplazar la batería, estos sistemas integrados deben tener un consumo de energía de menos de 1 mW.
¿Cómo funciona?
El único marco de aprendizaje automático que se puede utilizar con microcontroladores y computadoras es TensorFlow Lite. Es un conjunto de herramientas que permite a los desarrolladores ejecutar sus modelos en dispositivos móviles, integrados y periféricos, lo que permite el aprendizaje automático sobre la marcha.
La interfaz del microcontrolador se utiliza para recopilar datos de sensores (como micrófonos, cámaras o sensores integrados).
Antes de enviarse al microcontrolador, los datos se incorporan a un modelo de aprendizaje automático basado en la nube. El entrenamiento por lotes en modo fuera de línea se emplea comúnmente para entrenar estos modelos. Los datos del sensor que se utilizarán para aprendizaje e inferencia ya se ha determinado para la aplicación específica.
Si el modelo está siendo entrenado para detectar una palabra de activación, por ejemplo, ya está configurado para manejar una transmisión continua de audio desde un micrófono.
Todo ya está hecho con la ayuda de una plataforma en la nube como Google Colab en el caso de TensorFlow Lite, incluida la selección de conjuntos de datos, la normalización, el ajuste insuficiente o excesivo del modelo, la regularización, el aumento de datos, la capacitación, la validación y las pruebas.
Un modelo completamente entrenado finalmente se transforma y se transfiere al microcontrolador, la microcomputadora o el procesador de señal digital después del entrenamiento por lotes fuera de línea. El modelo no tiene entrenamiento adicional después de ser trasladado a un dispositivo integrado. En su lugar, utiliza únicamente datos en tiempo real de sensores o dispositivos de entrada para aplicar el modelo.
Como resultado, un modelo de aprendizaje automático TinyML debe ser excepcionalmente duradero y capaz de volver a entrenarse después de años o nunca volver a entrenarse. Se deben investigar todos los posibles ajustes insuficientes y excesivos del modelo para que el modelo siga siendo relevante durante un período de tiempo prolongado, idealmente indefinidamente.
Pero, ¿por qué usar TinyML?
TinyML comenzó como un esfuerzo por eliminar o disminuir la dependencia de IoT de los servicios en la nube para servicios básicos a pequeña escala. máquina de aprendizaje operaciones. Esto requería el uso de modelos de aprendizaje automático en los propios dispositivos perimetrales. Proporciona los siguientes beneficios principales:
- De baja potencia consumo: Una aplicación TinyML debería utilizar preferentemente menos de 1 milivatio de potencia. Con un consumo de energía tan bajo, un dispositivo puede seguir sacando conclusiones de los datos del sensor durante meses o años, incluso si funciona con una batería tipo moneda.
- Costo más bajo: Está diseñado para ejecutarse en microcontroladores o DSP de 32 bits de bajo costo. Estos microcontroladores suelen costar unos pocos centavos cada uno, y el sistema integrado total desarrollado con ellos cuesta menos de $50. Esta es una opción muy rentable para ejecutar pequeños programas de aprendizaje automático a gran escala, y es especialmente beneficiosa en aplicaciones IoT donde se debe aplicar el aprendizaje automático.
- Baja latencia: Sus aplicaciones tienen baja latencia ya que no necesitan transportar ni intercambiar datos a través de la red. Todos los datos de los sensores se registran localmente y se extraen conclusiones utilizando un modelo que ya ha sido entrenado. Los resultados de las inferencias pueden enviarse a un servidor o nube para registro o procesamiento adicional, aunque esto no es esencial para que el dispositivo funcione. Esto minimiza la latencia de la red y elimina la necesidad de realizar operaciones de aprendizaje automático en una nube o servidor.
- Privacidad: Es una gran preocupación en internet y con el internet de las cosas. El trabajo de aprendizaje automático en las aplicaciones TinyML se realiza localmente, sin almacenar ni enviar datos de sensores/usuarios a un servidor/nube. Como resultado, incluso cuando están conectadas a una red, estas aplicaciones son seguras de usar y no presentan riesgos para la privacidad.
Aplicaciones
- Agricultura – Cuándo los agricultores toman una foto de una planta, la aplicación de TensorFlow Lite detecta enfermedades en ella. Funciona en cualquier dispositivo y no requiere conexión a Internet. El procedimiento protege los intereses agrícolas y es una necesidad crítica para los agricultores rurales.
- Mantenimiento Mecánico – TinyML, cuando se usa en dispositivos de baja potencia, puede identificar continuamente fallas en una máquina. Implica un mantenimiento basado en predicciones. Ping Services, una empresa emergente australiana, presentó un dispositivo IoT que monitorea las turbinas eólicas al adherirse al exterior de la turbina. Avisa a las autoridades siempre que detecta algún posible problema o mal funcionamiento.
- Hospitales – Los Solar Scare es un proyecto. Mosquito usa TinyML para detener la propagación de enfermedades como el dengue y la malaria. Está alimentado por energía solar y detecta las condiciones de reproducción de los mosquitos antes de indicarle al agua que inhiba la reproducción de los mosquitos.
- Vigilancia de Tránsito – Por Al aplicar TinyML a sensores que recopilan datos de tráfico en tiempo real, podemos usarlos para dirigir mejor el tráfico y reducir los tiempos de respuesta de los vehículos de emergencia. Swim.AI, por ejemplo, utiliza esta tecnología en la transmisión de datos para aumentar la seguridad de los pasajeros y al mismo tiempo reducir la congestión y las emisiones a través de rutas inteligentes.
- Ley: TinyML se puede utilizar en la aplicación de la ley para identificar acciones ilegales, como disturbios y robos, mediante el aprendizaje automático y el reconocimiento de gestos. También se puede utilizar un programa similar para proteger los cajeros automáticos de los bancos. Al observar el comportamiento del usuario, un modelo TinyML puede predecir si el usuario es un consumidor real que completa una transacción o un intruso que intenta piratear o destruir el cajero automático.
¿Cómo empezar con TinyML?
Para comenzar con TinyML en TensorFlow Lite, necesitará una placa de microcontrolador compatible. TensorFlow Lite para microcontroladores es compatible con los microcontroladores que se enumeran a continuación.
- Terminal inalámbrico: ATSAMD51
- Placa de desarrollo Himax WE-I Plus EVB Endpoint AI
- STM32F746 Juego de descubrimiento
- Insignia de borde de Adafruit
- Plataforma de desarrollo de software Synopsys DesignWare ARC EM
- Sony Express
- Arduino Nano 33 BLE Sentido
- Borde SparkFun
- Kit Adafruit TensorFlow Lite para microcontroladores
- Adafruit Circuit Zona de juegos Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
Estos son microcontroladores de 32 bits que tienen suficiente memoria flash, RAM y frecuencia de reloj para ejecutar un modelo de aprendizaje automático. Las placas también tienen una serie de sensores integrados capaces de ejecutar cualquier programa integrado y aplicar modelos de aprendizaje automático a la aplicación de destino. A construir un modelo de aprendizaje automático, necesitará una computadora portátil o computadora además de una plataforma de hardware.
Cada plataforma de hardware tiene sus propias herramientas de programación para crear, entrenar y migrar modelos de aprendizaje automático, que usan el paquete TensorFlow Lite para microcontroladores. TensorFlow Lite es libre de usar y modificar porque es Open Source.
Para comenzar con TinyML y TensorFlow Lite, todo lo que necesita es una de las plataformas de hardware integradas mencionadas anteriormente, una computadora/portátil, un cable USB, un convertidor de USB a serie y el deseo de practicar el aprendizaje automático con sistemas integrados. .
Challenges
Aunque el progreso de TinyML ha arrojado muchos resultados positivos, la industria del aprendizaje automático todavía enfrenta obstáculos considerables.
- Diversidad de software: codificación manual, la generación de código y los intérpretes de ML son opciones para implementar modelos en dispositivos TinyML, y cada uno requiere una cantidad diferente de tiempo y esfuerzo. Como resultado de esto, pueden surgir diferentes actuaciones.
- Diversidad de hardware: hay hay varias opciones de hardware disponibles. Las plataformas TinyML pueden ser cualquier cosa, desde microcontroladores de uso general hasta procesadores neuronales de última generación. Esto provoca problemas con la implementación del modelo en diferentes arquitecturas.
- Resolución de problemas/depuración: cuándo un modelo de ML funciona mal en la nube, es simple mirar los datos y descubrir qué está fallando. Cuando un modelo se distribuye en miles de dispositivos TinyML, sin que el flujo de datos regrese a la nube, la depuración se vuelve difícil y puede requerir un método diferente.
- Restricciones de memoria: tradicional Las plataformas, como teléfonos inteligentes y computadoras portátiles, necesitan gigabytes de RAM, mientras que los dispositivos TinyML usan kilobytes o megabytes. Como resultado, el tamaño del modelo que se puede implementar es limitado.
- Entrenamiento modelo – Aunque Hay varias ventajas en la implementación de modelos ML en dispositivos TinyML, la mayor parte de los modelos ML aún se entrenan en la nube para iterar y mejorar continuamente la precisión del modelo.
Futuro
TinyML, con su tamaño reducido, bajo consumo de batería y falta o dependencia limitada de la conectividad a Internet, tiene un enorme potencial en el futuro, ya que la mayoría de los inteligencia artificial se implementará en dispositivos perimetrales o dispositivos integrados independientes.
Hará que las aplicaciones de IoT sean más privadas y seguras al aprovecharlas. Aunque TensorFlow Lite es actualmente el único marco de aprendizaje automático para microcontroladores y microcomputadoras, otros marcos comparables como sensor y CMSIS-NN de ARM están en proceso.
Si bien TensorFlow Lite es un proyecto de código abierto en progreso que tuvo un excelente comienzo con el equipo de Google, aún necesita el apoyo de la comunidad para entrar en la corriente principal.
Conclusión
TinyML es un enfoque novedoso que combina sistemas integrados con aprendizaje automático. A medida que la IA limitada alcanza su punto máximo en muchas verticales y dominios, la tecnología puede emerger como un subcampo prominente en el aprendizaje automático y la inteligencia artificial.
Proporciona una solución a los numerosos desafíos a los que se enfrentan ahora el sector de IoT y los profesionales que aplican el aprendizaje automático a muchas disciplinas específicas de dominio.
El concepto de utilizar el aprendizaje automático en dispositivos de borde con una pequeña informática La huella y el consumo de energía tienen el potencial de transformar significativamente la forma en que se construyen los sistemas integrados y la robótica.
Deje un comentario