Welche Algorithmen für maschinelles Lernen können mit Hadoop / Map-Reduce skaliert werden?

9

Skalierbare Algorithmen für maschinelles Lernen scheinen heutzutage die Begeisterung zu sein. Jedes Unternehmen verarbeitet nur Big Data . Gibt es ein Lehrbuch, in dem erläutert wird, welche Algorithmen für maschinelles Lernen mit parallelen Architekturen wie Map-Reduce skaliert werden können und welche nicht? Oder einige relevante Papiere?

Nik
quelle

Antworten:

4

Vowpal Wabbit, ein sehr schnelles maschinelles Lernprogramm, das sich auf das Lernen mit Online-Gradientenabstieg konzentriert, kann mit Hadoop verwendet werden: http://arxiv.org/abs/1110.4198 Allerdings habe ich es noch nie so verwendet. Wenn ich es richtig verstehe, verwendet es Hadoop wirklich nur für die Zuverlässigkeit und die Bereitstellung der Daten für die Vowpal Wabbit-Prozesse. Es verwendet so etwas wie AllReduce von MPI, um den größten Teil der Kommunikation zu erledigen.

ektrules
quelle
4

Wie Jimmy Lin und Chris Dyer im ersten Kapitel ihres Buches über datenintensives Text Mining mit MapReduce hervorheben , konvergiert die Leistung verschiedener Algorithmen bei großen Datenmengen so, dass Leistungsunterschiede praktisch verschwinden. Dies bedeutet, dass bei einem ausreichend großen Datensatz der Algorithmus, den Sie verwenden möchten, rechenintensiver ist. Nur bei kleineren Datenskalen sind die Leistungsunterschiede zwischen Algorithmen von Bedeutung.

Davon abgesehen sind ihr Buch (oben verlinkt) und Mining of Massive Datasets von Anand Rajaraman, Jure Leskovec und Jeffrey D. Ullman wahrscheinlich zwei Bücher, die Sie ebenfalls lesen sollten, insbesondere da sie sich direkt mit MapReduce befassen für Data Mining-Zwecke.

Richard D.
quelle
1
"... im großen Maßstab konvergiert die Leistung verschiedener Algorithmen ..." Das wusste ich nicht. Vielen Dank für diesen hilfreichen Einblick. Außerdem bin ich auf "Mining of Massive Datasets" gestoßen und fand es sehr nützlich. Werde mir auch das andere Buch ansehen.
Nik
2

Wenn Sie Zugriff auf einen Hadoop-Cluster haben, würde ich Spark einen Blick darauf werfen. https://spark.apache.org/

screechOwl
quelle
MLlib enthält eine Reihe von verteilten Algorithmen für maschinelles Lernen für Spark mit Beispielen in Scala, Java, Python und R: spark.apache.org/docs/latest/ml-guide.html
Vadim Smolyakov
1

Niemand hat das folgende Papier erwähnt - http://papers.nips.cc/paper/3150-map-reduce-for-machine-learning-on-multicore.pdf (Andrew Ng ist einer der Autoren)

Das Papier selbst ist für Mehrkernmaschinen gedacht, aber es geht im Wesentlichen darum, Probleme beim maschinellen Lernen neu zu formulieren, damit sie in das Muster der Kartenreduzierung passen und für einen Cluster von Computern verwendet werden können. (Um zu sehen, warum dies im Allgemeinen keine gute Idee ist, sollten Sie dieses Papier lesen - http://arxiv.org/pdf/1006.4990v1.pdf . Es hat einen guten Überblick).

user48654
quelle
Mahout war auch ein Versuch, das von mir erwähnte Andrew Ng-Papier umzusetzen.
user48654
0

Skalieren des maschinellen Lernens : Parallele und verteilte Ansätze ist ein großartiges Buch von John Langford et. al. Hier werden parallele Implementierungen von überwachten und unbeaufsichtigten Algorithmen erörtert. Es geht um MapReduce, Entscheidungsbaum-Ensembles, parallele K-Mittelwerte, parallele SVM, Glaubensausbreitung und AD-LDA.

https://www.amazon.com/Scaling-Machine-Learning-Distributed-Approaches/dp/0521192242

Vadim Smolyakov
quelle