Está en la página 1de 11

DISEÑO DE LA ARQUITECTURA

DE UNA RED NEURONAL


ARTIFICIAL EN FPGA PARA
RECONOCIMIENTO DE
COMANDOS DE VOZ.
Q. Eduardo M. Rico-Sotomayor Asesor: Dr. Rafael Rodríguez-Ponce
ANTECEDENTES
Una red neuronal artificial (ANN) son una manera de procesar información a partir de
ciertas características propias de los humanos, como la capacidad de memorizar y asociar
hechos.
El hombre es capaz de resolver problemas acudiendo a la experiencia acumulada, por lo
que, intuitivamente, se puede definir a una red neuronal artificial como “un sistema para el
tratamiento de información, cuya unidad básica de procesamiento está inspirada en la
célula fundamental del sistema nervioso humano: la neurona”¹

1.- Matich, D. J. “Redes neuronales: Conceptos básicos y aplicaciones”; cátedra: Informática aplicada a la ingeniría de procesos; Universidad
Tecnológica Nacional - Facultad Regional Rosario, Departamento de Ingeniería química; 2001
APLICABILIDAD
Las redes neuronales tienen un dominio de aplicabilidad amplio, desde determinar estados de ánimo a partir de
encefalogramas¹, compresión de la función de onda en cálculos ab-initio², hasta la predicción de deslaves a
partir de imágnes³.
En este proyecto se va a diseñar una red neuronal para el reconocimiento de comandos de voz, esto implica
determinar los pesos, la mejor función de activación y la mejor topología para minimizar el error en la
caracterización de los comandos.
Esto permitiría eliminar capas de abstracción entre el dispositivo a manejar con comandos de voz y el usuario,
por lo que, en principio, disminuiría la velocidad de latencia entre el comando y la acción.
La paquetería más usada para modelar redes neuronales es TensorFlow, sin embargo, hay paquetes que utilizan
TensorFlow como API como Keras y Theanos, el competidor de TensorFlow es pyThorch de Facebook.

1.-Khare, Smith K., y Varun Bajaj. «Time-Frequency Representation and Convolutional Neural Network-Based Emotion Recognition». IEEE Transactions on Neural Networks and Learning Systems, 2020, 1-9.
https://doi.org/10.1109/TNNLS.2020.3008938.
2.- Choo, Kenny, Antonio Mezzacapo, y Giuseppe Carleo. «Fermionic Neural-Network States for Ab-Initio Electronic Structure». Nature Communications 11, n.o 1 (diciembre de 2020): 2368. https://doi.org/10.1038/s41467-020-15724-9.
3.- Dao, Dong Van, Abolfazl Jaafari, Mahmoud Bayat, Davood Mafi-Gholami, Chongchong Qi, Hossein Moayedi, Tran Van Phong, et  al. «A Spatially Explicit Deep Learning Neural Network Model for the Prediction of Landslide
Susceptibility». CATENA 188 (mayo de 2020): 104451. https://doi.org/10.1016/j.catena.2019.104451.
4.- https://blog.udacity.com/2020/05/pytorch-vs-tensorflow-what-you-need-to-know.html#:~:text=PyTorch%20has%20long%20been%20the,solutions%20and%20smaller%2Dscale%20models.
OBJETIVO GENERAL:

“Diseñar una red neuronal artificial en FPGA para el


reconocimiento de comandos de voz”
OBJETIVOS ESPECÍFICOS

Pre-procesar la señal de voz en una PC para extraer las características más importantes
Desarrollar una ANN en software para determinar el mejor modelo
Implementar una ANN en FPGA para la identificación de comandos de voz
Realizar pruebas y entrenamiento de la ANN para diferentes señales de voz en el FPGA
MARCO TEÓRICO
Las redes neuronales están desarrolladas tratando de simular el sistema nervioso
humano, los primeros en desarrollar un modelo matemático de las neuronas fueron
McCulloch y Pitts en el año de 1943:

Posteriormente Frank Rosenblatt en 1958 creó el perceptrón, que es una versión


mejorada de la neurona MP, en donde cada entrada es multiplicada por un peso.
MARCO TEÓRICO
La diferencia principal entre la neurona MP y el perceptrón es que este ultimo puede
aprender por medio del ajuste sus pesos, es decir, minimizar el error.
Sin embargo, estos dos modelos no pueden manejar problemas o datos no lineales
por lo que, en estos días, los perceptrones modernos utilizan una función de
activación que introduce no linealidad al dato de salida.

Por lo que un perceptrón moderno se puede representar de la siguiente manera


MARCO TEÓRICO

Donde y es la salida, w son los pesos, Xi son las entradas, Sigma es la suma de la multiplicación de los pesos por las
entradas y sigma es el la función de activación. En redes neuronales complejas también se añade un termino b (bias) que
tiene el efecto de “peso” de la conexión
Dawani, Jay. Hands-On Mathematics for Deep Learning: Build a solid mathematical foundation for training efficient deep neural networks. S.l., 2020.
The role of bias in Neural Networks. https://www.pico.net/kb/the-role-of-bias-in-neural-networks#:~:text=Bias%20allows%20you%20to%20shift,transposed
%20by%20the%20constant%20value.
MARCO TEÓRICO
Cuando se conectan varios perceptrones en capas se habla de una red neuronal.
La forma en la que los perceptrones se conectan entre si y la cantidad de perceptrones que
se usan depende de la aplicación y es parte de la arquitectura de la red neuronal, entre las
más comunes se encuentran:
•Shallow Models (poco profundos)
•Redes neuronales recurrentes
•Redes neuronales convolucionales
En este proyecto se pretende emplear una red neuronal simple, pues sólo se requiere
identificar palabras y no frases.
Aggarwal, Charu C. Neural Networks and Deep Learning: A Textbook. Cham: Springer International Publishing, 2018.
https://doi.org/10.1007/978-3-319-94463-0.
VENTAJAS DE LAS REDES
NEURONALES EN FPGA

MENOR CONSUMO ALTO PERFORMANCE Y MENOR TIEMPO DE


ENERGÉTICO POSIBILIDAD. LATENCIA, EN
COMPARACIÓN CON GPU’S
FPGA vs GPU for Machine Learning Applications: Which one is better?
https://www.aldec.com/en/company/blog/167--fpgas-vs-gpus-for-machine-learning-applications-which-one-is-better
FPGAs for Artificial Intelligence: Possibilities, Pros, and Cons. It was originally published on https://www.apriorit.com/
RESULTADOS ESPERADOS
Un prototipo de ANN en el FPGA

Una publicación en congreso internacional

Tesis escrita

También podría gustarte