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., se necesitan para implantar el aprendizaje automático en un sistema integrado?
Realmente depende. Las aplicaciones del aprendizaje automático abarcan todo un espectro. Como hemos visto, hay aplicaciones más sencillas, como el ejemplo de monitorizar unos cuantos sensores para detectar cambios en los patrones de vibración como caso de uso para servicios de mantenimiento predictivo de esa máquina de construcción. Para este caso de uso, un microcontrolador pequeño con muy poca memoria puede ser suficiente. Y hay aplicaciones de gama alta, como la detección de objetos en secuencias 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 tienen su origen en el 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 mucho con los dispositivos integrados. Y ahora, con el objetivo o el deseo de trasladar esa funcionalidad a la periferia, donde no se dispone de todo ese rendimiento informático, la tarea se complica. Con el aprendizaje automático en el perímetro, hay que prestar más atención al uso del modelo y a las optimizaciones para 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 funcionar en estos dispositivos integrados limitados con poca memoria y tiempos de inferencia rápidos incluso cuando hay pocos recursos informáticos 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 que está optimizado para dispositivos integrados. Así que no hace falta una unidad de procesamiento de red neuronal de lujo, que también es costosa. Puedes ejecutar esa aplicación de reconocimiento de voz con 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 marco de aprendizaje automático de código abierto no optimizado.
¿Es posible el aprendizaje profundo para datos de texto como el tratamiento de la poesía para identificar diferentes géneros?
Es ciertamente posible procesar texto y hacer clasificación de elementos de texto. Eso es posible con el aprendizaje automático. Y hay un montón de casos de uso para que, por ejemplo, sus filtros de spam de procesamiento de texto y mensajes de correo electrónico y la clasificación de spam o no spam. No es exactamente poesía en esos correos electrónicos, pero está relacionado, supongo.
¿Cómo afectan a la seguridad la inteligencia artificial y el aprendizaje automático en un dispositivo?
Existen amenazas de seguridad dirigidas a las aplicaciones de aprendizaje automático, si esa es la cuestión. Por ejemplo, los atacantes tratan de modificar las entradas en el modelo de aprendizaje automático con una determinada técnica para engañar al modelo de manera que clasifique erróneamente un objeto, por ejemplo, o incluso 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.
Un ataque de este tipo se denominaría ataque de ejemplo adversarial y existen métodos para endurecer el modelo contra este tipo de 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. Digi ofrece 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 es necesario activar otras funciones de seguridad como el arranque seguro, el sistema de archivos cifrado, los puertos protegidos y la detección de manipulaciones. El marco de seguridad que ofrecemos como parte de ConnectCore, Digi TrustFence, es un marco de seguridad completo disponible en Digi ConnectCore SoM. Y todas las funciones que acabo de mencionar están totalmente integradas en el cargador de arranque, el kernel, el sistema de archivos raíz, listas para usar sin necesidad de convertirse en un experto en seguridad o pasar muchas semanas para habilitarlas. Funcionan en todas las capas de hardware y software.
¿Se grabará la presentación para poder verla más tarde?
Por supuesto. La grabación estará disponible para su reproducción posterior en la plataforma BrightTALK aquí. 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. Aquí es donde publicamos todos los seminarios web para su posterior visionado.
¿Cómo se valida la precisión del modelo de aprendizaje automático?
Eso se hace durante la fase de entrenamiento. Normalmente se dispone de un gran conjunto de datos para entrenar el modelo. Y luego, se reservan diferentes datos para hacer las pruebas reales y verificar la exactitud del modelo. Y una vez que estás satisfecho con la precisión, ya está. Pero si no estás satisfecho con la precisión, necesitas más datos de entrenamiento, los introduces en un modelo, lo entrenas más y vuelves a probarlo con datos diferentes y repites el proceso hasta que estés satisfecho con la precisión. En pocas palabras.
Hay otra pregunta sobre 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 por transferencia. Existen modelos preentrenados para el reconocimiento de imágenes, de voz, de texto y para muchas otras cosas, y hay que encontrar un caso de uso o un modelo que lo cubra. Y luego aplicar el aprendizaje de transferencia para ajustar o modificar ese modelo de manera que realmente sirva para tu caso de uso exacto.
¿Cómo se ha medido la latencia de la wake word en el núcleo Cortex-M? ¿Es posible configurar una wake word? ¿Requiere aprendizaje adicional?
Así que, en ese escenario, la palabra de despertador se puede configurar. Puedes definir tus propias palabras y aprenderlas en ese modelo. Así que en realidad 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. Quiero decir, se trata de humanos interactuando con la máquina. Así que si eso está tomando unos milisegundos más, eso no es realmente un problema. Así que no era necesario ser un verdadero baja latencia. Pero aún así, para ser ágil en términos de 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 uso de FPGA para el aprendizaje automático en el ámbito de los sistemas integrados? ¿En qué se diferencian en términos de requisitos y rendimiento?
Lo siento, no puedo responder a esa pregunta. No tengo experiencia con FPGAs. Estoy seguro de que se puede utilizar para imitar un motor de procesamiento de red neuronal. 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, 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. Así que con estos SoCs altamente integrados, tienes un montón de núcleos y un montón de opciones en esos SoCs. Usar una FPGA externa solo 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.