Laptop mit Screenshot dreier Projektphasen

Case Study: 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 maschi­nellen Lernens 

Künst­liche Intel­li­genz und Machine Learning gewinnen in unserem Alltag und in der Indus­trie zuneh­mend an Bedeu­tung. Daten­ge­trie­bene Algorithmen lösen anspruchs­volle Probleme und ermög­li­chen völlig neue Anwen­dungen. Ihr Einsatz erfor­dert aber Fachkennt­nisse und ist mit Unsicher­heiten behaftet: 

  • Wie stellen sich die gesuchten Zusam­men­hänge in den Daten dar?
  • Welche Methode ist für die Anwen­dung am besten geeignet?
  • Liefert das Modell zuver­läs­sige Vorhersagen?
Um damit umzugehen und das Poten­zial, aber auch die Heraus­for­de­rungen eines Projekts trans­pa­rent darzu­stellen, nutzen wir einen an die Bedürf­nisse unserer Kunden angepassten Entwick­lungs­pro­zess. Er basiert auf dem Indus­trie­stan­dard CRISP-DM und macht jeden Entwick­lungs­schritt für uns und unsere Kunden sichtbar und nachvoll­ziehbar. Gleich­zeitig ist er durch seine itera­tive Grund­struktur so flexibel, dass wir auf neue Anfor­de­rungen und unvor­her­ge­se­hene Probleme effizient reagieren können. 

Unser Machine Learning Prozess

Iterativ und anpassungsfähig

Den Kern unseres Prozesses bilden fünf Phasen, die wieder­holt durch­laufen werden. Am Ende jedes Durch­laufs steht ein wichtiges Ergebnis, zum Beispiel die Anpas­sung der Vorge­hens­weise, um mit einem Problem umzugehen oder eine fertige Version der Anwen­dung, die neuen Anfor­de­rungen gerecht wird.

Nicht jede Itera­tion muss alle Phasen umfassen, denn ein Machine Learning-Projekt kann jeder­zeit auf Probleme stoßen, die ein grund­sätz­li­ches Umdenken erfor­der­lich machen. Es kann zum Beispiel passieren, dass sich die Daten erst spät in einer Itera­tion als unzurei­chend erweisen und eine andere Vorver­ar­bei­tung der Daten­grund­lage notwendig wird. Ebenso können sich die von unseren Kunden gestellten Anfor­de­rungen ändern, so dass der einge­schla­gene Weg neu bewertet werden muss. In solchen Fällen beenden wir die aktuelle Itera­tion vorzeitig und beginnen die nächste Itera­tion damit, die geänderten Rahmen­be­din­gungen mit unseren Kunden abzustimmen und in der weiteren Entwick­lung zu berücksichtigen.

Die fünf Phasen decken die gesamte Bandbreite der Entwick­lung ab, von der Anfor­de­rungs­er­mitt­lung über die Sammlung und Auswer­tung der Daten, die Wahl einer geeig­neten Methodik und die Bewer­tung der Ergeb­nisse bis hin zur Bereit­stel­lung des Produkts.

Collect


Die Erhebung von Daten­sätzen auf Basis des Building Blocks Collect ist ein wichtiger Bestand­teil dieser Phase. Wir sammeln aber neben Daten auch Infor­ma­tionen über das Projekt, die zu erfül­lenden Anfor­de­rungen sowie zu berück­sich­ti­gende Rahmen­be­din­gungen. Auf dieser Grund­lage disku­tieren wir mit unseren Kunden, welche Lösungs­an­sätze möglich sind und wie das weitere Vorgehen aussehen soll. Ziel ist es, alle grund­le­genden Aspekte des Projekts zu erfassen, um der weiteren Entwick­lung eine Basis zu geben.

Explore


Unter Nutzung der Werkzeuge des Building Blocks Explore unter­su­chen wir die Daten auf Auffäl­lig­keiten und Muster, die beim Einsatz von Machine Learning wichtig sein könnten. Gleich­zeitig bewerten wir verschie­dene Methoden des maschi­nellen Lernens hinsicht­lich ihrer Anwend­bar­keit für den gewünschten Einsatz­zweck. Wir gewinnen Erkennt­nisse über die Aufga­ben­stel­lung, indem wir die Daten und den Lösungs­raum erkunden. Durch das so erarbei­tete Verständnis konzen­trieren wir unsere Aufmerk­sam­keit auf die Vorge­hens­weisen, 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 heraus­ge­ar­beitet haben. Dafür passen wir die in Frage kommenden Methoden so lange an die Aufga­ben­stel­lung an, bis sie robust sind, den gestellten Anfor­de­rungen genügen und auf den bekannten Daten­sätzen zufrie­den­stel­lende Ergeb­nisse liefern.

Evaluate


Die besten Kandi­daten aus der Improve-Phase werden umfas­send bewertet und vergli­chen und wenn möglich auch proto­ty­pisch im Endpro­dukt getestet. Vor- und Nachteile dieser Lösungen werden einander gegen­über­ge­stellt, so dass wir gemeinsam mit unseren Kunden dieje­nige für das Endpro­dukt auswählen können, die den größten Mehrwert bietet.

