O que é TinyML?

¿Qué es TinyML?

La ciencia de datos no ha seguido siendo sólo un campo de la informática y la investigación científica. En el mundo conectado a Internet, la ciencia de datos, el aprendizaje automático y la inteligencia artificial son mucho más aplicables de lo que jamás se imaginó. Sin duda, el primer paso adelante en las aplicaciones prácticas del aprendizaje automático y la inteligencia artificial se produjo cuando los sitios web empresariales, incluidas las plataformas de redes sociales, los portales de comercio electrónico y los sitios web de transmisión de vídeo, se dieron cuenta de que necesitaban información significativa a partir de los datos y el comportamiento de los usuarios. Fue entonces cuando las grandes empresas de tecnología comenzaron a utilizar el aprendizaje automático y la inteligencia artificial en sus servidores web e infraestructuras en la nube. La inteligencia artificial ha consumido una gran cantidad de recursos informáticos y los servidores apenas tienen suficientes recursos informáticos para ejecutar aplicaciones respaldadas por IA las 24 horas del día, los 7 días de la semana.

Arduino Nano 33 BLE Sense para TinyML Luego, los teléfonos inteligentes se convirtieron en un fenómeno global y comenzó el concepto de aplicar inteligencia artificial a dispositivos de última generación. Incluso los teléfonos inteligentes tenían suficientes recursos de hardware para ejecutar modelos de aprendizaje automático. Estos ordenadores de bolsillo se cargan periódicamente ya que tienen este tipo de uso. Android de Alphabet Inc. (Google) y iOS de Apple se han convertido en los sistemas operativos móviles más populares en todo el mundo. Se desarrollaron varias aplicaciones para estos sistemas operativos móviles que utilizaban inherentemente algoritmos de aprendizaje automático.

Al mismo tiempo, Google también estaba trabajando en un proyecto interno para desarrollar un marco de aprendizaje automático que pudiera ejecutarse en dispositivos de bajo consumo, recursos limitados y bajo ancho de banda que tuvieran microcontroladores de 32 bits o procesadores de señales digitales en su núcleo. El resultado de este proyecto es TensorFlow Lite.

Tensorflow Lite introdujo el concepto de aprendizaje automático diminuto o TinyML. TinyML es un término acuñado por Pete Warden, líder de ingeniería de TensorFlow Lite en Google. En términos generales, TinyML se refiere a la aplicación de aprendizaje automático en un espacio pequeño de unos pocos kilobytes en plataformas integradas que tienen un consumo de energía ultrabajo, alta latencia (Internet), RAM y memoria flash limitadas. Actualmente, TensorFlow Lite es sinónimo de TinyML ya que no existe otro marco de aprendizaje automático para microcontroladores. TensorFlow Lite está diseñado para ejecutarse en Android, iOS, Linux integrado y microcontroladores. Actualmente, la única referencia para TinyML es el libro de Pete Warden y Daniel Situnayake “TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers” publicado en 2020 y la documentación de Tensorflow Lite.

¿Qué es TinyML?
Actualmente, podemos definir TinyML como un subcampo del aprendizaje automático que aplica modelos de aprendizaje automático y aprendizaje profundo a sistemas integrados que se ejecutan en microcontroladores, procesadores de señales digitales u otros procesadores especializados de potencia ultrabaja. Técnicamente, estos sistemas integrados deben tener un consumo energético inferior a 1 mW para que puedan funcionar durante semanas, meses o incluso años sin recargar ni sustituir la batería.

A menudo, estos sistemas integrados son dispositivos IoT que permanecen conectados a Internet. Los dispositivos integrados habilitados para TinyML están diseñados para ejecutar algún algoritmo de aprendizaje automático para una tarea específica, generalmente parte de la informática de punta dentro del dispositivo.

Un modelo de aprendizaje automático TinyML que se ejecuta en el sistema suele tener un tamaño de unos pocos kilobytes y realiza una función cognitiva específica, como reconocer una palabra de activación, identificar personas u objetos, u obtener información a partir de datos de un sensor específico. Con el modelo de aprendizaje automático TinyML funcionando las 24 horas del día, los 7 días de la semana, el dispositivo aún debería tener un consumo de energía en el rango de milivatios o microvatios. Las siguientes características caracterizan una aplicación TinyML:

  1. Se ejecuta en un microcontrolador, un procesador de señales digitales, una microcomputadora de bajo consumo que aloja Linux integrado o una plataforma móvil con RAM, memoria flash y energía de batería explícitamente limitadas para implementar un modelo de aprendizaje automático.
  2. Se ejecuta en dispositivos de potencia ultrabaja con un consumo de energía en mW o µW mientras deriva inferencias del modelo de aprendizaje automático que funciona las 24 horas del día, los 7 días de la semana.
  3. Debe implementar aprendizaje automático en el borde de la red, por lo tanto, no requiere transferencia o intercambio de datos con la nube o el servidor, es decir, el modelo de aprendizaje automático debe ejecutarse dentro del dispositivo perimetral sin necesidad de comunicación de datos a través de la red. red. La red utilizada por el dispositivo solo debe usarse para comunicar los resultados de la inferencia del modelo de aprendizaje automático a un servidor/nube/controlador si es necesario.
  4. El modelo de aprendizaje automático TinyML debe ocupar un espacio mínimo, normalmente unas pocas decenas de kilobytes, para ejecutarse en microcontroladores y microcomputadoras.

