Vous êtes sur la page 1sur 45

1

Redes Neuroniais

Ementa:
1. Introdução;
2. Redes Adaline;
Ex. Processamento de sinais (filtros);
3. Redes BackPropagation;
Ex. Reconhecimento de padrões (letras)
4. Redes Hoppfield;
Ex. Problemas de otimização (caixeiro viajante)
5. Redes Boltzmann;
Ex. Diagnostico de falhas
6. Redes CounterPropagation;
Ex. Classificação de imagens
7. Sistemas Auto-Organizáveis;
Ex. Reconhecimento de fonema

Bibliografia:
Freeman & Skapura, “Neural Networks”, Addison-Wesley, 1991
Kovács, “Redes Neurais Artificiais - Fundamentos e Aplicações” - Edição
Academica - São Paulo - 1996
Wasserman, “Neural Computing”, Von Nostrand, 1989
Artigos diversos:
IEEE Trans. Neural Networks
IEEE Trans. System Man And Cybernnetics
IEEE Control System Magazine
Cognitive Science

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
Introdução 1 2

- Procura-se imitar artificialmente as características das redes neuroniais biológicas;

- Características das redes neuroniais biológicas:


- aprende com a experiência;
- capacidade de generalização;
- capacidade de desprezar informações irrelevantes;
- robustez

- Estrutura de rede neuronial biológica:


- Neurônio composto de Soma (centro dos processos metabólicos da célula
nervosa), dendritos (vários formando uma árvore dendrital) e o axônio (único).

sinapses

dendritos

- As manifestações elétricas de neurônios biológicos foram observadas pela


primeira vez no século XIX por DuBois Reymond com auxílio de
galvanômetros.
- Processo melhor entendido por Erlanger e Gasser, na década de 1920,
utilizando um tubo de raios catódigos, recebendo Nobel de fisiologia em 1944.
- Nas duas decadas seguintes, passou-se a considerar o neurônio biológico como
sendo o dispositivo elementar do sistema nervoso com muitas entradas e uma
saída.
Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
3

- Entradas realizadas através de conexões sinápticas entre dendritos e axônios


(impulsos nervosos ou potenciais de ação) de outras células nervosas.

Membranas:
- Sinapses: regiões eletroquimicamente ativas, compreendidas entre duas
membranas celulares - pré-sinaptica, por onde chega um estímulo proveniente de
uma outra célula, e a membrana pós-sinaptica, que é a do dendrito.
- O estímulo nervoso é transferido à membrana dendrital através de substancias
conhecidas como neurotransmissores.
- deixam passar ion positivo, ex. K+ (potássio positivo)
- retem ions organicos (-)
- dependendo do tipo de neurotransmissor, a conexão sináptica será excitatória
ou inibitória.
- Potencial de ação:
- em repouso => interior da membrana em potencial eletronegativo
(dezenas de milivolts - ≤ 0,1 V) em relação ao exterior.
- despolarizada => potencial da membrana menos eletronegativo que o
potencial de repouso
- hiperpolarizada => o contrário de despolarizada
- impulso nervoso = onda de despolarização com certa duração ( ± 1 ms);
- a formação de um potencial de ação na membrana axonal ocorre quando a
membrana sofre uma despolarização suficientemente acentuada para cruzar um
limiar de disparo.
- após um impulso nervoso, a membrana entra num período de refração absoluta,
durante o qual é incapaz de produzir outro potencial de ação;
- segue o período de refração relativa, onde a membrana retorna a seu valor
normal;
120

(mV)
-60

Tn Ta Tr
Tn = impulso nervoso
Ta = refração absoluta
Tr = refração relativa

- A existência do período refratário absoluto limita a frequência de ocorrência de


um novo impulso nervoso à:
fmax = 1 / (Ta + Tn)
Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
4

- integração espacial / temporal dos estímulos

A
T1
+
T2 -
B
T3 Axônio
+ Soma
C
T4 D +

T5
E + +

T6
F

A
B
C

D
E
F
Limiar
potencial da
membrana

potencial
de ação c

T1 T2 T3 T4 T5 T6
- pessoa normal possui 1011 neurônios e 105 ligações entre os mesmos

- Modelo de primeira ordem para o neurônio biológico:


fT = g ( ∫ ∑αi(t) xi(t) dt) onde αi(t) = ganhos sinápticos
xi(t) = entradas do neurônio

- A função g(v) é chamada de função de ativação do neurônio.

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
5

Redes de Perceptrons
- Primeiro modelo para rede de neurônios artificiais
Mccullock & Pitts - 1943
Rosemblat 1950

