Redes Neurais
Redes Neurais
Redes Neurais
1. Aprendendo a criar e treinar uma rede neural Perceptron de múltiplas camadas (MLP)
A tabela 1 apresenta as funções necessárias para criar, treinar e simular uma rede neural MLP através do matlab.
Exemplo 1: Neste exemplo iremos aprender com criar uma rede MLP para um problema simples de aproximação de
função, onde teremos uma entrada e uma saída para a rede neural e 9 padrões de treino. A tabela 2 apresenta os padrões
de entrada (x) e saída (y) desejada para a rede aprender a função y=f{x).
>>plot(p,t, 'o1 # aqui estamos mandando plotar a entrada p versus a saída t apenas para visualização da função que a
rede terá que aprender.
>> net = new/f(p,t,5) # aqui estamos criando uma rede MLP com o nome net. Passamos para a função newjfo vetor
de entrada p e o vetor de saída t. Passamos também o número de neurônios que desejamos na camada escondida, sendo
que para O exemplo escolhemos 5 neurônios. Aqui usaremos os parâmetros default para a topologia da rede, que neste
caso usa a função tansig em todos neurônios da camada escondida e a função purelin no neurônio da camada de saída.
algoritmo de treinamento será também o default e no caso será usada a função trainlm. No exemplo 2 veremos como
0
modificar estes parâmetros default.
Ao criannos a topologia da MLP ao qual denominamos de net, todos os pesos da rede recebem valores iniciais criados
de fonna aleatória dentro da faixa de • 1 a 1 (chamado processo de inicialização dos pesos da rede)
» a=sim(net,p) li aqui simularemos a rede net para os valores de entrada do vetor p e valores iniciais de pesos. Aqui
nossa rede ainda não foi treinada.
» plot(t, 'o') ti plotar gráfico com saída desejada da rede junto com a saída da rede que plotarnos anterionnente.
» net=train(net, p,t) # aqui vamos iniciar o treinamento da nossa rede nel criada. Passamos para a função train a
nossa rede net e os vetores de entrada p e saída I desejados.
>> a=sim(net,p) # após treino realizado, vamos simular agora a saída da nossa rede para o vetor de entrada p. Agora
a simulação é realizada com a MLP com os novos valores de pesos que foram ajustados durante processo de treino.
>> plot(a, 'm+~ # plotar gráfico de saída da rede neural junto com o gráfico que já tínhamos anterionnente.
Exemplo 3: Neste exemplo iremos aprender com criar uma rede MLP para um problema simples de aproximação de
função, onde teremos duas entradas e uma saída para a rede neural e 9 padrões de treino. Neste caso aprenderemos
como dividir a base de dados para treino, validação e teste. No exemplo I isto foi feito de fonna aleatória pela própria
função newff.
»p = /O J 2 3 4 5 6 7 8; O l 2 3 4 5 6 7 8/; #Criando vetor de entradas com 2 entradas e 9 padrões de treino
» t = /O 0.84 0.91 0.14 -0. 77-0.96 -0.28 0.66 0.99/; #Criando vetor de saída com 1 saída e 9 padrões de treino
»net = newff(p,t,8) #Criando rede MLP com 8 neurônios na camada escondida e outros parâmetros assumindo valor
default
>>net.divideFcn='divideind'; #Infonnando a rede net criada que iremos infonnar os índices do vetor de entrada e
saída que deverão ser usados para criação do vetor de treino, validação e teste.
>>net.divideParam.trainlnd=l:2:9; #índices para criar o vetor de treino a partir do vetor p e 1 ( I :2:9 - começa com o
índice I e vai de dois em dois até chegar no índice 9)
»net.divideParam. vallnd=2:2:9; #índices para criar o vetor de validação a partir do vetor p e 1