L'apprentissage compétitif est une forme d' apprentissage non supervisé dans les réseaux de neurones artificiels , où les nœuds rivalisent pour le droit de traiter un sous-ensemble des données d'entrée. Variante de l'apprentissage hebbien , l'apprentissage compétitif accroît la spécialisation de chaque nœud du réseau. Il est particulièrement adapté à la détection de groupes au sein des données.
Les modèles et algorithmes basés sur le principe de l'apprentissage compétitif comprennent la quantification vectorielle et les cartes auto-organisatrices (cartes de Kohonen).
Principe
Il existe trois éléments de base à une règle d'apprentissage compétitif :
- Un ensemble de neurones identiques à l'exception de certains poids synaptiques distribués aléatoirement, et qui, par conséquent, répondent différemment à un ensemble donné de motifs d'entrée.
- Une limite imposée à la « force » de chaque neurone
- Un mécanisme qui permet aux neurones de rivaliser pour le droit de répondre à un sous-ensemble donné d'entrées, de sorte qu'un seul neurone de sortie (ou un seul neurone par groupe) soit actif à la fois. Le neurone qui remporte la compétition est appelé neurone « à élimination directe » .
En conséquence, les neurones individuels du réseau apprennent à se spécialiser sur des ensembles de modèles similaires et deviennent ainsi des « détecteurs de caractéristiques » pour différentes classes de modèles d'entrée.
Le fait que les réseaux compétitifs recodent des ensembles d'entrées corrélées vers l'un des quelques neurones de sortie supprime essentiellement la redondance de représentation qui est une partie essentielle du traitement dans les systèmes sensoriels biologiques .
Architecture et mise en œuvre

L’apprentissage compétitif est généralement mis en œuvre avec des réseaux de neurones comportant une couche cachée communément appelée « couche compétitive » . Chaque neurone compétitif est décrit par un vecteur de poids.
Pour chaque vecteur d'entrée, les neurones compétitifs s'affrontent pour déterminer lequel est le plus similaire à ce vecteur. Le neurone gagnant m définit sa sortie.
Généralement, pour mesurer la similarité, on utilise l'inverse de la distance euclidienne :
Exemple d'algorithme
Voici un algorithme d'apprentissage compétitif simple permettant de trouver trois clusters dans des données d'entrée.
1. (Configuration.) Un ensemble de capteurs est connecté à trois nœuds distincts, chaque nœud étant relié à tous les capteurs. Les pondérations attribuées par chaque nœud à ses capteurs sont aléatoires et comprises entre 0 et 1. La sortie de chaque nœud correspond à la somme des signaux de ses capteurs, la puissance de chaque signal étant multipliée par sa pondération.
2. Lorsqu'une entrée est présentée au réseau, le nœud ayant la sortie la plus élevée est désigné comme vainqueur. L'entrée est alors classée comme appartenant au cluster correspondant à ce nœud.
3. Le gagnant met à jour chacun de ses poids, en déplaçant le poids des connexions qui lui ont donné des signaux plus faibles vers les connexions qui lui ont donné des signaux plus forts.
Ainsi, à mesure que de nouvelles données sont reçues, chaque nœud converge vers le centre du groupe qu'il représente et s'active plus fortement pour les entrées de ce groupe et plus faiblement pour les entrées des autres groupes.