Mit AutoML hat Google jüngst einen Ansatz vorgestellt, der die Entwicklung von Anwendungen maschinellen Lernens vereinfachen und optimieren soll, und zwar mithilfe von maschinellem Lernen.
Hierbei erstellt ein erster Machine-Learning-Algorithmus einen Vorschlag zu Architektur und Konfiguration des zu entwickelnden zweiten Machine-Learning-Algorithmus und erprobt diesen. Anhand der Performance dieses Vorschlages lernt wiederrum der übergeordnete Algorithmus, Controller genannt, welche Konzepte und Konfiguration zu einer besseren Performance des zu entwickelnden Algorithmus führen. Aus dieser Erfahrung kann nun der Controller neue Vorschläge zu Architektur und Konfiguration des zweiten Algorithmus machen und diese erneut analysieren.
Und der Ansatz scheint Früchte zu tragen: Google schreibt in dem betreffenden Eintrag seines Research-Blogs (https://research.googleblog.com/2017/05/using-machine-learning-to-explore.html), dass mit diesem Ansatz Algorithmen zur Bilderkennung erstellt werden konnten, die sich mit, von menschlichen Experten konzeptionierten Algorithmen messen können.
Maschinen die lernen, wie Maschinen lernen. Hat Google nun damit die technologische Singularität erschaffen? Also den Zeitpunkt ab dem die technologische Weiterentwicklung durch sich selbst verbessernde Maschinen nicht mehr menschlich fassbar ist? Wahrscheinlich nicht, und wenn doch haben wir es zumindest noch nicht bemerkt.
Doch die Idee hinter dem Konzept der Staffelung solcher Algorithmen ist sehr naheliegend. Vor allem vielschichtige, künstliche neuronale Netze sind eine sehr komplexe Ausprägung maschinellen Lernens. Sie werden stark durch ihre Hyperparameter definiert, also die Variablen, die Konfiguration und die Logik des Machine-Learning-Algorithmus selbst beschreiben, ohne dabei dessen inhaltliche Aufgabe zu berühren. Doch auch diese sind komplex, oft viele an der Zahl und kompliziert verknüpft. Also genau die Art Input, die sich mit Machine-Learning-Algorithmen hervorragend analysieren lässt.
Machine Learning wird aus einem einfachen Grund immer bekannter und beliebter: Die Einsatzmöglichkeiten sind schier endlos. Es lässt sich von einfachen Smartphone Apps über Analysesysteme für riesige Datensätze der Finanzbrache fast universell integrieren.
Mit dieser Blogserie möchte ich dem interessierten Leser grundlegende Funktionsweise, interessante Anwendungen und aktuelle Entwicklungen aus der faszinierenden Disziplin des Machine Learning näher bringen und beleuchten wo sich Requirements Engineering und Machine Learning überschneiden, verbinden lassen oder vielleicht sogar ersetzen. Werden Maschinen auch bald von uns RElern lernen? Oder vielleicht sogar anders herum?
Und was genau definiert überhaupt maschinelles Lernen, wenn schon der Begriff des Lernens selbst gar nicht so einfach abzugrenzen ist?
Der amerikanische Informatiker Tom Mitchell, Leiter des Departments Machine Learning der Carnegie Mellon Universität, formulierte 1997 in seinem Buch „Machine Learning“ die vielzitierte Definition:
„A computer program is said to learn from experience E with respect to some class of task T and performance measure P if its performance at tasks in T as measured by P, improves with experience E.“
Frei übersetzt bedeutet dies: Ein Computerprogramm lernt aus Erfahrung E im Lösen von Aufgaben eines Types T, wenn seine Performance P im Lösen dieser Aufgaben vom Typ T mit zunehmender Erfahrung E steigt.
Um dies zu bewirken muss sich die Maschine, oder das Programm also selbst im Lösen ihrer Aufgabe verbessern können. Ihr Erschaffer definiert nun nicht mehr den Weg zur Lösung der Aufgabe,sondern die Regeln, nach denen der Algorithmus diesen Weg finden soll.
Ein einfaches Beispiel wäre beispielsweise die Vorhersage von Variablen B anhand von Variablen A: Die Maschine sagt eine Variablenmenge B anhand von einer Variablenmenge A voraus, ändert die Parameter ihres Vorhersage-Algorithmus und wiederholt den Prozess. Je nachdem ob durch die Veränderung nun eine Verbesserung oder Verschlechterung der Vorhersagequalität bewirkt wurde, kann die Maschine nun ihre Vorhersageparameter erneut anpassen. Der Vorteil maschinellen Lernens hier ist, dass (abhängig vom Ausmaß der zu analysierenden Daten) dieser Vorgang,meist in geringer Zeitspanne extrem oft wiederholt werden kann, bis die Ergebnisqualität einem gewünschten Standard entspricht, während ein Mensch nach dem zehnten Sturz vom Skateboard wohlmwahrscheinlich sogar die Lust verliert.
Dies stellt natürlich nur ein stark verkürztes Beispiel zur Funktionsweise von Machine Learning dar, doch das evolutionäre Konzept von Veränderung und Beibehalten von Bewährtem ist ein Grundbaustein dieser Disziplin.
In den nächsten Teilen dieser Blogserie werde ich näher auf Funktionsweise, Logik und Kategorien eingehen, vor allem aber werde ich die Thematik betrachten, wo es Schnittstellen zwischen Requirements Engineering und Machine Learning gibt, wo diese Disziplinen sich überschneiden oder komplettieren und wie die Entwicklung maschinellen Lernens auch unseren Job als Requirements Engineers prägen und verändern könnte.
Und zu guter Letzt freue ich mich, meinen eigenen Kurzvortrag zum Thema „Machine-Learning & RE – Doch wer lernt von wem?“ auf den SOPHIST DAYS 2017 anzukündigen, vielleicht lernt man sich dort ja sogar kennen!
Teil 2: Machine Learning und Requirements-Engineering – Doch wer lernt von wem?