Seit dem vermehrten Einsatz von Algorithmen im Bereich des Maschinellen Lernens (ML) oder der Künstlichen Intelligenz (KI) und dem damit verbunden öffentlichen Interesse tritt immer häufiger die Frage nach dem „Training“ der Algorithmen auf.
Im Prinzip ist das Trainieren eines Algorithmus nichts, was explizit ML oder KI zuzuordnen ist. Erste Anwendungen gehen ca. 350 Jahre zurück und führen zu den Gelehrten Isaac Newton und Joseph Raphson. Diese entwickelten eine Berechnungsvorschrift, um nichtlineare Gleichungen näherungsweise zu lösen. Da nun ein Algorithmus nichts anderes als eine Berechnungsvorschrift ist, ist dieser „trainierbare“ Algorithmus bereits 350 Jahre alt.
Das Ziel des Trainings ist damals wie heute ein und dasselbe: Eine bestimmte Zielgröße durch einen gegebenen Satz von Eingangswerten (näherungsweise) zu bestimmen. Ein einfaches Beispiel:
Ein großer Messbecher steht unter einem Wasserhahn, der nur über zwei Einstellungen (auf/zu) verfügt. Wird nun das Wasser aufgedreht füllt sich der Becher. Nun möchte man wissen, wann der Becher voll ist. Leider kennt man die Durchflussrate des Wasserhahns nicht. Man kann annehmen, dass der Wasserfluss konstant ist. Der Algorithmus für den Wasserstand lautet folglich:
Wasserstand = Durchflussrate * Zeit
Der „trainierbare“ Parameter ist die Durchflussrate. Nun notiert man zu einem beliebigen Zeitpunkt die Wassermenge im Becher. Zu einem späteren, definierten Zeitpunkt notiert man erneut die Wassermenge im Becher. Dieses Vorgehen entspricht zwei „Trainingszyklen“ und man erhält zwei Punkte auf einer Zeitachse, die durch eine Gerade miteinander verbunden werden können. Die Steigung der Geraden gibt die Durchflussrate des Wasserhahns wieder. Ist diese bestimmt, so ist der Algorithmus fertig trainiert.
Man kann sich leicht vorstellen, dass dieser Algorithmus nur exakt für den genannten Wasserhahn mit exakt gleichem Druck sinnvolle Ergebnisse liefert.
Sehr vereinfacht gesagt, arbeiten Künstliche Neuronale Netzwerke (KNN) ähnlich. Aus einem definierten Satz von Eingangsdaten, beispielsweise Bilddaten, werden Zielgrößen (zeigt das Bild ein Auto? Ja/Nein) bestimmt. Der wesentliche Unterschied eines KNN zu dem oben genannten liegt in der hohen Komplexität und der daraus resultierenden Anzahl zu bestimmender Parameter.