Redes Competitivas
Características
• Arquitectura:
• 1 nivel
• Full-connected
• Aprendizaje:
• no supervisado
• por parejas
• pesos fijos
• Función de activación
• fa = 1 para la/s neurona/s ganadora/s
• fa = 0 para el resto de neuronas
Redes Competitivas
• Normalmente una red asocia:
 f

x
 y
• En las redes competitivas la salida representa una categoría. Clasifican
las entradas en clases.
• En las Redes Competitivas se dispara una (o unas pocas) neuronas.
• La regla es:
“ El ganador se lo lleva todo “
Redes Competitivas
•Ejemplos:
- MAXNET. Gana 1 neurona.
- SOMBRERO MEJICANO. Ganan varias.
• Los algoritmos de competición implementados con redes normalmente
tienen los pesos fijos.
• Las redes competitivas acostumbran a ser no supervisadas.
• Otras redes combinan la competición con el aprendizaje. En estos casos la
red competitiva es una subnet.
Aplicaciones de las Redes Competitivas
• Clustering. Clasificación no supervisada.
•Cuantificación vectorial  Reducción de dimensiones:
(V 1 ,V 2 ,..., Vn )  (V 1 ,V 2 ,..., Vm)
con m  n
• Extracción de características
• Refuerzo. No se le da un patrón de salida, sino un refuerzo positivo o
negativo en función de si el resultado era el esperado o no.
Maxnet
w11
La función de activación es:
x1
1
f(x)
w22
w21
x2
w12
2
wm1
w1m
...
x
wm 2
xm
wmm
m
0
w2 m
x
yi  f ( x)  
0
si
x0
en
caso
contrario
Algoritmo
1.- Inicialización.
1 si i  j
ij  
 si i  j
(0   
1
),
m  n º neuronas
m
2.yi (0)  xi


yi (t  1)  f  yi (t )    y j (t ) 
i j


3.- Repetir el paso 2 hasta que sólo quede una neurona  0  será la ganadora.
El Sombrero Mejicano
i-5
i-4
i-3
i-2
i-1
i
i+1
i+2
R1
R2
i+3
i+4
i+5
El Sombrero Mejicano
Los pesos de la región de cooperación han de ser positivos y los de la región
de competición negativos.
(1)
ij
0
( 2)
ij
0
w
w


yi (t  1)  f  xi   wii k yi  k (t )
k


El Sombrero Mejicano
La función de activación es la función rampa:
f(x)
m
0
m
x
0

yi  f ( x)   x
m

si
x0
si
0 xm
si
xm
Algoritmo
1.- Inicialización.



(1)
wij  C1  0 

( 2)
wij  C2  0 

tmax , R1 , R2
2.- Cálculo de la salida.
R1
 R1 1
R2


yi (t  1)  f C1  yi  k (t )  C2  yi  k (t )  C2  yi  k (t )
k   R2
k  R1 1
 k   R1

Algoritmo
3.- Repetir el paso 2 tmax veces.
Aprendizaje Competitivo
Algoritmo de aprendizaje competitivo
x1
w11
w21
w31
w12
x2
w22
w32
w13
x3
w33
w23
w24
w14
w34
Algoritmo competitivo básico. Método distancia euclídea
• Inicializar los pesos a valores aleatorios
• Ajustar , por ejemplo, con
• Seleccionar un patrón

x
 (t+1)   (t)
p
p

• Encontrar la neurona
w j más próxima a x por ejemplo con la distancia

euclídea d ( x , w j )
• Actualizar

w j solamente


p 
w j (t  1)  w j (t )   ( x  w j (t ))
Algoritmo competitivo básico.
Método producto escalar
- Inicializar los pesos aleatoriamente
- Normalizar entradas y pesos:


x'
x 
x'
x'i
xi   
x'


w'
w 
w'
w'ij

wj   
wj
x'i
( x'1  x'2 ...  x'n )
2
2
2
w'ij
( w'1 j  w'2 j ...  x 'nj )
2
2
2


- En este caso dos vectores x y w j son similares cuando:
 
 
o sea,
x  w j  x  wk
k  j
 
 
x  w j  cos( j )  x  wk  cos( k )
k  j
Aprendizaje
Es decir,
cos( j )  cos( k )
k  j
ya que
 
x , wj  1
Se selecciona la unidad ganadora ki y se ajustan sus pesos:


 
w' j (t  1)  w j (t )   ( x  wij (t ))
donde 0 <  < 1 es el coeficiente de aprendizaje.
Los vectores de pesos obtenidos se han de normalizar:

wij (t  1)

w j (t  1)  
wj (t  1)
Ejemplos de Aprendizaje
x2 w2
w2

w1

wi (t )


 ( x  wi (t ))

wi (t  1)

x

w3
w1
x1 w1

w2
a)
b)
Ejemplo de aprendizaje (método producto escalar)
x1
w11
w21
w12
x2
- Tenemos en cuenta esta arquitectura
para el siguiente ejemplo de
aprendizaje competitivo simple.
- Se han omitido las interconexiones
entre neuronas por simplicidad.
w22
- Consideramos:
w13
w23

