Herramienta Redes Neuronales Neural Networks with java Herramienta Redes Neuronales
Herramienta Redes Neuronales Neural Networks with java
       
 

 

Menu

Introducción
a las Redes Neuronales
API del
Marco de trabajo
Tutorial
Marco de
Trabajo
JRedesNeruonales
Downloads
Hompage
Marco de
trabajo

 

 


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.

 

INDICE