Machine-Learning in der Industrie: Aus Erfahrung klug werden

Fortsetzung des Artikels von Teil 2.

Auswahl des richtigen Algorithmus

Die Auswahl des richtigen Algorithmus kann sehr schwierig erscheinen, denn es gibt Dutzende überwachter und nicht überwachter Machine-Learning-Algorithmen, und jeder verfolgt einen anderen Ansatz. Es gibt keine beste Methode und keine, die immer geeignet ist.

Die Auswahl des richtigen Algorithmus erfolgt zudem teilweise durch Experimentieren – auch sehr erfahrene Datenwissenschaftler können nicht wissen, wie gut ein Algorithmus geeignet ist, ohne es ausprobiert zu haben. Allerdings hängt die Auswahl eines Algorithmus auch von Umfang und Art der Daten ab, die gesammelt und analysiert werden, von den Erkenntnissen, die aus den Daten gezogen werden sollen, und von der geplanten Verwendung dieser Erkenntnisse.

Erfreulicherweise können Machine-Learning und Software-Tools die Auswahl des Algorithmus optimieren, indem sie es ermöglichen, Daten zu untersuchen, viele verschiedene Modelle anzuwenden und genauer vorherzusagen, wie der Algorithmus mit dem Gesamtsystem interagieren wird.

MathWorks Bildquelle: © MathWorks

Die Signal-Analyzer-App von MathWorks

Implementierung zur richtigen Zeit

Nachdem ein Entwicklungsteam den für eine Funktion oder ein Projekt am besten geeigneten Algorithmus ermittelt hat, stellt sich die Frage, wann die Technologie implementiert werden soll. Am besten eignet sich Machine-Learning für Probleme mit großen Datensätzen und vielen Variablen sowie für Fälle, für die keine Formel oder Gleichung existiert. Oft gehen Unternehmen bei der Auswahl und Integration eines Algorithmus übereilt vor und verschwenden dadurch letztlich Zeit und Ressourcen für eine Aufgabe, die nicht die komplexen technischen Fähigkeiten von Machine-Learning erfordert. Stattdessen sollte Machine-Learning in Situationen berücksichtigt werden, in denen

  • handgeschriebene Regeln und Gleichungen zu komplex wären, etwa bei der Gesichts- und Spracherkennung;
  • die Regeln einer Aufgabe sich ständig verändern, etwa bei der Betrugserkennung anhand von Transaktionsaufzeichnungen; die Art der Daten sich fortlaufend verändert und das Programm sich anpassen muss, etwa im automatisierten Handel, bei der Vorhersage des Energiebedarfs und bei der Vorhersage von Einkaufstrends.
MathWorks Bildquelle: © MathWorks

Die Signal-Analyzer-App von MathWorks

Die Entwicklungs-Teams werden das Potenzial von Machine-Learning schnell verstehen und schätzen, wenn es korrekt und im richtigen Kontext umgesetzt wird, beispielsweise zum Sammeln und Analysieren großer dynamischer Datensätze. Je komplizierter die Aufgabe, desto wahrscheinlicher ist es, dass Unternehmen davon profitieren.

Implementierung in Embedded-Systemen

Es gibt mehrere Möglichkeiten, diese Algorithmen in ein Embedded-System zu integrieren. Zum einen könnte man nur die Datenerfassung und eine Vorverarbeitung der Daten (Filterung, Ausreißer-Detektion, Merkmalsextraktion u.a.) in dem Embedded-Device laufen lassen. Damit erreicht man eine Reduktion der Datenmenge, die zum System (Edge-Device, Industrie-PC, On-Premise-Cloud, Public Cloud) gesandt wird, in dem die eigentliche Analyse stattfindet. Mittlerweile gibt es aber auch Workflows, bei denen der komplette Algorithmus wie ein vortrainierter Machine-Learning-Algorithmus in dem Device ausgeführt wird und keine Verbindung zu einer Cloud oder einem anderen System nötig ist.

Die jeweiligen Zielsysteme benötigen unterschiedliche Arten von lauffähigem Code. In einer Embedded-CPU läuft meist C-Code, in einer Nvidia-GPU CUDA-Code und in anderen Systemen können Desktop-fähige Software-Pakete laufen. Der Code lässt sich händisch für die jeweilige Zielplattform programmieren – entweder auf Basis eines Prototyps aus einer Software-Umgebung oder von Grund auf neu.

Des Weiteren gibt es die Möglichkeiten, aus einer Software-Umgebung wie Matlab automatisch Code für Zielplattformen wie Embedded-Devices (C-Code), FPGAs (HDL-Code), GPUs (CUDA-Code) oder SPSen (strukturierter Text) zu generieren. Das hat verschiedene Vorteile: Man kann beispielsweise die Applikationen als Prototyp in Matlab entwickeln und erst dann die Entscheidung treffen, ob man die Applikation direkt in Matlab, mittels Code-Generierung in einem Embedded-Device (CPU, GPU) oder in der Cloud verwenden will.

Seth Deland ist Application/Product Manager für Data Analytics bei MathWorks.