Quais algoritmos de aprendizado de máquina podem ser escalados usando hadoop / map-reduz

9

Atualmente, os algoritmos de aprendizado de máquina escalonáveis ​​parecem o burburinho. Toda empresa está lidando com nada além de big data . Existe um livro que discute quais algoritmos de aprendizado de máquina podem ser escalados usando arquiteturas paralelas como Map-Reduce e quais algoritmos não? Ou alguns documentos relevantes?

Nik
fonte

Respostas:

4

O Vowpal Wabbit, um programa de aprendizado de máquina muito rápido, focado no aprendizado de descida gradiente on-line, pode ser usado com o Hadoop: http://arxiv.org/abs/1110.4198 No entanto, nunca o usei dessa maneira. Se eu entendi direito, ele realmente só usa o Hadoop para oferecer confiabilidade e fornecer os dados aos processos do Vowpal Wabbit. Ele usa algo como o AllReduce da MPI para fazer a maior parte da comunicação.

ektrules
fonte
4

Como Jimmy Lin e Chris Dyer apontam no primeiro capítulo de seu livro sobre mineração de texto intensiva em dados com o MapReduce , em grandes escalas de dados, o desempenho de diferentes algoritmos converge para que as diferenças de desempenho praticamente desapareçam. Isso significa que, dado um conjunto de dados grande o suficiente, o algoritmo que você deseja usar é o que é computacionalmente mais barato. É apenas em escalas de dados menores que as diferenças de desempenho entre algoritmos são importantes.

Dito isto, o livro ( link acima) e o Mining of Massive Datasets de Anand Rajaraman, Jure Leskovec e Jeffrey D. Ullman provavelmente são dois livros que você também precisará conferir, especialmente porque estão diretamente relacionados ao MapReduce para fins de mineração de dados.

Richard D
fonte
1
"... em larga escala, o desempenho de diferentes algoritmos converge ..." Eu não sabia disso. Obrigado por esse insight útil. Além disso, deparei-me com "Mineração de conjuntos de dados maciços" e achei muito útil. Também olhará para o outro livro.
26413 Nik
2

Se você tiver acesso a um cluster Hadoop, eu daria uma olhada no Spark. https://spark.apache.org/

Coruja
fonte
MLlib contém uma série de algoritmos de aprendizado de máquina distribuídos para faísca com exemplos em Scala, Java, Python, e R: spark.apache.org/docs/latest/ml-guide.html
Vadim Smolyakov
1

Ninguém mencionou o seguinte artigo - http://papers.nips.cc/paper/3150-map-reduce-for-machine-learning-on-multicore.pdf (Andrew Ng é um dos autores)

O documento em si é para máquinas com vários núcleos, mas trata-se essencialmente de reformular problemas de aprendizado de máquina para que eles se ajustem ao padrão de redução de mapa e possam ser usados ​​para um cluster de computadores. (para entender por que essa não é uma boa ideia em geral, você pode ler este documento - http://arxiv.org/pdf/1006.4990v1.pdf . Ele tem uma boa visão geral).

user48654
fonte
Além disso, Mahout foi uma tentativa de implementar o artigo de Andrew Ng que mencionei.
user48654
0

Ampliando o aprendizado de máquina : abordagens paralelas e distribuídas é um ótimo livro de John Langford et. al. que discute implementações paralelas de algoritmos supervisionados e não supervisionados. Ele fala sobre o MapReduce, conjuntos de árvores de decisão, meios K paralelos, SVM paralelo, propagação de crenças e AD-LDA.

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

Vadim Smolyakov
fonte