x1
w11
.
y1
. ∑ 1
xn
. 0
w1n
. .
. .
. .
wm1
.
. yn
∑ 1
.
wmn 0

Exemplo de utilização de perceptrons:

- “E” lógico: X2
(0; 1,5)
X1 X2 Y
0 0 0 (1; 1)
(0; 1)
0 1 0
(1,5; 0)
1 0 0
1 1 1
(1; 0)
(0; 0) X1

Perceptron para executar a função “E”:


X1
1
y1
∑ 1
X2
0
1 1,5

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
6

Restrições da Rede de Perceptrons


- Em 1969, foi lançado um livro que muitos consideram ter sido uma punhalada mortal
às redes neuroniais. O livro se chamava “Perceptrons: Uma introdução a Geometria
Computacional” (Perceptrons: An Introduction to Computational Geometry) e foi
escrito por Marvin Minsky e Seymour Papert, ambos docentes do MIT. Eles
apresentaram uma análise detalhada e perspicaz do perceptron em termos de usa
capacidade e limitações. Apesar da intenção ser de dar suporte as pesquisas com redes
neuroniais, gerou-se grandes debates. Algumas considerações e conclusões continuam
atualizadas até hoje, e na época foi como água na fervura.

- Em particular, destaca-se a idéia que existem classes restritas de problemas onde os


perceptrons são adequados. Perceptrons podem diferenciar padrões apenas se estes são
linearmente separáveis. Como muitos problemas de classificação não pertencem a classe
de linearmente separáveis, esta condição impôs uma grande restrição a aplicabilidade do
perceptron.

- Um dos exemplos mais simples de problemas que não podem ser resolvidos por um
perceptron é o do “OU exclusivo”.

- Conceito de hiperplanos:

Num espaço tri-dimensional, um plano é um objeto de duas dimensões. Um


plano pode separar espaços tri-dimensionais em duas regiões distintas; dois
planos podem gerar tres ou quatro regiões, dependendo de sua orientação
relativa, e assim sucessivamente. Por indução, num espaço n-dimensional,
hiperplanos são objetos de (n - 1) dimensões (Um espaço n-dimensional
geralmente é referenciado como um hiperespaço).

Num espaço n-dimensional genérico, a equação de um hiperplano pode ser


escrita como:
∑1naixi = C

onde “a”s e “C” são constantes, com no minimo um a ≠ 0 e os “x”s são


coordenadas do espaço.

- Para evitar as restrições, foram sugeridas algumas modificações para a resolução do


problema do “Ou exclusivo”:

- Utilizar duas camadas de neurônios;


- Usar preprocessamento polinomial;
Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
7

Exemplo: “Ou exclusivo” com duas camadas de neurônios:

X1 X2 Y
0 0 1 (1; 1)
(0; 1)
0 1 0
(1,5; 0)
1 0 0
1 1 1
(1; 0)
(0; 0) X1

0,5

X1
1
h1
1
X2 ∑ 1
0
1 0,5


1

∑ h2
1
1 -1
0
1,5

y
1
0
0,5

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
8

Pré-processamento polinomial:

S>0
(1; 1)
(0; 1)
S<0

(1; 0)
(0; 0) X1

X12
w11
X1 X1
w12
X1.X2
y
∏ w13 ∑ 1
0
X2 X2
θ
w14
X22
w15

Pré-processador polinomial
S=X12 w11 + X1.w12 + X1.X2.w13 + X2.w14 + X22 w15

- Continuou o problema de aprendizado, quando a rede tinha mais de uma camada, até
1980 quando foi apresentada a rede BackPropagation;

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
9

Modelos para neurônios artificiais


- Neurônio binário - Hopfield 1982
x1
w11
.
yi
. ∑ 1
xn
. 0
w1n
wi0

- Neurônios Contínuos - Hopfield 1986 x0=1

x1
w11
.
yi
. ∑ f (net i )
xn
.
w1n
wi0

x0=1

- As não linearidades mais usadas são:

fi (net i)
1
1 / [1 + e-(net i)]

0,5

net i

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
10

fi (net i)
1

net i

-1

Aprendizado das redes neuronais


x1
w11
.
yi
. ∑ f (net i)
xn
.
w1n
wi0

x0=1 ∑
yobj

Regra

Exercícios:
- Usando o mínimo de neurônios binários, obter o diagrama da rede para:

a-)
X1 X2 Y
0 0 1
0 1 0
1 0 0
1 1 0

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
11

b-)
X1 X2 Y
0 0 0
0 1 1
1 0 0
1 1 0

c-)
X1 X2 Y
0 0 1
0 1 0
1 0 0
1 1 1

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
Redes Adaline 2 12

