L'apprentissage compétitif est un sous-ensemble de l'apprentissage automatique qui relève de la famille des algorithmes d'apprentissage non supervisé. Dans l'apprentissage compétitif, un réseau de neurones artificiels se "dispute" le droit de s'activer en réponse à une entrée donnée. Le neurone "gagnant", généralement celui qui correspond le mieux à l'entrée, est alors mis à jour, tandis que les autres restent inchangés. L'intérêt de cette méthode réside dans sa capacité à regrouper automatiquement des données similaires, afin de révéler des motifs et des regroupements dans des données pour lesquelles aucune connaissance préalable ni aucun label n'est fourni.
L'apprentissage compétitif, expliqué
Les réseaux de neurones artificiels utilisent souvent des modèles d'apprentissage compétitif pour classer des entrées sans recourir à des données labellisées. Le processus commence par un vecteur d'entrée (souvent un jeu de données). Cette entrée est présentée à un réseau de neurones artificiels, chacun doté de son propre ensemble de poids, jouant le rôle de filtres. Chaque neurone calcule un score à partir de ses poids et du vecteur d'entrée, généralement via un produit scalaire (une façon de multiplier l'information d'entrée par le filtre puis de sommer les résultats).
Après ce calcul, le neurone qui obtient le score le plus élevé (le "gagnant") est mis à jour, le plus souvent en rapprochant ses poids du vecteur d'entrée. Cette stratégie est souvent appelée "winner-takes-all" (le gagnant rafle tout). Au fil du temps, les neurones se spécialisent en s'ajustant vers les vecteurs d'entrée qu'ils correspondent le mieux. Il en résulte la formation de clusters de données similaires, ce qui permet de découvrir des motifs intrinsèques au sein du jeu de données.
Pour illustrer l'usage de l'apprentissage compétitif, imaginez qu'une entreprise e-commerce souhaite segmenter sa base clients pour des campagnes ciblées, sans disposer au préalable de labels ni de segmentation. En alimentant un modèle d'apprentissage compétitif avec des données clients (historique d'achats, parcours de navigation, données démographiques, etc.), elle pourrait identifier automatiquement des groupes distincts (gros dépensiers, acheteurs fréquents, amateurs de promotions) et adapter ses stratégies marketing en conséquence.
Le processus d'apprentissage compétitif : exemple pas à pas
Pour cette illustration simple, supposons que nous disposons d'un jeu de données composé de vecteurs d'entrée unidimensionnels allant de 1 à 10 et d'un réseau compétitif avec deux neurones.
Étape 1 : initialisation
Nous commençons par initialiser les poids des deux neurones à des valeurs aléatoires. Supposons :
- Poids du neurone 1 : 2
- Poids du neurone 2 : 8
Étape 2 : présentation du vecteur d'entrée
Nous présentons maintenant un vecteur d'entrée au réseau. Disons que notre vecteur d'entrée est « 5 ».
Étape 3 : calcul de la distance
Nous calculons la distance entre le vecteur d'entrée et les poids des deux neurones. Le neurone dont le poids est le plus proche de l'entrée « 5 » l'emporte. Cette distance peut être calculée avec n'importe quelle métrique, par exemple la différence absolue :
- Distance du neurone 1 : |5-2| = 3
- Distance du neurone 2 : |5-8| = 3
Comme les deux distances sont égales, nous pouvons désigner le gagnant au hasard. Disons que le neurone 1 gagne.
Étape 4 : mise à jour des poids
Nous ajustons le poids du neurone gagnant pour le rapprocher du vecteur d'entrée. Si notre taux d'apprentissage (un paramètre de réglage qui détermine l'amplitude de chaque mise à jour) est de 0,5, la mise à jour sera :
- Poids du neurone 1 : 2 + 0,5*(5-2) = 3,5
- Poids du neurone 2 : 8 (inchangé)
Étape 5 : itération
Nous répétons le processus pour toutes les autres entrées du jeu de données, en mettant à jour les poids après chaque présentation.
Étape 6 : convergence
Après plusieurs itérations (aussi appelées époques), les poids des neurones commencent à converger vers les centres de leurs clusters d'entrée respectifs. Dans ce cas, avec des données unidimensionnelles allant de 1 à 10, on peut s'attendre à ce qu'un neurone converge vers la plage basse (1 à 5) et l'autre vers la plage haute (6 à 10).
Ce processus illustre le fonctionnement de l'apprentissage compétitif. Avec le temps, chaque neurone se spécialise sur un cluster différent, ce qui permet au système d'identifier et de représenter les groupements intrinsèques du jeu de données.
Apprentissage compétitif vs autres modèles d'apprentissage
Comparé à d'autres modèles d'apprentissage non supervisé, comme le clustering hiérarchique et le clustering spatial basé sur la densité avec gestion du bruit (DBSCAN), les forces et limites propres à l'apprentissage compétitif apparaissent clairement.
|
Modèle d'apprentissage |
Structure des clusters |
Nombre de clusters |
Gestion du bruit |
Formes de clusters |
Réaffectation des points |
|
Apprentissage compétitif |
Plat |
Prédefini (selon le nombre de neurones) |
Résilient mais ne distingue pas le bruit des données valides |
Généralement convexe |
Points figés une fois affectés |
|
Clustering hiérarchique |
Hiérarchique (en arbre) |
Déterminé après analyse |
Variable selon l'implémentation |
Généralement convexe |
Points réaffectables au fur et à mesure que l'arbre se forme |
|
DBSCAN |
Plat |
Déterminé automatiquement selon la densité |
Excellente, sépare le bruit des données valides |
Arbitraires (y compris non convexes) |
Points figés une fois affectés |
Comme le montre le tableau, ces trois modèles présentent des caractéristiques distinctes qui les rendent adaptés à différents types de problèmes. La structure des clusters, leur nombre, la gestion du bruit, les formes de clusters possibles et la possibilité de réaffecter des points sont autant de critères essentiels pour choisir un modèle d'apprentissage.
Le choix entre ces modèles dépend avant tout des besoins spécifiques et de la nature de votre jeu de données.
L'apprentissage compétitif convient bien lorsque le nombre de clusters est connu à l'avance et que les données sont relativement bien réparties entre ces clusters. Il est pertinent si vous recherchez un partitionnement simple et plat des données.
Le clustering hiérarchique est idéal pour mettre au jour des relations hiérarchiques dans les données ou lorsque le nombre optimal de clusters est inconnu. Il offre la souplesse d'examiner les données à différents niveaux de granularité.
DBSCAN est particulièrement indiqué pour des jeux de données contenant du bruit ou des valeurs aberrantes, ou lorsque l'on s'attend à des clusters de formes arbitraires. Il détermine aussi automatiquement le nombre de clusters selon la densité, ce qui est utile en exploration lorsque ce nombre n'est pas prédéfini.
Gardez à l'esprit qu'aucun modèle ne convient à tous les cas ; bien comprendre les caractéristiques de vos données est la clé pour sélectionner le bon modèle.
Cas d'usage pratique de l'apprentissage compétitif
Nous avons vu que l'apprentissage compétitif est couramment utilisé pour le clustering et la réduction de dimension. Il peut toutefois aussi servir à l'apprentissage de représentations, à la détection d'anomalies et même en IA générative.
Par exemple, les generative adversarial networks (GAN) reposent sur un apprentissage compétitif entre un générateur (qui crée des données synthétiques) et un discriminateur (qui évalue si une donnée est réelle ou fausse) pour produire des données artificielles qui imitent de très près les données réelles.
Parmi les autres algorithmes d'apprentissage compétitif courants :
- Winner-take-all competitive learning. Dans cet algorithme simple, le neurone ayant l'activation la plus élevée "gagne" et voit ses poids ajustés pour se rapprocher de l'entrée. Les autres neurones ne sont pas mis à jour.
- Carte auto-organisatrice (SOM). Projette des données d'entrée de grande dimension sur une grille de neurones de plus faible dimension et ajuste les poids des neurones voisins pour les rendre plus similaires à chaque entrée.
- Neural gas. Proche du SOM, mais forme des clusters plus souplement, sans topologie rigide. Les poids des neurones proches de l'entrée sont ajustés pour devenir plus similaires.
- Learning vector quantization (LVQ). S'appuie sur les idées du SOM mais utilise des labels de classe explicites pour guider l'apprentissage compétitif, aboutissant à des prototypes qui regroupent les entrées par classe.
L'apprentissage non supervisé bénéficie grandement de l'apprentissage compétitif, une approche puissante qui devrait se diffuser davantage. Bien que les cartes auto-organisatrices et d'autres méthodes compétitives existent depuis des années, le succès des GAN a démontré le potentiel des approches adversariales et multi-agents.
À l'avenir, de nouveaux algorithmes d'apprentissage compétitif combineront probablement des principes d'apprentissage non supervisé, semi-supervisé et par renforcement pour obtenir de meilleurs résultats.
Si vous souhaitez passer à la pratique et construire votre propre modèle d'apprentissage compétitif, consultez Simple Competitive Learning with Python. Ce guide présente l'algorithme de base de l'apprentissage compétitif et détaille les processus, les dérivations mathématiques et le code du modèle.
Vous voulez en savoir plus sur l'IA et l'apprentissage automatique ? Parcourez les ressources suivantes :
FAQ
L'apprentissage compétitif peut-il être utilisé pour des tâches supervisées ?
Bien que l'apprentissage compétitif soit principalement une technique non supervisée, il peut être adapté à des tâches supervisées. Les catégories ou classes d'un problème supervisé peuvent être traitées comme des clusters, et l'apprentissage compétitif peut alors servir à la classification.
En quoi l'apprentissage compétitif diffère-t-il de l'apprentissage collaboratif ?
Dans l'apprentissage compétitif, seul le neurone gagnant est mis à jour. À l'inverse, dans l'apprentissage collaboratif, tous les neurones sont mis à jour, mais dans une mesure qui dépend de leur proximité avec le neurone gagnant.
L'apprentissage compétitif peut-il gérer de grands jeux de données ?
Oui, l'apprentissage compétitif peut traiter de grands jeux de données. Il est même souvent plus efficace avec des volumes importants, car davantage de données permettent de déceler des motifs plus complexes et nuancés.
Quels sont les avantages de l'apprentissage compétitif ?
L'apprentissage compétitif est utile pour la réduction de dimension, l'extraction de caractéristiques et la reconnaissance de motifs. Il gère efficacement des structures non linéaires et complexes. De plus, il est économe en calcul et s'adapte à de grands jeux de données.
Quelles sont les limites de l'apprentissage compétitif ?
L'apprentissage compétitif peut souffrir d'optima locaux, où l'algorithme se bloque sur des solutions sous-optimales. Il est aussi sensible à l'initialisation des neurones et au taux d'apprentissage. Par ailleurs, il peut ne pas convenir à des tâches nécessitant une classification très fine ou impliquant des jeux de données déséquilibrés.
L'apprentissage compétitif peut-il être utilisé dans des architectures de deep learning ?
Oui, l'apprentissage compétitif peut être utilisé dans des architectures de deep learning. Il peut servir d'étape de pré-entraînement pour initialiser les poids du réseau de neurones ou être intégré comme composant au sein d'une architecture plus large.
Comment l'apprentissage compétitif se compare-t-il à d'autres algorithmes comme la rétropropagation ?
L'apprentissage compétitif est une forme d'apprentissage non supervisé, tandis que la rétropropagation est un algorithme supervisé. Le premier ne nécessite pas de données labellisées pour l'entraînement, alors que la rétropropagation s'appuie sur des exemples annotés. En outre, l'apprentissage compétitif convient mieux à des tâches comme le clustering et la reconnaissance de motifs, tandis que la rétropropagation est couramment utilisée pour la classification et la régression.
En tant que data scientist certifié, je suis passionné par l'utilisation des technologies de pointe pour créer des applications innovantes d'apprentissage automatique. Avec une solide expérience en reconnaissance vocale, en analyse de données et en reporting, en MLOps, en IA conversationnelle et en NLP, j'ai affiné mes compétences dans le développement de systèmes intelligents qui peuvent avoir un impact réel. En plus de mon expertise technique, je suis également un communicateur compétent, doué pour distiller des concepts complexes dans un langage clair et concis. En conséquence, je suis devenu un blogueur recherché dans le domaine de la science des données, partageant mes idées et mes expériences avec une communauté grandissante de professionnels des données. Actuellement, je me concentre sur la création et l'édition de contenu, en travaillant avec de grands modèles linguistiques pour développer un contenu puissant et attrayant qui peut aider les entreprises et les particuliers à tirer le meilleur parti de leurs données.
