AI Development · Level 1 · Grundlagen

Welches Verfahren gewinnt? Sechs klassische Methoden im Vergleich

Sechs klassische Verfahren auf denselben Daten, von logistischer Regression bis neuronalem Netz, fair verglichen — und was jedes im Betrieb kostet.

Von 6 Min. Lesezeit
Sechs klassische Verfahren auf denselben Daten, von logistischer Regression bis neuronalem Netz, fair verglichen — und was jedes im Betrieb kostet.

Maschinelles Lernen bietet Dutzende Verfahren für dieselbe Aufgabe, und jedes hat seine Anhänger. Welches ist das beste? Die ehrliche Antwort lautet: Es hängt von den Daten ab, und das zeigt nur ein Test. Fair zu testen ist allerdings schwerer, als es aussieht, denn ein einzelner Test kann ein Verfahren zufällig besser oder schlechter aussehen lassen, als es ist.

Dies ist Teil 4 von Level 1 in unserem Lernpfad KI-Grundlagen. Wir haben sechs klassische Verfahren auf denselben handgeschriebenen Ziffern laufen lassen und mit Kreuzvalidierung verglichen, dem üblichen Weg, fair zu testen. Sie erfahren, was jedes Verfahren in einem Satz tut, wie Kreuzvalidierung funktioniert, welches Verfahren auf unseren Daten gewann und warum es deshalb nicht allgemein das beste ist.

Sechs Verfahren in je einem Satz

Welches Verfahren gewinnt? Sechs klassische Methoden im Vergleich
VerfahrenWie es entscheidetStärkeSchwäche
Logistische RegressionGewichtet jeden Pixel und zählt die Hinweise für jede Ziffer zusammenSchnell, leicht zu prüfenNur gerade Grenzen zwischen Kategorien
k-nächste NachbarnSucht die ähnlichsten Trainingsbilder und lässt sie abstimmenGar kein Training, stark, wenn ähnlich gleich bedeutetLangsam bei großen Daten, braucht ein gutes Ähnlichkeitsmaß
EntscheidungsbaumStellt eine Folge von Ja-Nein-Fragen zu PixelnLeicht zu erklärenPasst sich schnell über
Random ForestLässt Hunderte leicht verschiedene Bäume abstimmenRobust, wenig Feinabstimmung nötigSchwerer zu erklären als ein Baum
Support Vector MachineZieht die breitestmögliche Grenze zwischen KategorienStark bei mittelgroßen DatenLangsam bei großen Daten, viele Einstellungen
Neuronales NetzLernt eigene Merkmale in einer versteckten SchichtAm flexibelstenBraucht mehr Daten und Feinabstimmung

Kreuzvalidierung: fünf Tests statt einem

Eine einzelne Aufteilung in Trainings- und Testdaten ist ein bisschen wie eine einzelne Prüfung: Das Ergebnis hängt auch davon ab, welche Fragen zufällig drankamen. Die Kreuzvalidierung wiederholt den Test. Bei fünffacher Kreuzvalidierung werden die Daten in fünf gleiche Teile geteilt. Jedes Verfahren wird fünfmal trainiert, jeweils auf vier Teilen, und am fünften getestet, sodass jedes Bild genau einmal zum Testen dient. Heraus kommen ein Mittelwert und eine Spanne — sie zeigt, wie stabil ein Verfahren ist.

Fünf Zeilen, jede zeigt die in fünf Teile geteilten Daten; in jeder Zeile ist ein anderer Teil die Testmenge, die übrigen vier dienen dem Training
Fünffache Kreuzvalidierung: Jeder Teil der Daten dient einmal als Testmenge.

Das Ergebnis auf unseren Daten

Punktdiagramm: mittlere Genauigkeit von sechs Verfahren in fünffacher Kreuzvalidierung, mit einer Linie vom schlechtesten zum besten Teil; k-nächste Nachbarn vorn, der Entscheidungsbaum weit dahinter
Mittlere Genauigkeit über fünf Teile, mit der Spanne vom schlechtesten bis zum besten Teil.

Auf den handgeschriebenen Ziffern gewann k-nächste Nachbarn mit im Mittel 98,9 %, vor der Support Vector Machine, dem Random Forest und dem neuronalen Netz, die nah beieinanderlagen. Die logistische Regression erreichte 97 %. Der einzelne Entscheidungsbaum landete mit 85,8 % auf dem letzten Platz, und seine Ergebnisse schwankten zwischen den Teilen am stärksten, mit einer Standardabweichung von 1,6 Prozentpunkten.

Sechs Verfahren, fünffache Kreuzvalidierung auf allen Bildern
VerfahrenMittelSchlechtester TeilBester Teil
k-nächste Nachbarn (k = 3)98,9 %98,3 %99,4 %
Support Vector Machine98,4 %97,5 %99,2 %
Random Forest (200 Bäume)97,9 %97,2 %98,6 %
Neuronales Netz (64 Neuronen)97,8 %97,2 %98,3 %
Logistische Regression97,0 %96,1 %98,1 %
Entscheidungsbaum85,8 %83,8 %87,5 %

Eigenes Experiment: Datensatz Optical Recognition of Handwritten Digits (E. Alpaydin, C. Kaynak, UCI Machine Learning Repository, Lizenz CC BY 4.0), 1797 Bilder je 8 × 8 Pixel, davon 540 zum Testen zurückgehalten; scikit-learn 1.9.1, fester Zufallsstartwert — jeder Lauf ergibt dieselben Zahlen.

