figure
figure icon figure icon figure icon
1 Juni 2020
0
(0)
Lesezeit: 10 minutes

Maschinelles Lernen & ThingWorx vs. COVID-19

Die Entwicklung der künstlichen Intelligenz und damit auch des maschinellen Lernens hat in den letzten Jahren an Dynamik gewonnen. Das ständige Bestreben, die Rechenleistung von Computern zu erhöhen, hat die Möglichkeit eröffnet, Algorithmen und mathematische Apparate, die in der zweiten Hälfte des 20. Jahrhunderts geschaffen wurden, in einem noch nie dagewesenen Umfang zu nutzen. Mit der bevorstehenden Ankunft eines kommerziellen Quantencomputers kann man langsam anfangen, die Szenen aus den Filmen mit Arnold Schwarzenegger in der Titelrolle des Terminators zu fürchten. Ohne jedoch zu weit in die Zukunft zu gehen und mich auf die Gegenwart zu konzentrieren, beschloss ich, die Möglichkeiten zu prüfen, die die heute verfügbare Technologie bietet, und zu untersuchen, ob sie zur Vorhersage der Ausbreitung der COVID-19-Krankheit eingesetzt werden kann.

Was ist maschinelles Lernen?

Es gibt viele Definitionen des maschinellen Lernens im Web: ideologische, streng mathematische und sogar philosophische. Als ich versuchte, dieses Konzept selbst zu definieren, fand ich es am besten, mich auf den Vergleich zwischen maschinellem Lernen und klassischer Programmierung zu konzentrieren.

Vergleich des maschinellen Lernens mit traditioneller Programmierung

1) Vergleich des maschinellen Lernens mit traditioneller Programmierung

Abgesehen von allen Arten von Softwareentwicklungsmethoden (objektorientiert, strukturell, funktional usw.) wissen und verstehen die meisten von uns, worum es bei der traditionellen Programmierung geht: Wenn wir Eingabedaten haben und einen Algorithmus verwenden, der für die Lösung eines bestimmten Problems geeignet ist, erhalten wir Ergebnisse – Ausgabedaten.

Ein Beispiel: Die im Bankwesen verwendeten Algorithmen sind vordefiniert, und dank ihrer präzisen Umsetzung machen wir uns keine Sorgen, ob die von uns gesendete Internet-Überweisung den Empfänger sicher erreicht und der Saldo unserer Konten übereinstimmt.

Beispiel-Algorithmus in der traditionellen Programmierung

2) Beispiel-Algorithmus in der traditionellen Programmierung

Es scheint also, dass wir durch die Erstellung des richtigen Algorithmus in der Lage sind, jede Aufgabe zu lösen, und das ist absolut richtig. Das Problem entsteht jedoch, wenn die Erstellung eines solchen Algorithmus nicht trivial und manchmal sogar unmöglich ist.

Ein gutes Beispiel für ein solches Problem (Verbleiben in der Finanzzone) wäre ein Algorithmus, der die genauen Kurse der Aktien von Unternehmen an der Börse vorausschauend vorhersagt – hier gibt es keinen starren Rahmen und keine Regeln, die das Verhalten des Aktienkurses beschreiben würden. Der Endpreis wird von Hunderten oder gar Tausenden verschiedener Variablen beeinflusst, manchmal von einzelnen unvorhersehbaren Entscheidungen von Präsidenten oder sogar von Naturkatastrophen. Es ist physisch unmöglich, einen solchen Algorithmus zu entwerfen und zu implementieren, der dieses Problem auf präzise Weise lösen würde. Mehr noch – selbst wenn wir den Versuch unternehmen möchten, einen Algorithmus zu erstellen, der das Verhalten des zukünftigen Kurses eines bestimmten Vermögenswertes zumindest grob bestimmen würde (z.B. die Information zurückgeben würde, ob der Kurs morgen steigen oder fallen wird) – es wäre eine sehr zwergenhafte Aufgabe, die viel Domänenwissen aus dem Brokerage-Bereich und sehr komplizierte Abhängigkeiten erfordern würde, die sich aus der Vielzahl der Variablen ergeben, die das Ergebnis beeinflussen würden.

Hier bietet sich das maschinelle Lernen an, das in gewisser Weise eine Umkehrung des Problembereichs darstellt – anstatt bestimmte Ausgabewerte mit Hilfe eines bestimmten Algorithmus zu berechnen (wie bei der traditionellen Programmierung), sollten wir versuchen, einen Algorithmus zu finden, der die uns bekannten Ausgabedaten so genau wie möglich reproduziert. Der in seiner Einfachheit geniale Ansatz, unterstützt durch solide mathematische Gleichungen, eröffnet unbegrenzte Möglichkeiten zur Lösung von Problemen, die auf herkömmliche Weise schwierig und in den meisten Fällen unmöglich wären.

