Você está na página 1de 3

REDES NEURAIS NO MATLAB Algoritmo de Retropropagao do Erro - Backpropagation Feedforward Networks Backpropagation (BPA) Utiliza uma procura para

a uma soluo tima dos parmetros livres, na direo mais acentuada do gradiente negativo da curva do erro !!! Steepest descent gradient searching !
w lji ( n) = lj ( n) y i( l 1) (n), b lj ( n) = lj ,

wjil = ajuste da sinapse do neurnio escondido (ou da camada de entrada) i para o neurnio j da camada l; bjl = ajuste da bias do neurnio j na camada l; = taxa de aprendizagem; jl = gradiente do neurnio j na camada l; yi(l-1) = a sada do neurnio i.
' L e L j ( n ) F j [ net j ( n )] ( n) = ' L (l + 1) k( l +1) ( n) wkj ( n) F j [ net j ( n)] k l j

Funes de ativao mais comuns em BPA: tansig, logsig, purelin Exemplo: n=(-10:0.1:10) y=tansig(n) plot(n,y) OBS: Um feedforward networks (rede progressiva) geralmente tem mais de uma camada (uma de entrada, uma escondida e uma de sada). As escondidas geralmente usam tansig ou logsig para que a RN aprenda as relaes no-lineares existentes no problema (mapear a no linearidade entre os dados de entrada e sada). A de sada pode ser sigmide ou linear, dependendo do problema.

1o Passo: Criar um objeto rede com newff Sintaxe newff (MM, TC, {FA}, LR) MM = matriz Rx2 (R = nmero de pontos de entrada) com os valores mximos e mnimos dos parmetros de entrada; TC = matriz com o tamanho (nmero de neurnios) de cada camada; FA = Funes de ativao de cada camada; LR = learning rule. Exemplo: net=newff([0 1;0 1],[2,1],{'logsig','logsig'},'traingd'); O que foi criado com esse comando ?

OBS: 1) A funo newff inicializa os parmetros livres, ws e bs, com valores gerados aleatoriamente. 2) A funo newff cria um objeto (com vrias propriedades- parmetros) pronto para ser treinado Exemplo net O que significa cada parmetro ? Ou pelo menos os seguintes: net.performFcn, net.trainFcn, net.trainParam.epochs, net.trainParam.goal, net.trainParam.lr, net.trainParam.show 2o Passo: Treinar a RN com train Sintaxe train(net,p,t) ou train(net,p,t,[],[],v) p = matriz com a amostra dos vetores de entrada para treinamento do net, os vetores tem que estar em cada coluna. A matriz tem dimenso RxN. R = dimenso do vetor de entrada e N = nmero de vetores da amostra. t = matriz com os valores corretos da classificao dos N vetores da amostra. A matriz tem dimenso SxN. S = nmero de neurnios na sada da RN. OBS: 1) A taxa de aprendizagem (TA) se for muito pequena, demora muito a convergncia, porm se for muito alta, o treinamento pode ficar instvel. O ideal nas regies planas a TA ser alta e nas regies ngremes a TA baixa. 2) Figuras da superfcie do erro de uma RN 1-2-1.

Exemplo: p=[0 0 1 1;0 1 0 1] t=[0 0 0 1] [net,tr]=train(net,p,t); sim(net,p) Modifique os parmetros do net para melhorar a performance !! Qual os valores dos parmetros livres ? Exerccio: Gerar uma RN para aproximar uma funo seno, porm os valores da amostra esto com rudos. Salvar o net gerado para a prxima aula. Para gerar uma funo seno com rudo: randn('state',sum(100*clock)); p=[-1:.05:1]; t=sin(2*pi*p)+0.1*randn(size(p)); tt=sin(2*pi*p); Plote p x t e p x tt para se ter uma idia do que foi gerado: plot(p,t,p,tt). Depois de gerado o net, plotar o resultado do mesmo junto com o grfico acima.

Você também pode gostar