Ein Podcast über KI
Johannes und Gesina, zwei Freunde aus der Forschung, unterhalten sich über Themen rund um künstliche Intelligenz.

Was ist maschinelles Lernen?

avatar
Gesina Schwalbe
avatar
Johannes Rabold

Heute wollen wir uns mit der Frage „Was ist Maschinelles Lernen?“ auseinandersetzen. Wir werden die Grundprinzipien maschinellen Lernens erläutern und eine Auswahl wichtiger Ansätze und Algorithmen kennen lernen.
Außerdem haben wir wichtige Fragen an euch (Stichwort Interaktivität) und bedanken uns bei vielen vielen Menschen.

Hausmeisterei

Zusammenfassung: Ganz kurz für Beepo

  • Definition: ML ist Modellierung anhand von Beispielen. Mehr Beispiele führen zu einer Verbesserung des Verfahrens. Ein Modell generiert aus Eingaben passende Vorhersagen.
  • Abgrenzung: Maschinelles Lernen (ML) ist nicht gleich Deep Learning. Deep Learning ist ein Teilbereich von ML, sowie ML ein Teilbereich von KI ist. Data Mining ist wiederum die Extraktion von unbekanntem Wissen aus Daten.
  • Vor dem Training sollten wichtige Designentscheidungen geklärt werden.
  • Es gibt nicht das EINE Verfahren, sondern sehr viele verschiedene — insb. sind neuronale Netze nicht immer die beste Wahl 😉
    (den Blogeintrag mit einer illustrativen Geschichte dazu findet Gesina leider nicht mehr)