Redes Adaline
Adaptive linear neuron
Adaptive linear element
1960 e 1980
s - saída linear
x1
w11
.
yi
. ∑ 1
xn
.
saída
w1n -1
wi0 digital

x0=1

ALC

ALC = Adaptive linear combiner

n
s = w0 + ∑ wi . xi
i =1
n
s = ∑ wi . xi ............( x0 = 1)
i =0

s = wt . x

 w0  x0 
w  x 
w =  ;....... x =  
1 1

 ...   ... 
   
wn  x n 

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
13

Treinamento com saída linear

x1
w1 s - saída linear
.
. ∑
xn
. ∑
wn
w0

x0=1
Regra de
treinamento
LMS

Dado o conjunto de treinamento


x1 x2 xj
; ;...;
d1 d 2 dj

wi são ajustados de modo a obter o menor valor médio quadrático do erro (LMS);

Aplicando xk para algum w teremos sk


o erro é
ek = d k − sk
mas
sk = w T xk

Solução analítica:

O valor médio quadrático é:

( )
1 j
ζ = E e k2 = ∑ e k2
j k =1
(
ζ = E (d k − s k )
2
)
( ) ( ) (
ζ = E d k2 + w T E x k x kT w − 2 E d k x kT w )
Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
14

Seja R a matriz de correlação de xk , dada por:

(
R = E x k x kT )
e
P = dk xk
então : ζ(w) w2
ζ=E d ( )+ w
2
k
T
Rw − 2 P w
T

Para achar o mínimo, fazemos:


 ∂ζ 
 ∂w  w2*
∂ζ (w)  1
= ∇ζ =  ...  = 2 Rw − 2 P = 0
∂w
 ∂ζ 
 ∂w n  w1* w1
 
−1
⇒w =R P
*

Solução recursiva:

w(t) t=0,1, ...


w no passo t
Método do gradiente:
w(t + 1) = w(t ) + µ∇ζ (w)

ζ(w) w2
∇ζ

-µ∇ζ
w2*

w1* w1

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
15

Algoritmo:
- Escolher w(0)
- Para cada elemento do conjunto de treinamento xk e dk fazer o seguinte:
1 - Aplicar xk e determinar sk
2 - Calcular o erro ao quadrado: e k2 = (d k − s k )
2

3 - Calcular o gradiente
(
∂ d k − w T (t )x k )
2

( ) ≅ ∇e =
∇ζ (w) = ∇E e 2
k
2
k
∂w
∇ζ (w) = −2(d − w (t )x )x
k
T
k k = −2ek (t )x k
4 - Calcular a correção
w(t + 1) = w(t ) + 2 µek (t )x k
5 - Volta ao passo 1.

Obsevações:
- µ grande pode não convergir nunca (oscilação);
- w(0) deve tomar valores aleatórios positivos e negativos
- repetir o conjunto de treinamento
- elementos do conjunto de treinamento podem e devem ser tomados em ordem
aleatória;
- parar quando w varia pouco e ek é pequeno (em vários passos seguidos);
- usar (xk / | xk | ) ou (xk / | xk |2 ) no lugar de xk na expressão de correção;

Treinamento Adaline saída binária

(Widrow)
α − LMS
e!k = d k − yk
onde:
dk = valor desejado
yk = saída binária

Se e!k = 0
então deixar w(t) inalterado

Se e!k ≠ 0 (-2 ou 2)
Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
16

então calcular a correção como:


e (t )
~
w(t + 1) = w(t ) + α k x k
2

Madaline
Madaline = Many Adaline

... ∑
... ∑

. .
. .
. .

... ∑
... ∑

Treinamento Madaline:

Princípio da perturbação mínima;


- Adaptar a primeira camada (xk => dk com yk )
- Contar o número de valores binários que não conferem na saída
(distância de Hamming);
- Escolher a menor saída (em módulo) linear na primeira camada.
- Trocar a saída dele se a distância de Hamming diminue, ajustar o
neurônio pelo α - LMS
- Repetir para todas as camadas exceto a de saída
- Ajustar neurônios da camada de saída com α - LMS

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
17

Aplicação da Rede Adaline (ALC) em


Processamento de sinais

Revisão de processamento digital de sinais:


-Filtro discreto:
x(n)
x(t) y(n)

t n n

x(t) x(n) y(n)


Filtro

x ( n) = x ( t ) t = nT

Resposta impulsional discreta g(n)


g ( n) = y ( n ) x (n) =δ (n)

Para uma entrada x(n) qualquer, convoluir = discreta


n
y( n ) = ∑ g( i ) x ( n − i ) = g( n ) * x ( n )
i=0