w1 (t )  ( w11 , w21 )

w2 (t )  ( w12 , w22 )

w3 (t )  ( w13 , w23 )
p
x  ( x1 , x2 )
Ejemplo de aprendizaje (método producto escalar)
- Inicializamos los pesos
aleatoriamente y los normalizamos

w1 (1)

w2 (1)

4 3
w1 (1)  (4,3)  ( , )
5 5

w2 (1)  (6,0)  (1,0)

w3 (1)

3 4
w3 (1)  (3,4)  ( ,
)
5 5
Ejemplo de aprendizaje (método producto escalar)
p
x

w2 (1)
- Proporcionamos una entrada:
p
x  (0,1)

w1 (2)

w1 ' (2)

w1 (1)
- Buscamos el peso más cercano
mediante el producto escalar
p 
3
x w1 (1) 
5
p 
x w2 (1)  0

w3 (1)
p 
4
x w3 (1) 
5

w
- Entrenamos la neurona ganadora 1 (1) donde  = 0.5



p 
4 3
4 3
2 4
w1 ' (t  1)  w1 (t )   ( x  w1 (t ))  w1 ' (2)  ( , )  0.5((0,1)  ( , ))  ( , ))
5 5
5 5
5 5

- Normalizando conseguimos el nuevo w1 (2)

2 4 norm 
5 2 5
w1 ' (2)  ( , )  w1 (2)  (
,
)
5 5
5
5
Ejemplo de aprendizaje (método producto escalar)
- Entramos un segundo patrón x
p
x  (1,0)

w1 (2)

w2 (2)
- Buscamos el peso más cercano
mediante el producto escalar
p
x

w3 ' (3)

w3 (3)

w3 (2)
p 
x w1 (2) 
5
5
p 
x w2 (2)  1
p 
3
x w3 ( 2) 
5

w
- Entrenamos la neurona ganadora 3 (2) donde  = 0.5



p 
3 4
3 4
4 2
)  0.5((1,0)  ( ,
))  ( ,
))
w1 ' (t  1)  w1 (t )   ( x  w1 (t )) w3 ' (3)  ( ,
5 5
5 5
 5 5
- Normalizando conseguimos el nuevo w3 (3)

4  2 norm 
2 5  5
w3 ' (3)  ( ,
)  w3 (3)  (
,
)
5 5
5
5
Ejemplo de aprendizaje (método producto escalar)
- Importa el orden con el que damos los patrones a nuestra red?
1
x  (1,0)
2
x  (0,1)

w1 (3)
1
x  (0,1)
p
x
2
x  (1,0)

w1 (3)

w1 (1)

w1 (2)
p
x

w2 (3)

w2 (3)

w3 (3)

w3 (3)
- Se puede apreciar que el resultado del entrenamiento es distinto.
Comentarios
•  < 1 es el coeficiente de aprendizaje. Puede ser constante o ir
disminuyendo durante el aprendizaje
• Si sólo hubiese un vector por neurona, bastaría con hacer:


wi  x
•Si se tiene un conjunto de vectores para cada neurona, los pesos han de
tender a la media del conjunto de vectores:


{xi }  wi


 xi  xi


wi  media ( xi )
Comentarios
•Inicialización de pesos:
- Mas sencillo si se normalizan pesos y entradas y utilizar como medida
el producto escalar.
- Aleatoriedad en la distribución de los pesos  problemas de
aprendizaje:
1.- Los vectores de una misma clase disparan más de una neurona.
2.- No poder separar dos clases de vectores.
Comentarios
- No se puede determinar cómo serán las entradas  redistribuir los
pesos en función de las entradas;
-Combinación convexa. Inicializar los pesos a:
j 
1
n
donde n es el número de entradas.
Las entradas también se modifican:
xi   xi 
1
(1   )
n
con  inicialmente muy pequeño y aumenta hasta 1.
Así inicialmente las entradas coinciden con los pesos y a medida
que se entrena la red las entradas se acercan a sus valores reales y
los pesos siguen a una o un grupo de entradas.
• Funciona bien pero es lenta.
Algoritmo K-means Clustering


• Inicializar k prototipos ( w1 ,..., wk )


• wi  x j
i  1,..., k , j  1,..., p

• Cada cluster C se asocia con un prototipo wi
i
• Repetir

• Para cada x j hacer

x j  Ci más próximo
• Para cada Ci hacer




x j  wi*  x j  wi

1
wi 
# Ci
k
• Calcular el error
E
 
