Sie sind auf Seite 1von 17

UNIVERSIDADE ESTADUAL DE MONTES CLAROS

CENTRO DE CINCIAS EXATAS E TECNOLGICAS


DEPARTAMENTO DE CINCIAS DA COMPUTACAO
ESPECIALIZAO EM ENGENHARIA DE SISTEMAS
DISCIPLINA: REDES NEURAIS
PROFESSOR: MARCOS FLVIO DNGELO
ALUNOS: DIOGO DE SOUZA MENDES
LUCIANA XAVIER BRANT

Relatrio de uma Aplicao de Redes Neurais

Maro 2011

1 - INTRODUO
Pretendemos desenvolver uma aplicao de uma Rede Neural Artificial para
predizer o consumo de gua em uma residncia. A rede utiliza os valores de medio
dos quatro ltimos meses para prever o valore do prximo ms. Utilizaremos valores
simples para facilitar o entendimento e a visualizao dos resultados
Para implementao da aplicao utilizamos as redes neurais do Toolbox do
software Matlab utilizado linhas de comando e uma ferramenta de interface grfica
chamada NNTool.

2 - DEFINIO
Redes Neurais so tcnicas computacionais que apresentam um modelo
matemtico inspirado na estrutura neuronal de organismos inteligentes e que adquirem
conhecimento atravs da experincia.
Baseado no funcionamento do crebro humano, ou no procedimento como o
crebro aprende, as redes neurais artificiais so capazes de simular conexes sinpticas.
Cada neurnio do crebro humano tem a capacidade de criar at 10.000 sinapses com
outros neurnios.
O neurnio biolgico composto pelo corpo do neurnio (ou soma), pelos
dendritos e axnios; o corpo do neurnio responsvel por coletar e combinar
informaes vindas de outros neurnios, os dendritos recebem estmulos e o axnio
transmite esses estmulos. Um neurnio recebe sinais atravs dos dendritos, onde
ponderado e enviado ao axnio, um sinal pode ser ampliado ou reduzido, por que a cada
passagem por um neurnio est associado um peso que multiplicado ao sinal. (Ludwig
Jr; COSTA, 2007)
A sinapse o processo de ligao entre o axnio e o dendrito; para que o
sinal entre no prximo neurnio, deve ocorrer sinapse. Mas para isso, esse sinal deve ser
superior a certo limite, que segundo Ludwig Jr; COSTA (2007, p 10) deve superior a 50
mV (limiar de disparo), caso no for bloqueado.
O neurnio artificial trabalha de forma similar ao neurnio biolgico,
recebendo sinais de entrada e distribuindo para a sada ou para outros neurnios da
camada seguinte. O sinal de entrada multiplicado pelos pesos sinpticos, gerando um
somatrio de todas as entradas ponderadas, esse somatrio considerado a funo de
ativao para que possa transmitir o sinal para outros neurnios ou para a sada.
O Matlab (Matrix Laboratory) um sistema interativo e uma linguagem de
programao para a computao tcnica e cientfica em geral, ele baseado em
matrizes. O Matlab possui uma famlia de aplicativos especficos (toolboxes), que so
colees de funes usadas para resolver determinados problemas tais como:
otimizao, manipulao algbrica, redes neurais, processamento de sinais, simulao
de sistemas dinmicos, entre outros.

O Matlab trabalha com duas janelas: uma janela de comandos que usada
para a entrada dos comandos, dados, e para mostrar os resultados na tela, e outra janela
grfica onde so gerados os grficos.
Para utilizar as redes neurais no Toolbox do Matlab pode ocorrer de duas
formas: linha de comando ou interface grfica, chamada NNTOOL.
3 IMPLEMENTAO
Para a criao da rede neural devem-se seguir os seguintes passos: definir os
padres (entrada e sada), inicializar a rede, definir os parmetros de treinamento,
treinar a rede e testar a rede.
Faremos a implementao utilizando linha de comando e a ferramenta de
interface grfica NNTool do Matlab verso 7.5.0.342 (R2007b). Utilizaremos dados
fictcios de medidas de gua de uma residncia em diversos meses do ano com objetivo
de treinar a rede e possibilitar a previso da medida de um ms baseado nas medidas dos
quatro meses anteriores.
Os dados utilizados como parmetros de treinamento podem ser visualizados
na tabela 1.
Ms
FEV
Medida 292

JAN
270

DEZ
287

NOV
272

OUT
261

SET
316

AGO
294

JUL
269

Tabela 1 Parmetros de treinamento

3.1 Entendendo o funcionamento da Linha de Comando


