App

28
MATLAB Toolboxes NNT Atividade Bibliografia Utilizando o Neural Network Toolbox... ...um toolbox do MATLAB para redes neurais artificiais Pablo Souza Grigoletti [email protected] Universidade Federal do Rio Grande do Sul Programa de P´ os-Graduac ¸˜ ao em Computac ¸˜ ao Disciplina de Sistemas Evolutivos Professor Dante Augusto Couto Barone Marc ¸o de 2006

Transcript of App

Page 1: App

MATLAB Toolboxes NNT Atividade Bibliografia

Utilizando o Neural Network Toolbox......um toolbox do MATLAB para redes neurais artificiais

Pablo Souza Grigoletti

[email protected]

Universidade Federal do Rio Grande do SulPrograma de Pos-Graduacao em Computacao

Disciplina de Sistemas Evolutivos

Professor Dante Augusto Couto Barone

Marco de 2006

Page 2: App

MATLAB Toolboxes NNT Atividade Bibliografia

MATLAB

O MATLAB e um software voltado para o calculo numerico;

Em especial para facilitar os calculos com matrizes;

MATLAB = MATrix LABoratory;

Possui uma versao disponıvel na biblioteca do II (versao 5.3);

Esta versao roda no sistema operacional M$-Windows;

Page 3: App

MATLAB Toolboxes NNT Atividade Bibliografia

Arquivos ”.m”

Os comandos sao normalmente digitados na Janela de Comando;

Onde uma unica linha de comando e introduzida e processada;

E possıvel executar sequencias de comandos;

Armazenadas em arquivos;

Sao chamados arquivos “.m”;

Consistem de uma sequencias de comandos normais do MATLAB;

Possibilitando incluir outros arquivos “.m”;

Page 4: App

MATLAB Toolboxes NNT Atividade Bibliografia

Toolboxes

Um toolbox e uma biblioteca para o MATLAB;

O MATLAB possui toolboxes para diversas areas:Algoritmos geneticos;Redes neurais artificiais;Logica Fuzzy;Processamento de sinais;Otimizacao;E muitos outros (muitos mesmo)...

Um toolbox e formado de um ou mais arquivos “.m”;

Page 5: App

MATLAB Toolboxes NNT Atividade Bibliografia

Facil Aprendizado

Existem:Varios demos de cada toolbox;

Vasta documentacao na Internet;

Descricao detalhada no site do MATLAB;

Minha experiencia com MATLAB...

Page 6: App

MATLAB Toolboxes NNT Atividade Bibliografia

Neural Networks Toolbox

Instalado junto com o MATLAB;

Algoritmos para trabalhar com redes neurais artificiais;

Possui varios tipos de RNA;

Utilizado nas disciplinas de RNA da graduacao e pos-graduacao;

Alguns exemplos...

Page 7: App

MATLAB Toolboxes NNT Atividade Bibliografia

Exemplo 01

Page 8: App

MATLAB Toolboxes NNT Atividade Bibliografia

Criacao e treinamento de um percepton

% cria a estrutura da RNA com um perceptron

% [min; max], numero de neuronios

net = newp([-2 2; -2 2], 1)

P = [0 0; 0 1; 1 0; 1 1]’; % entradas

T = [0 1 1 1]; % saıdas

figure; % cria nova figura

plotpv(P, T); % plota as entradas/saıdas

lh = plotpc(net.IW{1}, net.b{1}) % plota linha que separa as classes

hold on

for cont=1:6,

net = adapt(net, P, T); % treinamento

lh = plotpc(net.IW{1}, net.b{1}, lh);

drawnow;

pause;

Y = sim(net, P) % propagacao

end;

hold off;

Page 9: App

MATLAB Toolboxes NNT Atividade Bibliografia

Criacao e treinamento de um Percepton

−0.5 0 0.5 1 1.5−0.5

0

0.5

1

1.5Vectors to be Classified

P(1)

P(2

)

Page 10: App

MATLAB Toolboxes NNT Atividade Bibliografia

Criacao e treinamento de um Percepton

−0.5 0 0.5 1 1.5−0.5

0

0.5

1

1.5Vectors to be Classified

P(1)

P(2

)

Page 11: App

MATLAB Toolboxes NNT Atividade Bibliografia

Criacao e treinamento de um Percepton

−0.5 0 0.5 1 1.5−0.5

0

0.5

1

1.5Vectors to be Classified

P(1)

P(2

)

Page 12: App

MATLAB Toolboxes NNT Atividade Bibliografia

Criacao e treinamento de um Percepton

