A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Implementação de uma arquitetura de Redes Neurais MLP utilizando FPGA"— Transcrição da apresentação:

1 Implementação de uma arquitetura de Redes Neurais MLP utilizando FPGA
Antonyus Pyetro Orientadoras: Edna Barros - Teresa Ludermir -

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
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: Erro médio: e-017

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

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

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

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

22 Comparação Método erro médio erro max Suave Rápido 1ª ordem otimizado
0.0194 sim não 1ª ordem simples 8.9214e-018 0.0189 2ª ordem simples 8.5910e-018 0.0215

23 Implementação do Neurônio
Cálculo do estado de ativação Um somador e um multiplicador 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 + ++ +

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 Modelos 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: médio: Matlab sigmóide real Vs software – C++ Erro máximo: e-006 Em FPGA Vs Matlab sigmóide aproximada Erro máximo: Em FPGA Vs Matlab sigmóide real Erro máximo:

33 Tempo de execução implementação em C++ (AMD Athlon GHz 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!


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

Apresentações semelhantes


Anúncios Google