Saltar al contenido principal
InicioBlogAprendizaje automático

¿Qué es TinyML? Introducción al aprendizaje automático

Conozca TinyML, sus aplicaciones y ventajas, y cómo puede iniciarse en este campo emergente del aprendizaje automático.
may 2024  · 8 min leer

Los modelos de aprendizaje automático desempeñan un papel destacado en nuestra vida cotidiana, lo sepamos o no. A lo largo de un día normal, lo más probable es que interactúe con algún modelo de aprendizaje automático, ya que han impregnado casi todos los productos digitales con los que interactuamos; por ejemplo, los servicios de redes sociales, la asistencia personal virtual, los motores de búsqueda y el filtrado de spam de su servicio de alojamiento de correo electrónico. 

A pesar de los muchos casos de aprendizaje automático en la vida cotidiana, todavía hay varias áreas a las que la tecnología no ha llegado. ¿La causa? Muchos modelos de aprendizaje automático, especialmente las arquitecturas de última generación (SOTA), requieren importantes recursos. Esta demanda de potencia de cálculo de alto rendimiento ha confinado varias aplicaciones de aprendizaje automático a la nube, proveedor de recursos de sistemas informáticos a la carta.  

Además de que el entrenamiento de estos modelos es costoso desde el punto de vista informático, la inferencia sobre ellos también suele serlo. Para que el aprendizaje automático amplíe su alcance y penetre en otros ámbitos, se necesita una solución que permita a los modelos de aprendizaje automático ejecutar inferencias en dispositivos más pequeños y con menos recursos. La búsqueda de esta solución es lo que ha dado lugar al subcampo del aprendizaje automático denominado Tiny Machine Learning (TinyML). 

En este artículo: 

  • Definición de TinyML y sus ventajas
  • Algunas aplicaciones de TinyML 
  • Analice los requisitos del flujo de trabajo para las aplicaciones TinyML. 

¿Qué es TinyML?

"Las redes neuronales también se denominan redes neuronales artificiales (RNA). La arquitectura constituye la base del aprendizaje profundo, que no es más que un subconjunto del aprendizaje automático relacionado con algoritmos que se inspiran en la estructura y el funcionamiento del cerebro humano.  En pocas palabras, las redes neuronales constituyen la base de arquitecturas que imitan la forma en que las neuronas biológicas se envían señales entre sí."
Fuente; Tutorial de PyTorch: Creación de una red neuronal sencilla 

El aprendizaje automático es un subcampo de la inteligencia artificial que proporciona un conjunto de algoritmos. Estos algoritmos permiten a las máquinas aprender patrones y tendencias a partir de los datos históricos disponibles para predecir resultados previamente conocidos sobre los mismos datos. Sin embargo, el objetivo principal es utilizar los modelos entrenados para generalizar sus inferencias más allá del conjunto de datos de entrenamiento, mejorando la precisión de sus predicciones sin necesidad de programarlos explícitamente.

Uno de los algoritmos utilizados para estas tareas son las redes neuronales. Las redes neuronales pertenecen a un subcampo del aprendizaje automático conocido como aprendizaje profundo, que consiste en modelos que suelen ser más caros de entrenar que los modelos de aprendizaje automático. Puede obtener más información sobre la creación de modelos de redes neuronales en R en otro tutorial. 

red neuronal de tres capas

Figura 1. Visualización de una red neuronal de tres capas

Según tinyml.org, "elaprendizaje automático diminuto se define en términos generales como un campo de rápido crecimiento de tecnologías y aplicaciones de aprendizaje automático que incluyen hardware, algoritmos y software capaces de realizar análisis de datos de sensores en el dispositivo con un consumo de energía extremadamente bajo, normalmente en el rango de mW o inferior, y por tanto permitiendo una variedad de casos de uso siempre activos y orientados a dispositivos que funcionan con batería". 

El crecimiento de TinyML en los últimos años se ha atribuido en gran medida al desarrollo de los ecosistemas de hardware y software que lo soportan. Dado que las técnicas pueden implementarse en sistemas de bajo consumo energético (es decir, sensores, microcontroladores, etc.), el aprendizaje automático puede llevarse al extremo, permitiendo que tales aplicaciones funcionen con capacidad de respuesta en tiempo real. En esencia, la idea es permitir a los profesionales del aprendizaje automático hacer más con menos. 

Pero, ¿por qué es tan importante? Veamos por qué resulta atractivo TinyML.