Cómo funciona TinyML
TensorFlow Lite es el único marco de aprendizaje automático que se ejecuta en microcontroladores y microcomputadoras. TensorFlow Lite es en realidad un marco de aprendizaje profundo que utiliza redes neuronales recurrentes (RNN) para el aprendizaje automático.

La interfaz del microcontrolador captura datos de sensores (como micrófonos, cámaras o sensores integrados). Estos datos se envían a un modelo de aprendizaje automático entrenado en una plataforma en la nube antes de transferirse al microcontrolador.

El entrenamiento para estos modelos suele ser por lotes en modo fuera de línea. Los datos del sensor que deben usarse para aprender y derivar inferencias ya están determinados de acuerdo con la aplicación específica. Por ejemplo, si es necesario entrenar el modelo para que reconozca una palabra de activación, ya está diseñado para procesar un flujo continuo de audio desde un micrófono. 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 ya se realizan con la ayuda de una plataforma en la nube como Google Colab en el caso de TensorFlow Lite. Después del entrenamiento por lotes fuera de línea, finalmente se convierte un modelo completamente entrenado y se traslada al microcontrolador, microcomputadora o procesador de señales digitales.

Una vez portado a un sistema integrado, el modelo no requiere capacitación adicional. En cambio, solo consume datos en tiempo real de sensores o dispositivos de entrada y aplica el modelo a esos datos. Por lo tanto, un modelo de aprendizaje automático de TinyML debe ser muy robusto y puede volver a entrenarse después de años o nunca volver a entrenarse. Es necesario comprobar todas las posibilidades de subajuste y sobreajuste del modelo para que éste siga siendo relevante durante un período de tiempo muy largo o, idealmente, indefinidamente. Es por eso que los modelos de aprendizaje automático de TinyML generalmente pasan por un riguroso procedimiento de capacitación, prueba y validación antes de la conversión. La relevancia del modelo depende en gran medida de la selección del conjunto de datos correcto y apropiado y de la normalización y regularización apropiadas del conjunto de datos.

¿Por qué TinyML?
TinyML comenzó como una iniciativa para erradicar o reducir la dependencia de IoT de las plataformas en la nube para tareas simples de aprendizaje automático a pequeña escala. Esto requirió implementar modelos de aprendizaje automático en los propios dispositivos perimetrales. TinyML ofrece las siguientes ventajas notables:

  1. Tamaño reducido: un modelo de aprendizaje automático de TinyML tiene un tamaño de solo unas pocas decenas de kilobytes. Esto se puede trasladar fácilmente a cualquier microcontrolador, DSP o dispositivo de microcomputadora.
  2. Bajo consumo de energía: Lo ideal es que una aplicación TinyML consuma menos de 1 milivatio de energía. Un dispositivo puede seguir obteniendo inferencias a partir de datos de sensores durante meses o años con un consumo de energía tan pequeño, incluso si lo alimenta una batería de tipo botón.
  3. Baja latencia: una aplicación TinyML no requiere transferir ni intercambiar datos a través de la red. Todos los datos de los sensores con los que trabaja se capturan localmente y se les aplica un modelo ya entrenado para derivar inferencias. El resultado de las inferencias se puede transferir a un servidor o a la nube para su registro o procesamiento posterior, pero el intercambio de datos no es necesario para que el dispositivo funcione. Esto reduce la latencia de la red y erradica la dependencia de una nube o un servidor para tareas de aprendizaje automático.
  4. Ancho de banda bajo: idealmente, una aplicación TinyML no requiere comunicación con una nube o un servidor. Incluso si se utiliza la conexión a Internet, se utilizará para tareas distintas al aprendizaje automático. La conexión a Internet solo puede comunicar inferencias a una nube/servidor. Esto no afecta la tarea principal integrada ni la tarea de aprendizaje automático realizada por el dispositivo perimetral. Por lo tanto, el dispositivo puede mantener su funcionalidad completa incluso con poco ancho de banda o sin Internet.
  5. Privacidad: la privacidad es un tema importante en IoT. En las aplicaciones TinyML, la tarea de aprendizaje automático se realiza localmente sin almacenar ni transferir datos de sensores/usuarios a un servidor/nube. Por lo tanto, estas aplicaciones son seguras de usar incluso si están conectadas a una red y no tienen problemas de privacidad.
  6. Bajo costo: TinyML está diseñado para ejecutarse en microcontroladores o DSP de 32 bits. Estos microcontroladores suelen costar unos pocos centavos y todo el sistema integrado construido a partir de ellos cuesta menos de 50 dólares. Esta es una solución muy rentable para ejecutar aplicaciones de aprendizaje automático a pequeña y gran escala, y es particularmente útil cuando se necesita aplicar el aprendizaje automático. en aplicaciones de IoT.