Warum gewinnt hier das einfachste Verfahren? Weil sich auf diesen kleinen, zentrierten Bildern zwei handgeschriebene 3en tatsächlich Pixel für Pixel ähneln — „finde das ähnlichste bekannte Beispiel“ funktioniert deshalb sehr gut. Auf Daten, bei denen Ähnlichkeit weniger offensichtlich ist, etwa Kundendatensätzen mit Dutzenden Spalten in verschiedenen Einheiten, fällt k-nächste Nachbarn meist zurück, und Baum-Ensembles oder Gradient Boosting liegen vorn.

Genauigkeit ist nicht die ganze Rechnung

Zwei Verfahren mit fast gleicher Genauigkeit können sich im Betrieb um Größenordnungen unterscheiden. Wir haben für jedes trainierte Modell gezählt, was es im Speicher behalten muss und wie viel Arbeit es höchstens für jedes neue Bild leistet.

Was jedes trainierte Modell speichert und je neuem Bild höchstens rechnet
VerfahrenBehält nach dem TrainingUmfangArbeit je neuem Bild (höchstens)
Logistische RegressionGewichte650640 Multiplikationen
k-nächste Nachbarn (k = 3)Alle Trainingsbilder1.257 Bilder, 80.448 PixelwerteVergleich mit 1.257 Bildern (80.448 Pixelwerte)
EntscheidungsbaumFragen und Blätter241 Knoten11 Fragen
Random Forest (200 Bäume)Fragen und Blätter aller Bäume61.848 Knoten2.653 Fragen
Support Vector MachineStützvektoren: Trainingsbilder nahe den Grenzen686 Bilder, 43.904 PixelwerteVergleich mit 686 Bildern (43.904 Pixelwerte)
Neuronales Netz (64 Neuronen)Gewichte und Schwellen4.8104.736 Multiplikationen

Quelle wie bei der ersten Tabelle dieser Seite.

Der Sieger bei der Genauigkeit ist im Betrieb am teuersten. k-nächste Nachbarn behält alle 1.257 Trainingsbilder, 80.448 Pixelwerte, und vergleicht jedes neue Bild mit jedem davon. Die logistische Regression kommt mit 650 Gewichten aus, rund 124-mal weniger Zahlen, und erreichte in der Kreuzvalidierung 97 % statt 98,9 %. Die Support Vector Machine behält nur die Trainingsbilder nahe den Grenzen zwischen den Ziffern, 686 Stück. Das neuronale Netz speichert 4.810 Gewichte, der Random Forest 61.848 Fragen und Blätter in seinen 200 Bäumen.

Bei kleinen Bildern wie unseren passt all das problemlos auf jedes Smartphone. Bei Millionen großer Bilder oder Dokumente entscheidet der Unterschied, ob ein Verfahren überhaupt laufen kann. Deshalb setzt k-nächste Nachbarn im Betrieb auf spezielle Suchindizes, die ähnliche Elemente finden, ohne jedes einzelne zu vergleichen — dieselbe Technik, auf der Vektordatenbanken aufbauen.

Es gibt kein bestes Verfahren

Die Forschung zum maschinellen Lernen hat für diese Beobachtung einen Namen: das No-Free-Lunch-Prinzip. Kein Verfahren ist für jede Art von Daten das beste. Deshalb folgen Fachleute ein paar Gewohnheiten:

  1. Mit einer einfachen Grundlinie beginnen, etwa der logistischen Regression. Jedes aufwendigere Verfahren muss sie klar schlagen.
  2. Mit Kreuzvalidierung vergleichen, nicht mit einer glücklichen Aufteilung, und neben dem Mittelwert auch auf die Spanne schauen.
  3. Mehr als die Genauigkeit zählen. Tempo, Speicher, Trainingskosten und ob Menschen die Entscheidungen nachvollziehen können, zählen im Betrieb.
  4. Bei knappen Ergebnissen das einfachere Modell nehmen. Ein Unterschied von wenigen Zehntelprozent liegt oft im Bereich des Zufalls.
  5. Auf den eigenen Daten testen. Benchmarks auf fremden Daten, auch unsere, sagen nur, was Sie zuerst ausprobieren sollten.

So haben wir das Experiment durchgeführt

Wir haben die Python-Bibliothek scikit-learn mit weitgehend üblichen Einstellungen genutzt: k-nächste Nachbarn mit k = 3, einen Random Forest mit 200 Bäumen, eine Support Vector Machine mit ihrem Standardkern auf standardisierten Pixelwerten und ein neuronales Netz mit einer versteckten Schicht aus 64 Neuronen. Die fünf Teile sind geschichtet, enthalten also jede Ziffer zu etwa gleichen Anteilen, und die Aufteilung nutzt einen festen Startwert — die Zahlen auf dieser Seite kommen bei jedem Lauf gleich heraus. Die Zahlen der Aufwandstabelle stammen von den Modellen, die auf den 1.257 Trainingsbildern trainiert wurden. Der letzte Teil von Level 1 widmet sich Daten ganz ohne Labels: Gruppen finden mit Clustering und Daten vereinfachen mit PCA.