1 / 38

Implementação de uma arquitetura de Redes Neurais MLP utilizando FPGA

Implementação de uma arquitetura de Redes Neurais MLP utilizando FPGA. Antonyus Pyetro apaf@cin.ufpe.br Orientadoras: Edna Barros - ensb@cin.ufpe.br Teresa Ludermir - tbl@cin.ufpe.br. Roteiro. Motivação Rede neural artificial Projeto de RNAs em FPGA Análise dos Resultados

odelia
Download Presentation

Implementação de uma arquitetura de Redes Neurais MLP utilizando FPGA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Implementação de uma arquitetura de Redes Neurais MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadoras: Edna Barros - ensb@cin.ufpe.br Teresa Ludermir - tbl@cin.ufpe.br

  2. Roteiro • Motivação • Rede neural artificial • Projeto de RNAs em FPGA • Análise dos Resultados • Trabalhos relacionados • Trabalhos futuros

  3. Motivação

  4. Motivação • RNAs – processamento paralelo e distribuído • Usada em muitas áreas do conhecimento • processamento de sinais, análise de imagens médicas, sistemas de diagnóstico e previsões de séries temporais • Implementações em software – seqüenciais • FPGAs – provêm paralelismo de hardware • Paralelismo de processo e dados • Alto poder de processamento e baixo custo

  5. Motivação • Objetivos: • Definição de uma arquitetura de RNAs para hardware (inicialmente sem aprendizado online) • Implementação em FPGA • Validar com um modelo em software • Comparar desempenho

  6. Rede neural artificial • Inspirado no modelo biológico • Processamento do cérebro é inerentemente paralelo e distribuído • Aprendem através de exemplos • Adaptabilidade • Capacidade de generalização • Tolerância a falhas

  7. Neurônio artificial

  8. Neurônio– função de ativação • Algumas funções de limiar usadas são: • Função degrau unitário; • Φ(u) = 1 se u > 0, Φ(u) = 0, caso contrário • Função rampa unitária • Φ(u) = max{0.0, min{1.0, u + 0.5}} • Função sigmóide logística • Φ(u) = a /{ 1 + exp(−bu) }

  9. RNA - topologia

  10. Exemplo de RNA • Problema: Diabetes • Atributos de entrada: 5 • Classes: 2 • Exemplos de testes: 384 • Topologia: 5:2:2 • Função de transferência • Sigmóide

  11. Projeto de RNAs em FPGA • Desafios: • Aritmética de ponto flutuante Vs Ponto Fixo • Como implementar a sigmóide em FPGA? • Φ(u) = 1 /( 1 + exp(−u) )

  12. Ponto Flutuante Vs Ponto Fixo • Ponto flutuante: • Menor precisão • Range dinâmico • Menor tempo de desenvolvimento • Ponto fixo • Menor custo do produto final • Maior velocidade • Introduz oscilação na fase de aprendizado

  13. Ponto Flutuante Vs Ponto Fixo • Componentes de ponto flutuante da Altera • Padrão IEEE 754 • Reuso • Funcionalidade garantida • Otimizada para FPGA

  14. Implementação da sigmóide • Implementação direta em hardware • Φ(u) = 1 /( 1 + exp(−u) ) • Implementação da expansão em série • Implementação por Look up table • Implementar versão aproximada

  15. Aproximação 1 • Tipo: por partes linear interpolada

  16. Aproximação 1 • Computa a saída em q passos

  17. Aproximação 1 • Erro máximo: 0.0194 • Erro médio: 1.4539e-017

  18. Aproximação 2 • Tipo: por partes linear simples

  19. Aproximação 2 • Erro máximo: 0.0189 • Erro médio: 8.9214e-018

  20. Aproximação 3 • Tipo: por partes de segunda ordem

  21. Aproximação 3 • Erro máximo: 0.0215 • Erro médio: 8.5910e-018

  22. Comparação

  23. Nº entradas Função Operações 2 X1 x W1 + X2 x W2 + W0 X X + + 3 X1xW1 + X2xW2 + X3xW3 + W0 X X X + ++ 4 X1xW1 + X2xW2 + X3xW3 + X4xW4 +W0 X X X X + ++ + Implementação do Neurônio • Cálculo do estado de ativação • Um somador e um multiplicador

  24. Implementação do Neurônio • Máquina de estados – neurônio 2 entradas

  25. Implementação do Neurônio • Pesos editáveis graficamente

  26. Implementação da Rede Neural • Controle seqüencial 384 exemplos 299,45μs

  27. Implementação da Rede Neural • Controle paralelo 384 exemplos 165,38μs

  28. Implementação da Rede Neural • Dados de entrada colocados em ROMs • Unidade de Controle – ativa as camadas e lê da ROM

  29. Estrutura de teste • Comparação das saídas da rede com as saídas desejadas

  30. Rede neural - XOR

  31. Análise de resultados • Estudo de caso: Diabetes • 2 classes, 5 entradas, 384 exemplos de teste • Modelos • Matlab script – sigmóide real, aproximado • Em FPGA • Em software – C++ • Metodologia de teste • Comparar saídas e obter o erro

  32. Análise de resultados • Erro • Matlab sigmóide real Vs sigmóide aproximada • Erro máximo: 0.0239 médio: 0.0160 • Matlab sigmóide real Vs software – C++ • Erro máximo: 0.5042e-006 • Em FPGA Vs Matlab sigmóide aproximada • Erro máximo: 0.01627 • Em FPGA Vs Matlab sigmóide real • Erro máximo: 0.04017

  33. Tempo de execução • implementação em C++ (AMD Athlon 64 3200+ 2.20GHz com 512 MB de memória ) • 23ms • Em FPGA – fmax = 160MHz • Controle sequencial • 299,45μs (76,8 vezes mais rápido) • Controle paralelo • 165,38μs (139 vezes mais rápido)

  34. Área • Área total (FPGA STRATIX II EP2S60F672C5ES): • 16% lógica combinacional do • 5% memória • 11% blocos DSP de 9-bits

  35. Trabalhos relacionados • FPGA implementation of a face detector using neural networks • detector de faces usando rede neural em FPGA • aritmética de ponto flutuante • Aproximação da sigmóide: • Rede 25:6:2 => 1,7ms por imagem a 38MHz

  36. Trabalhos relacionados • FPGA Implementation of a Neural Network for a Real-Time Hand Tracking System • aritmética de ponto fixo • função de ativação: tangente hiperbólica • Aproximação: look up table – 15 níveis • tempo de resposta: • 71ns Vs 43,07ns (médio)

  37. Trabalhos futuros • Introduzir o aprendizado online no FPGA • Abranger outros tipos de redes inclusive as de estrutura dinâmicas (reconfiguração dinâmica). • Framework • Entrada: topologia da rede (treinada ou não); pesos; • Saída: código HDL • Vantagem: encapsula-se todo o projeto da implementação em hardware

  38. Perguntas!

More Related