Geração automática de RNAs MLP utilizando FPGA

Slides:



Advertisements
Apresentações semelhantes
REDES NEURAIS ARTIFICIAIS: uma aplicação do tipo perceptron multilayer na identificação de impressões digitais Acadêmico: José Mário Pereira Dantas Orientador:
Advertisements

Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial.
Amintas engenharia.
Redes Neurais Artificiais (RNA): Introdução
Redes Neurais Artificiais (RNA): Perceptron
Redes Neurais Artificiais (RNA): Aprendizado
RECONHECIMENTO DE CARACTERES MANUSCRITOS APLICANDO REDES NEURAIS
REDES NEURONAIS ARTIFICIAIS (RNAs) Universidade do Minho.
1 Optimização Na programação por restrições, há que considerar não apenas a satisfação de restrições mas também a optimização de uma função objectivo.
Araken de Medeiros Santos
Araken de Medeiros Santos Anne Magály de Paula Canuto
Neurônio .3.
Redes Neurais Artificiais
Arquiteturas Diferentes
Aspectos da Implementação de Redes Neurais
6. Estruturas p/ Sistemas Discretos
Cérebro Artificial Intelligence, a modern approach
Germano C. Vasconcelos Centro de Informática - UFPE
Inteligência Artificial
Inteligência Artificial
FACENS – Engenharia da Computação Inteligência Artificial
Lista de Exercícios de Redes Neurais - Sistemas Inteligentes -
Prof. Dr. Cairo L. Nascimento Jr.
Inteligência Artificial
Polliana Corrêa Morais (bolsista); Leandro Osmar Werle (colaborador/
Ernesto F. F. Ramírez e Saide J. Calil
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
Inteligência Artificial Redes Neurias
Sistemas de Informação Inteligentes
Previsão de consumos a curto prazo
A Framework for Robots Development and Programming Based on Genetic Algorithms Palmeira P.F.M Silvino J.S. de Melo J.C.D DEE-UFMG DELT-UFMG.
Introdução O que é computação?.
Inteligência Artificial
Uma Introdução às Redes Neurais
Antonyus Pyetro Infra-estrutura de Hardware – IF674
Antonyus Pyetro Infra-estrutura de Hardware – IF674
Monitoria de Sistemas Inteligentes Alice Lucena Prof Teresa Ludermir.
Antonyus Pyetro Infra-estrutura de Hardware – IF674
Sistemas de medição - TM-247
ADDER Mult SR ADDER SR ADDER SRSR Weights Input Bias w44x4 w34x4 w24x4 w14x4... w41x1 w31x1 w21x1 w11x1 w41x1+w42x2 w31x1+w32x2 w21x1+w22x2 w11x1+w12x2.
A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro Orientadora: Edna Barros -
Redes Neurais Prof. Alex F. V. Machado.
Aprendizado de Máquina
Redes Neurais Artificiais
Projeto de Engenharia de Software e Sistemas
MO801 - Tópicos em Arquitetura e Hardware Michele Tamberlini 05/2006
SBRN’02 - Simpósio Brasileiro de Redes Neurais
Desenvolvimento de um Controle Reconfigurável para Sistemas de Tempo Real Crítico Sistema para aplicações em Mecatrônica e Automobilística.
Tópicos especiais em controle inteligente e distribuído Professor: Jorge Dantas de Melo Rafael Marrocos Magalhães.
Projeto de Redes Neurais e MATLAB
Redes Neuronais/Neurais/ Conexionistas Introdução
Redes Neurais Artificiais
Sistemas Tolerantes a Falhas: Conceitos e Técnicas
(OU) Hardware da Rede Implementacao da rede
Redes Neurais Artificiais. Introdução RNA são modelos matemáticos que se assemelham às estruturas neurais biológicas Capacidade computacional adquirida.
Transformada Rápida de Fourier para FPGA
Universidade Federal de Lavras Departamento de Ciência da Computação
Arquitetura de Sistemas Embarcados
Implementação de uma arquitetura de Redes Neurais MLP utilizando FPGA
Luana Bezerra Batista Redes Neurais Luana Bezerra Batista
Redes Neurais Artificiais
O Que São as Redes Neurais Artificiais
Inteligência Artificial
Redes Neurais Artificiais Prof. Júlio Cesar Nievola PPGIA – PUCPR Especialização em Inteligência Computacional.
Detecção de tráfego Skype na Web através de Redes Neurais Artigo Original: Freire, P. E., Ziviani, A., and Salles, R. M. (2008). Detecting skype flows.
©2005 Germano C.Vasconcelos Projeto da Disciplina Germano C. Vasconcelos Centro de Informática - UFPE.
1 Projeto Híbrido de Redes Neurais Ricardo Bastos C. Prudêncio Orientação: Teresa B. Ludermir CIn - UFPE Jan
Transcrição da apresentação:

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

Motivação

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

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

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

Neurônio artificial

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

RNA - topologia

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

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

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

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

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

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

Implementação do Neurônio Neurônio com pesos parametrizados

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

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

Rede neural - XOR

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

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

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)

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

Trabalhos relacionados

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

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

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.

Perguntas!