ICA-Redes Neurais no Matlab

24 Pages • 1,995 Words • PDF • 505.4 KB
Uploaded at 2021-09-24 12:11

This document was submitted by our user and they confirm that they have the consent to share it. Assuming that you are writer or own the copyright of this document, report to us by using this DMCA report button.


Redes Neurais

Ambiente MATLAB • MATLAB → MATrix LABoratory • Programação baseada em Matrizes

MATLAB 6.5

Tela Principal do MATLAB

• Vetores e escalares também podem ser considerados matrizes, 1xN, Nx1, 1x1

Tela Principal do MATLAB Janela de Comando

1

Tela Principal do MATLAB

Tela Principal do MATLAB Launch Pad

Janela de Histórico

Tela Principal do MATLAB

Matrizes no MATLAB Quadro “Melancholia I”, do artista alemão e matemático amador Albrecht Dürer

2

Quadrado Mágico

Definindo uma Matriz Explicitamente • Elementos de uma linha são separados por espaços ou vírgulas. vírgulas • O final de cada linha é indicado por um pontoponto-e-vírgula. vírgula • A lista de elementos é delimitada por colchetes [ ].

Definindo uma Matriz Explicitamente • No caso do quadrado mágico: >>

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

A = 16 5 9 4

3 10 6 15

2 11 7 14

13 8 12 1

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

3

Passos para a Criação de uma RN

Redes Neurais no MATLAB • Duas formas de utilização: – Linhas de comando e mm-files – Interface gráfica (NNTool)

O Problema do OU Exclusivo

• • • • •

Definir os padrões Inicializar a rede Definir os parâmetros de treinamento Treinar a rede Testar a rede

Passos para a Criação de uma RN

→ ‘1’

x2 → ‘0’

x1

X1

X2

valor

0

0

0

0

1

1

1

0

1

1

1

0

• • • • •

Definir os padrões Inicializar a rede Definir os parâmetros de treinamento Treinar a rede Testar a rede

4

Definindo os Padrões X1

X2

valor

0

0

0

0

1

1

1

0

1

1

1

0

Vetor de entrada: P = ⎡⎢0 0 1 1⎤⎥ → P = [0 0 1 1; 0 1 0 1] ⎣0 1 0 1⎦ Vetor de saída:

• • • • •

Definir os padrões Inicializar a rede Definir os parâmetros de treinamento Treinar a rede Testar a rede

T = [0 1 1 0]

Inicializando a Rede Neural Redes Feed-forward:

net = newff(

Passos para a Criação de uma RN

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

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 logsig tansig satlin(s)

Linear Sigmóide Tangente hiperbólica Linear com saturação

5

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)

Definindo parâmetros de treinamento

net.trainParam.epochs = 100; net.trainParam.goal = 1e-8; net.trainParam.lr = 0.01; net.trainParam.show = 25;

Número de epochs Erro final desejado Taxa de aprendizado Atualização da tela (epochs)

net.trainParam.mc = 0.9;

Taxa de momentum

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

Passos para a Criação de uma RN • • • • •

Definir os padrões Inicializar a rede Definir os parâmetros de treinamento Treinar a rede Testar a rede

Passos para a Criação de uma RN • • • • •

Definir os padrões Inicializar a rede Definir os parâmetros de treinamento Treinar a rede Testar a rede

6

Treinando a Rede Neural

net = train(net, P, T);

Testando a Rede Neural

C = sim(net, P);

Passos para a Criação de uma RN • • • • •

Definir os padrões Inicializar a rede Definir os parâmetros de treinamento Treinar a rede Testar a rede

M-file desenvolvida para o XOR TESTE 1: 1: Rede neural com apenas uma camada de processadores (Percetron básico);

xor1.m

7

M-file desenvolvida para o XOR TESTE 2: 2: Rede neural com uma camada escondida de processadores (Multi-Layer Perceptron);

xor1.m xor2.m

Validação 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);

Validação Cruzada • Dividir os padrões disponíveis em três conjuntos: – treinamento (70%): matrizes Ptrain, Ttrain – validação (20%): matrizes Pvalid, Tvalid – teste (10%): matrizes Ptest, Ttest

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; end end % Melhor rede: net = net_opt; % Testa a rede com os 3 conjuntos de padrões Ctrain = sim(net, Ptrain); Cvalid = sim(net, Pvalid); Ctest = sim(net, Ptest);

% 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))

8

Interface Gráfica NNTool

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

Passos para a Criação de uma RN

Passos para a Criação de uma RN

• • • • • •

• • • • • •

Definir os padrões Criar a rede Inicializar a rede Definir os parâmetros de treinamento Treinar a rede Testar a rede

Definir os padrões Criar a rede Inicializar a rede Definir os parâmetros de treinamento Treinar a rede Testar a rede

9

Definindo os Padrões

Definindo os Padrões

Definindo os Padrões

Definindo os Padrões

10

Passos para a Criação de uma RN • • • • • •

Criando a Rede Neural

Definir os padrões Criar a rede Inicializar a rede Definir os parâmetros de treinamento Treinar a rede Testar a rede

