El aprendizaje competitivo es una forma de aprendizaje no supervisado en redes neuronales artificiales , en el que los nodos compiten por el derecho a responder a un subconjunto de datos de entrada. [1] [2] Una variante del aprendizaje hebbiano , el aprendizaje competitivo funciona aumentando la especialización de cada nodo en la red. Es muy adecuado para encontrar grupos dentro de datos.
Los modelos y algoritmos basados en el principio del aprendizaje competitivo incluyen la cuantificación de vectores y mapas autoorganizados (mapas de Kohonen).
Hay tres elementos básicos para 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 recodifican conjuntos de entradas correlacionadas en una de unas pocas neuronas de salida esencialmente elimina la redundancia en la representación, que es una parte esencial del procesamiento en los sistemas sensoriales biológicos . [5] [6]
El aprendizaje competitivo generalmente se implementa 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 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 .
Habitualmente, 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). Deje que un conjunto de sensores se alimente a tres nodos diferentes, de modo que cada nodo esté conectado a cada sensor. Deje que los pesos que cada nodo asigna a sus sensores se establezcan aleatoriamente entre 0,0 y 1,0. Sea la salida de cada nodo la suma de todos sus sensores, multiplicando la intensidad de la señal de cada sensor por su peso.
2. Cuando se muestra una entrada a la red, el nodo con el mayor rendimiento se considera ganador. La entrada se clasifica como dentro del clúster 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.
Por lo tanto, a medida que se reciben más datos, cada nodo converge en el centro del grupo que ha llegado a representar y se activa con más fuerza para las entradas de este grupo y más débilmente para las entradas de otros grupos.