You are on page 1of 77

INTRODUO AO ESTUDO DE REDES NEURAIS ARTIFICIAIS

MDULO REDES NEURAIS NO MATLAB


Laboratrio de Conexionismo e Cincias Cognitivas L3C Grupo SICRES INE - UFSC

Objetivo
Oferecer ao aluno uma introduo ao software MATLAB e ao toolbox de Redes Neurais, descrevendo comandos dicas e exemplos de utilizao.

Ambiente MATLAB
MATLAB MATrix LABoratory Programao baseada em Matrizes Vetores e escalares tambm podem ser considerados matrizes, 1xN, Nx1, 1x1

Tela Principal do MATLAB

Tela Principal do MATLAB


Janela de Comando

Tela Principal do MATLAB

Janela de Histrico

Tela Principal do MATLAB


Launch Pad

Definindo uma Matriz Explicitamente


Elementos de uma linha so separados por espaos ou vrgulas. vrgulas O final de cada linha indicado por um <ENTER> ou ponto-e-vrgula. ponto- vrgula A lista de elementos delimitada por colchetes [ ].

Definindo uma Matriz Explicitamente


Exemplo:
>>
A = 16 5 9 4 3 10 6 15 2 11 7 14 13 8 12 1 A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

Operaes em Matrizes
: transposio de uma matriz
>> A A = 16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

Indexao de Matrizes
Matriz Bidimensional: A(i,j) o elemento A(i,j) da i-sima linha, j-sima coluna
A = 16 5 9 4 3 10 6 15 2 11 7 14 13 8 12 1

A(2,3) = 11

Indexao de Matrizes
Soma dos Elementos da 2a Linha: >> A(2,1) + A(2,2) + A(2,3) + A(2,4) ans = 34

Redimensionamento Automtico
>> X = A; >> X(5,5) = 29 X = 16 3 2 5 10 11 9 6 7 4 15 14 0 0 0

13 8 12 1 0

0 0 0 0 29

O Operador : (dois pontos)


>> 1:10 ans = 1 2 3 4 5 6 7 8 9 10 >> 1:3:27 ans = 1 4 7 10 13 16 19 22 25

O Operador : e Matrizes
A(1:m, n) primeiros m elementos da n-sima n): coluna A(:, n) todos os elementos da n-sima coluna n): A(:, end) todos os elementos da ltima coluna end): A(m, 1:n) primeiros n elementos da m-sima 1:n): linha A(m, :) todos os elementos da m-sima linha :): A(end,:): A(end,:) todos os elementos da ltima linha

O Operador : e Matrizes
>> A(:,4) ans = 13 8 12 1 >> A(:,end) ans = 13 8 12 1

OU

Funes de Criao de Matrizes


zeros: zeros matriz de zeros ones: ones matriz de uns rand: rand matriz de nmeros aleatrios com distribuio uniforme randn: randn matriz de nmeros aleatrios com distribuio normal (Gaussiana)

lgebra Linear para Matrizes


+ / * ^ inv : soma : subtrao : diviso de matrizes : multiplicao de matrizes : potncia de uma matriz : inversa de uma matriz

Operadores Aritmticos para Matrizes


+ ./ .* .^ : soma : subtrao : diviso elemento a elemento : multiplicao elemento a elemento : potncia elemento a elemento

Redes Neurais no MATLAB


Duas formas de utilizao:
Linhas de comando, e m-files Interface grfica (NNTool)

Redes Neurais no MATLAB


Duas formas de utilizao:
Linhas de comando, e m-files comando, mInterface grfica (NNTool)

Passos para a Criao de uma Rede Neural


Definir os padres Inicializar a rede Definir os parmetros de treinamento Treinar a rede Testar a rede

Passos para a Criao de uma Rede Neural


Definir os padres Inicializar a rede Definir os parmetros de treinamento Treinar a rede Testar a rede

Definindo os Padres
>> angulo=-pi:pi/15:pi; >> seno=sin(angulo);
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -4

-3

-2

-1

Passos para a Criao de uma Rede Neural


Definir os padres Inicializar a rede Definir os parmetros de treinamento Treinar a rede Testar a rede

Inicializando a Rede Neural


net=newff([minmax(angulo)], [5 1],... {'tansig', 'tansig'}, 'traingdm');
newff define uma rede MLP (feedforward) minmax pega os valores mnimos e mximos do padro de entrada [5 1] 5 neurnios na camada hidden e 1 na camada de sada tansig funo de saida dos neurnios traingdm treinamento batch gradiente descendente com momento

Funes de Ativao
purelin logsig tansig satlin(s) Linear Sigmide Tangente hiperblica Linear com saturao

Algoritmos de Treinamento
traingd traingd Gradient descent backpropagation traingdm Gradient descent backpropagation com momentum traingda Gradient descent backpropagation com taxa adaptativa traingdx Gradient descent backpropagation com momentum e taxa adaptativa trainlm Levenberg-Marquardt backpropagation (default) trainrp Resilient backpropagation (Rprop)

Passos para a Criao de uma Rede Neural


Definir os padres Inicializar a rede Definir os parmetros de treinamento Treinar a rede Testar a rede

Definindo parmetros de treinamento