Criando a Rede Neural

Visualizando a Rede Neural

11

Visualizando a Rede Neural

Passos para a Criação de uma RN • • • • • •

Inicializando a Rede Neural

Definir os padrões Criar a rede Inicializar a rede Definir os parâmetros de treinamento Treinar a rede Testar a rede

Inicializando a Rede Neural

12

Inicializando a Rede Neural

Passos para a Criação de uma RN • • • • • •

Definindo parâmetros de treinamento

Definir os padrões Criar a rede Inicializar a rede Definir os parâmetros de treinamento Treinar a rede Testar a rede

Definindo parâmetros de treinamento

13

Definindo parâmetros de treinamento

Passos para a Criação de uma RN • • • • • •

Treinando a Rede Neural

Definir os padrões Criar a rede Inicializar a rede Definir os parâmetros de treinamento Treinar a rede Testar a rede

Treinando a Rede Neural

14

Passos para a Criação de uma RN • • • • • •

Testando a Rede Neural

Definir os padrões Criar a rede Inicializar a rede Definir os parâmetros de treinamento Treinar a rede Testar a rede

Testando a Rede Neural

Testando a Rede Neural

15

Testando a Rede Neural

Testando a Rede Neural

Testando a Rede Neural

Exportando os Dados

16

Exportando os Dados

O Problema do OU Exclusivo → ‘1’

x2 → ‘0’

x1

Rede Neural com Camada Escondida

X1

X2

valor

0

0

0

0

1

1

1

0

1

1

1

0

Rede Neural com Camada Escondida

17

Rede Neural com Camada Escondida

Rede Neural com Camada Escondida

Rede Neural com Camada Escondida

Rede Neural com Camada Escondida

18

Reconhecimento de Dígitos

Reconhecimento de Dígitos

Reconhecimento de Dígitos

Reconhecimento de Dígitos

19

Definição dos Padrões de Entrada

Definição dos Padrões de Entrada

0

0

1

1

0

1

0

0

1

0

0

1

1

0

0

0

1

0

0

0

1

0

1

1

0

1

0

0

1

0

0

1

0

0

1

0

0

1

1

1

1

1

1

0

0 0

0 1

0

0

1

0

0

1

1

1

0

0

1

0

0

1

0

0

0

0

1

1

0

0

0

0

1

1

1

1

1

1

0

1

Definição dos Padrões de Entrada • Cada dígito (padrão): 20 bits • Número de padrões: 10 dígitos • Representação: Matriz 20 x 10 – Cada coluna representa um dígito – Cada linha representa um bit – Cada bit está associado com um neurônio de entrada

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 1 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1

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

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

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

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

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

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

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

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

20

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

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

1 0 0 0 0 0 0

1 0 0 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 0 0

0 0 0 1 0 0 0 0 0 0

0 0 0 0 1 0 0 0 0 0

0 0 0 0 0 1 0 0 0 0

0 0 0 0 0 0 1 0 0 0

0 0 0 0 0 0 0 1 0 0

0 0 0 0 0 0 0 0 1 0

0 0 0 0 0 0 0 0 0 1

0 0 0

Conversão dos Arquivos >> >> >> >>

load save load save

Importação dos Dados p/ NNTool

digitos.txt digitos saidas.txt saidas

21

• • • • •

Importação dos Dados p/ NNTool

Importação dos Dados p/ NNTool

Definição das Redes

Definição 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

• • • • •

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

22

Definição 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

Treinamento das Redes • • • •

Epochs: Epochs Goal (MSE): (MSE) Learning Rate (lr (lr)): Momentum: Momentum

10000 0.5e-3 0.1 0.0

TANSIG PURELIN

Treinamento das Redes • • • •

Epochs: Epochs Goal (MSE): (MSE) Learning Rate (lr (lr)): Momentum: Momentum

10000 0.5e-3 0.4 0.0

Treinamento das Redes • • • •

Epochs: Epochs Goal (MSE): (MSE) Learning Rate (lr (lr)): Momentum: Momentum

10000 0.5e-3 0.9 0.0

23

Treinamento das Redes • • • •

Epochs: Epochs Goal (MSE): (MSE) Learning Rate (lr (lr)): Momentum: Momentum

10000 0.5e-3 0.1 0.4

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

24
ICA-Redes Neurais no Matlab

Related documents

24 Pages • 1,995 Words • PDF • 505.4 KB

31 Pages • 1,637 Words • PDF • 2.9 MB

3 Pages • 79 Words • PDF • 616.6 KB

6 Pages • 3,828 Words • PDF • 786.3 KB

8 Pages • 3,800 Words • PDF • 5 MB

75 Pages • 11,901 Words • PDF • 4.1 MB

17 Pages • 2,153 Words • PDF • 521.7 KB

5 Pages • 904 Words • PDF • 116.9 KB

116 Pages • 29,216 Words • PDF • 10.5 MB

29 Pages • 6,044 Words • PDF • 1.4 MB

7 Pages • 2,396 Words • PDF • 83.6 KB

1 Pages • 180 Words • PDF • 20.4 KB