Der Materna Blog – wissen was los ist

©SFIO CRACHO - stock.adobe.com

Amazon SageMaker: Warum sollte man sich mit Artificial Intelligence (AI) beschäftigen?

Artificial Intelligence (Künstliche Intelligenz), Machine Learning (Maschinelles Lernen) und Deep Learning sind in aller Munde. Lesen Sie in unserer dreiteiligen Serie, was die Begriffe unterscheidet, was sie eint und was Unternehmen verpassen, die sich nicht damit beschäftigen. 

In den beiden vorangegangenen Artikeln unserer dreiteiligen Serie habe ich die Begrifflichkeiten Artificial Intelligence  sowie Machine und Deep Learning vorgestellt. Darauf aufbauend möchte ich in diesem dritten Teil aufzeigen, wie Deep Learning mit geringem Aufwand und eingeschränktem Wissen zum Hintergrund neuronaler Netzwerke eingesetzt werden kann. Dies erfolgt am Beispiel von Amazon SageMaker, einem Dienst, den Amazon auf der Entwicklerkonferenz re:Invent 2017 vorgestellt hat. Natürlich finden sich ähnliche Beispiele und Dienste auch bei anderen Anbietern, wie Google (Machine Learning Services ), Microsoft (AI Platform ) oder IBM (Watson ).

AWS bietet Full Managed Service

„Machine Learning is still too complicated for everyday developers.“ Mit diesen Worten begann Andy Jassy, CEO von Amazon Web Services, die Ankündigung von Amazon SageMaker. Aus Sicht von AWS ist der Einsatz von Machine Learning / Deep Learning heute noch zu kompliziert, um von normalen Entwicklern in Projekten eingesetzt zu werden. Oftmals schrecken die mathematischen Anforderungen und das fehlende Wissen zu neuronalen Netzen eher von einem Einsatz ab. Genau hier setzt AWS an und bietet einen Managed Service, mit dem sich Machine-Learning-Modelle einfach in Anwendungen integrieren lassen.

Die nachfolgende Grafik zeigt die vier notwendigen Schritte, um Modelle über Trainingsjobs zu trainieren und diese Modelle dann über einen Endpoint bereitzustellen, damit sie von anderen Diensten oder Applikationen eingebunden werden können.

AmazonSageMaker Beispielbild

So lassen sich Netzwerke trainieren

Im nachfolgend aufgezeigten Beispiel wird ein simples Netzwerk auf Basis der Apache MXNet Module API  trainiert. Das Netz wird aufgebaut aus Daten aus dem MNIST Datensatz mit handschriftlichen Zahlen von 0 – 9 (also 10 Klassen), die in Form von 70.000 Bildern vorliegen. Es handelt sich dabei um Graustufenbilder der Größe 28×28 Pixel. In unserem Beispiel wird der Datensatz in 60.000 Trainingsbilder und 10.000 weitere Bilder aufgeteilt, von denen einige nachfolgend exemplarisch dargestellt sind. Ziel ist es, das Netzwerk mit den 60.000 Bildern von Handschriften zu trainieren und das so trainierte Netzwerk im Anschluss weitere 10.000 Bilder klassifizieren zu lassen. Im Anschluss an das Training können dann beliebige handschriftliche Zahlen gegen das Netzwerk klassifiziert werden.

AmazonSageMaker Beispielbild

Im ersten Schritt wird in der AWS Console eine Notebook-Instanz gestartet, die dazu dient, das Netzwerk zu modellieren, mit Trainingsdaten zu versorgen und zu trainieren. Diese Instanz wird auch für die Bereitstellung des späteren Endpoints herangezogen. Bei der SageMaker Instanz wird ein passender Instanztyp gewählt sowie eine IAM Role generiert, die die Rechte der Instanz festlegt.

AmazonSageMaker Beispielbild

Nach dem Erstellen der Instanz (dies kann einige Minuten dauern) wird das Jupyter Notebook über „Notebook instances“, „Instanzname“, „Open“ gestartet.

Das nachfolgende Beispiel orientiert sich an dem Notebook „sample-notebooks/sagemaker-python-sdk/ mxnet_mnist“.

Zunächst wird die Python-Umgebung initialisiert und es werden die entsprechenden S3 Buckets (Dateiablageorte in AWS) definiert, in denen die Trainingsdaten und das spätere Modell abgelegt werden sollen.

AmazonSageMaker Python Beispielbild

Im nächsten Schritt wird über das AWS Sagemaker SDK die Funktion MXNet() mit diversen Parametern aufgerufen, u. a. dem Script „mnist.py“ als Entrypoint (das Script, das in dem Trainingsjob ausgeführt werden soll), aber auch den bereits definierten Ablageorten für die Daten, die Anzahl der zu verwendenden Instanzen und den gewünschten Instanztyp für die Ausführung. Über den Funktionsaufruf mnist_estimator.fit() wird der Job in SageMaker erstellt und die Trainings- und Testdatensätze übergeben. Der Job erscheint dann in der AWS Console.