Y ( Z ) = G( Z ) X ( Z )
Y ( Z ) = Z { y ( n )};
G( Z ) = Z {g ( n )};
X ( Z ) = Z {x ( n )}
d 0 + d1z −1 +... + d m1z − m
G( Z ) =
1 + c1z −1 +... + cn z − n
z = e jwt

Resposta em regime estacionário:


para x ( n) = A sen( nwt )
mostra-se que:
Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
18

y( n ) = A G(w) sen ( nwt∠G(w))

Principais Filtros
filtro passa-faixa
|G(w)|
|G(w)| filtro passa baixa

w w

Filtro não recursivo (FIR - Finite Impulse Response


Moving Average)
G ( z ) = do + d1z −1 +... + d m z − m
Y ( z) = G ( z) X ( z)
Y ( z ) = d 0 X ( z ) + d1z −1 X ( z ) +... + d m z − m X ( z )
y ( m) = d 0 x ( n) + d1 x ( n − 1) +... + d m x ( n − m)

x(n)
d0

atraso
x(n-1) d1

atraso
x(n-2)
d2
.
. .
. .
.
atraso
x(n-m) dm

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
19

Filtro Adaptativo
- Treinamento da Adaline (ALC)

x(n)
d0

atraso
x(n-1) d1 s(n)

atraso
x(n-2)
d2
.
. .
. .
.
atraso
x(n-m) dm
d(n)
Regra ∑
LMS +

Exercício:
a-) Fazer um programa para simulação e treinamento da Adaline ALC.
b-) Aplicar Adaline ALC para filtragem
- tirar ruído
- x(t) = senoide de 10 Hz com ruído aleatório
- saída deve dar a senoide sem ruído.

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
Rede Back Propagation 3 20

Introdução
- Rumelhart 1986
- Parker 1982
- Weibein 1974

Consideraremos a rede:

x p0 = 1
w10h i p0 = 1
x p1 w10o
NETph1
w11h i p1
n
f ( NET ) h
NETph1
∑ 1 p1
w o
11
.

. .
. .
x pN
.
w1hN i pL
.
w1oL (
f 1o NET po1 )
. .
. .
h
.
w20
w No 0
h
w21 NETpLh

. wNo 1
NETpLh ∑
. .
. .
w2hN .
f Nh ( NETpLh ) o
w NL (
f pLo NET pLo )

camada 0 camada 1 camada 2

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
21

Conjunto de treinamento:
(x1, y1)
...
(xp, yp)
...
(xn, yn)

Para o p-ésimo elemento do conjunto de treinamento, temos:


* a saída linear da j-ésima unidade de carregamento escondida é:
N
NETpjh = ∑ w hji x pi
i =0
A saída não linear é
(
i pj = f jh NET pjh )
* A saída linear da p-ésima unidade da camada de saída é:
L
NETpko = ∑ wkjo i pj
j =0

A saída não linear é:


(
o pk = f ko NET pko )
Atualização dos pesos na camada de saída
wkjo
k = 1,..., M
j = 0,..., L

Seja
δ pk = y pk − o pk

É definido o erro quadrático que inclui todas as saídas:


1 M
E p = ∑ δ 2pk
2 i =1
∂E p ∂f ko ( ) ∂ NET pko
∇E = o
(
== − y pk − o ph ) ∂ NET ∂ w
p
∂w o
kj ( ) ( )
o
pk
o
kj

w kjo (t + 1) = w kjo (t ) − η∇ o E p
w kjo (t + 1) = w kjo + ηδ opk i pj
onde:

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
22

δ opk = δ pk f ko NET pko ( )


f ko (.) deve ser diferenciável

Funções mais usadas: f

*
( )
f ko NET pko = NET pko ;
f ko ' ( NET ) = 1;
o
pk
NET

(
f ko NET pko = ) 1
; − NET pk
o
f
* 1+ e 1
f k
o
' ( NET ) = o (1 − o );
o
pk pk pk

NET

*
f k
o
(NET ) = tanh( NET
o
pk
o
pk );
f
1
f k
o
' ( NET ) = 1 − o ;
o
pk
2
pk
-1
NET

Atualização dos pesos na camada escondida


w hji
j = 0,..., L;
i = 1,..., N

2
1 M 1 M   L 
E p = ∑ δ 2pk = ∑  y pk − f ko  ∑ w kjo i pj  
2 k =1 2 k =1   j=0  
∂E p
( ) ( )
M
∇E ph = = − ∑ δ pk f ko1 NET pko w kjo f jh1 NET pjh x pi
∂w hji k =1

w hji (t + 1) = w hji (t ) − η∇E ph


w hji (t + 1) = w kjo (t ) + ηδ hpj x pi
onde:

