Competição • Na classificação de padrões (e.g., caracteres), quando existem duas ou mais categorias de padrões, pode acontecer que ao apresentar um padrão, mais do que um neurónio responda afirmativamente. • Na prática, pretendemos que apenas um único neurónio da rede responda afirmativamente. • Quando se pretende a resposta afirmativa de apenas um dos neurónios, é possível adicionar informação à rede para que esta seja “forçada” a tomar uma decisão – mecanismo de COMPETIÇÃO • A forma mais extrema de competição é designada “winner take all” • A arquitectura da rede é enriquecida com uma estrutura adicional que na presença de um neurónio dominante iniba todos os outros neurónios da rede. Redes Neuronais Competição Hélia Guerra Departamento de Matemática Universidade dos Açores [email protected] http://www.uac.pt/~hguerra/Teaching/RN/RN.html DM / UAç Competição Redes Neuronais 2 Arquitectura da rede Maxnet Lippmann 1987 • Pode ser usada como parte integrante de outra rede para encontrar o neurónio com maior activação • Cada neurónio está ligado a todos os outros, inclusive com ele próprio 1 • 1 • Redes baseadas na competição – Sem aprendizagem (ie, pesos fixos) • MaxNet • Chapéu mexicano (Mexican Hat) 1 m i j – Com aprendizagem (não supervisionada) • Kohonen • • Learning Vector Quantization (LVQ) Matriz de pesos é simétrica 1 – Com aprendizagem supervisionada 1 • Rede de Hamming • Contrapropagação DM / UAç Redes Neuronais 3 DM / UAç Redes Neuronais 4 Maxnet • Algoritmo Maxnet 0. Atribuir valores iniciais aos pesos (0<ε<1/m) e aos estímulos xi(0), i=1,…,m wij=- ε, i≠j wii=1 Estímulo recebido por cada unidade xini = xivelho − ε ∑ xkvelho 1. Repetir os passos I-II enquanto dois ou mais neurónios estejam sujeitos a estímulo total diferente de zero I. Actualizar a actividade de cada neurónio, i=1,…,m k ≠i • Função de activação de cada unidade ⎞ ⎛ x innovo = f ⎜ xivelho − ε ∑ xkvelho ⎟ i k ≠i ⎠ ⎝ 1 0.8 ⎧ xin xi = f ( xini ) = ⎨ i ⎩0 se xini > 0 0.6 c.c. 0.4 II. Guardar os valores da actividade para próxima iteração x velho = xinovo in 0.2 i -1 DM / UAç -0.5 0.5 Redes Neuronais 1 Exemplo • DM / UAç 5 Redes Neuronais 6 Chapéu Mexicano (Mexican Hat) Considere uma rede Maxnet com 4 neurónios, pesos inibitórios -0.2 com • Kohonen 1989 • Noção de vizinhança para os neurónios mais próximos que activações iniciais [0.2 0.4 0.6 0.8] Iteração x1 x2 x3 x4 0 0,200 0,400 0,600 0,800 1 0,000 0,080 0,320 0,560 2 0,000 0,000 0,192 0,480 3 0,000 0,000 0,096 0,442 4 0,000 0,000 0,008 0,422 5 0,000 0,000 0,000 0,421 – Ajudam (cooperativos) – Inibem (competitivos) – não fazem nada • – “positivos” (excitatórios) – “negativos” (inibitórios) – nulos (sem ligação) • DM / UAç Redes Neuronais Cada neurónio tem pesos 7 Pode ser usada como parte integrante de outra rede para encontrar o neurónio com maior activação DM / UAç Redes Neuronais 8 Chapéu Mexicano (Mexican Hat) Notação • À volta de cada neurónio (xi), existem duas regiões simétricas – Neurónios cooperativos • estão mais próximos, têm pesos positivos e geralmente iguais (w1, …,wk) – Neurónios competitivos • estão mais afastados e têm pesos negativos (wk+1,…,wk+m) – Pode haver neurónios que não estão ligados (xi±(k+m+1)) DM / UAç Redes Neuronais 9 Algoritmo do Chapéu Mexicano (Mexican Hat) 0. Atribuir valores a tmax, R1 e R2. • R1 alcance para neurónios cooperativos • R2 alcance para neurónios competitivos (R1<R2) • wk peso entre os neurónios xi e xi±k • x vector de activações • xvelho vector de activações do tempo anterior • tmax número total de iterações • s sinal exterior DM / UAç Redes Neuronais 10 Algoritmo do Chapéu Mexicano (Mexican Hat) 2. Repetir enquanto t<tmax I. Actualizar estímulo recebido por cada neurónio, i=1,…,n Atribuir valores iniciais aos pesos wk=C2(<0), k=R1+1,…,R2 wk=C1(>0), k=1,…,R1 xi = C1 Atribuir valores iniciais aos estímulos xi(0)=0, i=1,…,n R1 − R1 −1 k = − R1 k = − R2 + C2 ∑ xinvelho i+k + C2 ∑ xinvelho i+k R2 ∑x k = R1 +1 velho ini + k II. Actualizar actividade de cada neurónio , i=1,…,n ( ) 1. Activar xi=si, i=1,…,n xi = f xini III. Guardar os valores da actividade para próxima iteração t=1 x velho = xinovo i IV. t=t+1 DM / UAç Redes Neuronais 11 DM / UAç Redes Neuronais 12 Exemplo • Exemplo X1 X2 X3 X4 X5 X6 X7 0,000 0,500 0,800 1,000 0,800 0,500 0,000 1,160 1,060 0,380 -0,020 0,000 0,380 1,060 1,160 1,060 0,380 0,000 -0,196 0,400 1,136 1,664 1,136 0,400 -0,196 0,000 0,400 1,136 1,664 1,136 Considere uma rede Chapéu Mexicano com 7 neurónios; R1=1, R2=2; C1=0.6, C2=-0.4; s=[0.0 0.5 0.8 1.0 0.8 0.0] 1,060 -0,0200.50,380 X1 X2 X3 X4 0,000 0,500 0,800 1,000-0,214 0,800 0,256 1,4660,500 2,042 -0,020 0,380 1,060 0,256 1,1600,000 1,060 1,466 0,000 0,380 1,060 1,160 1,060 -0,196 0,400 1,136 1,664 1,136 -0,433 X5 0,233 X6 2,000 0,380 1,647 2,754 0,380 0,400 X7 0,400 0,000 0,0000,256 1,466 -0,214 -0,0200,256 0,000 1,466 1,647 0,000 0,233 2,500 2,000 1,500 t=0 t=1 -0,433 t=2 1,000 t=3 -0,196 0,000 0,400 1,136 1,664 1,136 0,400 0,000 -0,214 0,256 1,466 2,042 1,466 0,256 -0,214 0,000 0,256 1,466 2,000 1,466 0,256 0,000 0,500 0,000 X1 DM / UAç Redes Neuronais X4 X5 X6 X7 Redes Neuronais 14 Rede de Hamming • • X3 DM / UAç 13 Rede de Hamming X2 Lippmann 1987, DARPA 1988 A medida de semelhança entre dois vectores x e y de dimensão n é dada por n-H(x,y), onde H(x,y) é a distância de Hamming • Rede classificadora de máxima verosimilhança • Encontra, entre vários padrões memorizados, o padrão mais parecido com determinado padrão • Padrões memorizados determinam os pesos da rede DM / UAç Redes Neuronais 15 • Distância de Hamming entre dois vectores binários ou bipolares, denotada por H(x,y), corresponde ao número de componentes homólogas dos vectores que são diferentes. • A distância média de Hamming é dada por H(x,y)/n DM / UAç Redes Neuronais 16 Arquitectura da rede de Hamming Algoritmo de Hamming 0. Atribuir valores iniciais aos pesos e pendores wij=0.5xi(j) i=1,…,n, j=1,…,m bj=0.5n j=1,…,m 2. Repetir para todo o vector de estímulos x I. Actualizar estímulo recebido por cada neurónio yj, j=1,…,m n yin j = ∑ xi wij + b j i =11 II. Inicializar activações para a MaxNet, j=1,…,m y j (0) = yin j III. Executar algoritmo Maxnet para encontrar o vector memorizado mais parecido com o vector de estímulos DM / UAç Redes Neuronais Exemplo • e(1)= [1 -1 -1 -1] e(2)= [-1 -1 -1 1]. • b = [2 2] Classificar os vectores [1 1 -1 -1] , [1 -1 -1 -1] , [-1 -1 -1 1] e [-1 -1 1 1] DM / UAç Redes Neuronais 18 Mapas auto-organizáveis de Kohonen Considere uma rede de Hamming. Memorize os seguintes vectores ⎡ 0.5 − 0.5⎤ ⎢− 0.5 − 0.5⎥ ⎥ W =⎢ ⎢− 0.5 − 0.5⎥ ⎥ ⎢ 0.5⎦ ⎣− 0.5 DM / UAç 17 Redes Neuronais 19 • Kohonen 1989 • Aprendizagem não supervisionada e competitiva • Agrupamento de padrões • Neurónios classificadores organizados em grelha unidimensional ou bidimensional • Durante a aprendizagem – Neurónio com pesos mais próximos do vector de treino é o vencedor – Grau de proximidade entre neurónios é medido através do quadrado da distância Euclideana – Os pesos do neurónio vencedor e seus vizinhos são actualizados. DM / UAç Redes Neuronais 20 Arquitectura de Kohonen Aprendizagem de Kohonen • Os pesos do neurónio vencedor (yj) são ajustados de acordo com a seguinte regra w .novo = w .velho + α (x − w .velho ) j j j = α x + (1 − α )w .velho j onde – x denota o vector de entrada para ser classificado – w.j denota o vector de pesos para a unidade yj – α denota o coeficiente de aprendizagem DM / UAç Redes Neuronais 21 DM / UAç Xi Xn Redes Neuronais Redes Neuronais 22 Arquitectura de Kohonen (topologia rectangular com vizinhança de raio R=0,1,2,3) Arquitectura de Kohonen (topologia rectangular) X1 DM / UAç X1 23 DM / UAç Xi Xn Redes Neuronais 24 Arquitectura de Kohonen (topologia haxagonal com vizinhança de raio R=0,1,2) Algoritmo de kohonen 0. Atribuir valores iniciais aos pesos Definir vizinhança V Atribuir valor inicial ao coeficiente de aprendizagem 1. Repetir até se verificar a condição de paragem I. Repetir para todo o vector de estímulos x m a) D( j ) = ∑ ( wij − xi ) 2 , j=1,…m i =1 b) Encontrar índice J de neurónio com o menor quadrado da distância Euclideana, ie, D(J)=min{D(j):j=1,…,m} c) Actualizar pesos para todo j∈V(J) w .novo = α x + (1 − α )w .velho J J II. Reduzir o coeficiente de aprendizagem III. Reduzir o raio da vizinhança (opção) DM / UAç Redes Neuronais DM / UAç 25 Algoritmo de kohonen valores iniciais dos pesos podem ser aleatórios • Coeficiente de aprendizagem é função decrescente no tempo (número de épocas) • O raio da vizinhança também pode decrescer à medida que o processo progride • A evolução do coeficiente de aprendizagem e do raio da vizinhança é feita de forma heurística • A aprendizagem pode exigir centenas de épocas • Agrupe os seguintes vectores em dois aglomerados (clusters) [1 0 0 0] , [0 0 0 1], [1 0 0 0] e [0 0 1 1] Considere – topologia linear com raio 0 – α(n+1)=0.5α(n); α(0)=0.6 – Redes Neuronais 26 Exemplo • DM / UAç Redes Neuronais 27 ⎡0.2 ⎢0.6 W =⎢ ⎢0.5 ⎢ ⎣0.9 DM / UAç 0.8⎤ 0.4⎥⎥ 0.7 ⎥ ⎥ 0.3⎦ Redes Neuronais 28 O problema do caixeiro viajante O problema do caixeiro viajante Cidades 1,0000 Cidade A Cidade B Cidade C Cidade D Cidade E Cidade F Cidade G Cidade H Cidade I Cidade J E 0,9000 0,8000 D 0,7000 0,4000 0,2439 0,1707 0,2293 0,5171 0,8732 0,6878 0,8488 0,6683 0,6195 0,4439 0,1463 0,2293 0,7610 0,9414 0,6536 0,5219 0,3609 0,2536 0,2634 F 0,6000 G 0,5000 A 0,4000 0,3000 0,2000 H C B 0,1000 0,0000 0,0000 DM / UAç Redes Neuronais 29 O problema do caixeiro viajante A B C D E F G H I J A 0,0000 0,3361 0,3141 0,3601 0,5111 0,5176 0,2982 0,4564 0,3289 0,2842 B 0,3361 0,0000 0,1107 0,6149 0,8407 0,8083 0,5815 0,6418 0,4378 0,3934 C 0,3141 0,1107 0,0000 0,5349 0,7919 0,8207 0,5941 0,6908 0,4982 0,4501 D 0,3601 0,6149 0,5349 0,0000 0,3397 0,6528 0,5171 0,7375 0,6710 0,6323 E 0,5111 0,8407 0,7919 0,3397 0,0000 0,4579 0,4529 0,6686 0,7042 0,6857 F 0,5176 0,8083 0,8207 0,6528 0,4579 0,0000 0,2274 0,2937 0,4494 0,4654 G 0,2982 0,5815 0,5941 0,5171 0,4529 0,2274 0,0000 0,2277 0,2690 0,2674 H 0,4564 0,6418 0,6908 0,7375 0,6686 0,2937 0,2277 0,0000 0,2100 0,2492 I 0,3289 0,4378 0,4982 0,6710 0,7042 0,4494 0,2690 0,2100 0,0000 0,0498 J 0,2842 0,3934 0,4501 0,6323 0,6857 0,4654 0,2674 0,2492 0,0498 0,0000 Redes Neuronais 0,2000 0,4000 DM / UAç 0,6000 Redes Neuronais 0,8000 1,0000 30 O problema do caixeiro viajante Distância DM / UAç J I 31 X1 DM / UAç X2 Redes Neuronais 32 O problema do caixeiro viajante O problema do caixeiro viajante Posição inicial dos aglom erados e localização das cidades 1ª época ( α =0.5, R=1) 1,0000 1,2000 E 0,9000 1,0000 0,8000 E 0,8000 D 0,6000 C 0,2000 0,0000 -0,2000 0,0000 -0,2000 A 0,4000 H J I G 0,5000 G A F 0,6000 F 0,4000 D 0,7000 0,3000 B 0,2000 H C B 0,1000 0,2000 DM / UAç 0,4000 0,6000 0,8000 1,0000 Redes Neuronais 0,0000 0,0000 33 O problema do caixeiro viajante 0,2000 1,0000 0,8000 0,8000 0,0000 0,0000 DM / UAç A 0,4000 0,3000 J I 0,2000 B 0,2000 G 0,5000 H 0,1000 F 0,6000 G C D 0,7000 A 0,3000 H 0,6000 Redes Neuronais 0,8000 0,0000 0,0000 1,0000 35 DM / UAç J I C B 0,1000 0,4000 34 E 0,9000 0,6000 0,4000 1,0000 Redes Neuronais 1,0000 F 0,5000 0,8000 50ª época (α =0.067649, R=1) D 0,7000 0,6000 O problema do caixeiro viajante E 0,9000 0,4000 DM / UAç 10ª época (α =0.34627, R=1) 0,2000 J I 0,2000 0,4000 0,6000 Redes Neuronais 0,8000 1,0000 36 O problema do caixeiro viajante O problema do caixeiro viajante 100ª época (α =0.00879, R=1) 100ª época (α =0.40205, R=1) 1,0000 1,0000 E 0,9000 0,8000 0,8000 D 0,7000 G 0,2000 C 0,0000 0,0000 0,2000 0,6000 0,8000 0,0000 0,0000 1,0000 Redes Neuronais 37 O problema do caixeiro viajante 200ª época ( α =0.20012, R=0) 1,0000 E 0,9000 0,8000 D 0,7000 F 0,6000 G 0,5000 A 0,4000 0,3000 0,2000 H C B 0,1000 0,0000 0,0000 DM / UAç J I 0,2000 0,4000 0,6000 Redes Neuronais 0,8000 1,0000 39 DM / UAç J I C B 0,1000 0,4000 DM / UAç H 0,3000 B 0,2000 A 0,4000 J I 0,1000 G 0,5000 H 0,3000 F 0,6000 A 0,4000 D 0,7000 F 0,6000 0,5000 E 0,9000 0,2000 0,4000 0,6000 Redes Neuronais 0,8000 1,0000 38