Implementación de FPGA para la función sigmoide con el método de ajuste lineal a trozos basado en análisis de curvatura
Autores: Li, Zerun; Zhang, Yang; Sui, Bingcai; Xing, Zuocheng; Wang, Qinglin
Idioma: Inglés
Editor: MDPI
Año: 2022
Acceso abierto
Artículo científico
2022
Implementación de FPGA para la función sigmoide con el método de ajuste lineal a trozos basado en análisis de curvatura
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería Eléctrica y Electrónica
Palabras clave
Función de activación sigmoide
Redes neuronales
Valores de curvatura
Función de ajuste lineal por tramos
Matriz de compuertas programable en campo (FPGA)
Precisión de reconocimiento
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 26
Citaciones: Sin citaciones
La función de activación sigmoide es popular en redes neuronales, pero su complejidad limita la implementación en hardware y la velocidad. En este documento, utilizamos valores de curvatura para dividir la función sigmoide en diferentes segmentos y empleamos el método de mínimos cuadrados para resolver las expresiones de la función de ajuste lineal por tramos en cada segmento. Luego adoptamos un método de optimización con errores absolutos máximos y errores absolutos promedio para seleccionar una expresión de función apropiada con un número especificado de segmentos. Finalmente, implementamos la función sigmoide en la plataforma de desarrollo de matriz de compuerta programable en campo (FPGA) y aplicamos operaciones paralelas de aritmética (multiplicación y suma) y selección de rango al mismo tiempo. Los resultados de implementación en FPGA muestran que la frecuencia de reloj de nuestro diseño es de hasta 208.3 MHz, mientras que la latencia de extremo a extremo es de solo 9.6 ns. Nuestro método de ajuste lineal por tramos basado en análisis de curvatura (PWLC) logra una precisión de reconocimiento en el conjunto de datos MNIST del 97.51% con una red neuronal profunda (DNN) y del 98.65% con una red neuronal convolucional (CNN). Los resultados experimentales demuestran que nuestro diseño de FPGA de la función sigmoide puede obtener la latencia más baja, reducir los errores absolutos y lograr altas precisiónes de reconocimiento, mientras que el costo de hardware es aceptable en aplicaciones prácticas.
Descripción
La función de activación sigmoide es popular en redes neuronales, pero su complejidad limita la implementación en hardware y la velocidad. En este documento, utilizamos valores de curvatura para dividir la función sigmoide en diferentes segmentos y empleamos el método de mínimos cuadrados para resolver las expresiones de la función de ajuste lineal por tramos en cada segmento. Luego adoptamos un método de optimización con errores absolutos máximos y errores absolutos promedio para seleccionar una expresión de función apropiada con un número especificado de segmentos. Finalmente, implementamos la función sigmoide en la plataforma de desarrollo de matriz de compuerta programable en campo (FPGA) y aplicamos operaciones paralelas de aritmética (multiplicación y suma) y selección de rango al mismo tiempo. Los resultados de implementación en FPGA muestran que la frecuencia de reloj de nuestro diseño es de hasta 208.3 MHz, mientras que la latencia de extremo a extremo es de solo 9.6 ns. Nuestro método de ajuste lineal por tramos basado en análisis de curvatura (PWLC) logra una precisión de reconocimiento en el conjunto de datos MNIST del 97.51% con una red neuronal profunda (DNN) y del 98.65% con una red neuronal convolucional (CNN). Los resultados experimentales demuestran que nuestro diseño de FPGA de la función sigmoide puede obtener la latencia más baja, reducir los errores absolutos y lograr altas precisiónes de reconocimiento, mientras que el costo de hardware es aceptable en aplicaciones prácticas.