Machine Learning
9 Mythen vom maschinellen Lernen
Mary Branscombe beschäftigt sich als freiberufliche Journalistin seit über 20 Jahren mit der IT-Branche. Sie schreibt unter anderem für unsere US-Schwesterpublikation cio.com.
Florian Maier beschäftigt sich mit diversen Themen rund um Technologie und Management.
"Jeder kann ein ML-System bauen"
Eine ganze Reihe von Open-Source-Werkzeugen und Frameworks steht zu Machine-Learning-Zwecken zur Verfügung - und zahllose Online-Kurse und -Tutorials zeigen en detail, wie man diese anwendet. Nichtsdestotrotz handelt es sich bei maschinellem Lernen um ein Spezialgebiet und Sie müssen wissen, wie Sie Ihre Daten vorbereiten und partitionieren, um in Training und Testing einsteigen zu können. Sie sollten außerdem wissen, welcher Algorithmus für Ihre Zwecke am besten geeignet ist und welche Anwendungsmethoden dafür geeignet sind. Last but not least sollten Sie auch noch wissen, wie Sie das alles in ein zuverlässiges Produktionssystem verwandeln können. Sind diese Fragen beantwortet, muss das System natürlich auch überwacht werden, damit sichergestellt ist, dass die Ergebnisse fortwährend relevant sind.
Kurzum: Wer Machine Learning richtig machen will, braucht vor allem Erfahrung. Wenn Sie gerade erst einsteigen, sollten Sie sich nach entsprechender Data-Science- und Machine-Learning-Expertise umsehen, um Ihr eigenes ML-System bauen zu können.
- Apache Spark MLlib
Früher als Teil des Hadoop-Universums bekannt, ist Apache Spark mittlerweile ein bekanntes Machine-Learning-Framework. Sein umfangreiches Angebot an Algorithmen wird ständig überarbeitet und erweitert. - Apache Singa
Singa, seit kurzem Teil des Apache Incubator, ist ein Open-Source-Framework, das Deep-Learning-Mechanismen auf große Datenvolumen hin „trainieren“ soll. Singa stellt ein simples Programmierungsmodell für Deep-Learning-Netzwerke bereit und unterstützt dabei diverse Entwicklungsroutinen. - Caffe
Caffe umfasst ein ganzes Set von frei verfügbaren Referenzmodellen für gängige Klassifizierungsroutinen; die gewachsene Caffe-Community steuert weitere Modelle bei. Caffe unterstützt die Nvidia-Programmiertechnik CUDA, mit der Programmteile wahlweise auch durch den Grafikprozessor (GPU) abgearbeitet werden können. - Microsoft Azure ML Studio
Weil die Cloud also die ideale Umgebung für ML-Anwendungen darstellt, hat Microsoft seine Azure-Cloud mit einem eigenen ML-Service auf der Basis von „pay as you go“ ausgestattet: Mit Azure ML Studio können Nutzer KI-Modelle entwickeln und trainieren und anschließend in APIs umwandeln, um diese wiederum Anderen zur Verfügung zur stellen. - Amazon Machine Learning
Amazon Machine Learning arbeitet mit Daten, die in einer Amazon-Cloud wie S3, Redshift oder RDS liegen und kann mithilfe binärer Klassifizierungen und Multiklassen-Kategorisierung von vorgegebenen Daten neue KI-Modelle bauen. - Microsoft DMTK
Das DMTK (Distributed Machine Learning Toolkit) von Microsoft soll ML-Anwendungen über mehrere Maschinen hinweg skalieren. Es ist eher als "Out of the Box"-Lösung gedacht und weniger als Framework - entsprechend gering ist die Anzahl der unterstützten Algorithmen. - Google TensorFlow
TensorFlow basiert auf sogenannten Data-Flow-Graphen, in denen Bündel von Daten („Tensors“) durch eine Reihe von Algorithmen verarbeitet werden, die durch einen Graph beschrieben sind. Die Bewegungsmuster der Daten innerhalb des Systems heißen „Flows“. Die Graphen lassen sich mittels C++ und Python zusammenbauen und via CPU oder GPU verarbeiten. - Microsoft CNTK
Das Microsoft Computational Network Toolkit funktioniert ähnlich wie Google TensorFlow: Neuronale Netze lassen sich durch gerichtete Graphen erzeugen. Microsofts eigener Beschreibung zufolge lässt sich CNTK außerdem mit Projekten wie Caffe, Theano und Torch vergleichen – sei aber schneller und könne im Gegensatz zu den genannten gar parallel auf Prozessor- und Grafikprozessorleistung zugreifen. - Samsung Veles
Das Samsung-Framework ist dazu gedacht, Datensätze zu analysieren und automatisch zu normalisieren, bevor sie in den Produktivbetrieb übergehen – was wiederum durch eine eigene API namens REST sofort möglich ist – vorausgesetzt, die eingesetzte Hardware hat genügend Power. Der Python-Einsatz in Veles umfasst auch ein eigenes Analyse- und Visualisierungstool namens Jupyter (früher IPython) für die Darstellung einzelner Anwendungs-Cluster. - Brainstorm
Brainstorm setzt auf Python, um zwei Data-Management-APIs („Handers“ genannt) bereitzustellen – eine für CPU-Prozessing durch die Bibliothek „Numpy“ und eine für GPU-Verarbeitung via CUDA. Eine benutzerfreundliche GUI ist in Arbeit. - mlpack 2
Die neue Version der in C++ geschriebenen Machine-Learning-Bibliothek mlpack, die erstmals im Jahr 2011 erschien, bringt eine Menge Neuerungen mit – darunter neue Algorithmen und überarbeitete alte. - Marvin
Der Quellcode von Marvin ist sehr übersichtlich - die enthaltenen vortrainierten Modelle (siehe Bild) ermöglichen aber bereits eine umfangreiche Weiterentwicklung. - Neon
Neon von NervanaSystems ist ein Open-Source-Framework, das auf ein- und abschaltbaren Modulen basiert und KI-Prozesse via CPU, GPU oder Nervanas eigener Hardware ermöglicht.
"Alle Datenmuster sind nützlich"
Asthma- und Herz-Patienten sowie alte Menschen haben eine wesentlich bessere Chance, eine Lungenentzündung zu überleben, als Sie es erwarten würden. Diese Chance ist sogar so hoch, dass ein Machine-Learning-System, das die Krankenhausaufnahme automatisiert, diese Menschen möglicherweise abweisen und nach Hause schicken würde (ein regelbasiertes System hat exakt das getan). Unglücklicherweise liegt der Grund für die großen Überlebenschancen aber darin, dass genannte Personengruppen bei einer Lungenentzündung besonders gefährdet sind und deswegen im Regelfall sofort behandelt werden.
Das System erkennt also ein valides Muster in den Daten - allerdings ist dieses Muster unbrauchbar, um zu bestimmen, wer im Krankenhaus aufgenommen wird (auf der anderen Seite wäre es für Krankenversicherer geeignet, um die zu erwartenden Folgekosten abzuschätzen). Gefährlich könnte es in diesem speziellen Fall auch werden: Schließlich wissen Sie nur dann von der Existenz dieser unbrauchbaren Muster in Ihren Daten, wenn Sie sie bereits entdeckt haben.
In anderen Fällen können Machine-Learning-Systeme zwar stichhaltige Muster erkennen, die aber dennoch nicht verwertbar sind weil sie nicht erklärbar sind. Das wäre zum Beispiel bei einem Gesichtserkennungssystem der Fall, das auf der Grundlage von Selfie-Aufnahmen die sexuelle Orientierung des abgebildeten Menschen ausgibt. Schließlich gibt das Bild an sich eher über Mimik und Gestik Aufschluss, denn über die angeborene sexuelle Orientierung.
Black-Box-Modelle sind zwar effizient, geben aber keinerlei Auskunft darüber, welche Muster sie erkannt, beziehungsweise gelrnt haben. Transparente, intelligente Algorithmen wie GAMs geben klare Auskunft darüber, was das Machine-Learning-System gelernt hat. Auf dieser Grundlage können Sie besser entscheiden, ob sich eine Ausrollung lohnt.
"Reinforcement Learning geht immer"
So gut wie alle Systeme für maschinelles Lernen die heute im Einsatz sind, setzen auf "supervised learning". Im Regelfall werden diese Systeme mit klar strukturierten und gelabelten Datensets trainiert, bei deren Vorbereitung Menschen involviert waren. Diese Datensätze zu kuratieren braucht nicht nur Zeit, sondern auch Hingabe.
Das führt zu einem gesteigerten Interesse an Formen des "unsupervised learning", insbesondere "reinforcement learning" (RL) steht hoch im Kurs. Hierbei lernt ein System im Trial-and-Error-Verfahren von der Interaktion mit seiner Umwelt und durchBelohnungen für korrektes Verhalten. Beim DeepMind-AlphaGo-System etwa kamen neben "supervised learning" auch RL-Techniken zum Einsatz. Das Machine-Learning-System schaffte es durch einen Sieg gegen den menschlichen Go!-Guru in die Schlagzeilen.
Außerhalb des wissenschaftlichen Kosmos ist RL allerdings alles andere als gängig: GoogleGoogle nutzt DeepMind, um seine Data Center effizienter kühlen und so Strom sparen zu können und Microsoft bringt spezielle RL-Techniken namens "contextual bandits" zum Einsatz, um Schlagzeilen für die User von msn.com zu personalisieren. Alles zu Google auf CIO.de
Das Problem an der Sache: Die wenigsten Umgebungen in der echten Welt sind mit leicht zu entdeckenden Belohnungen und direkten Feedback-Möglichkeiten ausgestattet. Besonders diffizil wird es aber dann, wenn sich Belohnungen nicht einwandfrei zuweisen lassen, weil das System zuvor viele verschiedene Aktionen ausgeführt hat.