¿Cómo empezar?
Para comenzar con TinyML en TensorFlow Lite, primero que nada, necesita una placa de microcontrolador compatible. La biblioteca TensorFlow Lite para microcontroladores admite los siguientes microcontroladores:

  1. Arduino Nano 33 BLE Sentido
  2. Borde SparkFun
  3. Kit de descubrimiento STM32F746
  4. Insignia de borde de Adafruit
  5. Kit Adafruit TensorFlow Lite para microcontroladores
  6. Circuito Adafruit Parque Infantil Bluefruit
  7. Espressif ESP32-DevKitC
  8. Espressif ESP-EYE
  9. Terminal Wio: ATSAMD51
  10. Placa de desarrollo de IA para terminales Himax WE-I Plus EVB
  11. Plataforma de desarrollo de software Synopsys DesignWare ARC EM
  12. Sony Express

Para ejecutar un modelo de aprendizaje automático, se requieren microcontroladores de 32 bits con suficiente memoria flash, RAM y frecuencia de reloj. Las placas también vienen con múltiples sensores integrados que pueden ejecutar cualquier aplicación integrada y aplicar modelos de aprendizaje automático a la aplicación prevista.

Además de una plataforma de hardware, necesita una computadora portátil o una computadora para diseñar un modelo de aprendizaje automático. Hay diferentes herramientas de programación disponibles para cada plataforma de hardware que utiliza la biblioteca TensorFlow Lite para microcontroladores para construir, entrenar y portar modelos de aprendizaje automático. TensorFlow Lite es de código abierto y se puede utilizar y modificar sin ningún costo de licencia. Para comenzar a usar TinyML usando TensorFlow Lite, solo necesita una de las plataformas de hardware integradas enumeradas anteriormente, una computadora/portátil, un cable USB, un convertidor de USB a serie y la determinación de aprender aprendizaje automático con sistemas integrados.

Modelos de aprendizaje automático compatibles con TinyML
La biblioteca TensorFlow Lite para microcontroladores admite un subconjunto limitado de operaciones de aprendizaje automático. Estas operaciones se pueden ver en all_ops_resolver.cc. TensorFlow Lite también alberga algunos modelos de aprendizaje automático de ejemplo en el siguiente enlace que se pueden usar directamente con fines de aprendizaje o para desarrollar una aplicación integrada con tecnología de aprendizaje automático. Estos modelos de ejemplo incluyen clasificación de imágenes, detección de objetos, estimación de pose, reconocimiento de voz, reconocimiento de gestos, segmentación de imágenes, clasificación de texto, recomendación en el dispositivo, respuesta a preguntas en lenguaje natural, clasificador de dígitos, estilo de transferencia de datos, respuesta inteligente, superresolución. clasificación de audio, aprendizaje por refuerzo, reconocimiento óptico de caracteres y capacitación en el dispositivo.

Ejemplos de TinyML
Además de los modelos de aprendizaje automático alojados en TensorFlow Lite, los ejemplos clásicos de la biblioteca TensorFlow Lite para microcontroladores (Hello World, Micro Speech, Magic Wand y Person Detección) son buenos puntos de partida para explorar TinyML. Se puede acceder a estos ejemplos en la documentación de TensorFlow Lite y en el libro TinyML escrito por Pete Warden y Daniel Situnayake.

Aplicaciones TinyML
Aunque TinyML todavía está en su infancia, ya ha encontrado aplicaciones prácticas en muchas áreas, entre ellas:

Automatización industrial: TinyML se puede utilizar para hacer que la fabricación sea más inteligente, por ejemplo, utilizando el mantenimiento predictivo de la máquina y optimizando las operaciones de la máquina para una mayor productividad. TinyML también puede mejorar el rendimiento de la máquina para mejorar la calidad del producto y detectar tempranamente defectos e imperfecciones en un producto de fabricación.