Icon Evaluate

Deploy


Die ausge­wählte Lösung wird in das Endpro­dukt 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 Anfor­de­rungen entstehen. In diesem Fall führen wir den Entwick­lungs­pro­zess mit einer neuen Itera­tion fort, erfassen die neuen Anfor­de­rungen und bei Bedarf auch neue Daten und durch­laufen alle Phasen ein weiteres Mal.

Trans­pa­rent und nachvollziehbar

Der itera­tive Ansatz unseres Prozesses erlaubt es uns, schnell auf Heraus­for­de­rungen und sich ändernde Rahmen­be­din­gungen zu reagieren. Dabei ist uns wichtig, die Ursachen und damit verbun­denen Folgen für unsere Kunden trans­pa­rent darzu­stellen. Wenn sowohl wir als auch unsere Kunden Entschei­dungen bewusst und in Kenntnis aller relevanten Einflüsse treffen, können wir effizient und zielori­en­tiert arbeiten und das Ergebnis entwi­ckeln, das unsere Kunden sich vorstellen. Dafür müssen wir unseren Prozess nachvoll­ziehbar gestalten und die für unsere Kunden wichtigen Infor­ma­tionen heraus­ar­beiten und regel­mäßig zur Verfü­gung stellen.

Dokumen­ta­tion und Information


Deshalb dokumen­tieren wir am Ende jeder Phase die Entschei­dungen, die wir getroffen haben und die Überle­gungen dahinter. Auch wichtige Erkennt­nisse und ihr Einfluss auf das Projekt werden von uns erfasst. Treten etwa unvor­her­ge­se­hene Schwie­rig­keiten auf, so werden sie in der Dokumen­ta­tion festge­halten und ihre mögli­chen Auswir­kungen und Risiken beleuchtet. Wir infor­mieren unsere Kunden darüber und entscheiden auf Grund­lage der dokumen­tierten Ergeb­nisse gemeinsam, wie wir damit umgehen. 
Icon Dokumentation

Trans­pa­renz im Team


Nicht nur zwischen unserem Entwick­ler­team und unseren Kunden, sondern auch inner­halb des Teams ist Trans­pa­renz wichtig. Frühere Entschei­dungen müssen auch später noch nachvoll­ziehbar sein. Umgekehrt sollen gesam­melte Erkennt­nisse für spätere Entschei­dungen zur Verfü­gung stehen. Der explo­ra­tive und experi­men­telle Charakter der ersten drei Phasen Collect, Explore und Improve macht dies beson­ders deutlich: gerade hier tragen wir viele Infor­ma­tionen zusammen, die wir in späteren Phasen und Itera­tionen berück­sich­tigen müssen. Dabei handelt es sich oft um techni­sche Details, die für unsere Kunden keinen unmit­tel­baren Mehrwert bieten, aber für das Entwick­ler­team wichtig sind. 
Icon Transparenz

Proto­kol­lie­rung und Versionierung


Deshalb proto­kol­lieren wir die Unter­su­chungen, die wir durch­führen, indem wir die verwen­dete Daten­basis, den ausge­führten Code und die generierten Ausgaben mithilfe von Git und DVC versio­nieren. Für die Proto­kolle nutzen wir vorrangig Jupyter Notebooks, die zum Beispiel Diagramme und den Code, der sie erzeugt, zusammen erfassen. Inter­es­siert sich ein Entwickler für die Ergeb­nisse einer Unter­su­chung und die Folge­rungen, die daraus gezogen wurden, so kann er durch einen Blick in das Proto­koll schnell die relevanten Infor­ma­tionen ermit­teln. Weil alle Bestand­teile versio­niert sind, kann er den Code auch selbst ausführen, weiter daran arbeiten oder sich mit den Details ausein­an­der­setzen. Geleis­tete Arbeit bleibt so für die Zukunft verfügbar und nachvollziehbar. 
Icon Protokollierung

Ein Prozess für uns und unsere Kunden 

Unser hier vorge­stelltes Vorgehen ist dank seiner itera­tiven, in Phasen aufge­teilten Grund­struktur anpas­sungs­fähig und erlaubt die effizi­ente Reaktion auf unvor­her­ge­se­hene Einflüsse. Gleich­zeitig berück­sich­tigt es die Bedürf­nisse unserer Kunden genauso wie die unserer Entwickler und deckt Möglich­keiten und Risiken auf. Unsere Vorge­hens­weise geht damit auf die grund­le­genden Eigen­schaften von Machine Learning Projekten ein: ihr großes Poten­zial, aber auch ihre Unsicher­heiten werden nachvoll­ziehbar heraus­ge­ar­beitet und in einem trans­pa­renten Entwick­lungs­pro­zess gegen­ein­ander abgewogen. Wir entwi­ckeln damit für unsere Kunden auf der Grund­lage maschi­nellen Lernens wertvolle, zukunfts­fä­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äfts­führer IT Enginee­ring Software Innovations