Machine Learning von der Stange

Deep-Learning-Frameworks

von - 07.04.2017
Machine Learning im Einsatz
64 Prozent der DACH-Unternehmen beschäftigen sich schon aktiv mit Machine Learning. 36 Prozent planen oder evaluieren noch nicht in diese Richtung.
(Quelle: Chrisp Research )
Die derzeit am meisten diskutierten Frameworks stammen aus dem Bereich Deep Learning. Bei diesem Ansatz kommen komplexe neuronale Netze zum Einsatz, die aus tausend und mehr Neuronenschichten bestehen können. Im Folgenden stellt com! professional einige Beispiele für derzeit verfügbare Deep-Learning-Frameworks vor.
Caffe: Das von Yangqing Jia am Berkeley Vision and Learning Center (BVLC) entwickelte Framework Caffe ist vor allem auf Schnelligkeit ausgelegt und kann zur Berechnung sowohl auf Hauptprozessoren (Central Processing Unit, CPU) wie auch auf Grafikeinheiten (Graphics Processing Unit, GPU) zugreifen. Caffe unterstützt die von Nvidia entwickelte Programmiertechnik CUDA (Compute Unified Device Architecture) sowie die ebenfalls von dem Grafikprozessor-Hersteller stammende cuDNN-Bibliothek (CUDA Deep Neural Network) und kann mit einer Nvidia-K40-GPU mehr als 60 Millionen Bilder pro Tag analysieren.
Ralf Herbrich
Director Machine Learning
Science bei AWS
https://aws.amazon.com/de
Foto: AWS
„ML-Frameworks spielen eine wichtige Rolle bei der Anwendung von Machine Learning in der Praxis.“
Die Standard-Plattform für den Betrieb von Caffe ist Ubuntu Linux, das Framework lässt sich aber auch auf anderen Linux-Distributionen sowie Mac OS oder in einem Docker-Container installieren.
Für die Windows-Installation gibt es auf GitHub einen eigenen Branch. Wer für die GPU-Programmierung OpenCL (Open Computing Language) statt der Nvidia-Technik CUDA einsetzen möchte, findet dazu ebenfalls einen Zweig auf GitHub. Caffe ist außerdem als vorkonfiguriertes Amazon Machine Image (AMI) in der AWS-Cloud verfügbar.
Microsoft Cognitive Toolkit: Das besser unter seinem früheren Namen Computational Network Toolkit (CNTK) bekannte Framework zeichnet sich vor allem durch seine verteilte Architektur aus. Sie erlaubt es, Modelle über mehrere GPUs oder Server hinweg zu trainieren.
Das Toolkit bietet verschiedenste Lernmethoden für die Sprach-, Bild- und Texterkennung, darunter Feed-Forward-Netze (FFN), rekurrente neuronale Netze (RNN) vom LSTM-Typ (Long Short-Term Memory), gefaltete Netze (Convolu­tional Neural Networks, CNN), eine Batch-Normalisierung für schnelleres Lernen sowie eine sequenzielle fokussierte Verarbeitung von Informationen (Sequence-to-Sequence with Attention). Nach Angaben des Herstellers findet das Toolkit unter anderem in Microsoft-Diensten wie Skype, Cortana und Bing, aber auch in der Spielekonsole Xbox Anwendung.
Veles: Auch diese von russischen Entwicklern bei Samsung entwickelte Deep-Learning-Lösung ist als verteilte Plattform konzipiert. Das in Python geschriebene Framework unterstützt OpenCL und CUDA sowie das sogenannte Flow-based Programming, bei dem Applikationen als Netzwerk von Prozessen betrachtet werden. Modelle lassen sich aus mehr als 260 Einheiten zusammensetzen und ebenso auf einem PC wie auf einem High-Performance-Cluster trainieren. Aus den trainierten Modellen können die Entwickler automatisch Applikationen extrahieren und diese als Cloud-Service zur Verfügung stellen.
Laura Geier
Commercial Lead IoT & Advanced Analytics bei Microsoft
www.microsoft.de
Foto: Microsoft
„Im Idealfall dauert es vom Modell bis zur produktiven Lösung nur wenige Minuten.“
TensorFlow: Das vom „Google Brain“-Team entwickelte Framework ist mittlerweile unter einer Apache-2.0-Open-Source-Lizenz frei auf GitHub verfügbar. Es soll schneller und robuster als der bereits 2011 von Google entwickelte Vorgänger DistBelief sein. Google und andere Unternehmen des Alphabet-Konzerns nutzen TensorFlow unter anderem in der Forschung, aber auch in diversen Produkten wie Google Now, Gmail, Google Fotos, Google Search, Google Translate oder Youtube.
Das Framework beruht auf einem Graphen-Modell, mathematische Operationen sind als Knoten in den Graphen repräsentiert, während die Ränder der Graphen multidimensionale Datenräume (Tensoren) darstellen. Wie bei Veles oder auch dem Microsoft Cognitive Toolkit lassen sich Berechnungen auf einem oder mehreren Rechnern per CPU und GPU durchführen.
TensorFlow bietet mit der grafischen Oberfläche TensorBoard eine Möglichkeit, die verwendeten Graphen zu visualisieren. „So bekomme ich als Entwickler ein Gefühl dafür, was im System vor sich geht“, sagt Bernd Fondermann von Brainlounge. „Tools wie TensorBoard erlauben mir zu sehen, was wirklich passiert, und zu erkennen, welche Teilaspekte des Modells vielleicht nicht so funktionieren wie gewünscht.“
Theano: Die Open-Source-Bibliothek für Python erlaubt es, mathematische Operationen mit multidimensionalen Arrays zu definieren, zu optimieren und zu evaluieren. Die Syntax ähnelt der von NumPy, einer Python-Erweiterung für multidimensionale Arrays und Matrices. Das am Montréal Institut für Learning Algorithms (MILA) der Universität von Montréal entwickelte Framework unterstützt ebenfalls die Verwendung von GPUs zur Berechnung und zeichnet sich unter anderem durch erweiterte Funktionen zur Fehlererkennung und -diagnose aus.
Motivation für Machine-Learning-Projekte
Machine Learning ist für viele DACH-Unternehmen Teil ihrer digitalen Strategie. Auch zur Optimierung von Prozessen sowie zur Optimierung der Customer Experience dienen diese Projekte.
(Quelle: Crisp Research )
Torch: Das objektorientierte, ebenfalls als Open Source verfügbare Framework Torch verwendet eine auf Lua basierende Skriptsprache sowie den Just-in-Time-Compiler LuaJIT. Es wurde bereits 2002 von einem Forscher-Team um Ronan Collobert konzipiert und kommt unter anderem bei Facebook, IBM und dem Internet-Dienstleister Yandex zum Einsatz.
Gegenüber der Python-basierten Konkurrenz zeichnet  sich das Framework laut Collobert, der heute bei Facebook arbeitet, durch Schnelligkeit, Flexibilität und einfache Inte­gration von C- oder C++-Bibliotheken aus. Prototypen sollen sich außerdem sehr einfach in Endprodukte verwandeln und auf verschiedensten Endgeräten und Plattformen verwenden lassen.
Apache Singa: Nicht unerwähnt bleiben soll das aus dem Apache-Kosmos stammende Apache Singa. Singa soll verteiltes Lernen auf Big-Data-Infrastrukturen schnell und skalierbar ermöglichen, indem sowohl das Lernmodell als auch die Trainingsdaten partitioniert und auf verschiedene Knoten eines Clusters verteilt werden. Der Code ist modular aufgebaut und lässt sich um verschiedene Lernmodelle oder Algorithmen erweitern.
Apache Spark MLlib: Hierbei handelt es sich um die Machine-Learning-Bibliothek für das Hadoop-Framework Spark. Sie lässt sich sowohl mit NumPy in Python als auch mit R-Bibliotheken verwenden. Spark MLlib kann ohne zusätzliche Installation auf einem Hadoop-2-Cluster verwendet werden. Spark lässt sich aber separat lokal, auf einem Amazon-EC2-Cluster oder über den Cluster-Manager Apache Mesos in­stallieren.
Hier nochmal eine Auswahl an ML-Frameworks als PDF-Datei
Bot-Frameworks
Obwohl Machine Learning (ML) und Künstliche Intelligenz (KI) häufig synonym verwendet werden, sind sie nicht notwendigerweise deckungsgleich. ML-Algorithmen lassen sich auch für Zwecke verwenden, die nichts oder nur sehr entfernt etwas mit KI in dem Sinn zu tun haben, wie sie die Pioniere auf diesem Forschungsgebiet, etwa Marvin Minsk, Allan Turing oder auch John McCarthy definierten.
Als KI im engeren Sinn kann man dagegen Chatbots bezeichnen. Sie sind immerhin kurz davor, den Turing-Test zu bestehen, das heißt, sie lassen sich nur noch schwer von einem menschlichen Gesprächspartner unterscheiden.
Eine Reihe von Frameworks bietet Unterstützung beim Aufbau eines eigenen Chatbots, so etwa die Facebook Bot Engine des 2015 von Facebook übernommenen Start-ups Wit.ai (https://wit.ai), das webbasierte Framework API.AI (https://api.ai) von Speaktoit oder die Customer Experience Platform (CXP) von Aspect Software (www.aspect.com/de). Microsoft bietet mit dem Bot Framework (https://dev.botframework.com) ebenfalls eine Plattform, über die sich Konversationssysteme entwickeln lassen.
Verwandte Themen