28
Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro [email protected] Orientadora: Edna Barros - [email protected]

Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro [email protected] Orientadora: Edna Barros - [email protected]

Embed Size (px)

Citation preview

Page 1: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Geração automática de RNAs MLP utilizando FPGA Antonyus [email protected]

Orientadora:Edna Barros - [email protected]

Page 2: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Roteiro

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

Page 3: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Motivação

Page 4: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

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

Page 5: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Motivação

•Objetivos: ▫Definição de uma arquitetura de RNAs para

hardware (inicialmente para aprendizado Off-line)

▫Implementação em FPGA

▫Validar com um modelo em software

▫Comparar desempenho

Page 6: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

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

Page 7: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Neurônio artificial

Page 8: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

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) }

Page 9: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

RNA - topologia

Page 10: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

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

Page 11: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

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) )

Page 12: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

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

Page 13: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

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

Page 14: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Comparação

Método erro médio erro max Suave Rápido

1ª ordem

otimizado

1.4539e-

017

0.0194 sim não

1ª ordem simples 8.9214e-

018

0.0189 não sim

2ª ordem simples 8.5910e-

018

0.0215 sim sim

Page 15: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

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 +++ +

Page 16: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Implementação do Neurônio

•Neurônio com pesos parametrizados

Page 17: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Implementação da Rede Neural

384 exemplos

299,45μs

•Controle seqüencial

Page 18: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Implementação da Rede Neural

384 exemplos

165,38μs

•Controle paralelo

Page 19: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Rede neural - XOR

Page 20: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

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

Page 21: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

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

Page 22: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

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)

Page 23: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Área

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

Page 24: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Trabalhos relacionados

Aproach Performance Speed up

PC 23ms 1x

Related work1 na 38x

Related work2 71ns(average) vs

43,07ns(our)

na

Our (sequencial) 299,45μs 76,8x

Our (parallel) 165,38μs 139x

Page 25: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

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

Page 26: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Proposta de Trabalho

•Escopo▫Geração automática de código a partir da

Ferramenta CAD de RNA (Matlab, Weeka, Scilab, Tanagra, etc)

▫ Garantir transparência e parametrização para o projetista de IA

Page 27: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Análise de Resultados• Comparativo qualitativo em relação às

implementações de RNA em FPGA (função de ativação, uso de ponto flutuante vs ponto fixo, etc)

• Comparativo quantitativo▫ Abordagens em FPGA - Tempo de processamento,

área e throughput▫ Abordagens em GPU - Tempo de processamento,

desempenho / custo da solução, desempenho / watt.

Page 28: Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Perguntas!