Agricultura: TinyML se puede utilizar para detectar enfermedades y plagas en las plantas. Debido a que TinyML opera independientemente de una conexión a Internet, puede implementar sin problemas la automatización y el IoT en granjas agrícolas.

Salud: TinyML ya se utiliza para la detección temprana de enfermedades transmitidas por mosquitos. También se puede utilizar en aparatos de fitness y equipos de salud.

Comercio minorista: TinyML se puede utilizar para automatizar la gestión de inventario en tiendas minoristas. Una aplicación TinyML puede rastrear artículos en los estantes de las tiendas y enviar una alerta antes de que se agoten con cámaras habilitadas para IA. También puede ayudar a derivar inferencias sobre las preferencias de los clientes en el sector minorista.

Transporte: las aplicaciones TinyML se pueden utilizar para monitorear el tráfico y detectar atascos. Esta aplicación se puede combinar con la gestión de semáforos para optimizar el tráfico en tiempo real. También se puede utilizar para la detección de accidentes y generar alertas automáticas al centro de traumatología más cercano.

Aplicación de la ley: TinyML se puede utilizar para detectar actividades ilegales, como disturbios y robos, mediante el aprendizaje automático y el reconocimiento de gestos. También se puede utilizar una aplicación similar para la seguridad de los cajeros automáticos de los bancos. Un modelo TinyML puede predecir si el usuario es un cliente genuino que realiza una transacción o un intruso que intenta piratear o romper el cajero automático al monitorear la actividad del usuario.

Conservación de la vida oceánica: las aplicaciones TinyML ya se están utilizando para monitorear en tiempo real las ballenas en las vías fluviales de Vancouver y Seattle para evitar que las ballenas lleguen a vías fluviales concurridas. Aplicaciones similares pueden monitorear la caza furtiva, la minería ilegal y la deforestación. También se pueden implementar dispositivos TinyML para monitorear el bienestar de los arrecifes de coral.

El futuro de TinyML
Con un tamaño reducido, un bajo consumo de energía y una dependencia nula o limitada de la conectividad a Internet, TinyML tiene un enorme alcance en el futuro, donde una gran parte de la inteligencia artificial limitada se implementará en dispositivos periféricos o dispositivos integrados independientes. TinyML aprovechará las aplicaciones de IoT y las hará más privadas y seguras. Aunque actualmente TensorFlow Lite es el único marco de aprendizaje automático para microcontroladores y microcomputadoras, se están desarrollando otros marcos similares como uTensor y CMSIS-NN de ARM. Aunque TensorFlow Lite es un proyecto de código abierto en desarrollo que ha tenido un gran comienzo con el equipo de Google, todavía requiere la iniciativa de la comunidad para volverse popular.

Conclusión
TinyML en sí es una idea revolucionaria que combina sistemas integrados con aprendizaje automático. La tecnología podría surgir como un subcampo importante en el aprendizaje automático y la inteligencia artificial a medida que la IA alcance picos en múltiples industrias y dominios. TinyML ofrece una solución a muchos problemas que enfrenta actualmente la industria de IoT y los expertos que aplican el aprendizaje automático en diversos campos específicos. La idea de utilizar el aprendizaje automático en dispositivos periféricos con una huella computacional y un consumo de energía mínimos podría provocar un cambio significativo en la forma en que se diseñan los sistemas integrados y los robots. Los marcos actuales requieren más apoyo de la comunidad y de los diseñadores de chips. TinyML está destinado a volverse popular a medida que el hardware y las bibliotecas y herramientas de programación compatibles se expandan pronto.

Conteúdo Relacionado

En cada vehículo hay una red de sensores integrada...
El controlador del motor es uno de los componentes...
ESP32-CAM es un módulo de cámara compacto que combina...
La evolución de los estándares USB ha sido fundamental...
SCHURTER anuncia una mejora de su popular serie SWZ...
Visual Communications Company (VCC) ha anunciado sus nuevos tubos...
A Sealevel Systems anuncia o lançamento da Interface Serial...
A STMicroelectronics introduziu Diodos retificadores Schottky de trincheira de...
Determinar uma localização precisa é necessário em várias indústrias...
O novo VIPerGaN50 da STMicroelectronics simplifica a construção de...
A Samsung Electronics, fornecedora de tecnologia de memória avançada,...
O mercado embarcado tem uma necessidade de soluções de...
Probablemente se haya encontrado con el término " resistencia...
Probablemente tenga un aislante de soporte si ha notado...
Probablemente haya visto un aislante colocado en postes de...
Probablemente hayas visto aisladores de grillete entronizados en postes...
Probablemente hayas experimentado situaciones en las que controlar un...
Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.