i 1

 wi

 x j el centroide de las entradas
jCi


x j  wi
2
jCi
• Hasta que E no decrece o las clases no cambien
Algoritmo K-means Clustering
• Es similar al algoritmo competitivo básico como algoritmo de cluster
• Aquí no se actualiza la neurona ganadora sino los centroides de los
clusters
• El número de clusters k es fijo, como en el competitivo básico. La
elección de k no es sencilla.
• Si se quiere un algoritmo que adapte k podemos penalizar el
aumento. Ek= E . k (coste por cluster)
• Problemas con los mínimos locales. Soluciones no-óptimas
Ejemplo K-means
Mapas de Kohonen
Mapas de Kohonen
Kohonen planteó las redes competitivas por similitud con el sistema
nervioso humano:
• Estudios neurobiológicos   organización topológica cerebral.
• Información biológica  Mapas bidimensionales.
• Unidades cercanas  Comportamiento Similar / Inverso.
Ex: Mapas Tonotópicos  Neuronas próximas detectan sonidos
similares.).
• Las redes de Kohonen tienen 2 características:
1.- Neuronas con conexiones laterales.
2.- Plasticidad sináptica hebbiana.
Formación de mapas
autoorganizativos
(Mapas de Kohonen)
Teuvo Kohonen
Mapas Autoorganizativos de Kohonen
1.- Seleccionar la topología que determina la adyacencia de los nodos

2.- Inicializar los pesos con valores pequeños y aleatorios w j
3.- Inicializar la distancia
R(0) > 0 R(t)  N

4.- Seleccionar la entrada x
i
 
5.- Calcular la distancia Euclídea d ( w j , xi ) j
6.- Seleccionar la “j” cuya “d” es mínima
7.- Actualizar los nodos con una distancia topológica < R(t)




w j (t  1)  w j (t )   (t )( xi  w j (t ))
0   (t )   (t  1)  1
0  R(t )  R(t  1)  R(0)
8.- t = t+1;
9.- Fin.
Radio de influencia
• Iterando con el método de Kohonen los pesos se van organizando en una
estructura reticular organizada.
R=1
R=0
Mapa de Kohonen
Mapa autoorganizativo 2D
Mapa autoorganizativo 1D
Mapa autoorganizativo
Mapa autoorganizativo
Mapa autoorganizativo
Descenso del gradiente

• El error para una entrada xi y la neurona ganadora sólo depende
de los pesos:
Ep 
1
(w

2
ij
p 2
i
x )
E  f ( wij )
j
• El incremento de pesos es:
wij  
E
wij
donde
wij  xi

wij 0
E
wij   ( wij  xi )
si j gana
en caso contrario
wij (t  1)  wij (t )   ( xi  wij )
• La red de Kohonen se puede aplicar a:
- al problema del viajante.
- en combinación con otros tipos de redes.
Counterpropagation
Counterpropagation
x1
w11
k
1
y
g
w11
g1
k1
y1
d1
w12
.
.
.
g
g2
y2
d2
w13
xl
k2
g
.
.
.
km
g3
k
ym
w1n
y3
.
.
.
d3
.
.
.
g
gn
Nivel de Kohonen
yn
Nivel de Grossberg
dn
Counterpropagation
•2 Niveles:
- Nivel de Kohonen. No supervisado (competitivo).
- Nivel de Grossberg. Supervisado.
• Es una red supervisada.
• El nivel de Kohonen clasifica y el de Grossberg convierte la
salida al formato deseado (LUT adaptativa).
• Se soluciona el problema de que existan varias neuronas para
representar una clase.
• Los dos niveles aprenden separadamente.
• No tan fiable como Backpropagation, pero aprende más rápido.
Operación Normal
• Nivel de Kohonen.
- “La ganadora se lo lleva todo”.

- Dado un vector de entrada x sólo se dispara una neurona ki y el
resto quedan inhibidas:
kj  0
k j  ki
es decir
i
 
tal que neti  w1i x1  ...  wmi xm  x  wi
k
k
k
k
k
y  ( y1 ,..., yi 1 , yi ,..., ym )  (0,...,0,1,0,...,0)
•Nivel de Grossberg. Funciona de forma normal. La función de
activación suele ser lineal.
g
k
y  f a ( y  wi )
Aprendizaje
• Nivel de Kohonen. Clasifica las entradas en grupos de similitud que activan
la misma neurona (ki).
•Nivel de Grossberg.
1.- Se aplica un vector de entrada (vector de salida del nivel de
Kohonen).
2.- Se calcula la salida.
3.- Se ajustan los pesos que conectan con la neurona de la capa
de Kohonen con salida diferente de 0:
wij (t  1)  wij (t )   ' (d i  wij (t )) ki
donde  ' es el coeficiente de aprendizaje y d ies la salida deseada.