Gracias de nuevo por asistir a nuestra sesión sobre AI at the Edge: Machine Learning in Embedded Systems. Aquí están las preguntas que siguieron a la presentación y sus respuestas. Si tiene más preguntas, no dude en ponerse en contacto con nosotros.
¿Qué recursos adicionales, procesador, memoria, etc., son necesarios para implementar el aprendizaje automático en un sistema integrado?
Realmente depende. Las aplicaciones de aprendizaje automático cubren todo un espectro. Como hemos visto, hay aplicaciones más sencillas, como ese ejemplo de monitorización de unos pocos sensores para detectar cambios en los patrones de vibración como caso de uso de los servicios de mantenimiento predictivo para esa máquina de construcción. Para este caso de uso, un pequeño microcontrolador con muy poca memoria puede ser suficiente. Y hay aplicaciones de alto nivel, como la detección de objetos en flujos de vídeo de alta resolución que, obviamente, necesitan mucha potencia de cálculo y ancho de banda de memoria para barajar los datos.
Hoy en día, muchas aplicaciones de aprendizaje automático proceden del desarrollo en la nube, donde se dispone de muchos recursos informáticos. Los desarrolladores no se preocupan por los recursos informáticos, lo que contrasta con los dispositivos integrados. Y ahora, con el objetivo o el deseo de trasladar esa funcionalidad al borde, donde no se dispone de todo ese rendimiento informático, es una tarea complicada. Con el aprendizaje automático en el borde, hay que prestar más atención al uso del modelo y a las optimizaciones para los dispositivos integrados con recursos limitados.
Y hay proveedores como nuestro socio Au-Zone, que también hemos visto en la demostración, que son expertos en esto y proporcionan un motor de inferencia integrado y herramientas de optimización de modelos para prepararlo para que se ejecute en estos dispositivos integrados limitados con poca memoria y tiempos de inferencia rápidos incluso cuando hay pocos recursos de computación disponibles.
Y hemos visto el ejemplo del reconocimiento de voz. Sólo para destacar de nuevo, vamos a proporcionar una solución de este tipo con nuestra oferta de soluciones ConnectCore SoM, y eso está optimizado para los dispositivos integrados. Así que no se necesita una lujosa unidad de procesamiento de redes neuronales, que también es costosa. Puedes ejecutar esa aplicación, la de reconocimiento de voz que soporta miles de palabras y vocabulario, en un solo núcleo Cortex-A con menos del 50% de carga, mientras que podrías necesitar una NPU si haces lo mismo con un tipo de construcción no optimizada de tu propio marco de aprendizaje automático de código abierto.
¿Es posible tener un aprendizaje profundo para los datos de texto como el procesamiento de la poesía con el fin de identificar los diferentes géneros?
Es ciertamente posible procesar el texto y hacer la clasificación de los elementos del texto. Así que eso es definitivamente posible con el aprendizaje automático. Y hay muchos casos de uso para eso, por ejemplo, sus filtros de spam procesando texto y correos electrónicos y clasificándolos como spam o no spam. No es exactamente poesía en esos correos, pero está relacionado, supongo.
¿Cómo afecta la inteligencia artificial y el aprendizaje automático en un dispositivo a la seguridad?
Existen amenazas de seguridad dirigidas a las aplicaciones de aprendizaje automático, si esa es la cuestión. Por ejemplo, los atacantes intentan modificar las entradas en el modelo de aprendizaje automático con una determinada técnica para engañar al modelo de manera que clasifique mal un objeto, por ejemplo, o incluso podría ser una señal de tráfico en una aplicación de tráfico. Y entonces también daría, con las manipulaciones adecuadas, un alto factor de confianza para estos y esto ciertamente es un problema de seguridad y también un problema de seguridad.
Este ataque se denominaría ataque de ejemplo adversarial y existen métodos para endurecer el modelo contra tales ataques, que pueden aplicarse durante el entrenamiento y el desarrollo del modelo. Y otros problemas de seguridad con el aprendizaje automático incluyen el robo de modelos o los ataques a la versión del modelo. Y Digi está proporcionando las contramedidas disponibles de NXP y las herramientas de aprendizaje automático eIQ para abordar algunos de estos problemas de seguridad específicos del aprendizaje automático.
Pero también es importante la seguridad general del sistema y otras funciones de seguridad como el arranque seguro, el sistema de archivos cifrado, los puertos protegidos y la detección de manipulaciones. Con nuestro marco de seguridad que proporcionamos como parte de ConnectCore, el Digi TrustFence, que es un marco de seguridad completo disponible con Digi ConnectCore SoM. Y todas las funciones que acabo de mencionar están totalmente integradas en el cargador de arranque, el kernel y el sistema de archivos raíz, listas para ser utilizadas sin necesidad de convertirse en un experto en seguridad o pasar muchas semanas para habilitarlas. Así que funcionan en todas las capas de hardware y software.
¿Se grabará la presentación para poder verla posteriormente?
Sí, por supuesto. La grabación estará disponible para su posterior reproducción en la plataforma BrightTALK aquí. Y también publicaremos el enlace en www.digi.com, nuestro sitio web. En la sección de recursos, verá una sección de seminarios web. Y ahí es donde publicamos todos los seminarios web para verlos más tarde.
¿Cómo se valida la precisión del modelo de aprendizaje automático?
Eso se hace durante la fase de entrenamiento. Por lo general, se dispone de un gran conjunto de datos para entrenar el modelo. Y luego, se apartan diferentes datos para hacer las pruebas reales y verificar la precisión del modelo. Y una vez que se esté satisfecho con la precisión, se habrá terminado. Pero si no estás satisfecho con la precisión, necesitas más datos de entrenamiento, alimentar el modelo, entrenarlo más y luego probar de nuevo con diferentes datos y repetir el proceso hasta que estés satisfecho con la precisión. Sólo en un nivel alto.
Hay otra pregunta sobre los ejemplos disponibles para aprender muchos canales de señales de baja velocidad.
No estoy seguro de haber entendido bien la pregunta. Pero hay dos maneras. Puedes construir un modelo desde cero y hacerlo todo por tu cuenta, y necesitas montones y montones de datos. Pero normalmente se utiliza un modelo preentrenado y luego se aplica algo llamado aprendizaje de transferencia. Hay modelos preentrenados disponibles para el reconocimiento de imágenes, de voz, de texto, para muchas otras cosas, y tendrías que encontrar un caso de uso o un modelo que cubra tu caso de uso. Y luego aplicarías el aprendizaje de transferencia para ajustar o modificar ese modelo de manera que sirva para tu caso de uso exacto.
¿Cómo se ha medido la latencia del wake word en el núcleo Cortex-M? ¿Es posible configurar una palabra de activación? ¿Requiere un aprendizaje adicional?
Así que, en ese escenario, la palabra de despertador puede ser configurada. Así que usted puede definir sus propias palabras de despertar y aprenderlas en ese modelo. Así que usted pondría su entrada en términos de lo que los comandos que desea aprender y luego grabar eso, y aplicar diferentes hablando, y luego el motor reconocería esas palabras. Y también transferir el modelo para hacerlo funcionar en el dispositivo integrado para el núcleo Cortex-M y optimizarlo para que funcione eficientemente en ese motor. La latencia de esa palabra de despertador no era terriblemente importante, diría yo. Es decir, se trata de humanos interactuando con la máquina. Así que si eso lleva unos milisegundos más, no es realmente un problema. Así que no era necesario que fuera una latencia realmente baja. Pero aún así, para ser ágil en términos de las personas que lo utilizan. Pero la latencia no era terriblemente importante. Y estaba por debajo de un segundo, por lo que era perfecto para encender la máquina.
¿Tiene algún ejemplo de utilización de FPGAs para el aprendizaje automático en el área de los sistemas integrados? ¿En qué se diferencia esto en términos de requisitos y rendimiento?
Lo siento, no puedo responder a eso. No tengo experiencia en el lado de la FPGA. Estoy seguro de que se puede utilizar para imitar un motor de procesamiento de redes neuronales. Estoy seguro de que hay alguna IP por ahí para ejecutar esa funcionalidad en una FPGA. Pero tienes todos esos núcleos disponibles. Y los SoCs embebidos de hoy, el sistema en chips, a menudo tienes una GPU que no estás usando. Tienes múltiples núcleos Cortex-A. A menudo tienes un núcleo Cortex-M separado de eso. Así que con estos SoCs altamente integrados, tienes muchos núcleos y muchas opciones en esos SoCs. El uso de una FPGA externa sólo añadiría costes y complejidad de diseño. Pero si es necesario, estoy seguro de que hay opciones para ejecutar aceleradores de redes neuronales en una FPGA.