Ein paar Details

  • Definition Maschinelles Lernen
    • Aus Tom Mitchells Buch „Machine Learning“ (McGraw-Hill, 1997)
    • „Computerprogramme, die sich automatisch durch Erfahrung verbessern.“
    • Erfahrung ~ standardisierte Beispiele
    • Es werden Modelle gelernt, die dann für neue Beispiele Vorhersagen treffen können.
  • Grundprinzipien
    • Weiß ich vorher schon für jedes Beispiel, welche Ausgabe ich idealerweise haben möchte (supervised)? Gibt es Trainingsbeispiele, die noch keine Ausgabe zugewiesen haben (semi-supervised)? Habe ich gelabelte Sequenzen von Aktionen (Reinforcement Learning)? Möchte ich Muster in ungelabelten Daten erkennen (unsupervised)?
    • Labelling ist sehr zeitaufwändig
    • Induktion (= „Verallgemeinerung“ als Gegensatz zur Deduktion)
      • Deduktion: Wenn wir wissen, dass alle Menschen sterblich sind, und wissen, dass Sokrates ein Mensch ist, können wir ableiten, dass Sokrates sterblich ist. Deduktion ist, richtig angewendet, auch immer korrekt.
      • Induktion: Wenn wir beobachtet haben, dass Sokrates sterblich ist, und wir auch wissen, dass er ein Mensch ist, dann könnten wir daraus induzieren, dass alle Menschen sterblich sind. Induktion ist nicht immer korrekt. Sie wird aber immer korrekter, je mehr unterstützende Observationen wir machen.
    • Wir müssen zwischen Trainings- und Testdaten streng unterscheiden. Trainingsdaten habe ich zum Beispiel in gelabelter Form zur Verfügung. Diese Labels sind meist die einzige Grundlage auf der ich ein Modell lernen kann. Ein gelerntes Modell wird dann mit den separaten Testdaten überprüft. Wenn ein großer Prozentsatz an getätigten Vorhersagen des Modells mit den Labels der Testdaten übereinstimmt, performt das Modell gut (zumindest auf den ausgewählten Testdaten).
    • Overfitting tritt dann auf, wenn sich ein Modell zu sehr an die Trainingsdaten anpasst und nicht mehr über die Testdaten generalisieren kann. Dies tritt zum Beispiel auf, wenn sich Fehler in die Trainingsdaten eingeschlichen haben, welche vom Modell als absolute Wahrheit auswendig gelernt wurden. Diese Fehler spiegeln natürlich nicht die „reale Welt“ der Testdaten wider. Das Modell wird also mit hoher Wahrscheinlichkeit Fehler in der Praxis machen.
    • Induktiver Bias beschreibt die Gesamtheit aller Annahmen, die ich tätige um zu rechtfertigen, dass ich nicht einfach nur alle Trainingsdaten auswendig lernen sollte. Induktiver Bias ergibt sich direkt aus den Problemen, die das Overfitting mit sich bringt. Ich muss in der Lage sein, Kompromisse einzugehen, damit ich über meine Trainingsdaten hinweg generalisieren kann. Der Induktive Bias ergibt sich zum Beispiel aus der Wahl des Modelles oder des verwendeten Lernverfahrens.
  • Designentscheidungen vor dem eigentlichen Lernen
    • Art des Problems
      • Klassifizierung (z.B. Katze vs. Hund vs. Stirnlappenbasilisk)
      • Regression (z.B. Kosten für ein Wohnhaus; Vorhersage von Zahlen)
      • u.v.m.
    • Optimierungskriterien
      • Welche Größe möchte ich mit meinem Verfahren „verbessern“, z.B. Minimierung der Fehler die mein Modell auf den Testdaten machen
    • Art des Inputs
      • symbolisch
      • numerisch
      • sequenziell
      • etc.
    • Art des Outputs
      • Konzept (z.B. Katze vs. keine Katze)
      • Klasse (z.B. Katze vs. Hund vs. Stirnlappenbasilisk)
      • Zahl
      • etc.
    • Anzahl (und Qualität) der verfügbaren gelabelten Daten
      • Deep Learning mit kleiner Excel-Tabelle? Nein nein!
      • Sind Fehler in den Daten vorhanden/nicht auszuschließen?
    • Ist mir Trainings- oder Inferenz-Geschwindigkeit wichtiger?
      • Kann ich mir Zeit mit dem Training lassen, damit die Inferenz (Vorhersage für neue, ungesehene Daten) schneller geht (z.B. für selbst fahrende Autos)?
    • Wichtigkeit der Interpretierbarkeit
      • Neuronale Netze sind zwar sehr gut in den zugewiesenen Tasks, sind aber im gelernten Zustand unglaublich komplex und es ist schwer nachzuvollziehen, wie eine Entscheidung entstanden ist.
      • Besonders bei gesundheits- und geldkritischen Situationen sollte klar sein, ob das Modell auch so handelt, wie man es von erfahrenen Expertinnen und Experten erwarten würde.
    • Hardware- und Speicherkapazität
      • Neuere Verfahren wie neuronale Netze sind oftmals sehr hardware-hungrig. Dies kann zum Beispiel Auswirkungen auf den Energieverbrauch und somit auch auf die Umwelt haben.
      • Außerdem kann es negative Auswirkungen auf die demokratische Nutzung von Modellen haben, wenn sich nicht jede*r die Hardware oder den nötigen Speicher leisten kann.
      • Embedded devices sind hier auf dem Vormarsch.
  • Ausgewählte Lernverfahren & Modelle
    • Instanzbasierte Verfahren & Lazy Learning (z.B. k-Nearest Neighbors)
      • Es wird kein Modell gelernt.
      • Wenn ein neues Beispiel ankommt, wird die Ähnlichkeit dieses Beispiels zu bereits vorhandenen Beispielen bewertet und führt zu der neuen Vorhersage.
      • Man braucht hier entweder Punkte im mehrdimensionalen Raum oder Kernels, welche die Ähnlichkeit von beliebig gearteten Beispielen bewerten können.
      • Inferenz kann recht lange dauern! -> Indexierungsmethoden
    • Entscheidungsbauminduktion
      • Baumartige Struktur von Entscheidungsfragen
      • Start oben bei der Wurzel z.B. mit der Frage: „Hat Johannes einen Termin? Ja oder Nein?“
      • Wenn ja, dann Ast nach links, wenn nein, dann nach rechts
      • Auf der nächsten Ebene wieder neue Fragen
      • Irgendwann kommt man dann zum Ende, bei dem dann eine Entscheidung getroffen wird (z.B. „Geht Johannes in die Uni? Ja oder Nein?“).
      • Lernen funktioniert über Filterprozesse in den Trainingsdaten bis eine eindeutige Entscheidung getroffen werden kann.
    • Inductive Logic Programming (= symbolische KI)
      • Gelernte Modelle bestehen aus aussagekräftigen logischen Wenn-Dann-Regeln.
      • „X ist Großvater von Y, wenn es einen Elternteil Z von Y gibt und wenn X der Vater von Z ist.“
      • Lernen funktioniert zum Beispiel mittels gesteuerter Suche im Raum aller möglichen Regeln. Eine gute Regel trifft auf möglichst viele positive und auf möglichst wenig negative Beispiele zu.
      • Erste Erfolge von ILP wurden im Bereich der Mutagenizität erreicht.
      • Modelle sind meist sehr gut von Menschen interpretierbar.
      • Allerdings müssen Beispiele auch in symbolische Daten umgewandelt werden können (z.B. kann man mit ILP nicht direkt auf Bildern arbeiten).
    • Backpropagation
      • Voraussetzungen:
        • Ich habe ein Modell (z.B. ein neuronales Netz) mit Parametern, die angepasst bzw. gelernt werden sollen.
        • Für ein beliebiges Eingabebeispiel kann ich sagen, welcher Parameter (ein kleines Bisschen) in welche Richtung geändert werden muss, um die Ausgabe meines Modells in eine bestimmte Richtung (z.B. Hund -> Katze) zu ändern. Das heißt, man kann berechnen welcher Parameter in welcher Art und Weise zu der (potentiell noch falschen) Ausgabe des Modells beigetragen hat.
      • Für eine vorhandene Struktur eines Modells, z.B. eines neuronalen Netzes, kann ich nach und nach mit Beispielen die Parameter des Modelles so anpassen, dass das Modell irgendwann die korrekten Ausgaben der Testbeispiele ausgeben kann.
      • Die Parameter werden Schritt für Schritt in die „richtige“ Richtung verändert, bis für einen Großteil der Daten die korrekten Ausgaben erzeugt werden.
    • Genetische Optimierung
      • Angelehnt an die natürliche Evolution
      • Modelle werden auf ihre Performanz getestet und es werden die besten Modelle ausgewählt.
      • Diese werden dann nach evolutionären Operatoren mutiert, vereinigt etc., um wieder neue und bessere Modelle zu finden.