Das Schema des maschinellen Lernens

3) Das Schema des maschinellen Lernens

Kurz gesagt, maschinelles Lernen ist nichts anderes als das Finden eines Algorithmus, der ein gegebenes Problem durch die bestmögliche Darstellung von Modelleingangs- und -ausgangsdaten (den sogenannten Lerndaten) löst, ohne dass dieser Algorithmus entworfen oder implementiert werden muss.

Möglichkeiten des maschinellen Lernens

Maschinelles Lernen wird zur Lösung eines breiten Spektrums von Problemen eingesetzt, die je nach Art der Aufgabe in drei Haupttypen unterteilt werden:

  • Beaufsichtigtes Lernen
  • Unbeaufsichtigtes Lernen
  • Verstärkendes Lernen

Möglichkeiten des maschinellen Lernens

4) Möglichkeiten des maschinellen Lernens

Im Rahmen dieses Artikels konzentrieren wir uns auf das bisher populärste überwachte Lernen, das am häufigsten bei Problemen der Datenklassifikation (z.B. was sich auf einem bestimmten Bild befindet, OCR (Handschrifterkennung), Erkennung von Fälschungen oder Spam usw.) und – was uns am meisten interessieren wird – Regression (allgemein verstandene Vorhersage, wie z.B. Wettervorhersage oder der oben erwähnte Aktienkurs) eingesetzt wird.

Es ist erwähnenswert, dass von Jahr zu Jahr eine sehr wichtige Entwicklung des Lernens durch Stärkung zu beobachten ist, insbesondere im Zusammenhang mit der Lösung von Problemen der Entscheidungsfindung in Echtzeit (z.B. autonome Autos oder Spiele von unvorstellbarer Komplexität wie Schach oder GO).

Künstliche neuronale Netze als universelles Werkzeug

Interessanterweise nutzen die meisten Büroangestellten, die bei ihrer täglichen Arbeit mit Tabellenkalkulationen (z.B. Microsoft Excel) in Berührung kommen, oft unwissentlich die Vorteile des maschinellen Lernens, um Regressionsprobleme zu lösen – z.B. durch die Erstellung einer Trendlinie auf dem im Diagramm dargestellten Datensatz. Innerhalb weniger Sekunden (Mausklicks) kann eine gerade Linie (lineare Regression) oder eine Polynomkurve beliebigen Grades (polynomiale Regression wie in der Abbildung unten) analytisch bestimmt werden.

              Polynom-Regression in Microsoft Excel

5) Polynom-Regression in Microsoft Excel

Die lineare oder polynomiale Regression ist ein Beispiel für ein Werkzeug, das beim überwachten maschinellen Lernen eingesetzt wird. Mit dem vorgeschriebenen Geraden-/Kurvenmuster können wir leicht eine Prognose zukünftiger Werte erstellen. Dies ist jedoch nicht immer eine optimale Lösung (wie aus Abbildung 5 ersichtlich ist), und es gibt viele andere Techniken, die zur Lösung eines bestimmten Problems eingesetzt werden können. Einige von ihnen wurden in der folgenden Grafik zusammengestellt:

Methoden und Techniken des maschinellen Lernens

6) Methoden und Techniken des maschinellen Lernens

Es ist nicht zu übersehen, dass alle Probleme des maschinellen Lernens (nicht nur diejenigen, die mit Regression und Klassifikation zu tun haben, sondern auch andere wie z.B. Clustering) mit Hilfe von künstlichen neuronalen Netzen erfolgreich gelöst werden können.

Vergleich von biologischem und künstlichem Neuron

7) Vergleich von biologischem und künstlichem Neuron

Neuronale Netze sind eine mathematische Darstellung des biologischen Systems der Nervenzellen in unserem Gehirn. Ein einziges Neuron, wie das echte, verarbeitet Signale – in einer mathematischeren Sprache erfüllt es die Funktion von  die den Eingangssignalvektor transformiert  bis zum Ausgangssignal :

Machine Learning