( )∑ δ
M
δ hpj = f jh NET pjh o
pk w kjo
k =1

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
23

Algoritmo de treinamento:
Conjunto de treinamento:
(xp, yp ) p=1,..., p

1 - Aplicar xp = (xp1, . . ., xpN )T na entrada

2 - Calcular a saída linear da camada escondida


N
NETpjh = ∑ w hji x pi ;
i =0

j = 1,..., L

3 - Calcular a saída da camada escondida


(
i pj = f jh NET pjh ; )
j = 1,..., L

4 - Calcular a saída linear da camada de saída


L
NETpko = ∑ wkjo i pj ;
j =0

k = 1,..., M ;

5 - Calcular a saída da rede


(
o pk = f ko NET pko ; )
k = 1,..., M ;

6 - Calcular o erro na camada de saída


( ) (
δ opk = y pk − o pk f ko ' NET pko ; )
p = 1,..., M ;

7 - Calcular o erro na camada escondida

( )∑ δ
M
δ hpj = f jh ' NET pjh o
pk w kjo
k =0

8 - Atualização dos pesos da camada de saída


w kjo (t + 1) = w kjo (t ) + ηδ okj i pj ;
k = 1,..., M ;
j = 0,..., L;

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
24

9 - Atualização dos pesos da camada escondida


w hji (t + 1) = w hji (t ) + ηδ hpj x pi ;
j = 1,..., L;
i = 0,..., N ;

10 - Verificar tolerância para parar


1 M 2
E p = ∑ δ pk < tolerância;
2 k =1

Observações:

* Regra de Kolmogonov: para mapeamentos do tipo n em m, usar 2n + 1 elementos na


camada escondida;

* inicialização dos valores dos pesos


w hji
inicializar o com valores aleatórios positivos e negativos
wkj

* Seleção do passo: usar η pequeno (0,05 a 0,25);

* Usar valores normalizados:


i pj
i pj = ;
ip
x pi
x pi =
xp
(Usar escalonamento entre 0,1 e 0,9 ---- USIMINAS)

* Repetir o conjunto de treinamento em ordem aleatória;

* Fator de escala em ypi:


1
f o ( NET ) = ;
1 + e − NET
y pi ∈(0,1;...;0,9)

* w hj 0 ... e... wkh0 muitas vezes são dispensáveis;

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
25

Técnicas que podem melhorar a convergência


* Momentum
[
w kjo (t + 1) = w kjo (t ) + ηδ opk i pj + α w kjo (t ) − w kjo (t − 1) ]
w hji (t + 1) = w hji (t ) + ηδ hpj x pi + α [w h
kj (t ) − wkjh (t − 1)]

* Deslocamento da entrada e da função não linear da saída quando as entradas são


binárias (0, 1);
Entrada 0 ------ > -1/2
1 ------ > +1/2

1 1 1
− NET
⇒− +
1+ e 2 1 + e − NET

Exercícios:
1 - ) Fazer um programa para treinar rede Back Propagation

2 - ) Treinar uma rede para reconhecimento de caracteres.

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
Redes Hopfield 4 26

Teorema de Lyapunov:
.
x ( t ) = ϕ ( x ( t )) x ( k + 1) = ψ ( x ( t ))
V ( x ( t )) > 0...... ∀ x , V ( x ( k )) > 0........ ∀x ,
V ( x ( t )) = 0...... x = 0 V ( x ( k )) = 0........ x = 0,
dV ( x ( t ))
<0 ∆V ( k ) = V ( k + 1) − V ( k ) < 0
dt

Hipercubo de Hamming:
 x1 
 +1
x =  "  → x i 
 x n   −1

Hipercubo de Hamming
2n vertices

Distância de Hamming:
 x1   y1 
x =  "  y =  " 
 x n   y n 

Distância de Hamming (h) é igual ao número de componentes de x que diferem


dos respectivos componentes de y.
Exemplo:

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
27

+1
x= 
−1
+1
y= 
+1
h = 1;
ou:
d2
h= onde “d” é a distância euclidiana
4

Memória associativa:
Conisdere “L” conjuntos de exemplos:
x1 . . . xL
* Memória auto-associativa
se x está mais próximo de xi então ϕ(x) = xi

considere “L” conjuntos de exemplo


y1 . . . yL relacionados respectivamente com x1 . . . xL

* Memória hetero-associativa
se x está “mais próximo” de xi então ϕ(x) = yi

* Memória associativa com interpolação


se x está mais próximo de xi, e a distância entre x e xi é h, então:
ϕ(x) = yi + e
e é função de h

caso particular para hetero associativa e associativa com interpolação


