En este segundo artículo, continuación al anterior Introducción al TinyML, Mark Patrick, Technical Marketing Manager de Mouser Electronics EMEA, nos explica la implantación de Aprendizaje Automático mediante sistemas TinyML: bibliotecas, plataformas y flujos de trabajo
La idea de empezar a implantar sistemas TinyML puede intimidar un poco. En el primer artículo de esta serie, hablamos de la evolución del aprendizaje automático, así como de su popularidad en las aplicaciones industriales periféricas.
El proceso para seleccionar un modelo adecuado de red neuronal, suministrarle la formación necesaria y hacer las modificaciones correspondientes para la implementación siempre ha sido algo complejo. Sin embargo, cada vez hay más recursos de IA/AA diseñados específicamente para aplicaciones TinyML, lo que es de gran ayuda.
Así, en este segundo artículo, analizaremos los métodos comunes utilizados por TensorFlow Lite, Edge Impulse y Fraunhofer AIES para simplificar la formación e implantación de un modelo de IA en un microcontrolador con recursos limitados.
Sistemas TinyML: la implantación de aplicaciones periféricas
Al diseñar una aplicación para supervisar la vibración de un motor, lo primero que haría el desarrollador es recopilar datos de sensores de vibración de varios motores diferentes, normalmente con un acelerómetro. A fin de que estos datos sean representativos, cada uno de estos motores debería estar en una etapa distinta de progresión hacia el error. También sería necesario registrar los datos de un motor en perfecto estado de funcionamiento. El siguiente paso consiste en seleccionar un algoritmo adecuado.
El algoritmo es, básicamente, un conjunto de líneas de código para determinar los síntomas de vibración que se alejan del funcionamiento óptimo. El equipo de desarrollo adiestra al algoritmo para que pueda hacer predicciones a partir de los datos de los sensores sin necesidad de entender la interconexión o la complejidad de estos datos de vibración por separado. Este algoritmo de Aprendizaje Automático es un modelo de sistemas TinyML que hace predicciones sobre el estado operativo de un motor. Es importante recordar que la inferencia de este modelo de AA es, sin duda, un recurso valioso, pero no nos ofrece respuestas exactas, sino predicciones, estimaciones y aproximaciones basadas en los datos de ensayo.
La inferencia periférica está adquiriendo popularidad por varias razones. En primer lugar, como hemos visto en el primer artículo, no es necesario transmitir datos a un servidor en la nube para llevar a cabo la inferencia. Al hacerlo en la periferia, eliminamos los costes asociados a la latencia y el ancho de banda. Otra ventaja es que no nos metemos en problemas de privacidad, ya que no movemos datos a nubes ni los guardamos en estas. Los microcontroladores que se usan en este tipo de aplicaciones suelen consumir muy poca potencia, y la mayoría puede estar en funcionamiento durante un largo periodo con una batería, simplificando así la instalación.
Una comparación puede ayudarnos a entender mejor esta ventaja: muchas de las GPU de gran rendimiento empleadas en aplicaciones de inferencia científica consumen cientos de vatios (en algunos casos, 500 W); sin embargo, el perfil de consumo de un microcontrolador suele ser de milivatios o microvatios.