Seguindo esses passos a partir da linha de comando do Matlab.
Digita os valores de entrada e sada - definindo os Padres
X = [ 0 0 11; 0 1 0 1]
Y = [0 1 1 0]
Definindo a estrutura da rede
net = newff( [min(P')' max(P')'],[N_hidden 1],{'tansig' 'logsig'},'traingd');
newff_ cria a estrutura de uma rede neuronal directa com retropropagao (feedforward backpropagation network)
Mnimo e mximo da matriz de entrada_ limites dos padres de entrada
N_hidden 1_ nmero de neurnios de cada camada

tansig ou logsig_ funo de ativao de cada camada


traingd_ algoritmo de treinamento
Definindo parmetros de treinamento
net.trainParam.epochs = 100;
net.trainParam.goal = 1e-8;
net.trainParam.lr = 0.01;
net.trainParam.show = 25;
net.trainParam.mc = 0.9;
net.trainParam.lr_inc = 1.05;
net.trainParam.lr_dec = 0.7;
net.trainParam.max_perf_inc = 1.04;

Nmero de epochs
Erro final desejado
Taxa de aprendizado
Atualizao da tela (epochs)
Taxa de momentum
Taxa de incremento da l.r.
Taxa de decremento da l.r.
Incremento mximo do erro

Treinando a Rede Neural


net = train(net, P, T);
Testando a Rede Neural
C = sim(net, P);
3.2 Implementao utilizando Linha de Comandos
%Deinindo as entradas que serviro pra o treinamento da rede
P = [270 287 272 261;
287 272 261 316;
272 261 316 294;
261 316 294 269];
%Definindo os targets(legendas) que serviro para o treinamento da rede
T = [292 270 287 272];
%Instanciando a rede com 16 neurnios na camada oculta e 1 neurnio na camada de
sada
net = newff(minmax(P),[16 1],{tansig tansig});
%Comando par realizar o treinando a rede
net = train(net,P,T);
%Definindo valores de entradas para a rede calcular a previso de sada
S=[80; 60; 40; 20];
%Fazendo a rede simular com os valores das entradas dadas no passo anterior
Y = sim(net,S);
%Exibindo o resultado
4

Y
4 IMPLEMENTAO UTILIZANDO A FERRAMENTA NNTOOL
O Matlab tambm possibilita a criao Redes Neurais Artificiais de forma
simples e intuitiva utilizando a ferramenta NNTool. Em interface grfica possvel
definir os padres de entrada, sada e modelar o tipo de rede utilizando os diversos
recursos desta ferramenta.
4.1 Tela inicial do NNTool
Para executar o aplicativo basta digitar o comando nntool na linha de
comandos do Matlab. Ento surgir a janela inicial demonstrada na Figura 1.

Figura 1 - Tela inicial do NNTool


Na janela inicial temos vrios quadros onde podemos ver e alterar os conjuntos
de dados de entrada, sada, padres de sada e erros. Temos tambm botes para
importar ou exportar dados, criar, abrir e excluir uma rede neural.
4.2 Criando uma nova Rede Neural Artificial.
Pra criar uma nova RNA ou um novo conjunto de dados para entrada (inputs) ou
padro de sada (targets) devemos pressionar o boto New da tela inicial. Em seguida
ser mostrado um nova janela de ttulo Create Network or Data demonstrada na
Figura 2. Nesta Janela possvel alternar as abas para criar Redes Neurais ou Dados.
importante ressaltar que para criar uma nova RNA devemos passar os valores de entrada
5

e se for do tipo supervisionada devemos passar os padres de sada tambm. Sendo


assim, no possvel criar uma nova RNA sem criar primeiro os padres de dados
requisitados por ela.

Figura 2 Janela para criar uma nova RNA ou Dados


4.2.1 Criando os Conjuntos de Dados necessrios para a RNA
Na aba Data podemos inserir os diversos parmetros para a rede. Os primeiros
dados a serem inseridos sero os conjuntos de dados da entrada que representam quatro
intervalos de quatro meses cada. Para este grupo de informaes daremos o nome P.
Na figura 3 podemos ver o nome da entrada e os valores da mesma.

Figura 3 Valores de Entrada


Na entrada P temos quatro seqncia de quatro entradas e para cada uma
destas seqncias temos um valor de sada especificadas no elemento T do tipo
target. A figura 4 mostra a criao dos targets(legendas) para cada grupo de entradas.

Figura 4 Padres de Sada (Targets)


O Prximo passo ser inserir valores de entrada(inputs) para realizar simulaes.
Vamos inserir valores de quatro meses consecutivos (Outubro, Setembro, Agosto e
Julho) e armazenar na varivel S1. A Figura 5 demonstra a entrada dos valores para
realizar a simulao.

Figura 5 Entrada para Simulao


4.2.2 Criando a nova RNA
J temos os dados para a rede trabalhar agora o prximo passo criar uma nova
Rede na aba Network. Para criar uma nova rede devemos dar um nome a ela. Escolher
o tipo de rede. Escolher os dados de entrada e legendas para o treinamento. O tipo de
funo para o treinamento, a quantidade de camadas e a funo de transferncia para
cada camada. A figura 6 mostra a configurao da nossa rede. Com os seguintes
valores:
Nome (Name): Consumo_de_Agua_01
Tipo de Rede (Network Type): Feed Forward backprop
Padro de Entrada (Input Data): P
Legendas(Target Data): T
Funo de Treinamento(Training Function): Trainlm
Funco de Adaptao de treinamento(Adaption Learning Funcion:
Funo de Adaptao de Treinamento): Learngdm
Funo de Performance(Performance Function): MSE

Numero de Camadas (Number of Layer): 2


Propriedade das Camadas (Propreties for)
Camada1(Layer1) Nmeros de Neurnios:16
Funo de Transferncia: Tansig
Camada2(Layer2) Numero de Neurnios: 1
Funo de Transferncia: Tansig

Figura 6 Criando uma nova Rede


Agora podemos observar na figura 7 todos os dados de entrada, legendas
e redes criadas.

10

Figura 7 Tela inicial do NNTool como dados e rede criados.


4.2.3 Treinamento da Rede

Com a rede pronta j podemos trein-la e realizar os teste de simulao.


Para acessar a rede podemos clicar duas vezes no seu nome ou clicar uma vez e
pressionar o boto open na parte inferior da janela do NNTool. Aps abrir j podemos
visualizar o formato de rede criada onde possvel ver a quantidade de entradas,
camadas e neurnios em cada camada. Na figura 8 podemos visualizar o diagrama da
nossa RNA.

11

Figura 8 Diagrama da Rede


O prximo passo treinar a rede. Para isso devemos clicar na aba Train
da rede criada. Nesta aba devemos passar as informaes para treinamento e definir os
nomes das variveis de sada. Para nossa rede vamos inserir os valores de treinamento
criados anteriormente armazenados nas variveis de entrada P e legendas T. Na figura 9
podemos a tela de configurao dos dados para treinamento.

12

Figura 9 Configurao dos dados para o treinamento.


Podemos modificar parmetros avanados de treinamento na sub-aba
Training Paramenters( Parmetros de Treinamento).

Figura 10 - Parmetros de Treinamento


13

Aps realizar todas as configuraes de treinamento podemos pressionar o boto


Train Network (Treinamento da Rede). Ento surgir um grfico demonstrando. A
figura 11 mostra o grfico de desempenho da rede.

Figura 11 - Grfico de Desempenho

4.2.4 Simulao
Com a rede treinada podemos clicar na aba simulao e fazer os testes
com a entrada S1 inserida com valores de quatro meses. Tambm podemos dar um
nome para a sada da simulao (Simulation Results/Outputs ) para facilitar o
entendimento ou diferenciar os resultados de sada quando trabalhamos com vrios
valores de entrada . Podemos observar na figura 12 a atribuio de as varivel S1 para a
simulao e o nome da sada S1_output.

14

Figura 12 Atribuio dos valores para a Simulao


Agora que os valores para a simulao j foram atribudos podemos clicar no
boto Simulate Network(Simular Rede) e voltar na tela inicial do NNTool para ver o
resultado no quadro Output Data(Dados de Sada) e clicar na no nome da varivel de
sada especificada na etapa anterior. Basta Clicar duas veses na varivel para ver o
resultado.

15

Figura 13 Resultado da Simulao

5 CONCLUSO
Aps a realizao de todas as configuraes, treinar a rede e realizar uma
simulao, e finalmente o resultado. Como passamos os valores das medidas dos meses
Outubro, Setembro, Agosto e Julho e o resultado encontrado foi o valor do ms de
Novembro. Ento nossa expectativa foi satisfeita j que o resultado encontrado foi o
resultado esperado.

16

Referncias bibliogrficas
LUDWIG JR, Oswaldo; COSTA, Eduard M. Redes Neurais: Fundamentos e
Aplicaes com Programas em C. Rio de Janeiro: Editora Cincia Moderna Ltda.
2007;
www.ebah.com.br/apostila-matlab-pdf-a8868.html
Neural Networks Toolbox User's Guide:
http://www.cse.cuhk.edu.hk/corner/tech/doc/manual/matlab5.3.1/help/pdf_doc/nnet/nnet.pdf

17

Das könnte Ihnen auch gefallen