xi são vetores ortonormais
 T 1.. se.. i = j 
 xi x j =  
 0.. se.. i ≠ j

( )
φ ( x ) = y , x1T +...+ y L x LT x

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
28

Memória auto-associativa
Considere L exemplos x1 . . . xL
É formada a matriz de pesos:
w = x1 x1T +...+ x L x LT
 w11 ... w1n 
w =  " ... " 
 w n1 ... w nn 

onde w é simétrica quadrada

w11 x1
∑ f(.)
...
NET 1
w1n .
.
... .

wn1 xn
∑ f(.)
...
NET n
wnn

n
NETi = ∑ w ij x j
j =1

f(.) faz a relação


 1.................. se.. NETi > 0

x i ( t + 1) =  x i ( t ).............. se.. NETi = 0
−1.................. se.. NET < 0
 i

t = 0, 1, . . . passo

Para recuperar informações são executados os passos


• aplicar x0
• propagar
• repetir até que x não se altere

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
29

Prova de convergência
Usando uma adaptação do teorema de Lyapunov
E ( t ) = − ∑ ∑ xi ( t ) wij x j ( t ) > − ∑ wij
i j
n n
∆E = ∑ ∆xi ∑ wij x j < 0
i =1 j =1

Memória associativa bidirecional


Considere L conjuntos de exemplo
x1 . . . xL
y1 . . . yL
É formada a matriz de pesos
w = y1 x1T +... + y L x LT

w11 NET 1x NET 1y


w11 y1
∑ f(.)
... ∑ f(.)
...
w1n
. w1n
.
.
.
... .
... .
wm1 NET nx
wm1 NET my
ym
... ∑ f(.)
... ∑ f(.)
wmn
wmn

m
NETi x = ∑ yi w ji
j =1
m
NETi y = ∑ wij xi
j =1
f(.) são tais que

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
30

 1............. se.. NETi y > 0



y i (t + 1) =  y i (t )......... se.. NETi y = 0
 −1............ se.. NET y < 0
 i

 1............. se.. NETi x > 0



x i (t + 1) =  x i (t )......... se.. NETi x = 0
 −1............ se.. NET x < 0
 i

Passo para recuperar informações


• aplicar x0 ou y0
• propagar
• repetir até que x ou y não se altere

Rede ou memória de Hopfield

w11 x1
∑ f(.)
...
NET 1
w1n .
I1
. wii = 0
... .
wn1 xn
∑ f(.)
...
NET n
wnn
In

w = x1 x1T +...+ x L x LT
 0 w12 # w1n 
w $ % " 
w= 
12

 " % $ " 
 
 w1n % % 0 

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
31

n
NETi = ∑ wij x i + I i
j =1

+1................. NETi > U i



x i (t + 1) =  x i (t )............. NETi = U i
−1................. NET < U
 i i

Função para provar convergência

−1
E= ∑ ∑ Vi wijV j − ∑ I iVi + ∑ U iVi
2 i j i i

i≠ j

Rede ou memória de Hopfield Contínua

1/R10 u’1 u1
v1
∑ 1/C ∫ g1 ( . )
...
1/R1n
1/R1
.
.
.
1/Rm0 u’n un
vn
... ∑ 1/C ∫ g1 ( . )
1/Rmn
1/R1

vi
1
vi = (1 + tanh(λ.ui)) / 2

1/2

ui

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
32

Função para provar convergência

1 1 1 1 Vi −1
E=− ∑ ∑
2 i j Rij
ViV j + ∑ ∫ g(τ )dτ − ∑ J iVi
λ i Ri 0 i

Exemplo de aplicação da Rede Hopfield Contínua


Otimização: Problema do caixeiro viajante
NP completo (NP = polinômio não deterministico)
Sejam quatro cidades (a, b, c, d) e dab a distância entre as cidades
a e b. Traçar uma rota para um caixeiro viajante para que o
mesmo percorra o menor caminho e visite toda as quatro cidades
uma única vez.
E=α+β+γ+δ
α = aparecer só 1 por linha (= 0)
β = aparecer só 1 por coluna (= 0)
γ = todas as cidades são visitadas (= 0)
δ = ∑ distância pequena (= 0)

1 2 3 4
a 0 1 0 0
b 0 0 1 0
c 1 0 0 0
d 0 0 0 1
... ... ... ... ...

Resposta: Sequência c, a, b e d
resolvido com 16 neurônios n2
va1 va2 . . . va4

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
Redes Boltzmann 5
33

Revisão de variáveis aleatórias