Ventajas de TinyML

  1. Latencia: No es necesario transferir los datos a un servidor para su inferencia porque el modelo funciona en dispositivos periféricos. Las transferencias de datos suelen llevar tiempo, lo que provoca un ligero retraso. Eliminar este requisito disminuye la latencia.
  2. Ahorro de energía: Los microcontroladores necesitan muy poca energía, lo que les permite funcionar durante largos periodos sin necesidad de cargarse. Además, no se necesita una amplia infraestructura de servidores, ya que no se produce transferencia de información: el resultado es un ahorro de energía, recursos y costes. 
  3. Ancho de banda reducido: No se necesita conexión a Internet para hacer inferencias. Hay sensores en el dispositivo que capturan datos y los procesan en él. Esto significa que no se envían constantemente datos brutos de los sensores al servidor.
  4. Protección de datos: Tus datos no se guardan en servidores porque el modelo se ejecuta en el borde. La no transferencia de información a servidores aumenta la garantía de privacidad de los datos. 

Casos prácticos: ¿Cómo se utiliza TinyML? 

Las aplicaciones de TinyML se extienden a un amplio abanico de sectores, en particular los que dependen de las redes y los datos de la Internet de las cosas (IoT) - La Internet de las cosas (IoT) es básicamente una red de objetos físicos dotados de sensores, software y otras tecnologías que se conectan e intercambian datos con otros dispositivos y sistemas a través de internet. 

La visión por ordenador, las palabras visuales de despertador, los localizadores de palabras clave, el mantenimiento predictivo, el reconocimiento de gestos, el mantenimiento de máquinas industriales, etc., son casos de uso habituales de TinyML. Veamos también algunos sectores en los que se ha utilizado TinyML para impulsar aplicaciones: 

Agricultura

Los datos agrícolas y ganaderos en tiempo real pueden controlarse y recopilarse mediante dispositivos TinyML. La empresa sueca de productos de inteligencia artificial Imagimob ha creado una plataforma de desarrollo para el aprendizaje automático en dispositivos periféricos. Cincuenta y cinco organizaciones de toda la Unión Europea han colaborado con Imagimob para aprender cómo TinyML puede ofrecer una gestión eficiente de cultivos y ganado.

Mantenimiento industrial predictivo

TinyML puede desplegarse en dispositivos de baja potencia para vigilar continuamente las máquinas en busca de averías y predecir los problemas antes de que se produzcan; este tipo de aplicación tiene el potencial de ayudar a las empresas a reducir los costes que suelen derivarse de las máquinas defectuosas.

Un buen ejemplo de mantenimiento predictivo es Ping Services. Desarrollaron un dispositivo de vigilancia para monitorizar continuamente la firma acústica de las palas de los aerogeneradores con el fin de detectar y notificar cualquier cambio o daño. Según el sitio web de Ping, "los operadores de monitorización continua pueden dar una respuesta oportuna a los daños en las palas, reduciendo los costes de mantenimiento, los riesgos de avería y el tiempo de inactividad, además de mejorar el rendimiento y la eficiencia de los aerogeneradores."

Experiencia del cliente

La personalización es una herramienta de marketing clave que los clientes exigen a medida que aumentan sus expectativas. La idea es que las empresas comprendan mejor a sus clientes y les ofrezcan anuncios y mensajes que se ajusten a su comportamiento. El despliegue de aplicaciones edge TinyML permite a las empresas comprender el contexto de los usuarios, incluido su comportamiento. 

Requisitos del flujo de trabajo

Muchas herramientas y arquitecturas desplegadas en los flujos de trabajo tradicionales de aprendizaje automático se utilizan al crear aplicaciones para dispositivos periféricos. La principal diferencia es que TinyML permite a estos modelos realizar diversas funciones en dispositivos más pequeños. 

Tensorflow Lite para microcontroladores (TF Lite Micro) es uno de los marcos más populares para el aprendizaje automático en dispositivos periféricos; fue diseñado específicamente para la tarea de implementar el aprendizaje automático en sistemas embebidos con sólo unos pocos kilobytes de memoria. 

Python suele ser el lenguaje preferido para construir modelos de aprendizaje automático. Sin embargo, TensorFlow Lite permite desarrollar fácilmente modelos en C, C++ o Java y desplegarlos sin necesidad de conectarse a Internet.

Desde el punto de vista del hardware, se necesita una placa microcontroladora compatible para empezar a utilizar TinyML en TF Lite; actualmente la biblioteca es compatible con los siguientes microcontroladores: 

  • Arduino Nano 33 BLE Sense
  • SparkFun Edge
  • STM32F746 Discovery kit
  • Adafruit EdgeBadge
  • Kit Adafruit TensorFlow Lite para Microcontroladores
  • Adafruit Circuit Playground Bluefruit
  • Espressif ESP32-DevKitC
  • Espressif ESP-EYE
  • Wio Terminal: ATSAMD51
  • Placa de desarrollo Himax WE-I Plus EVB Endpoint AI
  • Plataforma de desarrollo de software Synopsys DesignWare ARC EM
  • Sony Spresense

