Laptop mit Screenshot dreier Projektphasen

Success Story: Unser Machine Learning Prozess

Mit Machine Learning ist es möglich, aus den im Kontext von Industrie 4.0 bereits vielfach erhobenen Daten einen spürbaren Mehrwert zu generieren. Um die Potenziale Künstlicher Intelligenz ausschöpfen zu können, ohne an ihren Herausforderungen zu scheitern, ist ein daran angepasster Entwicklungsprozess erforderlich.

Chancen und Risiken maschinellen Lernens

Künstliche Intelligenz und Machine Learning gewinnen in unserem Alltag und in der Industrie zunehmend an Bedeutung. Datengetriebene Algorithmen lösen anspruchsvolle Probleme und ermöglichen völlig neue Anwendungen. Ihr Einsatz erfordert aber Fachkenntnisse und ist mit Unsicherheiten behaftet:

  • 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?
Um damit umzugehen und das Potenzial, aber auch die Herausforderungen eines Projekts transparent darzustellen, nutzen wir einen an die Bedürfnisse unserer Kunden angepassten Entwicklungsprozess. Er basiert auf dem Industriestandard CRISP-DM und macht jeden Entwicklungsschritt für uns und unsere Kunden sichtbar und nachvollziehbar. Gleichzeitig ist er durch seine iterative Grundstruktur so flexibel, dass wir auf neue Anforderungen und unvorhergesehene Probleme effizient reagieren können.

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.

Logo der IIoT Building Blocks mit Pfeil als Symbol für Collect

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.
Logo der IIoT Building Blocks mit Lupe als Symbol für Explore

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.
Logo der IIoT Building Blocks mit Diagramm als Symbol für Improve

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.

Logo der IIoT Building Blocks mit Checkliste als Symbol für Evaluate

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.

Case Study - Unser ML-Prozess - Icon Deploy

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.
Dokument als Symbol für Dokumentation

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.
netzartig verbundene Presonen als Symbol für Transparenz im Team

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.
Checkliste als Symbol für Protokollierung

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.

Bild von Wolfram Schäfer

Wolfram Schäfer

Geschäftsführer IT Engineering Software Innovations

Softwareentwicklung
Softwareentwicklung
Softwareentwicklung