Eine detaillierte Beschreibung der Aktivität und des Lernprozesses des Neurons (Auswahl geeigneter Gewichtungswerte ) ist definitiv ein Material für einen separaten, eher technischen Artikel, und ich werde hier nicht weiter ins Detail gehen. Das Wichtigste an diesem Punkt ist, dass einzelne Neuronen in einem Netzwerk mit unterschiedlichen Topologien miteinander verbunden werden können, je nachdem, welche Art von Problem wir lösen wollen, und zu den beliebtesten Netzwerkarchitekturen gehören:

  • Mehrschichtperceptron, MLP
    • Universelle, einfachste Netzwerktopologie, mit der jedes Problem gelöst werden kann
  • Neuronale Faltungsnetze, CNN
    • Netzwerke, die auf einer mathematischen Faltung basieren, am häufigsten in der 2D- und 3D-Bildverarbeitung verwendet
  • Rekurrierende Neuronale Netzwerke, RNN, einschließlich des Neuronalen Netzwerks mit Langzeit-Kurzzeitgedächtnis (LSTM)
    • Netzwerke mit speziellen Neuronen mit eigenem Speicher zur Verwendung in der Spracherkennung, Textverarbeitung (NLP) oder Zeitreihenanalyse
  • GAN (Generative Adversarial Networks)
    • Netzwerke zur Erzeugung künstlicher Daten, die von den Originalen nicht unterscheidbar sind (z.B. Generierung menschlicher Gesichter, Duplizierung ähnlicher Datensätze, Erstellung künstlicher Szenen)

Datenwissenschaft und Modellierung

Die Wirksamkeit von Modellen, die mit Techniken des maschinellen Lernens erstellt werden, beruht hauptsächlich auf der Qualität und Quantität der Daten, die im Lernprozess verwendet werden. Die Beschaffung der relevanten Daten ist jedoch nur der Anfang des Weges, meist müssen die Rohdaten erst mühsam analysiert und aufbereitet werden, bevor sie im Lernprozess verwendet werden können. Alle Aktivitäten im Zusammenhang mit der Datenaufbereitung werden als Data Science bezeichnet.

Datenwissenschaft

8) Datenwissenschaft

In den typischen Aktivitäten, die dem Modellierungsprozess vorausgehen:

  • Bereinigung von Daten
  • Erste Analyse für Korrelationen
  • Reduzierung der Merkmale
  • Extraktion von Merkmalen
  • Entfernung von Ausreißern
  • Normung
  • Daten-Abgleich
  • Sequenzierung (für Zeitreihen)

Mit den so aufbereiteten Daten können Sie mit der Auswahl des maschinellen Lernverfahrens (die Art des Modells, das Sie erstellen möchten, wie z.B. lineare Regression oder MLP neuronales Netz) und der Auswahl geeigneter Lernparameter fortfahren. Abhängig von der Komplexität der Aufgabe, der Datenmenge, der Modellarchitektur, der Rechenleistung der Geräte und vielen anderen Faktoren kann der Lernprozess selbst von wenigen Sekunden bis zu vielen Stunden / Tagen dauern. Mit etwas Glück können Sie jedoch nach Abschluss des Lernens das Modell genießen, das die von uns gesuchte Funktionalität realisiert (fertiger Algorithmus, auch wenn wir keine einzige Codezeile schreiben werden, die der Maschine sagt, wie sie dieses Problem lösen soll).

Prognose der SARS-CoV-2-Infektion

Das Problem der Vorhersage der Zahl der Coronavirus-Infektionen in Polen und in der ganzen Welt ist nicht trivial und lässt sich mit einer Analyse des Börsenkurses vergleichen. Wir wissen nicht, ob es morgen nicht einen weiteren Ausbruch geben wird, mit dem niemand gerechnet hat. Die Zahl der potenziellen Variablen ist sehr groß, und was die Lösung des Problems noch schwieriger macht, ist die Tatsache, dass die Infektionswelle nicht in allen Ländern gleichzeitig verläuft – in China beobachten wir bereits ein Aussterben der Epidemie, und in Brasilien steht der Höhepunkt der Krankheit wahrscheinlich kurz vor uns. Hinzu kommt – einige Länder weisen ungewöhnliche Muster auf (z.B. Taiwan), und ihre Präsenz erhöht die Komplexität der Aufgabe. Wenn man all dies berücksichtigt, klingt es wie ein ideales Problem, das mit maschinellem Lernen zu lösen versucht wird. Aus technischer Sicht – wir haben es hier mit einer Zeitreihen-Regressionsaufgabe zu tun.

Der Zugang zu den relevanten Daten (glückliche Wahrsager) war keine große Herausforderung – es gibt Hunderte von Datensätzen aller Art, die regelmäßig im Internet gesammelt werden. Die größte Aufmerksamkeit musste dem Datenstripper selbst, d.h. einem Teil der Datenwissenschaft (80% der Gesamtzeit) und der Vorbereitung des entsprechenden Satzes von Lernenden gewidmet werden.

