El aprendizaje competitivo es un subcampo del aprendizaje automático que se engloba dentro de los algoritmos de aprendizaje no supervisado. En el aprendizaje competitivo, una red de neuronas artificiales compite por "dispararse" o activarse ante una entrada concreta. La neurona "ganadora", que suele ser la que mejor se ajusta a esa entrada, se actualiza, mientras que las demás quedan sin cambios. La importancia de este método radica en su capacidad para agrupar automáticamente entradas de datos similares, permitiéndonos descubrir patrones y agrupaciones en datos para los que no hay conocimiento previo ni etiquetas.
Qué es el aprendizaje competitivo
Las redes neuronales artificiales suelen emplear modelos de aprendizaje competitivo para clasificar entradas sin datos etiquetados. El proceso comienza con un vector de entrada (a menudo, un conjunto de datos). Esta entrada se presenta a una red de neuronas artificiales, cada una con su propio conjunto de pesos, que actúan como filtros. Cada neurona calcula una puntuación en función de sus pesos y del vector de entrada, normalmente mediante un producto escalar (una forma de multiplicar la información de entrada por el filtro y sumar los resultados).
Tras el cálculo, la neurona con la puntuación más alta (la "ganadora") se actualiza, generalmente acercando sus pesos al vector de entrada. A este enfoque se le conoce como estrategia de "el ganador se lo lleva todo". Con el tiempo, las neuronas se especializan a medida que se actualizan hacia los vectores de entrada que mejor pueden representar. Esto da lugar a la formación de clústeres de datos similares y, por tanto, a descubrir patrones inherentes dentro del conjunto de datos de entrada.
Para ilustrar cómo usar el aprendizaje competitivo, imagina que un eCommerce quiere segmentar su base de clientes para hacer marketing segmentado, pero no dispone de etiquetas ni segmentaciones previas. Al alimentar datos de clientes (historial de compras, patrones de navegación, demografía, etc.) a un modelo de aprendizaje competitivo, podría encontrar automáticamente clústeres diferenciados (como grandes gastadores, compradores frecuentes, cazadores de descuentos) y adaptar sus estrategias de marketing en consecuencia.
El proceso de aprendizaje competitivo: un ejemplo paso a paso
Para esta sencilla ilustración, supongamos que tenemos un conjunto de datos compuesto por vectores de entrada unidimensionales que van del 1 al 10 y una red de aprendizaje competitivo con dos neuronas.
Paso 1: inicialización
Empezamos inicializando los pesos de las dos neuronas con valores aleatorios. Supongamos:
- Peso de la neurona 1: 2
- Peso de la neurona 2: 8
Paso 2: presentar el vector de entrada
Ahora presentamos un vector de entrada a la red. Digamos que nuestro vector de entrada es "5".
Paso 3: calcular la distancia
Calculamos la distancia entre el vector de entrada y los pesos de las dos neuronas. Gana la neurona cuyo peso esté más cerca del vector de entrada. Esto puede calcularse con cualquier métrica de distancia; por ejemplo, la diferencia absoluta:
- Distancia neurona 1: |5-2| = 3
- Distancia neurona 2: |5-8| = 3
Como ambas distancias son iguales, podemos elegir a la ganadora al azar. Supongamos que gana la neurona 1.
Paso 4: actualizar los pesos
Ajustamos el peso de la neurona ganadora para acercarlo al vector de entrada. Si nuestra tasa de aprendizaje (un parámetro de ajuste en un algoritmo de optimización que determina el tamaño del paso en cada iteración) es 0,5, la actualización sería:
- Peso de la neurona 1: 2 + 0,5*(5-2) = 3,5
- Peso de la neurona 2: 8 (sin cambios)
Paso 5: iteración
Repetimos el proceso con todos los demás vectores de entrada del conjunto de datos, actualizando los pesos tras cada presentación.
Paso 6: convergencia
Tras varias iteraciones (también llamadas épocas), los pesos de las neuronas empezarán a converger hacia los centros de sus clústeres de entrada correspondientes. En este caso, con datos unidimensionales que van del 1 al 10, podríamos esperar que una neurona converja alrededor del rango inferior (1 a 5) y la otra alrededor del rango superior (6 a 10).
Este proceso ejemplifica cómo funciona el aprendizaje competitivo. Con el tiempo, cada neurona se especializa en un clúster distinto de los datos, permitiendo al sistema identificar y representar las agrupaciones inherentes del conjunto.
Aprendizaje competitivo frente a otros modelos
Al compararlo con otros modelos de aprendizaje no supervisado, como el clustering jerárquico y el algoritmo Density-Based Spatial Clustering of Applications with Noise (DBSCAN), se hacen evidentes las fortalezas y limitaciones particulares del aprendizaje competitivo.
|
Modelo de aprendizaje
|
Estructura de clúster
|
Número de clústeres
|
Gestión del ruido
|
Formas de clúster
|
Reasignación de puntos de datos
|
|
Aprendizaje competitivo
|
Plano
|
Predefinido (según el número de neuronas)
|
Resistente, pero no diferencia entre ruido y datos sin ruido
|
Generalmente convexo
|
Los puntos quedan fijos una vez asignados
|
|
Clustering jerárquico
|
Jerárquico (en árbol)
|
Se determina tras el análisis
|
Depende de la implementación
|
Generalmente convexo
|
Los puntos pueden reasignarse a medida que se forma el árbol
|
|
DBSCAN
|
Plano
|
Se determina automáticamente según la densidad
|
Excelente, separa ruido de datos válidos
|
Arbitrarias (incluidas no convexas)
|
Los puntos quedan fijos una vez asignados
|
Como muestra la tabla, los tres modelos tienen características distintas que los hacen adecuados para diferentes tipos de problemas. La estructura de los clústeres, su número, cómo gestionan el ruido, las formas que pueden adoptar y si permiten reasignar puntos de datos son factores clave al elegir un modelo.
La elección entre uno u otro dependerá principalmente de los requisitos y la naturaleza de tu conjunto de datos.
El aprendizaje competitivo es idóneo cuando el número de clústeres se conoce de antemano y los datos están repartidos de forma equilibrada entre ellos. Funciona bien si buscas una partición simple y plana de los datos.
Por su parte, el clustering jerárquico es excelente cuando quieres descubrir relaciones jerárquicas en los datos o cuando se desconoce el número óptimo de clústeres. Ofrece flexibilidad para examinar los datos a distintos niveles de detalle.
DBSCAN es una opción ideal para conjuntos con ruido o valores atípicos, o cuando esperas clústeres de formas arbitrarias. Además, determina automáticamente el número de clústeres según la densidad de los datos, lo que resulta útil para el análisis exploratorio cuando ese número no está predefinido.
Recuerda: no hay un modelo único que sirva para todo. Entender las características de tus datos es la clave para seleccionar el adecuado.
Caso de uso práctico del aprendizaje competitivo
Hemos visto que el aprendizaje competitivo se emplea habitualmente para clustering y reducción de la dimensionalidad. Sin embargo, también podemos utilizarlo para el aprendizaje de características, la detección de anomalías e incluso en IA generativa.
Por ejemplo, las redes generativas antagónicas (GAN) son un enfoque de modelado que usa aprendizaje competitivo entre un generador (que crea datos sintéticos) y un discriminador (que evalúa si los datos son reales o falsos) para sintetizar datos falsos que imitan muy de cerca a los reales.
Algunos otros algoritmos comunes de aprendizaje competitivo son:
- Aprendizaje competitivo de "el ganador se lo lleva todo". En este algoritmo sencillo, la neurona con mayor activación "gana" y ajusta sus pesos para acercarse a la entrada. Las demás neuronas no se actualizan.
- Mapa autoorganizado (SOM). Proyecta datos de alta dimensionalidad en una rejilla de neuronas de menor dimensión y ajusta los pesos de las neuronas cercanas para parecerse más a cada entrada.
- Neural gas. Similar a SOM, pero forma clústeres de manera más flexible sin una topología rígida. Los pesos de las neuronas próximas a la entrada se ajustan para ser más similares.
- Learning vector quantization (LVQ). Parte de las ideas de SOM, pero usa etiquetas de clase explícitas para guiar el aprendizaje competitivo, generando prototipos que agrupan las entradas por clase.
El aprendizaje no supervisado puede beneficiarse enormemente del aprendizaje competitivo, un método potente que probablemente gane aún más protagonismo. Aunque los mapas autoorganizados y otros métodos competitivos existen desde hace años, el éxito de las GAN ha demostrado el potencial del aprendizaje competitivo antagónico y multiagente.
En el futuro veremos nuevos algoritmos de aprendizaje competitivo que combinen principios de aprendizaje no supervisado, semisupervisado y por refuerzo para obtener mejores resultados.
Si quieres ensuciarte las manos y crear tu propio modelo de aprendizaje competitivo, echa un vistazo a Simple Competitive Learning with Python. Esta guía te enseñará el algoritmo básico de aprendizaje competitivo y explicará los procesos, las derivaciones matemáticas y el código implicado en el modelo.
¿Quieres aprender más sobre IA y aprendizaje automático? Explora estos recursos:
El aprendizaje competitivo es un subcampo del aprendizaje automático que se engloba dentro de los algoritmos de aprendizaje no supervisado. En el aprendizaje competitivo, una red de neuronas artificiales compite por "dispararse" o activarse ante una entrada concreta. La neurona "ganadora", que suele ser la que mejor se ajusta a esa entrada, se actualiza, mientras que las demás quedan sin cambios. La importancia de este método radica en su capacidad para agrupar automáticamente entradas de datos similares, permitiéndonos descubrir patrones y agrupaciones en datos para los que no hay conocimiento previo ni etiquetas.
Qué es el aprendizaje competitivo
Las redes neuronales artificiales suelen emplear modelos de aprendizaje competitivo para clasificar entradas sin datos etiquetados. El proceso comienza con un vector de entrada (a menudo, un conjunto de datos). Esta entrada se presenta a una red de neuronas artificiales, cada una con su propio conjunto de pesos, que actúan como filtros. Cada neurona calcula una puntuación en función de sus pesos y del vector de entrada, normalmente mediante un producto escalar (una forma de multiplicar la información de entrada por el filtro y sumar los resultados).
Tras el cálculo, la neurona con la puntuación más alta (la "ganadora") se actualiza, generalmente acercando sus pesos al vector de entrada. A este enfoque se le conoce como estrategia de "el ganador se lo lleva todo". Con el tiempo, las neuronas se especializan a medida que se actualizan hacia los vectores de entrada que mejor pueden representar. Esto da lugar a la formación de clústeres de datos similares y, por tanto, a descubrir patrones inherentes dentro del conjunto de datos de entrada.
Para ilustrar cómo usar el aprendizaje competitivo, imagina que un eCommerce quiere segmentar su base de clientes para hacer marketing segmentado, pero no dispone de etiquetas ni segmentaciones previas. Al alimentar datos de clientes (historial de compras, patrones de navegación, demografía, etc.) a un modelo de aprendizaje competitivo, podría encontrar automáticamente clústeres diferenciados (como grandes gastadores, compradores frecuentes, cazadores de descuentos) y adaptar sus estrategias de marketing en consecuencia.
El proceso de aprendizaje competitivo: un ejemplo paso a paso
Para esta sencilla ilustración, supongamos que tenemos un conjunto de datos compuesto por vectores de entrada unidimensionales que van del 1 al 10 y una red de aprendizaje competitivo con dos neuronas.
Paso 1: inicialización
Empezamos inicializando los pesos de las dos neuronas con valores aleatorios. Supongamos:
Paso 2: presentar el vector de entrada
Ahora presentamos un vector de entrada a la red. Digamos que nuestro vector de entrada es "5".
Paso 3: calcular la distancia
Calculamos la distancia entre el vector de entrada y los pesos de las dos neuronas. Gana la neurona cuyo peso esté más cerca del vector de entrada. Esto puede calcularse con cualquier métrica de distancia; por ejemplo, la diferencia absoluta:
Como ambas distancias son iguales, podemos elegir a la ganadora al azar. Supongamos que gana la neurona 1.
Paso 4: actualizar los pesos
Ajustamos el peso de la neurona ganadora para acercarlo al vector de entrada. Si nuestra tasa de aprendizaje (un parámetro de ajuste en un algoritmo de optimización que determina el tamaño del paso en cada iteración) es 0,5, la actualización sería:
Paso 5: iteración
Repetimos el proceso con todos los demás vectores de entrada del conjunto de datos, actualizando los pesos tras cada presentación.
Paso 6: convergencia
Tras varias iteraciones (también llamadas épocas), los pesos de las neuronas empezarán a converger hacia los centros de sus clústeres de entrada correspondientes. En este caso, con datos unidimensionales que van del 1 al 10, podríamos esperar que una neurona converja alrededor del rango inferior (1 a 5) y la otra alrededor del rango superior (6 a 10).
Este proceso ejemplifica cómo funciona el aprendizaje competitivo. Con el tiempo, cada neurona se especializa en un clúster distinto de los datos, permitiendo al sistema identificar y representar las agrupaciones inherentes del conjunto.
Aprendizaje competitivo frente a otros modelos
Al compararlo con otros modelos de aprendizaje no supervisado, como el clustering jerárquico y el algoritmo Density-Based Spatial Clustering of Applications with Noise (DBSCAN), se hacen evidentes las fortalezas y limitaciones particulares del aprendizaje competitivo.
Modelo de aprendizaje
Estructura de clúster
Número de clústeres
Gestión del ruido
Formas de clúster
Reasignación de puntos de datos
Aprendizaje competitivo
Plano
Predefinido (según el número de neuronas)
Resistente, pero no diferencia entre ruido y datos sin ruido
Generalmente convexo
Los puntos quedan fijos una vez asignados
Clustering jerárquico
Jerárquico (en árbol)
Se determina tras el análisis
Depende de la implementación
Generalmente convexo
Los puntos pueden reasignarse a medida que se forma el árbol
DBSCAN
Plano
Se determina automáticamente según la densidad
Excelente, separa ruido de datos válidos
Arbitrarias (incluidas no convexas)
Los puntos quedan fijos una vez asignados
Como muestra la tabla, los tres modelos tienen características distintas que los hacen adecuados para diferentes tipos de problemas. La estructura de los clústeres, su número, cómo gestionan el ruido, las formas que pueden adoptar y si permiten reasignar puntos de datos son factores clave al elegir un modelo.
La elección entre uno u otro dependerá principalmente de los requisitos y la naturaleza de tu conjunto de datos.
El aprendizaje competitivo es idóneo cuando el número de clústeres se conoce de antemano y los datos están repartidos de forma equilibrada entre ellos. Funciona bien si buscas una partición simple y plana de los datos.
Por su parte, el clustering jerárquico es excelente cuando quieres descubrir relaciones jerárquicas en los datos o cuando se desconoce el número óptimo de clústeres. Ofrece flexibilidad para examinar los datos a distintos niveles de detalle.
DBSCAN es una opción ideal para conjuntos con ruido o valores atípicos, o cuando esperas clústeres de formas arbitrarias. Además, determina automáticamente el número de clústeres según la densidad de los datos, lo que resulta útil para el análisis exploratorio cuando ese número no está predefinido.
Recuerda: no hay un modelo único que sirva para todo. Entender las características de tus datos es la clave para seleccionar el adecuado.
Caso de uso práctico del aprendizaje competitivo
Hemos visto que el aprendizaje competitivo se emplea habitualmente para clustering y reducción de la dimensionalidad. Sin embargo, también podemos utilizarlo para el aprendizaje de características, la detección de anomalías e incluso en IA generativa.
Por ejemplo, las redes generativas antagónicas (GAN) son un enfoque de modelado que usa aprendizaje competitivo entre un generador (que crea datos sintéticos) y un discriminador (que evalúa si los datos son reales o falsos) para sintetizar datos falsos que imitan muy de cerca a los reales.
Algunos otros algoritmos comunes de aprendizaje competitivo son:
El aprendizaje no supervisado puede beneficiarse enormemente del aprendizaje competitivo, un método potente que probablemente gane aún más protagonismo. Aunque los mapas autoorganizados y otros métodos competitivos existen desde hace años, el éxito de las GAN ha demostrado el potencial del aprendizaje competitivo antagónico y multiagente.
En el futuro veremos nuevos algoritmos de aprendizaje competitivo que combinen principios de aprendizaje no supervisado, semisupervisado y por refuerzo para obtener mejores resultados.
Si quieres ensuciarte las manos y crear tu propio modelo de aprendizaje competitivo, echa un vistazo a Simple Competitive Learning with Python. Esta guía te enseñará el algoritmo básico de aprendizaje competitivo y explicará los procesos, las derivaciones matemáticas y el código implicado en el modelo.
¿Quieres aprender más sobre IA y aprendizaje automático? Explora estos recursos: