Projeto e Implementação de uma Rede Neural Artificial Feedforward Parametrizável em FPGA
FPGA. Inteligência Artificial. Redes Neurais Artificiais.
Uma Rede Neural Artificial (RNA) é uma rede paralela e distribuída formada por unidades
de processamento não-lineares interconectadas em camadas. Este trabalho consiste no
projeto e implementação em hardware da arquitetura de uma rede do tipo feedforward
parametrizável. As descriçoes de hardware em Verilog são geradas por um script em
Python. Nele, tem-se como parâmetros o número de bits na entrada, o número de camadas,
o número de neurônios por camada, o número de bits para as partes inteira e fracionária na
representação de ponto fixo e o número de bits para a representação da look-up table (LUT)
da função de ativação. Essa parametrização permite que se consiga, ainda em tempo de
simulação, uma configuração mínima de hardware que atenda a um determinado problema,
economizando-se assim tanto tempo de desenvolvimento como recursos em hardware. Como
aplicação, utilizou-se o hardware desenvolvido para descrever uma rede treinada offline
com a base de dados MNIST e com isso classificar em tempo real imagens de algarismos
provenientes de uma câmera. Dessa maneira, o trabalho mostra-se apropriado tanto para
amparar pesquisas em áreas afins, que necessitem embarcar uma rede neural artificial,
quanto para experimentar modificações na arquitetura do projeto, dada a disponibilidade
do ambiente de verificação desenvolvido.