5b - redes neurais no matlab - computação ufcghmg/disciplinas/graduacao/rn-2014.2... ·...

42
1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB Duas formas de utilização: Linhas de comando, e m-files Interface gráfica (NNTool)

Upload: trinhnguyet

Post on 11-Nov-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

1

Redes Neurais no MATLAB 6.1

Redes Neurais no MATLAB

Duas formas de utilização:

Linhas de comando, e m-files

Interface gráfica (NNTool)

Page 2: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

2

Redes Neurais no MATLAB

Duas formas de utilização:

Linhas Linhas de de comandocomando, e m-files, e m-files

Interface gráfica (NNTool)

Passos para a Criação de uma RN

Definir os padrõesInicializar a redeDefinir os parâmetros de treinamentoTreinar a redeTestar a rede

Page 3: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

3

O Problema do OU Exclusivo

x1

x2

→ ‘0’

→ ‘1’

X1 X2 valor0 0 00 1 11 0 11 1 0

Passos para a Criação de uma RN

Definir os padrõesDefinir os padrõesInicializar a redeDefinir os parâmetros de treinamentoTreinar a redeTestar a rede

Page 4: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

4

Definindo os Padrões

X1 X2 valor0 0 00 1 11 0 11 1 0

Vetor de entrada: ]1010;1100[10101100

=→⎥⎦

⎤⎢⎣

⎡= PP

Vetor de saída: [ ]0110=T

Passos para a Criação de uma RN

Definir os padrõesInicializarInicializar a a rede redeDefinir os parâmetros de treinamentoTreinar a redeTestar a rede

Page 5: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

5

Inicializando a Rede Neural

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

Redes Feed-forward: Função “newff”

(limites dos padrões de entrada)(número de neurônios de cada camada)(função de ativação de cada camada)(algoritmo de treinamento)

Funções de Ativação

purelin Linearlogsig Sigmóidetansig Tangente hiperbólicasatlin(s) Linear com saturação

Page 6: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

6

Algoritmos de Treinamento

traingd Gradient descent backpropagationtraingdm Gradient descent backpropagation com momentumtraingda Gradient descent backpropagation com taxa adaptativatraingdx Gradient descent backpropagation com momentum e

taxa adaptativatrainlm Levenberg-Marquardt backpropagation (default)trainrp Resilient backpropagation (Rprop)

Passos para a Criação de uma RN

Definir os padrõesInicializar a redeDefinir os parâmetrosDefinir os parâmetros de de treinamento treinamentoTreinar a redeTestar a rede

Page 7: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

7

Definindo parâmetros 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;

Número de epochsErro final desejadoTaxa de aprendizadoAtualização da tela (epochs)

Taxa de momentum

Taxa de incremento da l.r.Taxa de decremento da l.r.Incremento máximo do erro

Passos para a Criação de uma RN

Definir os padrõesInicializar a redeDefinir os parâmetros de treinamentoTreinarTreinar a a rede redeTestar a rede

Page 8: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

8

Treinando a Rede Neural

net = train(net, P, T);

Passos para a Criação de uma RN

Definir os padrõesInicializar a redeDefinir os parâmetros de treinamentoTreinar a redeTestarTestar a a rede rede

Page 9: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

9

Testando a Rede Neural

C = sim(net, P);

M-file desenvolvida para o XOR

xor1.m

Page 10: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

10

Validação Cruzada

Dividir os padrões disponíveis em trêsconjuntos:

treinamento (70%): matrizes Ptrain, Ttrainvalidação (20%): matrizes Pvalid, Tvalidteste (10%): matrizes Ptest, Ttest

Validação Cruzada% Inicializa a rede neuralnet = 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 errosNepoch = 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 padrões de treinamento e validação mape_train(i) = 100*mean(abs((Ttrain-Ctrain)./Ttrain)) mape_valid(i) = 100*mean(abs((Tvalid-Cvalid)./Tvalid))

Page 11: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

11

Validação Cruzada

% encontra o número de epochs ótimo if (mape_valid(i) < mape_min) mape_min = mape_valid(i); net_opt = net; Noptim = Nepoch * i; endend

% Melhor rede:net = net_opt;

% Testa a rede com os 3 conjuntos de padrõesCtrain = sim(net, Ptrain);Cvalid = sim(net, Pvalid);Ctest = sim(net, Ptest);

Redes Neurais no MATLAB

Duas formas de utilização:

Linhas de comando, e m-files

Interface Interface gráfica gráfica ((NNToolNNTool))

Page 12: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

12

Interface Gráfica NNTool

Passos para a Criação de uma RN

Definir os padrõesCriar a redeInicializar a redeDefinir os parâmetros de treinamentoTreinar a redeTestar a rede

Page 13: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

13

Passos para a Criação de uma RN

Definir os padrõesDefinir os padrõesCriar a redeInicializar a redeDefinir os parâmetros de treinamentoTreinar a redeTestar a rede

Definindo os Padrões

Page 14: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

14

Definindo os Padrões

Definindo os Padrões

Page 15: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

15

Definindo os Padrões

Passos para a Criação de uma RN

Definir os padrõesCriarCriar a a rede redeInicializar a redeDefinir os parâmetros de treinamentoTreinar a redeTestar a rede

Page 16: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

16

Criando a Rede Neural

Criando a Rede Neural

Page 17: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

17

Visualizando a Rede Neural

Visualizando a Rede Neural

Page 18: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

18

Passos para a Criação de uma RN

Definir os padrõesCriar a redeInicializarInicializar a a rede redeDefinir os parâmetros de treinamentoTreinar a redeTestar a rede

Inicializando a Rede Neural

Page 19: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

19

Inicializando a Rede Neural

Inicializando a Rede Neural

Page 20: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

20

Passos para a Criação de uma RN

Definir os padrõesCriar a redeInicializar a redeDefinir os parâmetrosDefinir os parâmetros de de treinamento treinamentoTreinar a redeTestar a rede

Definindo parâmetros de treinamento

Page 21: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

21

Definindo parâmetros de treinamento

Definindo parâmetros de treinamento

Page 22: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

22

Passos para a Criação de uma RN

Definir os padrõesCriar a redeInicializar a redeDefinir os parâmetros de treinamentoTreinarTreinar a a rede redeTestar a rede

Treinando a Rede Neural

Page 23: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

23

Treinando a Rede Neural

Passos para a Criação de uma RN

Definir os padrõesCriar a redeInicializar a redeDefinir os parâmetros de treinamentoTreinar a redeTestarTestar a a rede rede

Page 24: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

24

Testando a Rede Neural

Testando a Rede Neural

Page 25: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

25

Testando a Rede Neural

Testando a Rede Neural

Page 26: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

26

Testando a Rede Neural

Testando a Rede Neural

Page 27: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

27

Exportando os Dados

Exportando os Dados

Page 28: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

28

O Problema do OU Exclusivo

x1

x2

→ ‘0’

→ ‘1’

X1 X2 valor0 0 00 1 11 0 11 1 0

Rede Neural com Camada Escondida

Page 29: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

29

Rede Neural com Camada Escondida

Rede Neural com Camada Escondida

Page 30: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

30

Rede Neural com Camada Escondida

Rede Neural com Camada Escondida

Page 31: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

31

Rede Neural com Camada Escondida

Reconhecimento de Dígitos

Page 32: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

32

Reconhecimento de Dígitos

Reconhecimento de Dígitos

Page 33: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

33

Reconhecimento de Dígitos

Definição dos Padrões de Entrada

0 1 0 0

1 1 0 0

0 1 0 0

0 1 0 0

1 1 1 0

0

1

0

0

1

1

0

0

0

1

0

0

0

1

0

0

1

1

1

0

Page 34: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

34

Definição dos Padrões de Entrada

0 1 1 0

1 0 0 1

0 0 1 0

0 1 0 0

1 1 1 1

0

1

1

0

1

0

0

1

0

0

1

0

0

1

0

0

1

1

1

1

Definição dos Padrões de Entrada

Cada dígito (padrão): 20 bits20 bitsNúmero de padrões: 10 dígitos10 dígitosRepresentação: Matriz 20 x 10Matriz 20 x 10

Cada coluna representa um dígitoCada linha representa um bitCada bit está associado com um neurônio deentrada

Page 35: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

35

Definição dos Padrões de Entrada

digitos.txt

Definição dos Padrões de Saída

1

0

0

0

0

0

0

0

0

0

Page 36: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

36

Definição dos Padrões de Saída

saidas.txt

Conversão dos Arquivos

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

Page 37: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

37

Importação dos Dados p/ NNTool

Importação dos Dados p/ NNTool

Page 38: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

38

Importação dos Dados p/ NNTool

Definição das Redes

Network name: Network name: network15TipoTipo: feed-forward backpropInput RangesInput Ranges: Get from inputTraining FunctionTraining Function: TRAINGDMNumber of layersNumber of layers: 2

Layer 1Layer 1: 15 neurons TANSIGLayer 2Layer 2: 10 neurons PURELIN

Page 39: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

39

Definição das Redes

Network name: Network name: network25TipoTipo: feed-forward backpropInput RangesInput Ranges: Get from inputTraining FunctionTraining Function: TRAINGDMNumber of layersNumber of layers: 2

Layer 1Layer 1: 25 neurons TANSIGLayer 2Layer 2: 10 neurons PURELIN

Definição das Redes

Network name: Network name: network35TipoTipo: feed-forward backpropInput RangesInput Ranges: Get from inputTraining FunctionTraining Function: TRAINGDMNumber of layersNumber of layers: 2

Layer 1Layer 1: 35 neurons TANSIGLayer 2Layer 2: 10 neurons PURELIN

Page 40: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

40

Treinamento das Redes

EpochsEpochs: 10000Goal (MSE)Goal (MSE): 0.5e-3Learning Rate (lr)Learning Rate (lr): 0.1MomentumMomentum: 0.0

Treinamento das Redes

EpochsEpochs: 10000Goal (MSE)Goal (MSE): 0.5e-3Learning Rate (lr)Learning Rate (lr): 0.4MomentumMomentum: 0.0

Page 41: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

41

Treinamento das Redes

EpochsEpochs: 10000Goal (MSE)Goal (MSE): 0.5e-3Learning Rate (lr)Learning Rate (lr): 0.9MomentumMomentum: 0.0

Treinamento das Redes

EpochsEpochs: 10000Goal (MSE)Goal (MSE): 0.5e-3Learning Rate (lr)Learning Rate (lr): 0.1MomentumMomentum: 0.4

Page 42: 5b - Redes Neurais no Matlab - Computação UFCGhmg/disciplinas/graduacao/rn-2014.2... · 2010-05-12 · 1 Redes Neurais no MATLAB 6.1 Redes Neurais no MATLAB]Duas formas de utilização:

42

Treinamento das Redes

EpochsEpochs: 10000Goal (MSE)Goal (MSE): 0.5e-3Learning Rate (lr)Learning Rate (lr): 0.9MomentumMomentum: 0.4

Teste das Redes

1 bit errado 2 bits errados 3 bits errados