−0.5 0 0.5 1 1.5−0.5

0

0.5

1

1.5Vectors to be Classified

P(1)

P(2

)

Page 13: App

MATLAB Toolboxes NNT Atividade Bibliografia

Exemplo 02

Page 14: App

MATLAB Toolboxes NNT Atividade Bibliografia

Criacao e treinamento de uma rede BackPropagation

% cria uma rede BP para solucionar o problema do XOR

P = [-1 -1; -1 1; 1 -1; 1 1]; % entradas

T = [-1 1 1 -1]; % saıdas

net = newff([-1 1; -1 1], [2 1]); % criacao da rede BP

a = sim(net, P.’)

net = train(net, P.’, T);

a = sim(net, P.’)

Page 15: App

MATLAB Toolboxes NNT Atividade Bibliografia

Criacao e treinamento de uma rede BackPropagation

a =

-0.1257 -0.8804 0.3126 0.9326

TRAINLM, Epoch 0/100, MSE 2.12689/0, Gradient 1.10147/1e-010

TRAINLM, Epoch 25/100, MSE 0.000330282/0, Gradient 0.0045177/1e-010

TRAINLM, Epoch 34/100, MSE 4.95484e-012/0, Gradient 6.86561e-011/1e-010

TRAINLM, Minimum gradient reached, performance goal was not met.

a =

-1.0000 1.0000 1.0000 -1.0000

Page 16: App

MATLAB Toolboxes NNT Atividade Bibliografia

Exemplo 03

Page 17: App

MATLAB Toolboxes NNT Atividade Bibliografia

Criacao e treinamento de uma rede BackPropagation

x = -pi:pi/16:pi;

y = sin(x);

plot(x,y);

pause;

Page 18: App

MATLAB Toolboxes NNT Atividade Bibliografia

Criacao e treinamento de uma rede BackPropagation

−4 −3 −2 −1 0 1 2 3 4−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Page 19: App

MATLAB Toolboxes NNT Atividade Bibliografia

Criacao e treinamento de uma rede BackPropagation

% cria uma rede BP para aproximar a funcao seno

% entradas podem variar de -pi ate pi

% 20 neuronios na camada oculta

% 1 neuronio na camada de saıda

net = newff([-pi pi], [20 1]);

a = sim(net, x);

plot(x, a);

pause;

% a rede inicia com pesos aleatorios. Entao...

Page 20: App

MATLAB Toolboxes NNT Atividade Bibliografia

Criacao e treinamento de uma rede BackPropagation

−4 −3 −2 −1 0 1 2 3 4−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Page 21: App

MATLAB Toolboxes NNT Atividade Bibliografia

Criacao e treinamento de uma rede BackPropagation

% treina a rede BP para aproximar a funcao seno

net = train(net, x, y);

a = sim(net, x);

plot(x, a);

pause;

Page 22: App

MATLAB Toolboxes NNT Atividade Bibliografia

Criacao e treinamento de uma rede BackPropagation

−4 −3 −2 −1 0 1 2 3 4−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Page 23: App

MATLAB Toolboxes NNT Atividade Bibliografia

Criacao e treinamento de uma rede BackPropagation

% repetindo para 500 epocas de treinamento

net = init(net); % inicializa novamente os pesos

net.trainParam.epochs = 500;

net = train(net, x, y);

a = sim(net, x);

plot(x, a);

Page 24: App

MATLAB Toolboxes NNT Atividade Bibliografia

Criacao e treinamento de uma rede BackPropagation

−4 −3 −2 −1 0 1 2 3 4−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Page 25: App

MATLAB Toolboxes NNT Atividade Bibliografia

Atividade proposta

Semelhante ao exemplo 03 (seno);

Utilizando MATLAB e o toolbox para redes neurais:

Criar duas funcoes quaisquer (uma facil e outra difıcil);

Criar uma rede BP para aproximar as duas funcoes;

Modificar numero de neuronios da camada oculta;

Modificar numero de epocas de treinamento;

Verificar a consequencia das mudancas;Apresentar um relatorio (PDF) dos resultados com:

Imagens;Codigo-fonte;Explicacao do que foi feito;

Page 26: App

MATLAB Toolboxes NNT Atividade Bibliografia

Bibliografia

Exemplos retirados do material do prof. Paulo Martins Engel;

Page 27: App

MATLAB Toolboxes NNT Atividade Bibliografia

Duvidas?

Page 28: App

MATLAB Toolboxes NNT Atividade Bibliografia

Obrigado pela atencao.

Pablo Souza [email protected]