El aprendizaje competitivo es una forma de aprendizaje no supervisado en redes neuronales artificiales , en la que los nodos compiten por el derecho a responder a un subconjunto de los datos de entrada. [1] [2] Una variante del aprendizaje hebbiano , el aprendizaje competitivo funciona aumentando la especialización de cada nodo de la red. Es muy adecuado para encontrar clústeres dentro de los datos.
Los modelos y algoritmos basados en el principio de aprendizaje competitivo incluyen la cuantificación vectorial y los mapas autoorganizados (mapas de Kohonen).
Hay tres elementos básicos en una regla de aprendizaje competitivo: [3] [4]
En consecuencia, las neuronas individuales de la red aprenden a especializarse en conjuntos de patrones similares y al hacerlo se convierten en "detectores de características" para diferentes clases de patrones de entrada.
El hecho de que las redes competitivas recodifiquen conjuntos de entradas correlacionadas en una de unas pocas neuronas de salida elimina esencialmente la redundancia en la representación, que es una parte esencial del procesamiento en los sistemas sensoriales biológicos . [5] [6]
El aprendizaje competitivo se suele implementar con redes neuronales que contienen una capa oculta que comúnmente se conoce como “capa competitiva”. [7] Cada neurona competitiva se describe mediante un vector de pesos y calcula la medida de similitud entre los datos de entrada y el vector de pesos .
Para cada vector de entrada, las neuronas competitivas “compiten” entre sí para ver cuál de ellas es la más similar a ese vector de entrada en particular. La neurona ganadora m establece su salida y todas las demás neuronas competitivas establecen su salida .
Generalmente, para medir la similitud se utiliza la inversa de la distancia euclidiana: entre el vector de entrada y el vector de peso .
A continuación se muestra un algoritmo de aprendizaje competitivo simple para encontrar tres grupos dentro de algunos datos de entrada.
1. (Configuración) Supongamos que un conjunto de sensores alimenta tres nodos diferentes, de modo que cada nodo esté conectado a todos los sensores. Supongamos que los pesos que cada nodo asigna a sus sensores se establecen aleatoriamente entre 0,0 y 1,0. Supongamos que la salida de cada nodo es la suma de todos sus sensores, y que la intensidad de la señal de cada sensor se multiplica por su peso.
2. Cuando se muestra una entrada a la red, el nodo con la salida más alta se considera ganador. La entrada se clasifica dentro del grupo correspondiente a ese nodo.
3. El ganador actualiza cada uno de sus pesos, moviendo el peso de las conexiones que le dieron señales más débiles a las conexiones que le dieron señales más fuertes.
De este modo, a medida que se reciben más datos, cada nodo converge hacia el centro del clúster que ha llegado a representar y se activa más fuertemente para las entradas de este clúster y más débilmente para las entradas de otros clústeres.