Red Competitiva.
Las redes de aprendizaje
competitivo se diferencian de las otras redes neuronales en que en las
anteriores redes las neuronas colaboran en la representación
de los patrones, sin embargo, en este tipo de redes cada neurona compite
con las otras neuronas para representar los patrones.
El aprendizaje
de este tipo de redes es como su nombre indica, competitivo.
Las neuronas compiten en cual representa mejor al patrón y la
ganadora se lleva todo el aprendizaje de ese patrón. El objetivo
de este tipo de redes es que se formen grupos de patrones, categorías,
que son representados por cada neurona.
Cuando ejecutamos
un patrón en una red competitiva solamente se activa una neurona
que es la que representa mejor el patrón.
Este tipo de redes
fue desarrollado por Rumelhart y Zipser en 1985 aunque a partir de él
se han diversificado sus aplicaciones y modificaciones dando lugar a
redes tan interesantes como las redes de kohonen y otras.
Este es el ejemplo
de red competitiva más simple que podemos encontrar ya que no
introduce ninguna mejora.
Arquitectura
Las redes competitivas
son usualmente bicapas Esta red admite valores binarios o bipolares
como entrada para los sensores y su salida es en el mismo formato de
la entrada.
La función
de la primera capa es hacer de sensor, por ella entran los patrones
a la red y por tanto debe tener el mismo tamaño que la longitud
del patrón.
La segunda capa
tiene tantas neuronas como categorías deseemos. Sin embargo,
algunas redes competitivas, como la familia de las ART, crean neuronas
dinámicamente para ajustar el número de categorías
automáticamente.
Ambas capas están
interconexionadas esto es todas las neuronas de la capa de sensores
estarán interconectadas con todas las neuronas capa de salida.
Dinámica de la red
El objetivo de
ejecutar un patrón en una red competitiva, es saber a que categoría
pertenece. La red activará una de las neuronas de salida estableciendo
su estado a uno mientras que el resto de las neuronas tendrá
su estado a cero. En otras palabras, Ejecutar un patrón en la
red de consiste en enviar un patrón, actualizar las neuronas
de la capa de salida y tomar la neurona que se ha activado como la ganadora
y que representa al patrón.
1. Se establece
el patrón de entrada en la capa de entrada.
2. Se actualizan las neuronas de la capa de procesamiento.
3. A la neurona ganadora, la que tiene mayor estado, establecemos su
estado a 1 y los estados del resto de las neuronas los anulamos
Las neuronas de actualizan de la siguiente manera:
Sea
el potencial de la neurona i,
El peso asociado a la sinapsis que une las neuronas i de la capa actual
y j de la capa de sensores.
El estado del sensor j
Entonces
Y el estado de
la neurona y la función de salida es la función identidad
Cada categoría, es decir cada neurona de la capa de salida, tiene
un patrón que representa a los patrones que se representan con
ella.
Para hallar este patrón solo debemos tomar los valores de los
pesos que unen la neurona con la neurona de entrada. Esto se puede observar
gráficamente en la siguiente figura.
El patrón
esta formado por las sinapsis que llegan a la neurona.
Se observa fácilmente en la figura de la derecha.
El patrón que representaría a la categoría 1 es
el formado por (S11, S21, S31) y el patrón de la categoría
2 es el formado por el patrón (S12, S22, S32).
Aprendizaje de la red
El aprendizaje
de esta red se basa en comparar los patrones con los pesos sinápticos
que llegan a las neuronas de salida. La función actualizar de
la neurona asigna valores mayores a las neuronas de salida que representan
mejor el patrón.
Una vez que sabemos
cual es la neurona ganadora, hacemos que sus pesos se acerquen aún
más a los patrones para que lo aprendan.
1. Inicializamos
los pesos sinápticos a valores aleatorios y pequeños (cercanos
a cero).
2. Para cada patrón de la lista P
3. Se establece el patrón de entrada de P en los sensores, la
capa de entrada.
4. Se hace que las neuronas de la capa de salida se actualicen sus estados
a los valores de la capa de entrada.
5. Se halla la neurona ganadora que es la que tiene mayor estado.
6. Solicitar que aprendan las sinapsis que llegan la neurona ganadora.
La manera que tienen las sinapsis de aprender es la siguiente:
Sea
El estado de la neurona i de la capa de entrada
El peso actual asociado a la sinapsis que une la neurona i y la
neurona ganadora de la capa de salida.
El estado de la neurona j de la capa de salida
El peso actualizado.
N es un parámetro que se decremento según el número
de patrones
asociados a la categoría.
Entonces
N tiene que tener
un valor aproximado a 0.8 cuando no hay valores asociados a la neurona
ganadora , en cambio llegara a 0.1 cuando halla muchos patrones asociados
a la neurona ganadora.
Se puede ver en la figura de la derecha que representa una aproximación
a esta función
Esta red tiene
el problema de las neuronas muertas. Son neuronas de la capa de salida
que no han ganado nunca y no representan ningún grupo de patrones
y por tanto no sirven para nada , para solucionarlo podemos tomar varias
soluciones, como repartir los primeros patrones entre los pesos con
lo cual al menos todas las neuronas habrán ganado una vez. Otra
solución es añadir un parámetro que reste al estado
según el número de veces que gane así las neuronas
que no ganen nunca tendrán más posibilidades de ganar.