Implementación en Arduino de una red neuronal cuantizada tolerante a fallos
Authors/Creators
Description
En la actualidad, las redes neuronales se están utilizando en dominios tan dispares como son los entornos industriales, espaciales y médicos, entornos donde es esencial equilibrar rendimiento, consumo energético y área de silicio. Si, además, estos dispositivos forman parte de un sistema crítico, también se debe garantizar una alta tolerancia a fallos.
Generalmente, los parámetros de las redes neuronales se representan en coma flotante de 32 bits, lo que implica un elevado consumo de memoria. Debido a la miniaturización de la tecnología CMOS, la memoria es más susceptible a los fallos múltiples, lo que puede afectar negativamente a los parámetros de la red neuronal almacenados en memoria.
Para optimizar el uso de memoria y acelerar el procesamiento, una estrategia efectiva es reducir la precisión de los parámetros, codificándolos con menos bits. Sin embargo, al implementar estas redes optimizadas en sistemas empotrados, surgen varios interrogantes: ¿realmente se reduce el área ocupada y la latencia?, ¿siguen siendo confiables en entornos críticos?
Este estudio aborda estas cuestiones. Para ello, se han cuantizado a enteros de 8 bits los parámetros de una red neuronal y se ha implementado en un sistema Arduino, incorporando Códigos de Corrección de Errores. A través de la inyección de fallos, se ha analizado su confiabilidad y comparado con una red con los parámetros en coma flotante de 32 bits.
Los resultados ayudarán a evaluar si esta optimización mejora el rendimiento sin comprometer la robustez en aplicaciones críticas.
Files
Paper LJS ArXiv.pdf
Files
(8.9 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:78d2665830dea693ea8d4b146858c696
|
8.9 MB | Preview Download |