Chancen und Risiken maschinellen Lernens
- Wie stellen sich die gesuchten Zusammenhänge in den Daten dar?
- Welche Methode ist für die Anwendung am besten geeignet?
- Liefert das Modell zuverlässige Vorhersagen?
Unser Machine Learning Prozess
Iterativ und anpassungsfähig
Den Kern unseres Prozesses bilden fünf Phasen, die wiederholt durchlaufen werden. Am Ende jedes Durchlaufs steht ein wichtiges Ergebnis, zum Beispiel die Anpassung der Vorgehensweise, um mit einem Problem umzugehen oder eine fertige Version der Anwendung, die neuen Anforderungen gerecht wird.
Nicht jede Iteration muss alle Phasen umfassen, denn ein Machine Learning-Projekt kann jederzeit auf Probleme stoßen, die ein grundsätzliches Umdenken erforderlich machen. Es kann zum Beispiel passieren, dass sich die Daten erst spät in einer Iteration als unzureichend erweisen und eine andere Vorverarbeitung der Datengrundlage notwendig wird. Ebenso können sich die von unseren Kunden gestellten Anforderungen ändern, so dass der eingeschlagene Weg neu bewertet werden muss. In solchen Fällen beenden wir die aktuelle Iteration vorzeitig und beginnen die nächste Iteration damit, die geänderten Rahmenbedingungen mit unseren Kunden abzustimmen und in der weiteren Entwicklung zu berücksichtigen.
Die fünf Phasen decken die gesamte Bandbreite der Entwicklung ab, von der Anforderungsermittlung über die Sammlung und Auswertung der Daten, die Wahl einer geeigneten Methodik und die Bewertung der Ergebnisse bis hin zur Bereitstellung des Produkts.
Collect
Die Erhebung von Datensätzen auf Basis des Building Blocks Collect ist ein wichtiger Bestandteil dieser Phase. Wir sammeln aber neben Daten auch Informationen über das Projekt, die zu erfüllenden Anforderungen sowie zu berücksichtigende Rahmenbedingungen. Auf dieser Grundlage diskutieren wir mit unseren Kunden, welche Lösungsansätze möglich sind und wie das weitere Vorgehen aussehen soll. Ziel ist es, alle grundlegenden Aspekte des Projekts zu erfassen, um der weiteren Entwicklung eine Basis zu geben.
Explore
Unter Nutzung der Werkzeuge des Building Blocks Explore untersuchen wir die Daten auf Auffälligkeiten und Muster, die beim Einsatz von Machine Learning wichtig sein könnten. Gleichzeitig bewerten wir verschiedene Methoden des maschinellen Lernens hinsichtlich ihrer Anwendbarkeit für den gewünschten Einsatzzweck. Wir gewinnen Erkenntnisse über die Aufgabenstellung, indem wir die Daten und den Lösungsraum erkunden. Durch das so erarbeitete Verständnis konzentrieren wir unsere Aufmerksamkeit auf die Vorgehensweisen, die den größten Erfolg versprechen.Improve
Diese Phase und die darin genutzten Techniken und Werkzeuge stellen den Kern des Building Blocks Improve dar. Wir suchen die optimalen Lösungen unter den Ansätzen, die wir in der Explore-Phase herausgearbeitet haben. Dafür passen wir die in Frage kommenden Methoden so lange an die Aufgabenstellung an, bis sie robust sind, den gestellten Anforderungen genügen und auf den bekannten Datensätzen zufriedenstellende Ergebnisse liefern.Evaluate
Die besten Kandidaten aus der Improve-Phase werden umfassend bewertet und verglichen und wenn möglich auch prototypisch im Endprodukt getestet. Vor- und Nachteile dieser Lösungen werden einander gegenübergestellt, so dass wir gemeinsam mit unseren Kunden diejenige für das Endprodukt auswählen können, die den größten Mehrwert bietet.
Deploy
Die ausgewählte Lösung wird in das Endprodukt integriert, so dass unsere Kunden sie nun einsetzen können. Mit dem Ende der Deploy-Phase muss das Projekt nicht enden, denn mit dem
Einsatz des Produkts können weitere Anforderungen entstehen. In diesem
Fall führen wir den Entwicklungsprozess mit einer neuen Iteration fort,
erfassen die neuen Anforderungen und bei Bedarf auch neue Daten und
durchlaufen alle Phasen ein weiteres Mal.
Transparent und nachvollziehbar
Der iterative Ansatz unseres Prozesses erlaubt es uns, schnell auf Herausforderungen und sich ändernde Rahmenbedingungen zu reagieren. Dabei ist uns wichtig, die Ursachen und damit verbundenen Folgen für unsere Kunden transparent darzustellen. Wenn sowohl wir als auch unsere Kunden Entscheidungen bewusst und in Kenntnis aller relevanten Einflüsse treffen, können wir effizient und zielorientiert arbeiten und das Ergebnis entwickeln, das unsere Kunden sich vorstellen. Dafür müssen wir unseren Prozess nachvollziehbar gestalten und die für unsere Kunden wichtigen Informationen herausarbeiten und regelmäßig zur Verfügung stellen.
Dokumentation und Information
Deshalb dokumentieren wir am Ende jeder Phase die Entscheidungen, die wir getroffen haben und die Überlegungen dahinter. Auch wichtige Erkenntnisse und ihr Einfluss auf das Projekt werden von uns erfasst. Treten etwa unvorhergesehene Schwierigkeiten auf, so werden sie in der Dokumentation festgehalten und ihre möglichen Auswirkungen und Risiken beleuchtet. Wir informieren unsere Kunden darüber und entscheiden auf Grundlage der dokumentierten Ergebnisse gemeinsam, wie wir damit umgehen.
Transparenz im Team
Nicht nur zwischen unserem Entwicklerteam und unseren Kunden, sondern auch innerhalb des Teams ist Transparenz wichtig. Frühere Entscheidungen müssen auch später noch nachvollziehbar sein. Umgekehrt sollen gesammelte Erkenntnisse für spätere Entscheidungen zur Verfügung stehen. Der explorative und experimentelle Charakter der ersten drei Phasen Collect, Explore und Improve macht dies besonders deutlich: gerade hier tragen wir viele Informationen zusammen, die wir in späteren Phasen und Iterationen berücksichtigen müssen. Dabei handelt es sich oft um technische Details, die für unsere Kunden keinen unmittelbaren Mehrwert bieten, aber für das Entwicklerteam wichtig sind.
Protokollierung und Versionierung
Deshalb protokollieren wir die Untersuchungen, die wir durchführen, indem wir die verwendete Datenbasis, den ausgeführten Code und die generierten Ausgaben mithilfe von Git und DVC versionieren. Für die Protokolle nutzen wir vorrangig Jupyter Notebooks, die zum Beispiel Diagramme und den Code, der sie erzeugt, zusammen erfassen. Interessiert sich ein Entwickler für die Ergebnisse einer Untersuchung und die Folgerungen, die daraus gezogen wurden, so kann er durch einen Blick in das Protokoll schnell die relevanten Informationen ermitteln. Weil alle Bestandteile versioniert sind, kann er den Code auch selbst ausführen, weiter daran arbeiten oder sich mit den Details auseinandersetzen. Geleistete Arbeit bleibt so für die Zukunft verfügbar und nachvollziehbar.
Ein Prozess für uns und unsere Kunden
Unser hier vorgestelltes Vorgehen ist dank seiner iterativen, in Phasen aufgeteilten Grundstruktur anpassungsfähig und erlaubt die effiziente Reaktion auf unvorhergesehene Einflüsse. Gleichzeitig berücksichtigt es die Bedürfnisse unserer Kunden genauso wie die unserer Entwickler und deckt Möglichkeiten und Risiken auf. Unsere Vorgehensweise geht damit auf die grundlegenden Eigenschaften von Machine Learning Projekten ein: ihr großes Potenzial, aber auch ihre Unsicherheiten werden nachvollziehbar herausgearbeitet und in einem transparenten Entwicklungsprozess gegeneinander abgewogen. Wir entwickeln damit für unsere Kunden auf der Grundlage maschinellen Lernens wertvolle, zukunftsfähige Produkte.
Sie möchten mit einem Machine Learning-Projekt starten? Gerne finden wir mit Ihnen erste Ansatzpunkte.