Sei sulla pagina 1di 42

Redes Neurais no MATLAB 6.

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 Interface grfica (NNTool)

Passos para a Criao de uma RN


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

O Problema do OU Exclusivo
1

x2
0

x1

X1 0 0 1 1

X2 0 1 0 1

valor 0 1 1 0

Passos para a Criao de uma RN


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

Definindo os Padres
X1 0 0 1 1 X2 0 1 0 1 valor 0 1 1 0

0 0 1 1 Vetor de entrada: P = 0 1 0 1 P = [0 0 1 1; 0 1 0 1]

Vetor de sada:

T = [0 1 1 0]

Passos para a Criao de uma RN


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

Inicializando a Rede Neural


Redes Feed-forward: Funo newff

net = newff(

[min(P')' max(P')'], [N_hidden 1], {'tansig' 'logsig'}, 'traingd');

(limites dos padres de entrada) (nmero de neurnios de cada camada) (funo de ativao de cada camada) (algoritmo de treinamento)

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

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

Passos para a Criao de uma RN


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

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;

Nmero de epochs Erro final desejado Taxa de aprendizado Atualizao da tela (epochs) Taxa de momentum

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

Passos para a Criao de uma RN


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

Treinando a Rede Neural

net = train(net, P, T);

Passos para a Criao de uma RN


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

Testando a Rede Neural

C = sim(net, P);

M-file desenvolvida para o XOR

xor1.m

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

Validao Cruzada
% Inicializa a rede neural net = newff([min(P')' max(P')'],[10 1],{'tansig' 'logsig'},'traingd'); net.trainParam.goal = 1e-8; % Treina a rede iterativamente, de 5 em 5 epochs, % at o total de 100 epochs, calculando os erros Nepoch = 5; NN = 20; mape_min = 1e38; for i = 1:NN, net.trainParam.epochs = Nepoch; net = train(net, Ptrain, Ttrain); Ctrain = sim(net, Ptrain); Cvalid = sim(net, Pvalid); % Calcula os erros MAPE para os padres de treinamento e validao mape_train(i) = 100*mean(abs((Ttrain-Ctrain)./Ttrain)) mape_valid(i) = 100*mean(abs((Tvalid-Cvalid)./Tvalid))

10

Validao Cruzada
% encontra o nmero de epochs timo if (mape_valid(i) < mape_min) mape_min = mape_valid(i); net_opt = net; Noptim = Nepoch * i; end end % Melhor rede: net = net_opt; % Testa a rede com os 3 conjuntos de padres Ctrain = sim(net, Ptrain); Cvalid = sim(net, Pvalid); Ctest = sim(net, Ptest);

Redes Neurais no MATLAB


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

11

Interface Grfica NNTool

Passos para a Criao de uma RN


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

12

Passos para a Criao de uma RN


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

Definindo os Padres

13

Definindo os Padres

Definindo os Padres

14

Definindo os Padres

Passos para a Criao de uma RN


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

15

Criando a Rede Neural

Criando a Rede Neural

16

Visualizando a Rede Neural

Visualizando a Rede Neural

17

Passos para a Criao de uma RN


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

Inicializando a Rede Neural

18

Inicializando a Rede Neural

Inicializando a Rede Neural

19

Passos para a Criao de uma RN


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

Definindo parmetros de treinamento

20

Definindo parmetros de treinamento

Definindo parmetros de treinamento

21

Passos para a Criao de uma RN


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

Treinando a Rede Neural

22

Treinando a Rede Neural

Passos para a Criao de uma RN


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

23

Testando a Rede Neural

Testando a Rede Neural

24

Testando a Rede Neural

Testando a Rede Neural

25

Testando a Rede Neural

Testando a Rede Neural

26

Exportando os Dados

Exportando os Dados

27

O Problema do OU Exclusivo
1

x2
0

x1

X1 0 0 1 1

X2 0 1 0 1

valor 0 1 1 0

Rede Neural com Camada Escondida

28

Rede Neural com Camada Escondida

Rede Neural com Camada Escondida

29

Rede Neural com Camada Escondida

Rede Neural com Camada Escondida

30

Rede Neural com Camada Escondida

Reconhecimento de Dgitos

31

Reconhecimento de Dgitos

Reconhecimento de Dgitos

32

Reconhecimento de Dgitos

Definio dos Padres de Entrada


0 1 0 0

0 1 0 0 1

1 1 1 1 1

0 0 0 0 1

0 0 0 0 0

1 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0

33

Definio dos Padres de Entrada


0 1 1 0

0 1 0 0 1

1 0 0 1 1

1 0 1 0 1

0 1 0 0 1

1 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1

Definio dos Padres de Entrada


Cada dgito (padro): 20 bits Nmero de padres: 10 dgitos Representao: Matriz 20 x 10
Cada coluna representa um dgito Cada linha representa um bit Cada bit est associado com um neurnio de entrada

34

Definio dos Padres de Entrada

digitos.txt

Definio dos Padres de Sada


1 0 0 0 0 0 0 0 0 0

35

Definio dos Padres de Sada

saidas.txt

Converso dos Arquivos


>> >> >> >> load save load save digitos.txt digitos saidas.txt saidas

36

Importao dos Dados p/ NNTool

Importao dos Dados p/ NNTool

37

Importao dos Dados p/ NNTool

Definio das Redes


Network name: network15 Tipo: Tipo feed-forward backprop Input Ranges: Ranges Get from input Training Function: Function TRAINGDM Number of layers: layers 2
Layer 1: 1 15 neurons Layer 2: 2 10 neurons TANSIG PURELIN

38

Definio das Redes


Network name: network25 Tipo: Tipo feed-forward backprop Input Ranges: Ranges Get from input Training Function: Function TRAINGDM Number of layers: layers 2
Layer 1: 1 25 neurons Layer 2: 2 10 neurons TANSIG PURELIN

Definio das Redes


Network name: network35 Tipo: Tipo feed-forward backprop Input Ranges: Ranges Get from input Training Function: Function TRAINGDM Number of layers: layers 2
Layer 1: 1 35 neurons Layer 2: 2 10 neurons TANSIG PURELIN

39

Treinamento das Redes


Epochs: Epochs Goal (MSE): (MSE) Learning Rate (lr): (lr) Momentum: Momentum 10000 0.5e-3 0.1 0.0

Treinamento das Redes


Epochs: Epochs Goal (MSE): (MSE) Learning Rate (lr): (lr) Momentum: Momentum 10000 0.5e-3 0.4 0.0

40

Treinamento das Redes


Epochs: Epochs Goal (MSE): (MSE) Learning Rate (lr): (lr) Momentum: Momentum 10000 0.5e-3 0.9 0.0

Treinamento das Redes


Epochs: Epochs Goal (MSE): (MSE) Learning Rate (lr): (lr) Momentum: Momentum 10000 0.5e-3 0.1 0.4

41

Treinamento das Redes


Epochs: Epochs Goal (MSE): (MSE) Learning Rate (lr): (lr) Momentum: Momentum 10000 0.5e-3 0.9 0.4

Teste das Redes

1 bit errado

2 bits errados

3 bits errados

42

Potrebbero piacerti anche