Exemplo 1:
Ao jogar um dado a face que sai é aleatória! Podemos associar a variável
aleatória x que pode tomar os valores 1, 2, . . . 6
P(x=1) = 1/6; . . . P(x=6) = 1/6
v. a. discreta

Exemplo 2:
Ao rodar um ponteiro, a posição que parar é aleatória.
Podemos associar a variável aleatória x que pode tomar os valores [0, 3600)
P(x=90) = 0
v. a. contínua
Função distribuição de probabilidade
F(x) = P(X ≤ x)
Para o exemplo do ponteiro:

F(x)
1

360
x

Função densidade de probabilidade


dF ( x )
f ( x) =
dx
para o exemplo do ponteiro

f(x)

360 x

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
34

Principais funções densidade:

Uniforme

f(x)
1/(b-a)

a b x

Normal e Gaussiana

f(x)

e-x2 / 2

Cauchy

f(x)

1 / (1 + x2 )

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
35

Introdução
Nos capítulos 3 e 4 podiamos atingir minimos locais
ideia: Rede de Boltzmann

A B
idéia: resfriamento de metais
- Levar o metal a alta temperatura
- Resfriar gradualmente o metal

A distribuição de energia dos estados é determinada pela relação


−E
P ( E ) α. e kT
E = energia do estado
P(E) = probabilidade do sistema apresentar energia E
k = Constante de Boltzmann
T = Temperatura K

- Tgrande : P(E) é praticamente a mesma para todo E


- Tpequeno : P(E) maior para baixa energia

Tgrande

Tpequeno

Mostra-se que a redução de T deve obedecer

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
36

T0
T (t ) =
1 + ln t
t = 1, 2 , 3,...

obs.: Usando a distribuição de Cauchy


T
T (t ) = 0
1+ t

Rede de Boltzmann de Entradas


• A rede é treinada com L conjuntos x1 , . . . , xL , onde xi tem m elementos binários
• Apresentando x’ a rede deve procurar o xi mais próximo. Por exemplo:
x’ = [1, 0, ?, 0, 1, ? ]

w11
x1 a xm
∑ f1 ( . )
unidades visiveis
w1n NET1 x1
.
.
. wij = wji
.
. wii = 0
.
wn1
xn
xm+1 a xn
∑ fn ( . )
unidades escondidas
NETn
wnn

É escolhida uma unidade k


fk ( . ) é tal que
 x i (t ).... se.. i ≠ k
  1

x k (t + 1) =  0.... se.. 1 + e − NETi / T < unif ( 0,1)
se.. i = k  1
 1.... se.. − NETi / T
> unif ( 0,1)
  1+ e

T é temperatura artificial: valor que é reduzido gradualmente

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
37

Explicação
Rede Hopfield fi ( . )
 1...... NETi > 0

x i (t + 1) =  x i (t )...... se.. NETi = 0
 0...... se.. NET < 0
 i

Rede Hopfield Rede de Boltzmann

Tpequeno
xi (t+1)

Tgrande

NETi NETi

Algoritmo

1 - Inicialização
xk (0) = { aleatório (0 a 1) para as unidades escondidas e as visíveis
desconhecidas;
valores dados, para as unidades visíveis conhecidas }

2 - Repetir várias vezes:


Selecionar aleatoriamente uma unidade entre as escondidas e as visíveis
desconhecidas. Atualizar.

3 - Reduzir gradualmente T e voltar a 2


obs.: as unidades visíveis conhecidas são mantidas travadas

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
38

Rede de Boltzmann de entrada - saída


- A rede é treinada com L conjuntos
x1 . . . xL: xi tem p elementos binários
y1 . . . yL ; yi tem (m-p) elementos binários

- Apresentando x’ a rede de procurar yi de modo que xi é mais próximo de x’

w11 x1 a xp
unidades de entrada
∑ f1 ( . )
w1n NET1 x1
. xp+1 a xm
.
. unidade de saída
.
.
.
wn1
xn
∑ fn ( . ) xm+1 a xn
NETn unidades escondidas
wnn

wii = 0
wij = 0 i < p
wij = wji i ≥ p

Não tem conexões entre as entradas


As conexões com as entradas são unidirecionais (partem das entradas)

Entrada

Saídas

Escondidas

Algoritmo para propagar é praticamente o mesmo da rede de Boltzmann de


entrada

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
39

Treinamento das Redes de Boltzmann

1. Manter fixo um vetor de treinamento nas unidades visíveis

2. Propagar várias vezes até o equilibrio em Tpequeno;

3. Propagar a rede mais vezes e calcular quais pares de unidades estão em 1

simultaneamente (para ser usado no cálculo de probabilidade de co-

ocorrência)

4. Repetir 1-3 para todos os outros vetores de treinamento. Calcular a estimativa