Der nächste Schritt war die Modellierung, und damit die schwierige Entscheidung, den richtigen Modelltyp zu wählen. Unter Berücksichtigung der Vielseitigkeit der neuronalen Netze habe ich zunächst das Netz vom Typ MLP verwendet und dann versucht, die revolutionären Netze einzusetzen (die entgegen dem Anschein und der landläufigen Meinung nicht nur in der Bildanalyse, sondern auch als Alternative zu MLP oder rekursiven Netzen in der Zeitreihenmodellierung erfolgreich eingesetzt werden können). Zu meiner Überraschung ist es beiden Architekturen (MLP und CNN) gelungen, die Krankheitskurven für die meisten Länder rund um den Globus in zufriedenstellendem Maße abzubilden, und mehr noch, sie haben es ermöglicht, künftige Werte im Zusammenhang mit der Ausbreitung der Infektion vorherzusagen, so dass man feststellen kann, ob ein bestimmtes Land bereits „das Schlimmste hinter sich hat“ oder vielleicht alles kurz davor steht.

Vorhersage der Zahl der bestätigten COVID-19-Infektionen in Polen

9) Vorhersage der Zahl der bestätigten COVID-19-Infektionen in Polen 7 Tage im Voraus, Stand 25. Mai 2020

Die Genauigkeit beider Modelle schwankte zwischen 70-75%, mit der Vorstellung, dass der Prozess des Lehrens von koevolutionären Netzwerken merklich schneller war (dies ist direkt auf Unterschiede in den Topologien und der Funktionsweise von MLP- und CNN-Netzwerken zurückzuführen). Dieses Ergebnis ließe sich erheblich verbessern, wenn mehr Zeit auf die Auswahl geeigneter Lernparameter verwendet würde oder andere Arten von Modellen (z.B. LSTM-Netzwerke) zum Einsatz kämen.

ThingWorx im Dienste der Visualisierung

Bei der Erstellung von Modellen unter Verwendung von Techniken des maschinellen Lernens ist die Integration mit vorhandener Software oder sogar die einfache Visualisierung ein sehr häufiges Problem. ThingWorx Software kann erfolgreich zur Integration mit jeder Datenquelle verwendet werden und dann leistungsfähige Webanwendungen erstellen, die die gewünschte Funktionalität bieten.

Im Fall der Vorhersage von Coronavirus-Infektionen implementierte ThingWorx eine Anwendung, die sich in das in Python-Technologie geschriebene Modell (mit Keras/TensorFlow/Flask-Bibliotheken) integriert. Dank dieser Anwendung können wir jedes beliebige Land auswählen, historische Daten über die Krankheit analysieren sowie zukünftige Werte vorhersagen (bis zu 90 Tage im Voraus). Zusätzlich verarbeitet ThingWorx „on the fly“ die vom Modell empfangenen Rohdaten und glättet mit numerischen Methoden die Kurven (sog. Glättung), um die Trendkurve genauer zu analysieren.

Visualisierung der Modelloperation in ThingWorx

10) Visualisierung der Modelloperation in ThingWorx (mit zusätzlicher Abflachung der Kurven)

Künstliche Intelligenz ist die Zukunft?

Wenn man bedenkt, dass maschinelles Lernen überall dort angewendet werden kann, wo die Definition eines Algorithmus nicht trivial ist, könnte man versucht sein zu sagen, dass die traditionelle Programmierung nicht in Frage kommt – denn warum sich die Mühe machen und darüber nachdenken, einen Algorithmus zu entwerfen und ein Programm zu implementieren, wenn die Maschine für uns „lernen“ kann, wie ein solcher Algorithmus aussehen und die ganze „Drecksarbeit“ für uns erledigen soll – und zwar ziemlich effektiv, wie Sie aus diesem Artikel und den Ergebnissen sehen können, die bei der Vorhersage bestätigter SARS-CoV-2-Infektionen erzielt wurden. Und daran ist wahrscheinlich etwas Wahres dran, denn in den nächsten Jahren werden Technologien im Zusammenhang mit KI und maschinellem Lernen wahrscheinlich ein Standard im Dienstleistungsportfolio der meisten der heutigen „traditionellen“ Programmierer sein.

Wenn Sie nach Lösungen für das Internet der Dinge und Data Science suchen, kontaktiere uns!

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 0 / 5. Anzahl Bewertungen: 0

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Hinterlasse einen Kommentar (0 kommentare)

Schreiben Sie eine Bewertung…
Im Falle eines Verstoßes gegen das Reglement wird Ihr Eintrag gelöscht
Ihr Vor- und Nachname

    © Copyright PSC 2020. All right reserved