Está en la página 1de 4

1

CENTRO UNIVERSITRIO DO LESTE DE MINAS GERAIS - UnilesteMG


Disciplina: Introduo Inteligncia Artificial
Professor: Luiz Carlos Figueiredo
GUIA DE LABORATRIO RN. 03
Assunto: Rede no linear - BACKPROPAGATION
Objetivo: Apresentar o funcionamento de uma rede neural no linear do tipo
BackPropagation, bem como sua implementao no MatLab

BACKPROPAGATION
Utiliza a regra de aprendizagem de Widrow-Hoff generalizada para redes multicamadas
com funes de transferncia no linear diferencivel.
Modelo de Neurnio

a = F(w*p + b)

F pode ser:
- Logsig(n)

Tansig(n)

Purelin(n)

2
Observao:
Se a ltima camada de uma rede Backpropagation tiver neurnios sigmoidais
ento as sadas da rede sero limitadas a uma pequena faixa. Se neurnios de
sada lineares forem usados, as sadas das redes podem assumir qualquer valor.

.
ARQUITETURA DA REDE

FUNO SIMUFF
Simula uma rede FeedForward. Simuff pega a entrada P da rede, e os pesos
W, polarizao b, e funo de transferncia para at trs camadas, e retorna cada
sada a a camada de sada.
Exemplo:
[a1, a2] = simuff ( p, w1, b1, tansig, w2, b2, purelin )

FUNO INITFF
Esta funo pega uma matriz com vetores de entrada P, e tamanho S e as
funes de transferncia de cada camada, e retorna os pesos W e polarizaes b
para cada camada.
Exemplo:
Rede com 8 neurnios escondidos tansig e 4 neurnios lineares de
sada purelin
[ w1, b1, w2, b2] = initff (p, 8, tansig, 4, purelin);

FUNO DELTA
So usadas para ajustar os pesos e polarizaes de redes de modo a
minimizar o erro quadratico de uma rede.
deltalin( a, e) retorna o vetor delta para uma camada de sada com neurnios
lineares com um vetor de sada a e vetor de erro e.
deltalin( a, d, w) retorna o vetor delta para uma camada escondida de
neurnios lineares com um vetor delta d e matriz de pesos w.
O Calculo de um vetor delta de uma camada a partir dos
vetores delta das camadas seguintes
chamado de
backpropagation (retropropagao) dos deltas.
deltalog( a, e) retorna os deltas para uma camada de sada logsig

3
deltalog(a, d, w) - retorna os deltas para uma camada escondida logsig
deltatan( a, e) - retorna os deltas para uma camada de sada tansig
deltatan( a, d, w) - retorna os deltas para uma camada escondida tansig

FUNO LEARNBP
Retorna uma matriz de variao dos pesos dw e mudana das polarizaes db
para uma camada cujo vetor corrente de entrada p, e vetores delta d, e uma taxa de
aprendizado lr.
Exemplo: e = t - a;
[dw, db] = learnbp(p,d,lr);
o argumento adicional lr (taxa de aprendizado) atua como ganho sobre as
variaes dos pesos e polarizaes. Se lr grande, a aprendizagem ocorre
rapidamente, porm se ele for muito grande a aprendizagem pode se tornar instvel e
o erro pode at aumentar.

Regra de treinamento por erro quadrtico mnimo


Erro = Sada objetivada - sada calculada pelo neurnio
Watual = Wanterior + W
batual = banterior + b;

W = lr * Erro * p;
b = lr * Erro;

FUNO TRAINBP
Usada para treinar rede feedforward
Exemplo:
Rede com uma camada
tp = [disp_freq
max_epoch err_goal
[w, b, epochs, tr] = trainbp( w, b, F, p, t, tp);

lr];

Rede com duas camadas


[w1, b1, w2, b2, epochs, tr] = trainbp( w1, b1, F1, w2, b2, F2, p, t, tp);

Exerccios:

4
1) Verificar o funcionamento das funes simuff, initff, deltalin, learnbp, trainbp,
trainbpx, trainlm ( as duas ltimas utilizando momentum e aprendizagem
adaptativa) usando o comando help do MatLab.
2) Qual a diferena entre trainbp, trainbpx e trainlm ?
3) Rodar e observar o funcionamento dos programas demonstrativos DEMOBP1 A
DEMOBP6 e DEMOLM1 a DEMOLM3.
4) Criar uma matriz de treinamento e treinar uma rede backpropagation para executar
o teorema de Pitagoras com os catetos variando de 1 a 10.

También podría gustarte