„Wir lösen jetzt unsere Themen mit Machine Learning, also müssen wir nichts mehr programmieren!“ Ist das so? Ersetzt Machine Learning bald jede Programmieraufgaben und ist damit die klassische Softwareentwicklung unnötig?
Machine Learning ist kein neues Verfahren. Egal, ob Entscheidungsbäume, Clustering-Verfahren oder lernende künstliche neuronale Netze, die zugrundeliegenden Algorithmen sind im Wesentlichen nicht neu. Woher kommt dann der heutige Hype der selbstlernenden Maschinen und gibt es Grenzen der Systeme?
Inhalt
Auf Basis der zugrundeliegenden Lernmethode gibt es drei klassische Unterscheidungen, wobei kombinierte Methoden möglich sind:
Bei autonomen Fahren, dem Sieg gegen den Go-Meister oder Spracherkennungssystemen sind gelernte künstliche neuronale Netze die Basis für viele der heutigen „Wunder“, die fast täglich in der Zeitung stehen. Die heutigen Netze sind mit 20 oder sogar 150 Layer von den frühen Anfängen mit 2-3 Layer weit entfernt.
Der Hype basiert auf der Renaissance dieser künstlichen neuronalen Netze in Verbindung mit Deep Learning. Auf Basis von Lerndaten werden in den Netzen Strukturen gelernt. Dadurch entsteht im inneren eines Netzes ein Algorithmus, der die Lerndaten repräsentiert. Die Repräsentation muss genau genug sein, um neue Daten zuverlässig bewerten zu können. Sie darf allerdings nicht zu genau sein, da neue Daten bewertet werden sollen, die nicht in allen Eigenschaften den bisherigen entsprechen.
Motor für diese Renaissance ist die Entwicklungen der Technik und die Verfügbarkeit großer Datenmengen und Informationen. Beide Faktoren haben in den vergangenen Jahren einen Schub erlebt:
Die zugrundeliegenden Algorithmen, die für Machine Learning Systeme als Modell bezeichnet werden, werden auf eine andere Weise als in der klassischen Programmierung erstellt.
In der analytischen Entwicklung von Algorithmen werden die Anforderungen oder Daten analysiert und daraufhin der Algorithmus umgesetzt und optimiert. Es ist beispielsweise theoretisch möglich, eine große Anzahl von Go-Spielen aus den letzten Jahre anzusehen, diese zu analysieren und daraus einen Algorithmus zu entwickeln, der vermutlich in Konsequenz dem im inneren des künstlichen neuronalen Netzes, das den Go-Meister geschlagen hat, entspricht. Die Frage ist, ob es mit vertretbarem Aufwand möglich ist eine solchen Algorithmus zu definieren, umzusetzen und zu testen.
Das ist die Stärke der Machine-Learning-Systeme. Sie entwickeln ihren Algorithmus selbst. In einer überschaubaren Trainingszeit wird aufgrund der Architektur des künstlichen neuronalen Netzes mit den Lerndaten ein Algorithmus generiert. Der erlernte Algorithmus ist im Verhältnis zum Lernsystem recht klein und kann für viele Anwendungen, wie Objekterkennung oder Spracherkennung, auf Mobiltelefonen laufen.
Ja, das ist als Zukunftsszenario vorstellbar. Alle Funktionen und Algorithmen sind grundsätzlich trainierbar. Das Trainieren der Systeme ist jedoch von der Verfügbarkeit der Lerndaten abhängig. Bei manchen Themen ist heute der klassische Weg der Implementierung von Algorithmen zielführender und einfacher, als einem System und die entsprechende Umgebung für das Training zu definieren.
Hierzu ein Beispiel: Es soll die einfache Addition a+b von einem Reinforcement Neural Network erlernt werden. Was ist zu tun? Das Netz benötigt eine Umgebung, in der es für das korrekte Erkennen des Ergebnisses belohnt wird. Die Beurteilung, ob ein gelerntes Ergebnis korrekt ist oder nicht, kann über die Berechnung a+b geprüft werden. Also muss die Funktion a+b programmiert werden, da sie das Netz beim automatischen Lernen unterstützt. Wenn die Funktion sowieso programmiert werden muss, macht es wenig Sinn sie danach noch einmal über ein Machine Learning System zu lernen. Hier ist die klassische Programmierung einfacher und schneller.
Die Stärken der Machine Learning Systeme liegen in Aufgaben, zu denen der Lösungsalgorithmus nicht in vernünftiger Zeit analysierbar ist oder in dem Aufbau von Systemen, die sich verändernden Umgebungen anpassen müssen. Ist der Algorithmus bekannt, ist die klassische Programmierung das Mittel der Wahl.
Was bedeutet Machine Learning und wie kann Ihr Unternehmen vom Einsatz profitieren? Erfahren Sie, wie wir Sie beim Thema Machine Learning unterstützen können: