Você está na página 1de 24

Algoritmos de Aprendizado

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

Usa-se o ESSE  Sum of Squared Errors

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

Vantagem: os erros para diferentes padres,


para diferentes sadas so INDEPENDENTES

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 )

ej = - [ - (tj - sj ) ] . F(netj ) = (tj - sj) 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

Clculo do erro da camada de sada


PE1

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

Atualizao dos pesos da camada de sada


PE1

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

Clculo do erro da 2 camada escondida


PE1

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

Atualizao dos pesos da 2 camada escondida


PE1

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

Clculo do erro da 1 camada escondida


PE1

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

Atualizao dos pesos da 1 camada escondida


e1
e1
e1

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.

Capacidade das MLP


Mostrou-se que 2 camadas escondidas so
suficientes para representar regies de
qualquer tipo.
Lippmann 87 An Introduction to Computing with Neural
Networks, ASSP Magazine, pp. 4-22, April 1987.

19

Capacidade das MLP


OR
OR

AND
AND

Capacidade das MLP


Demonstrou-se que as Multi-Layer
Perceptrons com uma camada escondida
so Aproximadores Universais
capacidade de aproximar, com preciso
arbitrria, essencialmente qualquer
mapeamento contnuo do hipercubo
[-1, +1] no intervalo (-1, +1).
C ybenko 89 Approximation b y superpositions of a
Sigmoidal Function, Mathematics of Control, Signals and
Systems, 2, 303-314.

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

onde N= # de padres; N > O ( Mp / )


M = # de processadores escondidos;
p = dimenso da entrada (Mp # de parmetros);
= erro mnimo desejado.

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

Rede com uma


camada escondida

24

Você também pode gostar