Redes Neurais MATLAB 6.5 Ambiente MATLAB MATLAB MATrix LABoratory Programação baseada em Matrizes Vetores e escalares também podem ser considerados matrizes, xn, Nx, x Tela Principal do MATLAB Tela Principal do MATLAB Janela de Comando
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. O final de cada linha é indicado por um ponto-e-vírgula vírgula. A lista de elementos é delimitada por colchetes [ ]. Definindo uma Matriz Explicitamente No caso do quadrado mágico: Redes Neurais no MATLAB Duas formas de utilização: >> A = [6 3 2 3; 5 8; 9 6 7 2; 4 5 4 ] A = 6 3 2 3 5 8 9 6 7 2 4 5 4 Linhas de comando e m-files Interface gráfica (NNTool) 3
Redes Neurais no MATLAB Passos para a Criação de uma RN Duas formas de utilização: Linhas de comando e m-filesm Interface gráfica (NNTool) O Problema do OU Exclusivo Passos para a Criação de uma RN x 2 x X X 2 valor 4
Definindo os Padrões Passos para a Criação de uma RN X X 2 valor Vetor de entrada: P = P = [ ; ] Vetor de saída: T = [ ] Inicializando a Rede Neural Funções de Ativação net = newff( Redes Feed-forward: [min(p')' max(p')'], [N_hidden ], {'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) purelin logsig tansig satlin(s) Linear Sigmóide Tangente hiperbólica Linear com saturação 5
Algoritmos de Treinamento Passos para a Criação de uma RN 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 Passos para a Criação de uma RN net.trainparam.epochs = ; net.trainparam.goal = e-8; net.trainparam.lr =.; net.trainparam.show = 25; net.trainparam.mc =.9; net.trainparam.lr_inc =.5; net.trainparam.lr_dec =.7; net.trainparam.max_perf_inc =.4; Número de epochs Erro final desejado Taxa de aprendizado Atualização da tela (epochs) Taxa de momentum Taxa de incremento da l.r. Taxa de decremento da l.r. Incremento máximo do erro 6
Treinando a Rede Neural Passos para a Criação de uma RN net = train(net, P, T); Testando a Rede Neural M-file desenvolvida para o XOR C = sim(net, P); TESTE TESTE : Rede neural com apenas uma camada de processadores (Percetron básico); xor.m 7
M-file desenvolvida para o XOR Validação Cruzada TESTE 2: 2 Rede neural com uma camada escondida de processadores (Multi-Layer Perceptron); Dividir os padrões disponíveis em três conjuntos: xor2.m xor.m treinamento (7%): matrizes Ptrain, Ttrain validação (2%): matrizes Pvalid, Tvalid teste (%): matrizes Ptest, Ttest Validação Cruzada % Inicializa a rede neural net = newff([min(p')' max(p')'],[ ],{'tansig' 'logsig'},'traingd'); net.trainparam.goal = e-8; % Treina a rede iterativamente, de 5 em 5 epochs, % até o total de epochs, calculando os erros Nepoch = 5; NN = 2; mape_min = e38; for i = :NN, net.trainparam.epochs = Nepoch; net = train(net, Ptrain, Ttrain); Ctrain = sim(net, Ptrain); Cvalid = sim(net, Pvalid); % 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; Validação Cruzada % 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) = *mean(abs((ttrain-ctrain)./ttrain)) mape_valid(i) = *mean(abs((tvalid-cvalid)./tvalid)) 8
Redes Neurais no MATLAB Interface Gráfica NNTool Duas formas de utilização: Linhas de comando, e m-files Interface gráfica (NNTool) Passos para a Criação de uma RN Passos para a Criação de uma RN Criar a rede Criar a rede 9
Definindo os Padrões Definindo os Padrões Definindo os Padrões Definindo os Padrões
Passos para a Criação de uma RN Criando a Rede Neural Criar a rede Criando a Rede Neural Visualizando a Rede Neural
Visualizando a Rede Neural Passos para a Criação de uma RN Criar a rede Inicializando a Rede Neural Inicializando a Rede Neural 2
Inicializando a Rede Neural Passos para a Criação de uma RN Criar a rede Definindo parâmetros de treinamento Definindo parâmetros de treinamento 3
Definindo parâmetros de treinamento Passos para a Criação de uma RN Criar a rede Treinando a Rede Neural Treinando a Rede Neural 4
Passos para a Criação de uma RN Testando a Rede Neural Criar a rede Testando a Rede Neural Testando a Rede Neural 5
Testando a Rede Neural Testando a Rede Neural Testando a Rede Neural Exportando os Dados 6
Exportando os Dados O Problema do OU Exclusivo x 2 x X X 2 valor Rede Neural com Camada Escondida Rede Neural com Camada Escondida 7
Rede Neural com Camada Escondida Rede Neural com Camada Escondida Rede Neural com Camada Escondida Rede Neural com Camada Escondida 8
Reconhecimento de Dígitos Reconhecimento de Dígitos Reconhecimento de Dígitos Reconhecimento de Dígitos 9
Definição dos Padrões de Entrada Definição dos Padrões de Entrada Definição dos Padrões de Entrada Cada dígito (padrão): 2 bits Número de padrões: dígitos Representação: Matriz 2 x 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 2
Definição dos Padrões de Saída Definição dos Padrões de Saída Conversão dos Arquivos Importação dos Dados p/ NNTool >> load digitos.txt >> save digitos >> load saidas.txt >> save saidas 2
Importação dos Dados p/ NNTool Importação dos Dados p/ NNTool Definição das Redes Definição das Redes Network name: network5 Tipo: feed-forward backprop Input Ranges: Get from input Training Function: TRAINGDM Number of layers: 2 Layer : 5 neurons TANSIG Layer 2: 2 neurons PURELIN Network name: network25 Tipo: feed-forward backprop Input Ranges: Get from input Training Function: TRAINGDM Number of layers: 2 Layer : 25 neurons TANSIG Layer 2: 2 neurons PURELIN 22
Definição das Redes Treinamento das Redes Network name: network35 Tipo: feed-forward backprop Input Ranges: Get from input Training Function: TRAINGDM Number of layers: 2 Layer : 35 neurons TANSIG Layer 2: 2 neurons PURELIN Epochs: Goal (MSE):.5e-3 Learning Rate (lr( lr):. Momentum:. Treinamento das Redes Treinamento das Redes Epochs: Goal (MSE):.5e-3 Learning Rate (lr( lr):.4 Momentum:. Epochs: Goal (MSE):.5e-3 Learning Rate (lr( lr):.9 Momentum:. 23
Treinamento das Redes Treinamento das Redes Epochs: Goal (MSE):.5e-3 Learning Rate (lr( lr):. Momentum:.4 Epochs: Goal (MSE):.5e-3 Learning Rate (lr( lr):.9 Momentum:.4 Teste das Redes bit errado 2 bits errados 3 bits errados 24