Kolumne: Machine Learning in Microsoft Azure

Ich habe letztes Jahr eine Kolumne für die ComputerWoche (Machine Learning in Microsoft Azure - leider schon vom Netz genommen) geschrieben. Die Kolumne möchte ich Euch nicht vorenthalten. Erschienen ist sie am 16. Juni 2015.

Machine Learning (oder richtig auf Deutsch “Maschinelles Lernen”) oder Data Science ist überall, sei es um die Ergebnisse der Fußball-WM vorherzusagen, persönliche Empfehlungen in Amazon oder Netflix zu erhalten oder in der Produktion präventive Wartunsmaßnahmen zu ergreifen. Dementsprechend sind Data Scientists eine der heiß begehrtesten Leute in der IT-Branche, um aus der Datenflut Erkenntnisse zu gewinnen.

Machine Learning ist überall

Machine Learning (kurz: ML) findet man überall – so auch im Alltag: sei es im Wohnzimmer in der Kinect, um beliebige Körper als „Skelette“ in Super-Echtzeit darzustellen, oder im digitalen Internetzeitalter im Skype Translator, um sich selbst in einer anderen Sprache zu hören.

In der Industrie hat Machine Learning ebenfalls unzählige Anwendungen, gerade wenn es um Predictive Maintenance geht.

ThyssenKrupp hat für ihre 1,1 Millionen Aufzüge weltweit eine prädiktive Wartungslösung im Einsatz, um Zuverlässigkeit und Sicherheit in ihren Aufzügen zu garantieren. Machine Learning ist ein wesentlicher Bestandteil in dieser prädiktiven Lösung: Während Sensordaten von Aufzügen weltweit in dynamische Machine-Learning-Modelle eingespeist werden, können die Aufzüge den Technikern sprichwörtlich mitteilen, wie diese zu reparieren sind. Mit Hilfe von Machine Learning wird die Effizienz in der Fehlerbehebung beträchtlich gesteigert, indem eine von über 400 möglichen Fehlermeldungen wie auch die 3-4 wahrscheinlichsten Ursachen geliefert werden.

Ein ähnliches Szenario liefert eSmart Systems aus der Stromversorgung in Norwegen. Ähnlich wie bei ThyssenKrupp Elevator gilt es hier, Zuverlässigkeit in einem meist veralteten Stromnetz erweitert durch intelligente Sensoren und Messgeräten zu gewährleisten. Um der großen Datenströme, die durch die Sensoren und Messgeräten generiert werden, Herr zu werden, hat eSmart Systems ein automatisiertes Demand Response Management System auf Basis von Machine Learning entwickelt: Potenzielle Probleme im Stromaufkommen werden vorhergesagt, und Stromausfälle durch automatisierte Stromlast-Kontrollen gemieden – alles anhand eines einheitlichen und zentralen Dashboards mit täglichen bis monatlichen Prognosen.

Was ist Machine Learning?

"A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P improves with experience E." (Tom M. Mitchell, Machine Learning, 1997)

Mit Machine Learning wollen wir Rechner so programmieren, dass diese mit mehr Erfahrung gegebene Aufgaben besser lösen können; also je mehr Erfahrungen wir gesammelt haben, desto besser werden wir – „Übung macht den Meister“! Dabei handelt es sich bei dem Erfahrungsschatz um Beispiel- oder historische Daten. Die Tatsache, dass viele (!) bereits vorhandene Daten zwingend nötig sind, um Machine Learning Modelle zu trainieren, wird leider allzu oft vergessen.

Joseph Sirosh, Corporate Vice President für Machine Learning bei Microsoft, hat auf einer Konferenz vier Regeln aufgelistet, wann ML nützlich ist:

  • Komplex, z.B. Natural Language Processing (Skype Translator), Handschrifterkennung (beim Postamt), Computer Vision (Kinect)
  • Zu viele Daten, z.B. eSmart Systems, die automatisch aus den großen Datenflüssen der Stromnetz-Sensoren Anomalien erkennen
  • Personalisiert, z.B. Ziosk, die Gästen in Restaurants anhand einer empfiehlt, welcher Wein am besten zum bestellten Gericht passt und dementsprechend für höhere Kundenzufriedenheit sorgt.
  • Autonomes Lernen, z.B. Robotik

Azure Machine Learning

Auf der Strata + Hadoop World in San Jose am 18. Februar hat Joseph Sirosh die General Availability von dem Azure Machine Learning Dienst verkündet: Ein cloudbasierter Dienst, mit dem man Predictive Analytics-Modelle anhand von vorhandenen Machine Learning Algorithmen schnell und einfach erstellen kann.

Machine Learning für alle

