Escolar Documentos
Profissional Documentos
Cultura Documentos
Regra de Hebb
Perceptron
Delta Rule (Least Mean Square)
Back Propagation
Competitive Learning
Multi--Layer Perceptrons
Multi
Redes de apenas uma camada s
representam funes linearmente
separveis
Redes de mltiplas camadas
solucionam essa restrio
Multi--Layer Perceptrons
Multi
Rede de 3 camadas: 5 / 5 / 3 / 4
Multi--Layer Perceptrons
Multi
Redes de apenas uma camada s
representam funes linearmente
separveis
Redes de mltiplas camadas
solucionam essa restrio
O desenvolvimento do algoritmo Back
Propagation foi um dos motivos para
o ressurgimento da rea de Redes
Neurais
Back Propagation
O grande desafio foi achar um algoritmo
de aprendizado para a atualizao dos
pesos das camadas intermedirias.
Idia Central:
Os erros dos elementos processadores da
camada de sada (conhecidos pelo treinamento
supervisionado) so retro
supervisionado
retro--propagados para as
camadas intermedirias
Back Propagation
Modelo bsico do Neurnio Artificial:
x1
Padro
x2
de
Entrada:
vetor X
w1j
w2j
net j
wij
sj
xi
+1
Bias = j
Back Propagation
Caractersticas Bsicas:
Regra de Propagao netj = xi.wij + j
Funo de Ativao Funo No-Linear
Linear,
diferenci
diferenci
vel em todos os pontos.
Topologia M ltiplas camadas.
Algoritmo de Aprendizado Supervisionado
Valores de Entrada/Sada Binrios e/ou
Contnuos
Back Propagation
Topologia:
Camadas Escondidas
Entrada
PE1
PE1
Camada
de Sada
PE1
PE1
PEm
PEi
PEj
PEk
Processo de Aprendizado
Processo de minimizao do erro
quadrtico pelo mtodo do Gradiente
Descendente w ij = -
E
w ij
Cada peso sin
sin
ptico i do elemento
processador j atualizado
proporcionalmente ao negativo da
derivada parcial do erro deste
processador com relao ao peso.
Processo de Aprendizado
Onde o erro quadrtico do processador j
definido como:
Ej = 1 (tj - sj )2
2
tj = valor desejado de sada para o processador j
da camada de sada
sj = estado de ativao do processador j da
camada de sada
Processo de Aprendizado
Na verdade, deve-se minimizar o erro de
todos os processadores da camada de
sada, para todos os padres
Processo de Aprendizado
ESSE Sum of Squared Errors
ESSE = 1 p j (tpj - s pj)2
2
tpj = valor desejado de sada do padro p para o
processador j da camada de sada
s pj = estado de ativao do processador j da camada
de sada quando apresentado o padro p
Processo de Aprendizado
ESSE Sum of Squared Errors
Clculo de wij
wij = -
Ep = - Ep netj
wij
netj wij
ej = - Ep
netj
netj = si.w ij + j
wij = . ej . si
Clculo de ej
Depende da camada qual o processador j pertence:
ej = - Ep
netj
Ep = Ep . s j
netj s j netj
sj = F(netj )
Se j Camada de Sada
Se j Camada de Sada
F(netj )
Clculo de ej
j Camada de Sa
Sada
ej = - Ep
netj
Ep = Ep . s j
netj s j netj
Ep= j 1 (tj - sj )2
2
[ 2 . 1 (t
(tj - sj).(
).(--1)]
2
sj = F(netj )
F(netj )
Clculo de ej
j Camada Escondida
ej = - Ep
netj
Ep = Ep . s j
netj s j netj
sj = F(netj )
Ep = f(s j) = ?
F(netj )
Clculo de ej
j Camada Escondida
Pelo aprendizado supervisionado,
supervisionado s se
conhece o erro na camada de sa
sada (ek );
Erro na sada (ek ) funo do potencial
interno do processador (netk);
O netk depende dos estados de ativa
ativao
o dos
processadores da camada anterior (sj) e dos
pesos das conexes (wjk);
Portanto, sj de uma camada escondida afeta,
em maior ou menor grau,
grau o erro de todos os
processadores da camada subsequente.
Clculo de ej
j Camada Escondida
wj1
sj
F(net)
sj
wj2
PE 1
PE 2
e1
e2
sj
Processador j da
camada escondida
wjk
PE k
ek
Clculo de ej
j Camada Escondida
ej = - Ep
netj
Ep = Ep . s j
netj s j netj
Ep = [ 1 k (tk - sk)2 ]
s j s j 2
= 2. 1 [ k (tk - sk) ] .(-1). s k
2
s j
= - [ k (tk - sk) ] . F(netk) . netk
s j
sj = F(netj )
F(netj )
ej = - {- k ek. w jk } . F( netj )
ej = F(netj ) . k ek. w jk
10
Processo de Aprendizado
Em resumo, aps o clculo da derivada,
tem-se:
wij = .si.ej
Onde:
si valor de entrada recebido pela conexo i
ej valor calculado do erro do processador j
Clculo do Erro (e
(ej)
Processador j pertence
Camada de Sada:
Sada :
ej = (tj - sj). F(net)
net
si
Processador j da
camada de sada
w ij
sada: sj
F(net)
Valor
desejado de
sada: tj
11
Clculo do Erro (e
(ej)
Processador j pertence
Camada Escondida:
Escondida:
e j = (
ek .wjk ).
F(net)
net
si
PE 1
wj1
e1
wj2
w ij
F(net)
Processador j da
camada escondida
PE 2
e2
wjk
ek
PE k
Processo de Aprendizado
O algoritmo Back Propagation tem portanto
duas fases, para cada padro apresentado:
Feed
Feed--Forward as entradas se propagam
pela rede, da camada de entrada at a
camada de sada.
Feed
Feed--Backward os erros se propagam
na dire
dire
o
o contr
contr ria ao fluxo de dados,
dados
indo da camada de sada at a primeira
camada escondida.
12
Processo de Aprendizado
Fase 1: Feed-Forward
Fluxo de Dados
2 Camadas Escondidas
Entrada
PE1
Camada
de Sada
PE1
PE1
PEm
Valor de entrada
PEi
PEk
Processo de Aprendizado
Fase 1: Feed-Forward
Fluxo de Dados
2 Camadas Escondidas
Entrada
PE1
Camada
de Sada
PE1
PE1
PEm
Valor de entrada
PEi
PEk
13
Processo de Aprendizado
Fase 1: Feed-Forward
Fluxo de Dados
2 Camadas Escondidas
Entrada
PE1
Camada
de Sada
PE1
PE1
PEm
Valor de entrada
PEi
PEk
Processo de Aprendizado
Fase 1: Feed-Forward
Fluxo de Dados
2 Camadas Escondidas
Entrada
PE1
Camada
de Sada
PE1
PE1
PEm
Valor de entrada
PEi
PEk
14
Processo de Aprendizado
Fase 2: Feed-Backward
Fluxo de Erros
Valor
alvo
PE1
PE1
t1
s1
t2
s2
PEm
PEi
tm
sm
PEk
em
(t m
F
(net)
F(net)
m = (t
m - sm
m). F
Processo de Aprendizado
Fase 2: Feed-Backward
Fluxo de Erros
PE1
w11
w
w1m 12
e1
e1 PE
1
e1
e1
t1
s1
t2
s2
e
em m
PEi
PEk
em PEm
em
tm
sm
wkm
w km
.skk.em
km =
m
15
Processo de Aprendizado
Fase 2: Feed-Backward
Fluxo de Erros
PE1
w11
w
w1m 12
e1
e1 PE
1
e1
e1
t1
s1
t2
s2
e
em m
PEk
PEi
em PEm
em
tm
sm
wkm
ekk = ((
e mm..w
wkm
).F(net)
F(net)
km).
Processo de Aprendizado
Fase 2: Feed-Backward
Fluxo de Erros
PEi
e1
w11
PE1
w12 e1
e1 e1
w1k w13
wik
e
ek k
ek
ek PEk
PE1
PEm
ekk
w ikik = .sii..e
16
Processo de Aprendizado
Fase 2: Feed-Backward
Fluxo de Erros
PEi
e1
w11
PE1
w12 e1
e1 e1
w1k w13
wik
e
ek k
ek
ek PEk
PE1
PEm
eii = ((
e kk..w
wik
).F(net)
F(net)
ik).
Processo de Aprendizado
Fase 2: Feed-Backward
Fluxo de Erros
PE1
PE1
e1
w w1i
w3i 2i e
ei i
wni
ei PE
i
ei
PE1
PEm
PEk
ekk
w ikik = .sii..e
17
Processo de Aprendizado
Este
procedimento de aprendizado
repetido diversas vezes,
vezes at que, para
todos os processadores da camada de
sada e para todos os padres de
treinamento,, o erro seja menor do que
treinamento
o especificado.
Algoritmo de Aprendizado
Inicializao:
Inicializao:
pesos iniciados com valores aleatrios e pequenos (| w|0.1)
|0.1)
Treinamento:
Loop at que o erro de cada processador de sada seja toler
toler
ncia
ncia,
para todos os padres do conjunto de treinamento.
Aplica-se um padr
padr
o de entrada X i com o respectivo vetor de
sada Y i desejado
sa
desejado.
Calcula-se as sa
sadas dos processadores, comeando da primeira
camada escondida at a camada de sada.
Calcula-se o erro para cada processador da camada de sada. Se
erro toler
toler
ncia
ncia, para todos os processadores, volta ao passo .
Atualiza os pesos de cada processador, comeando pela camada
de sada, at a primeira camada escondida.
Volta ao passo
18
Avaliao do Algoritmo
Foi demonstrado (Cybenko 1989) que o
Back Propagation um Aproximador
Universal, isto , pode representar
Universal
qualquer funo.
o algoritmo de Redes Neurais mais
utilizado em aplicaes prticas de
previso, classificao e
previso
reconhecimento de padres em geral.
19
AND
AND
20
BP / Aproximador Universal
Teorema de kolmogorov:
Qualquer mapeamento f(x) contnuo de uma entrada
p-dimensional (p 2) em uma sada m -dimensional
pode ser implementado exatamente por uma rede de p
entradas, com uma camada escondida de 2p +1
processadores e m processadores de sada.
Seja f: Ip Rm, f(x) = y
onde Ip um hipercubo unitr io p-dimensional
p
z k = = j k (x j +k) + k
2p+1
y i = k gi (z k)
onde: - uma constante real;
- (.) uma funo monotnica crescente, contnua,
real, independente de f mas dependente de p;
- constante positiva.
BP / Aproximador Universal
Problemas:
como escolher os pesos ;
como definir as funes gi , diferente para
cada i, sendo geralmente de formato
bem no-lineares;
as funes internas (.) so
extremamente no suaves.
o teorema falha quando restrito a
funes suaves.
21
BP / Aproximador Universal
Teorema: Seja (.) uma funo contnua, no-constante,
limitada, monotnica crescente. Seja Ip o hipercubo
unitrio p-dimensional. O espao de funes
C(IIp ). Ento, dada qualquer funo
contnuas em Ip C(
contnua f C(
C(IIp ) e >0
>0, e xiste um inteiro M
suficientemente grande, e um conjunto de
i, w ij onde i=1,...,M e j=1,...,p
j=1,...,p,
constantes reais i,
tal que:
,...,x
xp) = i i ( j w ij xj - i)
F(x1,...,
F uma aproximao
da funo f(.):
,...,x
xp) - f(x1,...,
,...,x
x p) | <
| F(x1,...,
nmero de entradas
Em ter mos p = n
M
=
n
n
mero de PEs na cam ada escondida
de RNs:
(.) = sigm ide na cam ada escondida
fun
fun
o
o linear na sa
sada
BP / Aproximador Universal
somente uma prova de existncia,
no garantindo que uma nica camada
timo em termos de tempo; que de
fcil implementao; nem que um
determinado algoritmo de otimizao ir
encontrar a necessria configurao de
pesos sinpticos.
22
BP / Aproximador Universal
Verificou-se que o erro decresce na ordem
de O(1 / N ), conforme o nmero N de
padres aumenta.
Verificou-se tambm que o erro decresce
na ordem de
em funo do
O
(
1
/
M
)
nmero M de processadores escondidos.
Rule of Thumb
BP / Aproximador Universal
Por que se utiliza mais de uma camada?
A declarao que se necessita de um
nmero suficientemente grande de
processadores na camada escondida.
Quando f(x) a ser aproximada no
contnua.
O nmero de processadores na camada
nica pode tender a infinito.
23
BP / Aproximador Universal
Por que se utiliza mais de uma camada?
Rede com duas
camadas escondidas
24