Die Grundidee des Maschinellen Lernens

Um die Grundidee des maschinellen Lernens zu verstehen, stellen wir uns eine Maschine vor. Sie ist so konstruiert worden, dass für jede Eingabe eine zugehörige vorher festgelegte Ausgabe produziert wird. Bei einer solchen Maschine muss also vorher für alle Eingaben bekannt sein, was als Ausgabe herauskommen soll. Außerdem muss man ganz genau wissen, wie man diese Ausgabe konstruiert, d.h. wie die Maschine funktioniert. Man kann sie sich als eine System von Zahnrädern, Hebeln und anderer Mechanischer Teile vorstellen, die genau aufeinander abgestimmt sind.

Jetzt versieht man die Maschine mit Stellschrauben, die beeinflussen, wie schnell sich die Zahnräder drehen oder wie lang die Hebel sind. Wenn man die Stellschrauben verändert, produziert die Maschine bei gleichen Eingaben unterschiedliche Ausgaben. Man kann über die Stellschrauben also beeinflussen, was die Maschine produziert. Dadurch können wir mit der selben Maschine unterschiedliche Dinge produzieren, je nachdem wie die Stellschrauben eingestellt werden. Dadurch ergibt sich ein wichtiges Problem:

Wie muss ich die Stellschrauben einstellen, damit die Maschine das tut, was ich möchte?

Eine Möglichkeit ist es, dass man einfach ausprobiert, welche Stellung der Stellschrauben hzu welchen Ergebnissen führt. Ideal wäre es, wenn dieses Verfahren automatisieren könnte, d.h. wenn man eine andere Maschine bauen könnte, die das Ausprobieren für uns übernimmt.

Die einfachste Idee wäre es, dass diese Lernmaschine alle möglichen Einstellungen systematisch ausprobiert. Allerdings wird das sehr lange dauern, denn wir müssen nicht nur alle Stellschrauben verändern, sondern für jede Einstellung auch alle Ein- und Ausgaben überprüfen.

Stattdessen gehen wir anders vor. Wir sammeln eine Reihe von Eingaben und dazu passenden Ausgaben. Diese nennen wir Trainingsein- und -ausgaben. Sie sollen beschreiben, wie die Ausgabe der Maschine aussehen soll, wenn eine bestimmte Eingabe erfolgt. Um jetzt die Stellschrauben zu verändern, legen wir an die Maschine eine Trainingseingabe an, lass sie laufen und erhalten so eine Ausgabe. Diese vergleichen wir mit der von uns gewünschten Trainingsausgabe. Abhängig davon, wie sehr sich die beiden Ausgaben unterscheiden verändern wir jetzt die Positionen der Stellschrauben. Wie wir das machen, beschreibt der Lernalgorithmus. Den kann man sich auch als eine kleine Maschine vorstellen, die die beiden Ausgaben unserer großen Maschine als Eingabe erhält und dann die Stellschrauben verändert (das ist seine Ausgabe).

Das ganze Verfahren wiederholt man nun sehr häufig mit allen Trainingsein- und -ausgaben. Dadurch erhofft man sich, dass die große Maschine irgendwann gelernt hat, die gewünschten Ausgaben zu produzieren.

Allerdings gibt es ein paar Hindernisse auf diesem Weg:

  • Kann die Maschine die gewünschten Ausgaben überhaupt produzieren?
    Gibt es eine Einstellung für die Stellschrauben, die zu den gewünschten Ergebnissen führt?

  • Führt der Lernalgorithmus zum Erfolg?
    Wenn es die "richtige" Einstellung der Stellschrauben gibt, findet der Lernalgorithmus sie?

  • Wie viele Trainingsdaten brauche ich und wie oft muss ich trainieren?
    Je komplizierter die gewünschte Maschine ist, desto mehr Trainingsdaten brauche ich. Und eventuell muss ich sie länger trainieren, um ein gutes Ergebnis zu erzielen.

  • Was macht die Maschine auf Eingaben, die nicht in den Trainingsdaten waren?
    Durch den Lernprozess kann man die Maschine so einstellen, dass sie auf den Trainingseingaben die entsprechenden Trainingsausgaben liefert. Aber was ist mit allen anderen Eingaben?

Wie es weitergeht

Das nächste Kapitel beschäftigt sich damit, wie ein einzelnes Neuron lernt.

Version 0.0