da probabilidade de co-ocorrência P+ij ;

5. Deixar livre as unidades visíveis e repetir 2 - 4 dando P-ij ;

6. Calcular a variação a ser dada nos pesos: ∆wij = α.P.

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
Rede Counterpropagation 6 40

Rede Counterpropagation
Hecht - Nielsen 1987

N entradas L unidades escondidas M saídas

x1 NET1
w11h z1
y1
w11o
∑ f(.)

w1Nh
.
. w1Lo
.
.
.
. NETL
h
wL1 zL
wn1o yM
∑ f(.)

xN
wLNh
camada escondida ou wMLo camada de saída ou
camada de entradas camada de Kohonen camada de Grossberg

A não linearidade f ( . ) é tal que


f ( NETj ) = { 1 se NETj = MAX {NET1 , . . . , NETL }
0 caso contrário }

A camada escondida é uma camada competitiva. Só uma unidade escondida vence.


A esta unidade o índice é denominado r
logo Zr = 1, Zj = 0 p/ j ≠ R

o vetor de entrada
 x1 
x =  "  tem norma unitária
 x N 

obs.: Dado um x qualquer

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
41

xi
x1 =
x + x22 +... + x N2
2
1

y R = wkro ;
k = 1, 2,..., M

obs.: Quando consideramos dois vencedores, cujas unidades tem índices r e s. Ao invés
de tomar Zr =1 e Zs = 1, são tomados:
NETr
Zr = ;
NETr + NETs
NETs
Zs = ;.. e
NETr + NETs
yk = wkro Zr + wkso Z s
k = 1,..., M

Treinamento
Dados os exemplos ( p pares de vetores)
(x1 , y1 ) . . . (xp , yp )

Pesos da camada escondida


Algoritmo:
a - ) aplicar vetor xq na entrada
b - ) calcular:
N
NET j = ∑ w hji xi
i =1
c - ) Determinar a unidade vencedora
unidade r
d - ) Atualizar os pesos:
(
wrih = w rih + α x qi − wrih )
i = 1,..., N
0 < α <1
Normalizar wrh
e - ) Repetir “a” até “d” para todos os exemplos
f - ) Repetir “e” até classificar os aglomerados de vetores de entrada

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
42

Pesos das camadas de saída

a - ) aplicar vetor de entrada xq

b - ) determinar a unidade vencedora r

c - ) atualizar os pesos:
(
w kro = w kro + β y qk − w kro )
d - ) repetir “a” até “c” até que todas as classes de entradas correspondam
satisfatoriamente às saídas.

Escolha dos pesos iniciais

- Camada escondida = pesos iguais às entradas significativas

- Camada de saída = calcular ou usar valores aleatórios

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
Sistemas Auto-Organizáveis 7
43

Sistemas Auto-Organizáveis
Kohonen 1984

x1
d1  x1 
w11
.
w1N
} w1
. x =  " 
.
.  x N 
.
.
xN wM1 dM  wi1 
wMN
} wM w i =  " 
camada de camada de camada  w iN 
entrada Kohonen competitiva

∑ (x )
N
2
dj = i − w ji
i =1

dj = x − wj

Unidade vencedora é a unidade c


dc ≤ d j ;
j = 1, 2 ,..., M

obs.: x e wj tem a mesma dimensão

Treinamento
São dados os exemplos x1 . . . xL
Os pesos wij são inicializados aleatoriamente

1. aplicar um exemplo na entrada


2. calcular as distâncias entre entrada e pesos:

∑ (x )
N
2
dj = i − w ji
i =1

j = 1,2,..., M
3. selecionar a unidade que apresenta menor distância: dc <= dj e j = 1,..., M;

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
44

4. atualizar os pesos da unidade vencedora:


wci (t + 1) = wci (t ) + η( x i − wci );
0 < η <1
e também das unidades vizinhas
(
w ji (t + 1) = w ji (t ) + η x i − w ji ; )
0 < η <1
j vizinha de c
5. diminuir o tamanho da vizinhança e repetir 2 - 4 até vizinhança isolar a
unidade “c”.
6. repetir 2 -5 para todos exemplos
7 . repetir 1 a 6 varias vezes sem considerar a vizinhança

A rede pode ser redesenhada como:

d1
w1
q unidades
x1
dq
p conjuntos de
w1
“q” unidades

pxq=M
dM-q+1
w1
q unidades
xn
dM
w1

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................
45

Exemplo de aplicação: Máquina de escrever

x15
.
Ampl A/D FFT . Rede
x1 .

computador
T=9,83ms/256

Anotações: ..................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
.......................................................................................................................