Какие алгоритмы машинного обучения можно масштабировать с помощью hadoop / map-Reduce

9

Масштабируемые алгоритмы машинного обучения в наши дни кажутся шумом. Каждая компания обрабатывает только большие данные . Существует ли учебник, в котором обсуждается, какие алгоритмы машинного обучения можно масштабировать с помощью параллельных архитектур, таких как Map-Reduce, а какие - нет? Или какие-то соответствующие документы?

Nik
источник

Ответы:

4

Vowpal Wabbit, очень быстрая программа машинного обучения, ориентированная на онлайн-обучение градиентному спуску, может использоваться с Hadoop: http://arxiv.org/abs/1110.4198 Хотя я никогда не использовал ее таким образом. Если я правильно понимаю, он действительно использует Hadoop только для надежности и предоставления данных для процессов Vowpal Wabbit. Он использует что-то вроде AllReduce MPI, чтобы сделать большую часть связи.

ektrules
источник
4

Как отмечают Джимми Лин и Крис Дайер в первой главе своей книги, посвященной интеллектуальному анализу текста с помощью MapReduce , при больших масштабах данных производительность различных алгоритмов сходится так, что различия в производительности практически исчезают. Это означает, что при достаточно большом наборе данных алгоритм, который вы хотите использовать, является вычислительно менее затратным в вычислительном отношении. Разница в производительности между алгоритмами имеет значение только при меньших масштабах данных.

Тем не менее, их книга (ссылка выше) и « Добыча массивных наборов данных » Ананда Раджарамана, Юре Лесковца и Джеффри Д. Уллмана, вероятно, две книги, которые вы тоже захотите проверить, тем более что они непосредственно связаны с MapReduce. для целей интеллектуального анализа данных.

Ричард Д
источник
1
«... в больших масштабах производительность разных алгоритмов сходится ...» Я этого не знал. Спасибо за это полезное понимание. Кроме того, я наткнулся на «Mining of Massive Datasets» и нашел его очень полезным. Посмотрим на другую книгу тоже.
Ник
2

Если у вас есть доступ к кластеру Hadoop, я бы посмотрел на Spark. https://spark.apache.org/

screechOwl
источник
MLlib содержит несколько распределенных алгоритмов машинного обучения для Spark с примерами на Scala, Java, Python и R: spark.apache.org/docs/latest/ml-guide.html
Вадим Смоляков
1

Никто не упомянул следующую статью - http://papers.nips.cc/paper/3150-map-reduce-for-machine-learning-on-multicore.pdf (Эндрю Нг является одним из авторов)

Сам документ предназначен для многоядерных машин, но по сути он касается пересмотра проблем машинного обучения, чтобы они соответствовали шаблону сокращения карт и могли использоваться для кластера компьютеров. (чтобы понять, почему это не очень хорошая идея, вы можете прочитать эту статью - http://arxiv.org/pdf/1006.4990v1.pdf . У нее хороший обзор).

user48654
источник
Кроме того, Mahout был попыткой реализовать статью Эндрю Нга, которую я упомянул.
user48654
0

Расширение возможностей машинного обучения : параллельные и распределенные подходы - замечательная книга Джона Лэнгфорда и др. и др. это обсуждает параллельные реализации контролируемых и неконтролируемых алгоритмов. В нем говорится о MapReduce, ансамблях дерева решений, параллельных K-средних, параллельных SVM, распространении убеждений и AD-LDA.

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

Вадим Смоляков
источник