Con el apoyo de TinyML, es posible aumentar la inteligencia de miles de millones de dispositivos que utilizamos a diario, como electrodomésticos y aparatos IoT, sin gastar una fortuna en hardware caro o conexiones a Internet fiables, que a menudo están limitadas por el ancho de banda y la potencia y producen una latencia significativa.

Recursos de aprendizaje

Resumen

En los últimos años, TinyML ha ido ganando terreno en diversos sectores gracias al desarrollo de ecosistemas de hardware y software compatibles. La herramienta ha hecho posible implementar modelos de aprendizaje automático en sistemas de bajo consumo energético, como los microcontroladores, lo que abre la puerta a diversas oportunidades nuevas. La baja latencia, el ahorro de energía, la privacidad de los datos y la ausencia de dependencias de conexión son algunos de los factores que hacen que TinyML resulte tan atractivo para los desarrolladores que desean crear aplicaciones para dispositivos del Internet de las cosas (IoT).

Preguntas frecuentes

¿Qué es Tiny Machine Learning (TinyML)?

TinyML es un tipo de aprendizaje automático que permite ejecutar modelos en dispositivos más pequeños y menos potentes. Se trata de hardware, algoritmos y software capaces de analizar los datos de los sensores de estos dispositivos con un consumo de energía muy bajo, lo que los hace ideales para casos de uso permanente y dispositivos que funcionan con baterías.

¿Cuáles son las ventajas de TinyML?

Entre las ventajas de TinyML figuran la reducción de la latencia, el ahorro de energía, la reducción del ancho de banda y la mejora de la privacidad de los datos. TinyML permite procesar los datos en los dispositivos periféricos, eliminando la necesidad de transferirlos a un servidor, lo que puede causar retrasos. TinyML también requiere mucha menos energía que los modelos tradicionales de aprendizaje automático, lo que le permite funcionar durante largos periodos sin necesidad de cargarse.

¿Para qué sirve TinyML?

TinyML puede utilizarse en una amplia gama de sectores, como la agricultura, el mantenimiento predictivo industrial y la experiencia del cliente. También puede utilizarse para visión por ordenador, palabras visuales de despertador, detección de palabras clave, reconocimiento de gestos, etc.

¿Cuáles son los requisitos del flujo de trabajo para las aplicaciones TinyML?

Los requisitos del flujo de trabajo para las aplicaciones TinyML son similares a los de los flujos de trabajo tradicionales de aprendizaje automático. Sin embargo, TinyML permite que estos modelos realicen diversas funciones en dispositivos más pequeños. TensorFlow Lite para microcontroladores (TF Lite Micro) es uno de los marcos más populares para el aprendizaje automático en dispositivos periféricos, y fue diseñado específicamente para la tarea de implementar el aprendizaje automático en sistemas embebidos con sólo unos pocos kilobytes de memoria.

¿Qué recursos didácticos existen para TinyML?

Temas
Relacionado

blog

La maldición de la dimensionalidad en el aprendizaje automático: Retos, repercusiones y soluciones

Explore la maldición de la dimensionalidad en el análisis de datos y el aprendizaje automático, incluidos sus retos, efectos en los algoritmos y técnicas como PCA, LDA y t-SNE para combatirla.
Abid Ali Awan's photo

Abid Ali Awan

7 min

Machine Learning Interview Questions

blog

Las 25 preguntas más frecuentes en las entrevistas sobre aprendizaje automático para 2024

Explore las mejores preguntas de entrevista sobre aprendizaje automático con respuestas para estudiantes de último curso y profesionales.
Abid Ali Awan's photo

Abid Ali Awan

22 min

tutorial

¿Qué es el modelado temático? Introducción con ejemplos

Obtenga información a partir de datos no estructurados con el modelado de temas. Explore conceptos básicos, técnicas como LSA y LDA, ejemplos prácticos y mucho más.
Kurtis Pykes 's photo

Kurtis Pykes

13 min

tutorial

Introducción al aprendizaje automático estadístico

Descubra la potente fusión de estadística y aprendizaje automático. Explore cómo las técnicas estadísticas sustentan los modelos de aprendizaje automático, permitiendo la toma de decisiones basada en datos.
Joanne Xiong's photo

Joanne Xiong

11 min

tutorial

Comprender la deriva de los datos y la deriva de los modelos: Detección de deriva en Python

Navegue por los peligros de la deriva de modelos y explore nuestra guía práctica para la supervisión de la deriva de datos.
Moez Ali 's photo

Moez Ali

9 min

tutorial

Introducción al Q-Learning: Tutorial para principiantes

Conozca el algoritmo de aprendizaje por refuerzo sin modelos más popular con un tutorial de Python.
Abid Ali Awan's photo

Abid Ali Awan

16 min

See MoreSee More