AmazonSageMaker Python Beispielbild

Das Modell nutzt diverse Layer aus dem MXNet Framework, die für das Training nacheinander abgearbeitet werden. Die nachfolgend gelisteten Funktionen sind für ein Training von Bilddaten, hier im Speziellen von Handschriften, gut geeignet:

AmazonSageMaker Python Beispielbild

In dem untenstehenden Beispiel hat der Durchlauf des Trainings ca. sieben Minuten gedauert. Den aktuellen Status kann man während der Ausführung jederzeit einsehen.

Insgesamt wurden 25 Epochen (= Durchläufe) trainiert und nach jedem Durchlauf hat sich die Genauigkeit verbessert. Nach der ersten Epoche hatte das Netz eine Trainingsgenauigkeit von 23,49 Prozent und eine Validierungsgenauigkeit von 37,35 Prozent, zum Ende hin liegt die Trainingsgenauigkeit allerdings bei 99,87 Prozent und die Validierungsgenauigkeit bei 99,77 Prozent. Hier ein kurzer Ausschnitt der Konsolenausgabe:

AmazonSageMaker Konsolenausgabe Beispielbild

Nach dem erfolgreich abgeschlossenen Training wechselt der Status auf „Completed“. Mit einem Klick auf den Job lassen sich im Fehlerfall die Logs („View Logs“) im Bereich „Monitor“ aufrufen, um mögliche Fehler zu analysieren.

AmazonSageMaker Beispielbild

Nachdem der Job erfolgreich beendet wurde, wird das Modell im nächsten Schritt über einen Endpoint bereitgestellt. Dieser ist dann über eine API direkt ansprechbar und kann Klassifizierungen auf Basis des trainierten Modells vornehmen. Über diese Funktion mnist_estimator.deploy  lässt sich die Anzahl der Instanzen und deren Typ konfigurieren.

AmazonSageMaker Beispielcode

Im letzten Schritt werden nun handschriftliche Zahlen gegen das Netzwerk getestet. Die Ergebnisse können sich sehen lassen. Zahlen werden sehr zuverlässig erkannt. An dem Beispiel mit dem „M“ erkennt man aber auch, wo die Einschränkungen liegen. Das Netzwerk ist nicht darauf trainiert worden Buchstaben zu erkennen, also beherrscht es diese Aufgabe auch nicht.

Zahlenerkennung Beispielbild

Warum sollte man sich mit Machine Learning / Deep Learning auseinandersetzen?

Laut einer Studie von Crisp Research („Machine Learning im Unternehmenseinsatz “) beschäftigen sich heute bereits 64 Prozent aller Unternehmen mit Künstlicher Intelligenz. Mit Deep Learning befasst sich bereits jedes fünfte Unternehmen, wobei nur fünf Prozent Deep Learning bereits heute produktiv im Einsatz haben. Über 43 Prozent der Entscheider sind zudem überzeugt, dass es sich bei Machine Learning um kein reines Hype-Thema handelt, sondern sehen einen Wertschöpfungsanteil zwischen 11 und 50 Prozent (bis zum Jahr 2020) bei vernetzten Produkten und digitalen Services.

Einer der wichtigsten Gründe, sich mit Machine Learning zu beschäftigen, ist übrigens eine stärkere Kundenbindung.

Die Branchen Automotive, Konsumgüter sowie IT, Telekommunikation und Media sind Vorreiter und beschäftigen sich bereits intensiv mit Machine Learning. Die Branchen Chemie, Verkehr, Pharma und Logistik hinken noch etwas hinterher.

Machine Learning ist allerdings komplex und es gilt, zunächst den unterschiedlichen Methodenmix und die Algorithmen zu verstehen und zu evaluieren. Bei der Einführung sollten Unternehmen daher auf externe Beratung und professionelle Dienstleister zurückgreifen.

Schlagwörter: , , ,

Autoreninfo

Unser Blog wird von unseren Mitarbeitenden aus unterschiedlichen Bereichen geschrieben. Wir richten uns an alle IT-interessierten Leser:innen. Komplexe IT-Themen und IT-Projekte sind unser Alltagsgeschäft. Unser Fokus liegt daher auf spannenden Themen rund um die Welt der IT und wie diese unser Leben sowie die Gesellschaft beeinflusst und verändert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Lünendonk Marktsegment-Studie 2018: Der Markt für integrierte Customer Experience Services in Deutschland
Digitalisierung: Flexibilität und Effizienz für Lieferketten