Die 10 besten Frameworks für maschinelles Lernen

Veröffentlicht: 2017-03-11
Inhaltsverzeichnis anzeigen
1. Tensorfluss
2. Kaffee
3. Amazon Machine Learning
4. Apache Singa
5. Microsoft-CNTK
6. Taschenlampe
7. Accord.NET
8. Apache Mahout
9. Theano
10. Brainstorming

Beim Eintauchen in die Welt des maschinellen Lernens (ML) kann die Auswahl eines Frameworks aus vielen Alternativen eine einschüchternde Aufgabe sein. Möglicherweise sind Ihnen die Namen bereits bekannt, aber es ist hilfreich, die Optionen während des Entscheidungsprozesses zu bewerten. Es gibt verschiedene Frameworks, Bibliotheken, Anwendungen, Toolkits und Datensätze in der Welt des maschinellen Lernens, die sehr verwirrend sein können, insbesondere wenn Sie ein Anfänger sind. Es ist notwendig, sich an die gängigen ML-Frameworks zu gewöhnen, wenn es darum geht, eines für die Erstellung Ihrer Anwendung auszuwählen. Aus diesem Grund haben wir eine Liste der Top-10-Frameworks für maschinelles Lernen zusammengestellt.

1. Tensorfluss

Tensorflow wurde vom Google Brain Team für verschiedene Sprachverständnis- und Wahrnehmungsaufgaben entwickelt. Dieses Open-Source-Framework wird für umfangreiche Forschung zu tiefen neuronalen Netzen und maschinellem Lernen verwendet. Als zweites Framework für maschinelles Lernen von Google Brain ist es mit den meisten neuen CPUs und GPUs kompatibel. Viele der beliebten Google-Dienste, die wir täglich nutzen, wie Gmail, Spracherkennung, Google Fotos und sogar die Google-Suche, sind mit Tensorflow ausgestattet.

Tensorflow verwendet Datenflussdiagramme, um komplizierte numerische Aufgaben auszuführen. Die mathematischen Berechnungen werden unter Verwendung eines gerichteten Graphen ausgearbeitet, der Kanten und Knoten enthält. Diese Knoten werden verwendet, um die Operationen zu implementieren und können auch als Endpunkte fungieren, an denen Daten eingespeist werden. Die Kanten repräsentieren auch die Eingabe/Ausgabe-Zuordnungen zwischen verschiedenen Knoten.

2. Kaffee

Caffe ist ein Framework für maschinelles Lernen, das mit den Schwerpunkten besserer Ausdruck, Geschwindigkeit und Modularität entwickelt wurde. Es wurde für Computer Vision/Bildklassifizierung durch Nutzung von Convolutional Neural Networks (CNNs) entwickelt. Caffe ist bekannt für seinen Model Zoo, bei dem es sich um eine Reihe vortrainierter Modelle handelt, für deren Implementierung keine Codierung erforderlich ist.

Es eignet sich besser für Gebäudeanwendungen als Tensorflow, das bei Forschung und Entwicklung besser abschneidet. Beachten Sie bei Anwendungen mit Text-, Ton- oder Zeitreihendaten, dass Caffe für nichts anderes als Computer-Vision gedacht ist. Es kann jedoch dynamisch auf einer Vielzahl von Hardware ausgeführt werden und leistet gute Arbeit beim Umschalten zwischen CPU und GPU mit nur einem einzigen Flag.

3. Amazon Machine Learning

Amazon hat einen eigenen Dienst für maschinelles Lernen für Entwickler namens AML entwickelt. Es ist eine Sammlung von Werkzeugen und Assistenten, die zur Entwicklung anspruchsvoller, hochwertiger und intelligenter Lernmodelle verwendet werden können, ohne tatsächlich am Code herumzubasteln. Mithilfe von AML können Vorhersagen, die für Ihre Anwendungen benötigt werden, über einfacher zu verwendende APIs abgeleitet werden. Die Technologie hinter AML wird von Amazons internen Datenwissenschaftlern verwendet, um ihre Amazon Cloud Services zu betreiben, und ist hochgradig skalierbar, dynamisch und flexibel. AML kann sich mit den in Amazon S3, RDS oder Redshift gespeicherten Daten verbinden und Operationen wie binäre Klassifizierung, Regression oder mehrklassige Kategorisierung durchführen, um neue Modelle zu erstellen.

4. Apache Singa

Apache Singa konzentriert sich hauptsächlich auf verteiltes Deep Learning unter Verwendung von Modellpartitionierung und Parallelisierung des Trainingsprozesses. Es bietet ein einfaches und robustes Programmiermodell, das über einen Cluster von Knoten hinweg funktionieren kann. Die Hauptanwendungen liegen in der Bilderkennung und der Verarbeitung natürlicher Sprache (NLP).

Singa wurde mit einem intuitiven, auf Ebenenabstraktion basierenden Programmiermodell entwickelt und unterstützt eine Reihe von Deep-Learning-Modellen. Da es auf einer sehr flexiblen Architektur basiert, kann es sowohl synchrone als auch asynchrone und sogar hybride Trainingsmethoden ausführen. Der Tech-Stack von Singa besteht aus drei wichtigen Komponenten: IO, Model und Core. Die IO-Komponente enthält Klassen, die zum Lesen/Schreiben von Daten auf das Netzwerk und die Festplatte verwendet werden. Die Kernkomponente verarbeitet Tensoroperationen und Speicherverwaltungsfunktionen. Model beherbergt Algorithmen und Datenstrukturen, die für Machine-Learning-Modelle verwendet werden.

