Vous êtes sur la page 1sur 5

UMC Universidade de Mogi das Cruzes

INTELIGNCIA ARTIFICIAL I
Profs. Leandro Luque e Pedro Toledo
Redes com mltiplas camadas
As redes com uma camada podem resolver apenas problemas linearmente separveis (exemplo XOR).
Segundo Cybenko, 1988 e 1989, uma rede com uma nica camada intermediria pode aproximar qualquer
funo contnua e uma rede com duas camadas intermedirias pode aproximar qualquer funo matemtica.
Processamento que ocorre nas camadas de uma rede MLP (desenhos):
Primeira camada intermediria: Cada n traa retas no espao de treinamento.
Segunda camada intermediria: Cada n combina as retas traadas pelos neurnios na camada
anterior, formando regies convexas, onde o nmero de lados definidos pelo nmero de unidades a
ele conectadas.
Camada de sada: Cada n forma regies que so combinaes das regies convexas definidas pelos
ns anteriores.
Como escolher o nmero de ns nas camadas intermedirias?
Isto depende do nmero de exemplos de treinamento, quantidade de rudo presente nos exemplos,
complexidade da funo a ser aprendida, distribuio estatstica dos dados do treinamento.
Comear com um nmero grande de ns e diminu-los at encontrar uma configurao ideal ou comear com
um pequeno nmero grande de ns e aument-los at encontrar uma configurao ideal
O treinamento de redes perceptron envolve o clculo do erro referente camada de sada, nica camada da
rede, e a atualizao dos pesos de entrada da rede de forma proporcional a este erro. Caso a rede tenha mais
do que uma camada, surge um problema: Como descobrir o erro nesta nova camada? ou Como definir a
responsabilidade dos pesos de cada um dos neurnios no erro total?
Adaline
O modelo Adaline (ADAptative LInear NEuron), descritos em 1960 por Widrow e Hoff, possui sadas
binrias bipolares(y [-1, +1]) e tem seus pesos ajustados em funo do erro da sua sada linear (y = x iwi),
antes da aplicao das funo de ativao. Este algoritmo de treinamento ficou conhecido como regra delta
e deu origem ao algoritmo back-propagation.
Plotando o erro de uma rede neural, a partir dos pesos desta rede, tem-se:

UMC Universidade de Mogi das Cruzes


INTELIGNCIA ARTIFICIAL I
Profs. Leandro Luque e Pedro Toledo

Pode-se observar neste grfico que o peso ideal (W1) para o qual o erro mnimo, est no mnimo da funo
de erro. Como calcular este mnimo?

Derivadas
(Secante: corta pelo menos dois pontos de uma curva. Quando estes dois pontos so infinitamente prximos,
tem-se uma tangente).
1. A busca pela reta tangente. (aquela que toca um ponto do grfico?)
2. Obtendo a tangente a partir da secante.
3. Coeficiente angular da reta tangente (Inclinao): y = (y2-y1)/(x2-x1)

UMC Universidade de Mogi das Cruzes


INTELIGNCIA ARTIFICIAL I
Profs. Leandro Luque e Pedro Toledo

A superfcie de erro, considerando dois pesos, uma superfcie tridimensional:

Nesta superfcie, os valores timos de w so aqueles para os quais o erro mnimo, isto , o fundo desta
superfcie.
Supondo que a funo de erro quadrtica: E = (di yi)2
Para que se possa encontrar o quanto se deve corrigir cada w, pode-se derivar o erro em funo do peso em
questo, isto , tomar a derivada parcial do erro em relao ao peso wi:
Pela regra da cadeia:
(O y a sada do neurnio antes da aplicao da funo de ativao, isto : xi*wi)
y = xi*wi
dE/dyj = (dj yj)2 = dj2 2djyj + yj2 = -2dj + 2yj = (yj-dj)
dE/dwi = dE/dyj * dyj/dwi
dE/dwi = (yj - dj) * xi (saida<esperado = negativo && sada>esperado = positivo)
Como devemos seguir o sentido inverso do gradiente(inclinao), tomamos o resultado negativo:
dE/dwi = -1*( yj - dj) * xi = (dj-yj)*xi
dE/dwi = e*xi
wi = *e*xi

UMC Universidade de Mogi das Cruzes


INTELIGNCIA ARTIFICIAL I
Profs. Leandro Luque e Pedro Toledo
O algoritmo igual ao do perceptron.
Backpropagation
Derivando a regra de aprendizagem para redes de mltiplas camadas:
Sendo net=xiwi
A correo de cada peso deve ser proporcional ao inverso do gradiente.
dE/dwi = dE/dnet * dnet/dwi
dnet/dwi = xi
dE/dnet = dE/dy * dy/dnet // y=sada do neurnio = f(net)
dy/dnet = df(net)/dnet = f(net)
Para a camada de saida: dE/dy = (d y)
// erro da camada de sada
// definido (d-y) porque j est se multiplicando por -1.
w(t+1) = w(t) + *erro*xi
onde erro = f(net)*(d-y)
// dE/dy = erro da camada escondida (o y aqui enviado a todos os neurnios da camada da
frente. Por isso, tomado o somatrio de todas as sadas)
// netproxima camada = sada desta camada * wi = y*wi
Para as camadas intermedirias: dE/dy = dE/dnetproxima camada * dnetproxima camada/dy
dnetproxima camada/dy = wi
dE/dy = dE/dnetproxima camada*w
(y nesta ltima etapa a entrada no neurnio. Ou seja, a sada do neurnio anterior)
dE/dnetproxima camada = f(net) * (d-y) = erro na prxima camada // j calculado
dE/dy = erro*w
erro1 = erro na camada escondida = f(net)* erro*w
w(t+1) = w(t) + *erro1*xi
Deve existir um f(net), por isso no podemos usar a porta de limiar. Adotamos ento um funo continua,
como a sigmoidal:

A derivada desta funo : F(x)(1 F(x))

UMC Universidade de Mogi das Cruzes


INTELIGNCIA ARTIFICIAL I
Profs. Leandro Luque e Pedro Toledo

Quando parar o treinamento

Encerrar o treinamento aps N ciclos (TLearn);


Encerrar o treinamento aps o erro quadrtico mdio ficar abaixo de uma constante ;
Encerrar o treinamento quando a porcentagem de classificaes corretas ficar acima de uma constante
;
Combinao dos mtodos acima.

Dificuldades para treinamento

Mnimos Locais;
Acelerar o treinamento: momentum = (w(t) w(t-1))