JEU TONETE
ROGRIO LUIS FONTANRIO
TOLEDO - PR
2016
JEU TONETE
ROGRIO LUIS FONTANRIO
Trabalho
apresentado
como
parte
TOLEDO - PR
2016
LISTA DE ILUSTRAES
SUMRIO
1 INTRODUO .....................................................................................................4
2 REDES NEURAIS PERCEPTRON ......................................................................5
3 DESENVOLVIMENTO DE UMA REDE PARA RECONHECIMENTO DE
CARACTERES .......................................................................................................8
3.1 PARMENTROS DA REDE NEURAL ..............................................................8
3.2 TREINAMENTO DA REDE ...............................................................................9
3.2.1 Entradas .........................................................................................................9
3.2.2 Alvo .................................................................................................................10
3.2.3 Resultados ......................................................................................................11
4 IMPLEMENTAO DA REDE NEURAL NA FPGA ............................................12
4.1 COMPONENTES CRIADOS .............................................................................13
5 CONCLUSO .......................................................................................................20
REFERNCIAS .......................................................................................................21
1 INTRODUO
3 DESENVOLVIMENTO
DE
UMA
REDE
PARA
RECONHECIMENTO
DE
CARACTERES
Como citado acima, foi utilizado a rede neural do tipo Perceptron por sua
adaptao ao problema e sua convergncia. A escolha desse tipo de rede foi feita
comparando o desempenho desta com a do tipo Mltiplas Camadas (nomeada como
FeedForward BackPropagtion no MatLab), que no ofereceu desempenho satisfatrio
com relao aos erros independentemente do nmero de neurnios usados na
primeira camada.
Foi utilizado a ferramenta NNTOOL presente no Matlab, ferramenta esta que
auxiliou a criao e o treinamento da nossa rede neural.
Nmero de sadas: 8;
Nmero de neurnios: 8;
3.2.1 Entradas
10
3.2.2 Alvo
11
3.2.3 Resultados
12
Para o projeto foi utilizado o kit DE0 da Terasic que contm a FPGA Cyclone
3 da Altera com 6 mil elementos lgicos e o software de programao foi o Quartus 2
v13.
FPGA Pins
G4
H6
J6
Input
ce
clk
dataInput
13
DE0 switches
LEDG7
LEDG6
LEDG5
LEDG4
LEDG3
LEDG2
LEDG1
LEDG0
FPGA Pins
C2
C1
E1
F2
H1
J3
J2
J1
Output
dataOutput(7)
dataOutput(6)
dataOutput(5)
dataOutput(4)
dataOutput(3)
dataOutput(2)
dataOutput(1)
dataOutput(0)
circuit.vhd
O componente toplayer circuit.vhd instancia alm da rede neural, um
componente que direciona uma entrada de dados para um vetor de dados que
aplicado a rede e um debounce para o boto de clock.
neurnio_def.vhd
O arquivo neurnio_def contm as principais definies para a criao de um
neurnio, como a quantidade de entradas, o nmero de bits que cada entrada contm,
nmero de bit que cada dado de peso e o tipo que a entrada e sada. Possui tambm
definies para os tipos de dados usados no projeto. A utilizao de novos tipos com
tamanhos genricos muito til para a reutilizao do cdigo para outras redes de
diferentes tamanhos.
14
Neuronio.vhd
Este componente contm a implementao de um neurnio artificial com
funo de ativao HARDLIM. Ele recebe um vetor de entrada de dados que ser
multiplicado pelos pesos sinpticos, o resultado disso somado juntamente com o
BIAS.
15
Perceptron.vhd
O componente perceptron instancia todos os componentes neurnios da rede.
Nele definido os pesos sinpticos aplicados a cada neurnio tanto quanto o BIAS do
mesmo. Tem com entrada um array de dados com tamanho igual quantidade de
entradas da rede e um array de dados de sadas com a quantidade de neurnios.
16
17
18
ParallelTransfer.vhd
O arquivo parallelTransfer.vhd usado para a transferncia de dados para
a rede neural. Ele utiliza um pino para Chip Enable (CE), um pino para Clock (CLK), e
N pinos para o dado. Aps colocar o CE para nvel baixo, ele zera o indexador
referente a quantos dados sero lidos, e assim comea uma nova leitura. Ele ento
espera uma subida de CLK para ento ler os dados e assim armazenar esse dado de
N bits na primeira posio de um vetor. Aps isso, mantem se o CE em nvel baixo
at o final de toda a transferncia de dados e a cada subida de CLK um novo dado
adicionado ao vetor. A sada desse arquivo um vetor de dados que ser usado no
TopLayer para ser a entrada da rede neural.
19
20
5 CONCLUSO
Com o projeto podemos concluir que vivel desenvolver uma rede neural
em uma FPGA. Aplicamos uma rede consideravelmente simples, mas com bastante
entradas, e analisamos o seu comportamento para as entradas de maior interesse. A
rede na FPGA se comportou de modo esperado, acertando a resposta para os dados
treinados e inclusive para alguns com introduo de pequenos erros.
Assim percebemos que uma boa soluo para certos problemas, utilizar
uma rede neural no supervisionada treinada em algum outro software para a
obteno dos pesos sinpticos combinada com a FPGA para executar a rede no modo
a frente.
Assim a rede consegue executar os seus vrios clculos com um
processamento consideravelmente rpido, pois o mesmo est aplicado em um
hardware especifico.
Todo o projeto foi um bom estudo inicial sobre esse assunto que pode ser
estudado mais a fundo em outros projetos, como a aplicao de outros problemas e
outros tipos de redes, como a Multicamadas.
21
REFERNCIAS
HAYKIN, Simon S. Redes neurais: Princpios e prtica. Trad. Paulo Martins Engel.
2ed. Porto Alegre. Bookman, 2001.