Competitive Learning ist ein Teilbereich des maschinellen Lernens und gehört zur Familie der unüberwachten Lernverfahren. Dabei konkurriert ein Netz künstlicher Neuronen darum, bei einem bestimmten Input zu „feuern“, also aktiv zu werden. Das „gewinnende“ Neuron, meist das mit der besten Übereinstimmung zum Eingabemuster, wird anschließend angepasst, während die anderen unverändert bleiben. Der große Vorteil dieser Methode: Sie gruppiert ähnliche Eingaben automatisch und macht so Muster und Strukturen in Daten sichtbar, für die es keine Vorkenntnisse oder Labels gibt.
Competitive Learning einfach erklärt
Künstliche neuronale Netze nutzen häufig Competitive-Learning-Modelle, um Eingaben auch ohne gelabelte Daten zu klassifizieren. Der Prozess startet mit einem Eingabevektor (oft ein Datensatz). Dieser wird einem Netz künstlicher Neuronen präsentiert, von denen jedes eigene Gewichte besitzt – vergleichbar mit Filtern. Jedes Neuron berechnet auf Basis seiner Gewichte und des Eingabevektors einen Score, typischerweise über ein Skalarprodukt (eine Art, die Eingabe mit dem Filter zu multiplizieren und die Ergebnisse zu summieren).
Nach der Berechnung wird das Neuron mit dem höchsten Score (der „Gewinner“) aktualisiert, meist indem seine Gewichte näher an den Eingabevektor verschoben werden. Diese Strategie nennt man oft „Winner-takes-all“. Mit der Zeit spezialisieren sich die Neuronen, weil sie immer wieder in Richtung der Eingaben angepasst werden, die sie am besten abbilden. So entstehen Cluster ähnlicher Daten und damit verborgene Muster im Datensatz.
Ein Anwendungsbeispiel: Ein E-Commerce-Unternehmen möchte seine Kundschaft für gezieltes Marketing segmentieren, hat aber keine Labels oder bestehende Segmente. Indem es Kundendaten (Kaufhistorie, Surfverhalten, Demografie usw.) in ein Competitive-Learning-Modell einspeist, lassen sich automatisch unterscheidbare Gruppen finden (z. B. Vielkäufer, Schnäppchenjäger, Stammkundschaft). Darauf lassen sich dann passgenaue Marketingstrategien aufsetzen.
Der Competitive-Learning-Prozess: Schritt für Schritt
Für diese einfache Illustration nehmen wir einen Datensatz mit eindimensionalen Eingabevektoren von 1 bis 10 und ein Competitive-Learning-Netz mit zwei Neuronen an.
Schritt 1: Initialisierung
Wir initialisieren die Gewichte der beiden Neuronen mit Zufallswerten. Angenommen:
- Gewicht Neuron 1: 2
- Gewicht Neuron 2: 8
Schritt 2: Eingabevektor präsentieren
Nun legen wir dem Netz einen Eingabevektor vor. Sagen wir, die Eingabe ist „5“.
Schritt 3: Distanz berechnen
Wir berechnen die Distanz zwischen dem Eingabevektor und den Gewichten der beiden Neuronen. Das Neuron mit der geringsten Distanz zur Eingabe „gewinnt“. Als Distanzmaß kann zum Beispiel die absolute Differenz dienen:
- Distanz Neuron 1: |5-2| = 3
- Distanz Neuron 2: |5-8| = 3
Da beide Distanzen gleich sind, wählen wir den Gewinner zufällig. Nehmen wir an, Neuron 1 gewinnt.
Schritt 4: Gewichte aktualisieren
Wir passen das Gewicht des Gewinnerneurons an und bringen es näher an den Eingabevektor. Bei einer Lernrate (ein Tuning-Parameter in Optimierungsverfahren, der die Schrittweite je Iteration bestimmt) von 0,5 ergibt sich:
- Gewicht Neuron 1: 2 + 0,5*(5-2) = 3,5
- Gewicht Neuron 2: 8 (unverändert)
Schritt 5: Iteration
Wir wiederholen den Vorgang für alle übrigen Eingaben im Datensatz und aktualisieren die Gewichte nach jeder Präsentation.
Schritt 6: Konvergenz
Nach mehreren Iterationen (auch Epochen genannt) nähern sich die Gewichte der Neuronen den Zentren ihrer jeweiligen Cluster an. Bei eindimensionalen Daten von 1 bis 10 wäre zu erwarten, dass sich ein Neuron im unteren Bereich (1 bis 5) und das andere im oberen Bereich (6 bis 10) einpendelt.
So funktioniert Competitive Learning in der Praxis: Mit der Zeit spezialisiert sich jedes Neuron auf ein anderes Datencluster und das System erkennt und repräsentiert die zugrunde liegenden Gruppierungen im Datensatz.
Competitive Learning im Vergleich zu anderen Lernmodellen
Im Vergleich zu anderen unüberwachten Verfahren wie hierarchischem Clustering oder Density-Based Spatial Clustering of Applications with Noise (DBSCAN) zeigen sich die besonderen Stärken und Grenzen von Competitive Learning.
|
Lernmodell
|
Clusterstruktur
|
Anzahl der Cluster
|
Umgang mit Rauschen
|
Clustergestalten
|
Neu-Zuordnung von Datenpunkten
|
|
Competitive Learning
|
Flach
|
Vordefiniert (abhängig von der Neuronenzahl)
|
Robust, unterscheidet aber Rauschen nicht von Nicht-Rauschen
|
Typischerweise konvex
|
Datenpunkte bleiben nach Zuordnung fix
|
|
Hierarchisches Clustering
|
Hierarchisch (baumartig)
|
Nach der Analyse bestimmt
|
Abhängig von der konkreten Implementierung
|
Typischerweise konvex
|
Neu-Zuordnung möglich, während die Baumstruktur entsteht
|
|
DBSCAN
|
Flach
|
Automatisch über Dichte bestimmt
|
Sehr gut, trennt Rauschen von Nicht-Rauschen
|
Beliebig (auch nicht-konvex)
|
Datenpunkte bleiben nach Zuordnung fix
|
Wie die Tabelle zeigt, haben die drei Modelle unterschiedliche Eigenschaften und eignen sich daher für verschiedene Problemstellungen. Clusterstruktur, Anzahl der Cluster, der Umgang mit Rauschen, mögliche Formen der Cluster und die Frage, ob Datenpunkte neu zugeordnet werden können, sind zentrale Kriterien bei der Modellauswahl.
Welche Methode du wählst, hängt vor allem von den Anforderungen und der Natur deines Datensatzes ab.
Competitive Learning passt gut zu Datensätzen, bei denen die Anzahl der Cluster bekannt ist und die Daten relativ gleichmäßig verteilt sind. Es eignet sich, wenn du eine einfache, flache Aufteilung der Daten anstrebst.
Hierarchisches Clustering ist ideal, wenn du hierarchische Beziehungen in den Daten aufdecken willst oder die optimale Clusterzahl unbekannt ist. Es erlaubt, die Daten auf verschiedenen Granularitätsebenen zu betrachten.
DBSCAN ist eine gute Wahl bei Datensätzen mit Rauschen oder Ausreißern oder wenn Cluster beliebiger Form erwartet werden. Zudem bestimmt es die Anzahl der Cluster automatisch über die Dichte – hilfreich in der explorativen Analyse, wenn die Clusterzahl nicht vorab feststeht.
Merke: Es gibt kein Modell, das immer passt. Entscheidend ist, die Eigenschaften deiner Daten zu verstehen, um die richtige Methode auszuwählen.
Praktischer Use Case für Competitive Learning
Wir haben gesehen, dass Competitive Learning häufig für Clustering und Dimensionsreduktion eingesetzt wird. Es lässt sich aber auch für Feature Learning, Anomalieerkennung und sogar in der generativen KI nutzen.
Beispielsweise nutzen Generative Adversarial Networks (GANs) einen kompetitiven Ansatz zwischen Generator (erzeugt künstliche Daten) und Diskriminator (entscheidet, ob Daten echt oder künstlich sind), um synthetische Daten zu erzeugen, die echten Daten sehr nahekommen.
Weitere verbreitete Competitive-Learning-Algorithmen sind:
- Winner-takes-all Competitive Learning. In diesem einfachen Verfahren „gewinnt“ das Neuron mit der höchsten Aktivierung und seine Gewichte werden näher an die Eingabe verschoben. Die übrigen Neuronen werden nicht aktualisiert.
- Self-Organizing Map (SOM). Projiziert hochdimensionale Eingaben auf ein niederdimensionales Neuronengitter und passt die Gewichte benachbarter Neuronen an, um ähnlichere Repräsentationen zu bilden.
- Neural Gas. Ähnlich zu SOM, bildet Cluster jedoch flexibler ohne starre Topologie. Gewichte von Neuronen in der Nähe der Eingabe werden angeglichen.
- Learning Vector Quantization (LVQ). Baut auf SOM-Ideen auf, nutzt jedoch explizite Klassenlabels zur Steuerung des kompetitiven Lernens und erzeugt Prototypen, die Eingaben nach Klasse clustern.
Unüberwachtes Lernen profitiert stark von Competitive Learning. Es ist eine wirkungsvolle Methode, deren Verbreitung voraussichtlich weiter zunimmt. Obwohl Self-Organizing Maps und andere Competitive-Ansätze seit Jahren existieren, hat der Erfolg von GANs das Potenzial adversarieller und Multi-Agenten-Ansätze deutlich gemacht.
Künftig werden neue Competitive-Learning-Algorithmen entstehen, die unüberwachtes, semi-überwachtes und bestärkendes Lernen kombinieren, um noch bessere Ergebnisse zu erzielen.
Wenn du selbst Hand anlegen und ein eigenes Competitive-Learning-Modell bauen möchtest, sieh dir Simple Competitive Learning with Python an. Dieses Tutorial erklärt den einfachen Algorithmus hinter Competitive Learning sowie die Abläufe, mathematischen Herleitungen und den zugehörigen Code.
Möchtest du mehr über KI und Machine Learning erfahren? Dann empfehlen wir dir folgende Ressourcen:
Competitive Learning ist ein Teilbereich des maschinellen Lernens und gehört zur Familie der unüberwachten Lernverfahren. Dabei konkurriert ein Netz künstlicher Neuronen darum, bei einem bestimmten Input zu „feuern“, also aktiv zu werden. Das „gewinnende“ Neuron, meist das mit der besten Übereinstimmung zum Eingabemuster, wird anschließend angepasst, während die anderen unverändert bleiben. Der große Vorteil dieser Methode: Sie gruppiert ähnliche Eingaben automatisch und macht so Muster und Strukturen in Daten sichtbar, für die es keine Vorkenntnisse oder Labels gibt.
Competitive Learning einfach erklärt
Künstliche neuronale Netze nutzen häufig Competitive-Learning-Modelle, um Eingaben auch ohne gelabelte Daten zu klassifizieren. Der Prozess startet mit einem Eingabevektor (oft ein Datensatz). Dieser wird einem Netz künstlicher Neuronen präsentiert, von denen jedes eigene Gewichte besitzt – vergleichbar mit Filtern. Jedes Neuron berechnet auf Basis seiner Gewichte und des Eingabevektors einen Score, typischerweise über ein Skalarprodukt (eine Art, die Eingabe mit dem Filter zu multiplizieren und die Ergebnisse zu summieren).
Nach der Berechnung wird das Neuron mit dem höchsten Score (der „Gewinner“) aktualisiert, meist indem seine Gewichte näher an den Eingabevektor verschoben werden. Diese Strategie nennt man oft „Winner-takes-all“. Mit der Zeit spezialisieren sich die Neuronen, weil sie immer wieder in Richtung der Eingaben angepasst werden, die sie am besten abbilden. So entstehen Cluster ähnlicher Daten und damit verborgene Muster im Datensatz.
Ein Anwendungsbeispiel: Ein E-Commerce-Unternehmen möchte seine Kundschaft für gezieltes Marketing segmentieren, hat aber keine Labels oder bestehende Segmente. Indem es Kundendaten (Kaufhistorie, Surfverhalten, Demografie usw.) in ein Competitive-Learning-Modell einspeist, lassen sich automatisch unterscheidbare Gruppen finden (z. B. Vielkäufer, Schnäppchenjäger, Stammkundschaft). Darauf lassen sich dann passgenaue Marketingstrategien aufsetzen.
Der Competitive-Learning-Prozess: Schritt für Schritt
Für diese einfache Illustration nehmen wir einen Datensatz mit eindimensionalen Eingabevektoren von 1 bis 10 und ein Competitive-Learning-Netz mit zwei Neuronen an.
Schritt 1: Initialisierung
Wir initialisieren die Gewichte der beiden Neuronen mit Zufallswerten. Angenommen:
Schritt 2: Eingabevektor präsentieren
Nun legen wir dem Netz einen Eingabevektor vor. Sagen wir, die Eingabe ist „5“.
Schritt 3: Distanz berechnen
Wir berechnen die Distanz zwischen dem Eingabevektor und den Gewichten der beiden Neuronen. Das Neuron mit der geringsten Distanz zur Eingabe „gewinnt“. Als Distanzmaß kann zum Beispiel die absolute Differenz dienen:
Da beide Distanzen gleich sind, wählen wir den Gewinner zufällig. Nehmen wir an, Neuron 1 gewinnt.
Schritt 4: Gewichte aktualisieren
Wir passen das Gewicht des Gewinnerneurons an und bringen es näher an den Eingabevektor. Bei einer Lernrate (ein Tuning-Parameter in Optimierungsverfahren, der die Schrittweite je Iteration bestimmt) von 0,5 ergibt sich:
Schritt 5: Iteration
Wir wiederholen den Vorgang für alle übrigen Eingaben im Datensatz und aktualisieren die Gewichte nach jeder Präsentation.
Schritt 6: Konvergenz
Nach mehreren Iterationen (auch Epochen genannt) nähern sich die Gewichte der Neuronen den Zentren ihrer jeweiligen Cluster an. Bei eindimensionalen Daten von 1 bis 10 wäre zu erwarten, dass sich ein Neuron im unteren Bereich (1 bis 5) und das andere im oberen Bereich (6 bis 10) einpendelt.
So funktioniert Competitive Learning in der Praxis: Mit der Zeit spezialisiert sich jedes Neuron auf ein anderes Datencluster und das System erkennt und repräsentiert die zugrunde liegenden Gruppierungen im Datensatz.
Competitive Learning im Vergleich zu anderen Lernmodellen
Im Vergleich zu anderen unüberwachten Verfahren wie hierarchischem Clustering oder Density-Based Spatial Clustering of Applications with Noise (DBSCAN) zeigen sich die besonderen Stärken und Grenzen von Competitive Learning.
Lernmodell
Clusterstruktur
Anzahl der Cluster
Umgang mit Rauschen
Clustergestalten
Neu-Zuordnung von Datenpunkten
Competitive Learning
Flach
Vordefiniert (abhängig von der Neuronenzahl)
Robust, unterscheidet aber Rauschen nicht von Nicht-Rauschen
Typischerweise konvex
Datenpunkte bleiben nach Zuordnung fix
Hierarchisches Clustering
Hierarchisch (baumartig)
Nach der Analyse bestimmt
Abhängig von der konkreten Implementierung
Typischerweise konvex
Neu-Zuordnung möglich, während die Baumstruktur entsteht
DBSCAN
Flach
Automatisch über Dichte bestimmt
Sehr gut, trennt Rauschen von Nicht-Rauschen
Beliebig (auch nicht-konvex)
Datenpunkte bleiben nach Zuordnung fix
Wie die Tabelle zeigt, haben die drei Modelle unterschiedliche Eigenschaften und eignen sich daher für verschiedene Problemstellungen. Clusterstruktur, Anzahl der Cluster, der Umgang mit Rauschen, mögliche Formen der Cluster und die Frage, ob Datenpunkte neu zugeordnet werden können, sind zentrale Kriterien bei der Modellauswahl.
Welche Methode du wählst, hängt vor allem von den Anforderungen und der Natur deines Datensatzes ab.
Competitive Learning passt gut zu Datensätzen, bei denen die Anzahl der Cluster bekannt ist und die Daten relativ gleichmäßig verteilt sind. Es eignet sich, wenn du eine einfache, flache Aufteilung der Daten anstrebst.
Hierarchisches Clustering ist ideal, wenn du hierarchische Beziehungen in den Daten aufdecken willst oder die optimale Clusterzahl unbekannt ist. Es erlaubt, die Daten auf verschiedenen Granularitätsebenen zu betrachten.
DBSCAN ist eine gute Wahl bei Datensätzen mit Rauschen oder Ausreißern oder wenn Cluster beliebiger Form erwartet werden. Zudem bestimmt es die Anzahl der Cluster automatisch über die Dichte – hilfreich in der explorativen Analyse, wenn die Clusterzahl nicht vorab feststeht.
Merke: Es gibt kein Modell, das immer passt. Entscheidend ist, die Eigenschaften deiner Daten zu verstehen, um die richtige Methode auszuwählen.
Praktischer Use Case für Competitive Learning
Wir haben gesehen, dass Competitive Learning häufig für Clustering und Dimensionsreduktion eingesetzt wird. Es lässt sich aber auch für Feature Learning, Anomalieerkennung und sogar in der generativen KI nutzen.
Beispielsweise nutzen Generative Adversarial Networks (GANs) einen kompetitiven Ansatz zwischen Generator (erzeugt künstliche Daten) und Diskriminator (entscheidet, ob Daten echt oder künstlich sind), um synthetische Daten zu erzeugen, die echten Daten sehr nahekommen.
Weitere verbreitete Competitive-Learning-Algorithmen sind:
Unüberwachtes Lernen profitiert stark von Competitive Learning. Es ist eine wirkungsvolle Methode, deren Verbreitung voraussichtlich weiter zunimmt. Obwohl Self-Organizing Maps und andere Competitive-Ansätze seit Jahren existieren, hat der Erfolg von GANs das Potenzial adversarieller und Multi-Agenten-Ansätze deutlich gemacht.
Künftig werden neue Competitive-Learning-Algorithmen entstehen, die unüberwachtes, semi-überwachtes und bestärkendes Lernen kombinieren, um noch bessere Ergebnisse zu erzielen.
Wenn du selbst Hand anlegen und ein eigenes Competitive-Learning-Modell bauen möchtest, sieh dir Simple Competitive Learning with Python an. Dieses Tutorial erklärt den einfachen Algorithmus hinter Competitive Learning sowie die Abläufe, mathematischen Herleitungen und den zugehörigen Code.
Möchtest du mehr über KI und Machine Learning erfahren? Dann empfehlen wir dir folgende Ressourcen: