Associação de padrões
•
A aprendizagem também pode ser entendida como um processo de
construção de associações entre padrões.
•
Caso geral: associar um padrão de entrada (representado por um
vector) a algum padrão já pré-especificado (memorizado).
•
Os padrões a associar podem ser de tipos diferentes
•
A memorização de um padrão (ou grupo de) também pode ser
considerada como associar o padrão a ele próprio.
Redes Neuronais
Associação de padrões
Departamento de Matemática
Universidade dos Açores
Hélia Guerra
[email protected]
http://www.uac.pt/~hguerra/Teaching/RN/RN.html
DM / UAç
Redes neuronais de memória associativa
•
Redes Neuronais 07/08
2
Redes neuronais de memória associativa
Uma associação é um par de padrões (s, t)
•
•
Consideramos redes simples, com um único nível, capazes de
aprender associações.
•
Os pesos são determinados de forma a que a rede possa armazenar
(memorizar) um conjunto de associações.
•
Para além de memorizar (aprender), a rede também é capaz de
responder com a associação correcta a um padrão de entrada
parecido com os que já foram memorizados,
Autoassociativas (s=t)
– Feedforward
– Recorrentes
•
Heteroassociativas (s≠t)
– Feedforward
– Recorrentes
DM / UAç
Redes Neuronais 07/08
3
DM / UAç
Redes Neuronais 07/08
4
Algoritmos de aprendizagem para associação de
padrões
Redes neuronais de memória associativa
•
Regra de Hebb
– Método mais simples e mais comum para determinar os pesos de uma
•
rede de memória associativa
Quantos padrões podem ser memorizados antes da rede se
– Utilizada com representações bipolares e binárias
“esquecer” dos que já tinha memorizado?
– Veremos algoritmo de treino e procedimento geral através do produto
exterior
•
Regra Delta
– Extensão da regra Delta anterior
– Função de activação sigmoide
– Utilizada com vectores de entrada linearmente independentes
DM / UAç
Redes Neuronais 07/08
Arquitecturas associativas
Redes Neuronais 07/08
6
Algoritmo de Hebb
0.
Atribuir valores iniciais aos pesos
wij=0, i=1,…,n, j=1,…,m;
1.
Repetir até esgotar as entradas (s:t)
I. Activar
xi=si, i=1,…,n
II. Fixar o impulso de resposta para cada unidade, j=1,…,m
yj=t
III. IV. Ajustar os pesos para cada unidade, j=1,…,m
11
1
1j
i1
1m
i
DM / UAç
5
ij
n1
wijnovo = wijvelho + y j xi , i = 1,..., n
im
nj
nm
n
DM / UAç
Redes Neuronais 07/08
7
DM / UAç
Redes Neuronais 07/08
8
Produto exterior
•
Memorização Hebbiana
•
O produto exterior dos vectores
s=[s1 s2 … sn] e t=[t1 t2 … tn]
Correlação entre a
unidade xi e a
unidade yj
é dado pela matriz
⎡ s1t1 K s1t j K s1t m ⎤
⎡ s1 ⎤
⎢
⎥
⎢... ⎥
K
⎢
⎥
⎢ ⎥
s T t = ⎢ si ⎥ × t1 ... t j ... t m = ⎢ si t1 K si t j K si t m ⎥
⎢
⎥
⎢ ⎥
K
⎢
⎥
⎢... ⎥
⎢ snt1 K snt j K snt m ⎥
⎢⎣ sn ⎥⎦
⎣
⎦
[
]
DM / UAç
Redes Neuronais 07/08
•
9
Memorização através da regra Delta
0.
Atribuir valores iniciais aos pesos e fixar coeficiente de aprendizagem α
wij=0, i=1,…,n, m=1,…,m; 0<α≤1
1.
Repetir até à convergência dos pesos e do pendor
Repetir os passos I-IV até esgotar as entradas (s:t)
I. Activar
xi=si, i=1,…,n
II. Fixar o impulso de resposta para cada unidade, j=1,…,m
yj=tj
III. Determinar a resposta e cada unidade, j=1,…,m
Para memorizar de um conjunto de associações { (s(p):t(p)): 1≤p≤P }, a
matriz dos pesos W={wij} é dada pelos elementos
P
wij = ∑ si ( p )t j ( p )
p =1
A resposta da rede com pesos W para o padrão x é y=x.W
DM / UAç
Redes Neuronais 07/08
10
Memorização através da regra Delta
IV. Ajustar os pesos, j=1,…,m
se f(yinj)≠tj
n
yin j = b j + ∑ xi wij
i =1
DM / UAç
wijnovo = wijvelho + α (t j − y j ) xi f ' ( yin j ), i = 1,..., n
Usar função de activação sigmóide
⎧ 1 se yin > θ j
j
⎪⎪
f ( yin j ) = ⎨ 0 se − θ j ≤ yin j ≤ θ j
⎪
⎩⎪− 1 se yin j < −θ j
Redes Neuronais 07/08
11
DM / UAç
Redes Neuronais 07/08
12
Função sigmóide binária e bipolar
f ( x) =
Rede de memória heteroassociativa
f ' ( x) = σf ( x)[1 − f ( x)]
1
1 + e −σx
1
1.4
1.2
0.8
1
0.6
11
1
0.8
1j
0.6
0.4
0.4
0.2
-4
i1
0.2
-2
2
-4
4
2
−1
g ( x) = 2 f ( x) − 1 =
1 + e −σx
-2
g ' ( x) =
σ
2
2
1m
4
[1 − g ( x)][1 + g ( x)]
ij
i
n1
1
1.4
im
1.2
0.5
1
nj
0.8
-4
-2
2
4
0.6
nm
0.4
n
-0.5
0.2
-1
DM / UAç
-4
-2
2
4
Redes Neuronais 07/08
DM / UAç
13
Algoritmo de exame à memória
Calcular os pesos W, recorrendo a regra de Hebb ou regra Delta
1.
Repetir para cada entrada de teste s
I. Activar
xi=si, i=1,…,n
II. Calcular o estímulo recebido por cada unidade, j=1,…,m
yinJ=x.W
III. Calcular a resposta (bipolar) de cada unidade unidade,
j=1,…,m
•
Para vectores de resposta binária
⎧⎪1
yj = ⎨
⎪⎩0
•
se
yin j > 0
se
yin j ≤ 0
Caso geral (com limiar)
⎧1 se yin j > θ j
⎪⎪
y j = ⎨ y j se yin j = θ j
⎪
⎩⎪− 1 se yin j < θ j
⎧1 se yin > 0
j
⎪⎪
y j = ⎨0 se yin j = 0
⎪
⎪⎩− 1 se yin j < 0
Redes Neuronais 07/08
14
Algoritmo de exame à memória
0.
DM / UAç
Redes Neuronais 07/08
15
DM / UAç
Redes Neuronais 07/08
16
Regra de Hebb
Rede de Hebb
•
A adequação da regra de Hebb a um problema especifico, depende
da correlação entre os vectores de treino.
•
Se os vectores forem ortogonais, a regra produzirá os pesos
correctos e a resposta da rede para entradas diferentes irá fazer
associações correctas.
•
Adequada quando os vectores de entrada forem linearmente
independentes – extensão da separabilidade linear a
vectores de saída
•
Se os vectores não forem ortogonais,
– Pode-se aplicar limiar para “atenuar” o efeito das correlações
– Pode-se normalizar pesos encontrados, recorrendo a um factor
de 1/n, onde n é o número de neurónios [Hertz, Krogh, Palmer,
1991]
DM / UAç
Redes Neuronais 07/08
17
Redes Autoassociativas
•
Caso particular das redes heteroassociativas anteriores
•
A aprendizagem consiste em memorizar informação, a relembrar
posteriormente
•
DM / UAç
Redes Neuronais 07/08
Rede de memória autoassociativa
11
1
i1
Um padrão memorizado pode ser lembrado a partir de um padrão
parecido
j
1n
ij
n1
O desempenho é avaliado pela habilidade em reproduzir um padrão
guardado, a partir de um padrão com ruído e distorcido
in
nj
•
Veremos processo de memorização pela Regra de Hebb, em que a
matriz dos pesos é submetida à anulação da diagonal
DM / UAç
Redes Neuronais 07/08
1
1j
i
•
18
19
n
nn
n
DM / UAç
Redes Neuronais 07/08
20
Algoritmo de Memorização (Hebb)
0.
Atribuir valores iniciais aos pesos
wij=0, i,j=1,…,n;
1.
Repetir até esgotar as entradas (s:s)
I. Activar
xi=si, i=1,…,n
II. Fixar o impulso de resposta para cada unidade, j=1,…,n
yj=si
III. IV. Ajustar os pesos para cada unidade, j=1,…,n
Memorização Hebbiana
•
pesos W={wij} é dada pelos elementos
Correlação entre a
unidade xi e a
unidade xj
wijnovo = wijvelho + y j xi , i = 1,..., n
DM / UAç
Redes Neuronais 07/08
Calcular a matriz dos pesos W
1.
Repetir para cada entrada de teste s
I. Activar
xi=si, i=1,…,n
II. Calcular o estímulo recebido por cada unidade, j=1,…,n
yinJ=x.W
III. Calcular a resposta (bipolar) de cada unidade unidade,
j=1,…,n
Redes Neuronais 07/08
p =1
A resposta da rede com pesos W para o padrão x é y=x.W
•
Capacidade de memorização corresponde ao número de padrões ( ou
pares de padrões) que podem ser guardados e recordados correctamente
DM / UAç
Redes Neuronais 07/08
22
Exemplo
•
Ao memorizar o vector [1 1 1 -1], obtém-se a matriz de pesos
⎡ 1 1 1 − 1⎤
⎢ 1 1 1 − 1⎥
⎥
W =⎢
⎢ 1 1 1 − 1⎥
⎢
⎥
⎣− 1 − 1 − 1 1⎦
•
Testar memória com padrões corrompidos (um erro)
– [-1 1 1 -1]
– [1 -1 1 -1]
⎧1 se yin > 0
j
⎪⎪
y j = ⎨0 se yin j = 0
⎪
⎪⎩− 1 se yin j < 0
DM / UAç
P
wij = ∑ si ( p ) s j ( p )
•
21
Algoritmo de exame à memória
0.
Para memorizar um conjunto de padrões { (s(p) : 1≤p≤P } , a matriz dos
•
Testar memória com padrões parcialmente definidos
– [0 0 1 -1]
– [0 1 0 -1]
•
― [1 1 -1 -1]
― [1 1 1 1]
― [0 1 -1 0]
― [1 0 0 -1]
Testar memória com padrão corrompido (dois erros)
– [-1 -1 1 -1]
23
DM / UAç
Redes Neuronais 07/08
24
Exemplo
•
•
Considerar a matriz de pesos anterior depois de submetida à anulação da
diagonal
1 1 − 1⎤
⎡ 0
⎢ 1 0
1 − 1⎥⎥
W0 = ⎢
⎢ 1 1 0 − 1⎥
⎥
⎢
⎣ − 1 − 1 − 1 0⎦
Memorizar [1 1 -1 -1], [-1 1 1 -1], [-1 1 -1 1]
0 −2
2⎤
⎡ 0
⎢ 0
−
0
0
2⎥⎥
W1 + W2 + W3 = ⎢
⎢− 2
0
0
0⎥
⎢
⎥
0
0⎦
⎣ 0 −2
― [1 1 -1 -1]
― [1 1 1 1]
•
Acrescentar [1 1 1 1 ]
⎡0
⎢0
W = W1 + W2 + W3 + W4 = ⎢
⎢0
⎢
⎣0
Testar memória com padrões parcialmente definidos
– [0 0 1 -1]
– [0 1 0 -1]
•
•
Testar memória com padrões corrompidos (um erro)
– [-1 1 1 -1]
– [1 -1 1 -1]
•
Exemplo
― [0 1 -1 0]
― [1 0 0 -1]
Testar memória com padrão corrompido (dois erros)
0 0 0⎤
0 0 0⎥⎥
0 0 0⎥
⎥
0 0 0⎦
– [-1 -1 1 -1]
DM / UAç
Redes Neuronais 07/08
•
•
Para m<n a matriz W é não singular. O valor próprio (n-m) tem
multiplicidade m a que correspondem os vectores próprios
a(1),…a(m).
Para m=n, zero é um valor próprio de multiplicidade n e não existem
vectores próprios não triviais.
•
Factorizar n: nkxm.
•
Construir vector de dimensão m vm(1)=[1 1 … 1]
•
Construir vectores ortogonais de dimensão 2m:
v2m(1)=[vm(1)+vm(1)],
26
Redes Neuronais 07/08
27
v2m(2)=[vm(1)-vm(1)]
•
Construir vectores ortogonais de dimensão 4m:
v4m(1)=[v2m(1)+v2m(1)],
v4m(2)=[v2m(1)-v2m(1)]
v4m(3)=[v2m(2)+v2m(2)],
v4m(4)=[v2m(2)-v2m(2)]
•
Continuar a construção até obter vn(1),…, vn(2k)
O número máximo de vectores bipolares ortogonais de dimensão n
que pode ser construído é 2k, com k=(n)1.
DM / UAç
Redes Neuronais 07/08
Algoritmo para construir vectores bipolares ortogonais
de dimensão n
Teorema de Szu
•
DM / UAç
25
DM / UAç
Redes Neuronais 07/08
28
Redes associativas iterativas
•
Rede de Hopfield
Adequadas em situações onde a rede não responde imediatamente
com o padrão correcto mas usa iterativamente a resposta obtida
como entrada para a iteração seguinte.
•
Hopfield 1982, Hopfield 1984 e Hopfield e Tank 1985
•
Rede de Hopfield (autoassociativa)
•
Cada neurónio está ligado a todos os outros
•
Rede BAM (heteroassociativa)
•
•
Os pesos são fixos e as activações é que se alteram
A matriz de pesos é simétrica (wij=wji)
•
Coloca-se a questão de saber se as activações convergem.
•
Não existe ligação de um neurónio para o próprio (wii=0)
DM / UAç
Redes Neuronais 07/08
DM / UAç
29
Arquitectura
Redes Neuronais 07/08
30
Rede de Hopfield
•
wn2
wn1
wni
Num determinado instante, cada neurónio actualiza a sua activação em
função dos estímulos recebidos pelos restantes neurónios e de um sinal
externo.
n
wi1
w2i
wi2
yini = xi + ∑ y j wij
win
j =1
w21
w2n
w12
x1
DM / UAç
w1n
w1i
xi
x2
Redes Neuronais 07/08
•
A actualização das activações é feita de modo assíncrono
•
Os neurónios não são rectroactivos mas são continuamente sensibilizados
pelo estímulo original
xn
31
DM / UAç
Redes Neuronais 07/08
32
Algoritmo de Memorização (Rede de Hopfield discreta)
•
Para memorizar um conjunto de P vectores binários s(p), p=1,…,P
a matriz de pesos W={wij} é dada por:
Algoritmo de exame à memória
0.
Repetir para cada entrada x
I. Activar
yi=xi, i=1,…,n
II. Repetir aleatoriamente para as unidades, i=1,…,n
a)
n
wij = ∑ (2 si ( p ) − 1)(2 s j ( p ) − 1), i ≠ j
P
p =1
wii = 0
•
Calcular a matriz dos pesos W (regra de Hebb)
1. Repetir até convergir
yini = xi + ∑ y j w ji
Para memorizar um conjunto de P vectores bipolares s(p),
p=1,…,P a matriz de pesos W={wij} é dada por:
=1
b) Calcular a jresposta
(binária)
⎧1 se yini > θ i
⎪
yi = ⎨ yi
se yini = θ i
⎪
⎩− 1 se yini < θ i
c) Alterar vector de activação
(enviar yi para todas as unidades yj, i≠j)
P
wij = ∑ si ( p ) s j ( p ), i ≠ j
p =1
wii = 0
DM / UAç
Redes Neuronais 07/08
DM / UAç
33
Observações
34
Convergência
•
Muitas vezes, utiliza-se o valor limiar 0
•
A ordem das actualizações dos neurónios é aleatória mas cada
neurónio tem que ser actualizado com a mesma frequência
•
Não é relevante se as entradas/activações são binárias ou bipolares
•
Não é relevante se o estímulo externo se mantém ou não após a
primeira iteração
•
Teorema de Lyapunov
Se relativamente a um sistema, existe uma função não crescente do
estado e limitada inferiormente, designada função de energia, então o
sistema evolui para estados de equilíbrio.
•
Hopfield mostrou que a rede de Hopfield discreta converge para um
estado limite, ao considerar a seguinte função de energia (de Lyapunov)
do sistema
E=−
– Em [Hopfield 1982] o estímulo externo não se mantém após a
primeira iteração
– Em [Hopfield 1984] o estímulo externo mantém-se durante
todo o processo
DM / UAç
Redes Neuronais 07/08
Redes Neuronais 07/08
35
DM / UAç
1
∑∑ yi y j wij − ∑i xi yi +∑i θi yi
2 i≠ j j
Redes Neuronais 07/08
36
Convergência
•
•
•
Capacidade de memorização
A variação ∆yi induz
•
⎛
⎞
∆E = −⎜⎜ ∑ y j wij +xi − θ i ⎟⎟
j
⎝
⎠
Hopfield (1984)
– O número de padrões binários que podem ser memorizados é
aproximadamente 15% do número de neurónios da rede.
⎛
⎞
∆E = −⎜⎜ ∑ y j wij +xi − θ i ⎟⎟∆yi
⎝ j
⎠
se ∆yi > 0, ∑ y j wij +xi − θ i > 0, ∆E < 0
j
•
se ∆yi = 0, ∑ y j wij +xi − θ i = 0, ∆E = 0
•
McEliece, Posner, Rodemich e Venkatesh, (1987)
j
se ∆yi < 0, ∑ y j wij +xi − θ i < 0, ∆E < 0
j
•
∆E≤0 e como a energia é limitada inferiormente, a rede tem que encontrar
um estado de equilíbrio
DM / UAç
Redes Neuronais 07/08
37
•
Kosko 1988
•
Rede de memória heteroassociativa (recorrente)
•
Tem dois níveis (camadas) de neurónios (X e Y) ligados através de
ligações bidireccionais
A rede envia, iterativamente, informação entre os dois níveis até
atingir o equilíbrio
•
Matriz dos pesos das ligações é simétrica (wij=wji)
•
Não existe ligação de um neurónio para o próprio (wii=0)
DM / UAç
Redes Neuronais 07/08
DM / UAç
Redes Neuronais 07/08
38
Arquitectura
Rede de Memória Associativa Bidireccional (BAM)
•
– O número de padrões bipolares que podem ser memorizados é
aproximadamente n/2log2n, onde n denota o número de
neurónios
39
n1
11
11
DM / UAç
i1
1j
ij
Redes Neuronais 07/08
ni
im
nm
40
BAM discreta
Algoritmo de Memorização (BAM discreta)
•
•
As duas formas da BAM bivalentes (bipolar/binária) são muito parecidas
Para memorizar um conjunto de P pares de vectores binários
s(p):t(p), p=1,…,P a matriz de pesos W={wij} é dada por:
wij = ∑ (2 si ( p ) − 1)(2t j ( p ) − 1), i ≠ j
P
•
A memorização é feita, tal como para a rede de Hopfield
–
p =1
soma dos produtos exteriores do formato bipolar dos pares de vectores
de treino
•
•
Para memorizar um conjunto de P pares de vectores bipolares
s(p):t(p), p=1,…,P a matriz de pesos W={wij} é dada por:
A função de activação é a função de Heaviside com a possibilidade do limiar
ser diferente de zero.
P
wij = ∑ si ( p )t j ( p ), i ≠ j
p =1
DM / UAç
Redes Neuronais 07/08
Função de activação
•
DM / UAç
41
0.
Calcular a matriz dos pesos W (regra de Hebb) e desactivar todas
as unidades (inicializar activações a 0)
1. Repetir para todos os vectores de estímulos s:t
I. Activar
⎧1 se xini > 0
⎪
xi = ⎨ xi
se xini = 0
⎪
⎩0 se xini < 0
yj=tj, j=1,…,m
xi=si, i=1,…,n
II. Repetir até convergir
n
y j = f yin j
a)
yin = xi wij
j
•
Bipolar
( )
∑
i =1
ecoar o sinal para o nível X
⎧1 se yin j > θ j
⎪⎪
y j = ⎨ y j se yin j = θ j
⎪
⎩⎪− 1 se yin j < θ j
DM / UAç
42
Algoritmo de exame à memória
Binária
⎧1 se yin j > 0
⎪⎪
y j = ⎨ y j se yin j = 0
⎪
⎪⎩0 se yin j < 0
Redes Neuronais 07/08
b)
⎧1 se xini > θ i
⎪
xi = ⎨ xi
se xini = θ i
⎪
⎩− 1 se xini < θ i
Redes Neuronais 07/08
m
xini = ∑ y j w ji
j =1
( )
xi = f xini
ecoar o sinal para o nível Y
43
DM / UAç
Redes Neuronais 07/08
44
Observações
•
BAM contínua
•
Transforma de forma contínua entradas em saídas no intervalo [0,1].
•
Estímulo recebido por cada unidade
Quando a entrada é igual ao limiar, a activação da unidade não se
altera
n
m
•
Algoritmo está feito para no inicio o sinal ser enviado do nível X para
o nível Y
Redes Neuronais 07/08
•
1
1+ e
− xini
DM / UAç
( )
y j = f yin j =
1
1+ e
Redes Neuronais 07/08
− yin j
46
Apagar memória
Função de energia é
(
r
r
1 r r
E = − x Wy T + y T W T x
2
r rT
= − x Wy
m
)
j =1 i =1
m
•
Seja x um vector bipolar. Vector complemento de x, denotado por
xc, é o vector que se obtêm de x substituindo os 1’s por -1’s e os -1’s
por 1’s.
•
Memorizar s:t é equivalente a memorizar sc:tc
•
Apagar s:t é equivalente a memorizar sc:t ou s:tc
n
= −∑∑ xi wij y j
n
≥ −∑∑ | wij | (para funções de activação binárias/bipolares)
j =1 i =1
•
xi = f xini =
45
Convergência
A função de activação é a função sigmóide
( )
O envio dos sinais entre os dois níveis não é feito simultaneamente
DM / UAç
i =1
j =1
•
•
yin j = b j + ∑ xi wij
xini = bi + ∑ y j w ji
[Kosko 1992] - a função E é decrescente á medida que se vai iterando,
quer para actualizações assíncronas ou síncronas.
DM / UAç
Redes Neuronais 07/08
47
DM / UAç
Redes Neuronais 07/08
48
Capacidade de memorização
•
O número de padrões que pode ser memorizado é min(n,m)
•
[Haines, Hecht-Nielsen 1988] : O número de padrões que pode ser
memorizado é min(2n,2m), desde que limiar seja diferente de zero
DM / UAç
Redes Neuronais 07/08
49
Download

j - Hélia Guerra - Universidade dos Açores