net.trainParam.epochs = 3000; Nmero mx. de pocas net.trainParam.goal = 1e-3; Erro final desejado net.trainParam.lr = 0.1; Taxa de aprendizado net.trainParam.show = 25; Atualizao da tela (pocas) net.trainParam.mc = 0.9; Taxa de momento

Definindo parmetros de treinamento


net.trainParam.epochs = 100; Nmero mx. de pocas net.trainParam.goal = 1e-8; Erro final desejado net.trainParam.lr = 0.01; net.trainParam.show = 25; net.trainParam.mc = 0.9; Taxa de aprendizado Atualizao da tela (pocas) Taxa de momento

net.trainParam.lr_inc = 1.05; Taxa de incremento da lr net.trainParam.lr_dec = 0.7; Taxa de decremento da lr net.trainParam.max_perf_inc = 1.04; Incremento mximo do erro

Passos para a Criao de uma Rede Neural


Definir os padres Inicializar a rede Definir os parmetros de treinamento Treinar a rede Testar a rede

Treinando a Rede Neural


net = train(net, angulo, seno);
10
1

Performance is 0.00226394, Goal is 0.001

10 Training-Blue Goal-Black

10

-1

10

-2

10

-3

10

-4

500

1000

1500 3000 Epochs

2000

2500

3000

Passos para a Criao de uma Rede Neural


Definir os padres Inicializar a rede Definir os parmetros de treinamento Treinar a rede Testar a rede

Testando a Rede Neural


c = sim(net, angulo); plot(angulo,seno,r.,angulo,c,k*);
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -4

-3

-2

-1

Testando a Rede Neural


A=-pi:pi/306:pi; C=sim(net,A); plot(angulo,seno,r.,angulo,C,k-);
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -4

-3

-2

-1

Validao
Dividir os padres disponveis em trs conjuntos:
treinamento (70%): matrizes Ptrain, Ttrain teste (20%): matrizes Ptest, Ttest validao (10%): matrizes Pvalid, Tvalid

Validao
Gera conjunto de treinamento:
>> angulo=-pi:pi/15:pi; >> seno=sin(angulo);

Gera conjunto de validao:


>> val.P =-pi+pi/7:pi/6:pi; >> val.T = sin(val.P); >> plot(angulo, seno,b.,val.P,val.T,ro');

Validao

1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -4

-3

-2

-1

Validao
Treina a rede neural incluindo a validao como critrio de parada
>> net=newff([minmax(angulo)] ,[15,1], {'tansig','tansig'},'traingdm'); >> net.trainParam.show = 25; >> net.trainParam.epochs = 300000; >> net.trainParam.max_fail = 50; >> [net,tr]=train(net,p,t,[],[],val);

Validao
Treina a rede neural incluindo a validao como critrio de parada
10
0

Performance is 4.06178e-006, Goal is 0

10 Training-Blue Validation-Green

-1

10

-2

10

-3

10

-4

10

-5

10

-6

4 5 6 100000 Epochs

10 x 10
4

Validao
Treina a rede neural incluindo a validao como critrio de parada
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -4

-3

-2

-1

Redes Neurais no MATLAB


Duas formas de utilizao:
Linhas de comando, e m-files Interface grfica (NNTool)

Interface Grfica NNTool

Passos para a Criao de uma Rede Neural


Definir os padres Criar a rede Inicializar a rede Definir os parmetros de treinamento Treinar a rede Testar a rede

Passos para a Criao de uma Rede Neural


Definir os padres Criar a rede Inicializar a rede Definir os parmetros de treinamento Treinar a rede Testar a rede

Definindo os Padres

Definindo os Padres

Definindo os Padres

Definindo os Padres

Passos para a Criao de uma Rede Neural


Definir os padres Criar a rede Inicializar a rede Definir os parmetros de treinamento Treinar a rede Testar a rede

Criando a Rede Neural

Criando a Rede Neural

Criando a Rede Neural

Criando a Rede Neural

Visualizando a Rede Neural

Visualizando a Rede Neural

Passos para a Criao de uma Rede Neural


Definir os padres Criar a rede Inicializar a rede Definir os parmetros de treinamento Treinar a rede Testar a rede

Inicializando a Rede Neural

Inicializando a Rede Neural

Passos para a Criao de uma Rede Neural


Definir os padres Criar a rede Inicializar a rede Definir os parmetros de treinamento Treinar a rede Testar a rede

Definindo parmetros de treinamento

Definindo parmetros de treinamento

Definindo parmetros de treinamento

Passos para a Criao de uma Rede Neural


Definir os padres Criar a rede Inicializar a rede Definir os parmetros de treinamento Treinar a rede Testar a rede

Treinando a Rede Neural

Treinando a Rede Neural

Passos para a Criao de uma Rede Neural


Definir os padres Criar a rede Inicializar a rede Definir os parmetros de treinamento Treinar a rede Testar a rede

Testando a Rede Neural

Testando a Rede Neural

Testando a Rede Neural

Testando a Rede Neural

Testando a Rede Neural

Testando a Rede Neural

Exportando os Dados

Exportando os Dados

FIM DO MDULO REDES NEURAIS NO MATLAB

You might also like