5. Microsoft-CNTK

CNTK (Cognitive Toolkit) ist das Open-Source-Framework für maschinelles Lernen von Microsoft. Obwohl es im Bereich der Spracherkennung beliebter ist, kann CNTK auch für das Text- und Bildtraining verwendet werden. Mit Unterstützung für eine Vielzahl von Algorithmen für maschinelles Lernen wie AS CNN, LSTM, RNN, Sequence-to-Sequence und Feed Forward ist es eines der dynamischsten Frameworks für maschinelles Lernen auf dem Markt. CNTK unterstützt mehrere Hardwaretypen, einschließlich verschiedener CPUs und GPUs.

Kompatibilität ist eines der Highlights von CNTK. Es wird auch als die ausdrucksstärkste und am einfachsten zu verwendende maschinelle Lernarchitektur gelobt. Auf CNTK können Sie mit Sprachen wie C++ und Python arbeiten und entweder die integrierten Trainingsmodelle verwenden oder Ihre eigenen erstellen.

6. Taschenlampe

Torch könnte wohl das einfachste Framework für maschinelles Lernen sein, das Sie schnell und einfach einrichten und loslegen können, insbesondere wenn Sie Ubuntu verwenden. Torch wurde 2002 an der NYU entwickelt und wird in großem Umfang in großen Technologieunternehmen wie Twitter und Facebook eingesetzt. Torch ist in einer Sprache namens Lua codiert, die ungewöhnlich, aber leicht zu lesen und zu verstehen ist. Einige der Vorteile von Torch können dieser freundlichen Programmiersprache mit nützlichen Fehlermeldungen, einer riesigen Sammlung von Beispielcode, Anleitungen und einer hilfreichen Community zugeschrieben werden.

7. Accord.NET

Accord.NET ist ein Open-Source-Framework für maschinelles Lernen, das auf .NET basiert und ideal für wissenschaftliches Rechnen ist. Es besteht aus verschiedenen Bibliotheken, die für Anwendungen wie Mustererkennung, künstliche neuronale Netze, statistische Datenverarbeitung, lineare Algebra, Bildverarbeitung usw. verwendet werden können. Das Framework umfasst Bibliotheken, die als Installer, NuGet-Pakete und Quellcode verfügbar sind. Accord.NET verfügt über eine Matrixbibliothek, die die Wiederverwendbarkeit von Code und schrittweise algorithmische Änderungen erleichtert.

8. Apache Mahout

Als kostenloses Open-Source-Projekt der Apache Software Foundation wurde Apache Mahout mit dem Ziel entwickelt, kostenlos verteilte oder skalierbare ML-Frameworks für Anwendungen wie Clustering, Klassifizierung und kollaborative Filterung zu entwickeln. Auch Java-Sammlungen für verschiedene Rechenoperationen und Java-Bibliotheken sind in Mahout verfügbar.

Apache Mahout wird mithilfe des MapReduce-Paradigmas auf Hadoop bereitgestellt. Eine großartige Anwendung besteht darin, Daten sofort in Erkenntnisse umzuwandeln. Sobald die gespeicherten Big Data auf Hadoop verbunden sind, kann Mahout den Data-Science-Tools dabei helfen, aussagekräftige Muster aus den Datensätzen zu finden.

9. Theano

Theano wurde 2007 an der Universität von Montreal entwickelt, die weltweit für maschinelle Lernalgorithmen bekannt ist. Obwohl es als Low-End-Framework für maschinelles Lernen gilt, ist es flexibel und blitzschnell. Die vom Framework ausgegebenen Fehlermeldungen sind berüchtigt dafür, nicht hilfreich und kryptisch zu sein. Abgesehen davon ist Theano eine Plattform, die eher für Forschungsaufgaben geeignet ist und dabei äußerst hilfreich sein kann.

Es wird hauptsächlich als Basisplattform für High-End-Abstraktionssysteme verwendet, die API-Wrapper an Theano senden würden. Beispiele für einige beliebte Bibliotheken sind Lasagne, Blocks und Keras. Ein Nachteil der Verwendung von Theano ist, dass Sie an einer Problemumgehung basteln müssen, um Multi-GPU-Unterstützung zu erhalten.

10. Brainstorming

Brainstorm ist aufgrund seiner Einfachheit und Flexibilität eines der am einfachsten zu beherrschenden Frameworks für maschinelles Lernen. Es macht die Arbeit mit neuronalen Netzen schneller und macht gleichzeitig Spaß. Da Brainstorm vollständig in Python geschrieben wurde, wurde es entwickelt, um reibungslos auf mehreren Backend-Systemen zu laufen.

Brainstorm bietet zwei „Hander“ oder Daten-APIs mit Python – eine für CPUs der Numpy-Bibliothek und die andere zur Nutzung von GPUs mit CUDA. Der größte Teil der Schwerarbeit wird durch Python-Skripting erledigt, was bedeutet, dass eine reichhaltige Front-End-Benutzeroberfläche fast nicht vorhanden ist.