Die Vision von Azure Machine Learning (kurz: Azure ML) ist es, Machine Learning zu demokratisieren – jeder im Unternehmen, ob Analysten, Entwickler oder Fachabteilungen soll Zugriff zu Daten und Machine Learning erhalten, ohne darin promoviert haben zu müssen. Das fängt schon damit an, dass es sich bei Azure Machine Learning um eine browserbasierte Anwendung handelt: Keine Software, keine Hardware, keine VM; nur im Browser Ihrer Wahl auf der Seite http://studio.azureml.net/.

Workflow in Azure Machine Learning

Azure ML ist ganz nach dem Credo der Microsoft-Datenplattform strukturiert: Collect (Sammeln) – Analyze (Analysieren) – Consume (Konsumieren). Die Daten (sowohl aus der Cloud als auch lokal) dienen als Basis für das Trainieren der Machine Learning Modelle, die daraufhin als Web Service bereitgestellt werden können. Die Web Services können in Anwendungen, Apps, Dashboards o.ä. eingebaut werden. Darüber hinaus kann man ML Modelle im Azure Marketplace monetarisieren.

Machine Learning Studio (ML Studio)

Im ML Studio lassen sich verschiedene Arbeitsbereiche (im Englischen "Workspaces") einrichten, die man je nach Bedarf mit Kollegen teilen kann, um gemeinsam an Datenmodellen zu arbeiten:

Katalog an Machine Learning Algorithmen

Bei der Modellierung selber kann man auf einen Katalog an bewährten Machine Learning Algorithmen zugreifen. Per Drag & Drop kann man einfach aus einem Katalog von Modulen sich ein Modell zusammenbauen; quasi wie Visio für Data Scientists. Die Auswahl an vorhandenen Machine Learning Algorithmen hat sich aus jahrzehntelanger Forschung in Microsoft Research, Halo, Kinect und Bing ergeben.

Microsoft <3 Open Source

Wer bereits seine Modelle in weit verbreiteten Data Science Open Source Programmiersprachen, wie R und Python, erstellt hat, muss bei Azure ML nicht von vorne anfangen. Im Gegenteil – R und Python werden unterstützt! Anhand von R- oder Python-Modulen kann man seinen bisher erstellten R-/Python-Code in Azure ML einfügen. Ganz nach dem Motto Microsoft <3 Open Source.

Binnen weniger Minuten als Web Service bereitgestellt

Was bisher Wochen, gar Monate dauern konnte, bis ein Modell in den Produktiv-Code integriert wurde, kann bei Azure ML durch die Bereitstellung eines Modells als Web Service beschleunigt werden.
So ein Web Service kann durch eine API-Authentifizierung dann in Dashboards, Apps oder weiteren Anwendungen eingebaut werden. Beispiel-Code in C, R und Python wird demnach zur Verfügung gestellt.

Sharing is Caring / Community

Azure ML beinhaltet seit kurzem ein Community-Forum (oder Gallerie), in dem man eigene Experimente veröffentlichen kann, interessante Experimente anderer entdecken, befragen oder kommentieren kann. Somit kann jeder von der Community lernen und mit Machine Learning anfangen.

Die Gallerie beinhaltet auch die auf der Build verkündeten Machine Learning APIs – APIs, die jeder Entwickler in den eigenen Anwendungen, Apps oder Dashboards ohne ML Wissen einbauen kann, z.B. ein Empfehlungsdienst oder Gesichtserkennung. Die Machine Learning APIs enthalten ebenfalls die Project Oxford Suite, dessen Gesichtserkennungs-API die Basis der viralen How-Old.net war.

Darüber hinaus bietet der Azure Machine Learning Marketplace (oder: Azure Store) die Möglichkeit, eines der vielen bereitgestellten ML Web Services in die eigene Anwendung einzubauen, sei es die Erkennung von Anomalien und Text Analysen. Für Data Scientists bietet es sich an, ihre Modelle im Azure Store zu monetarisieren.

Wie kann ich anfangen?

Azure ML kann man ohne Azure Subscription kostenlos mit einem Microsoft-Konto (sprich: outlook-, hotmail-, yahoo- oder live-Email-Adresse) auf http://studio.azureml.net/ ausprobieren. Ohne Microsoft-Konto gibt es auch den Gastzugang (im Englischen „Guest Access“), in dem man 8 Stunden lang sich im Machine Learning Studio mit Modellen austoben kann, ohne dabei Web Services bereitstellen zu können.
Weitere hilfreiche Informationen finden Sie in der ML-Blogserie http://aka.ms/MLserie und in dem Machine Learning Blog http://aka.ms/MLblog.

comments powered by Disqus