UNIVERSIDADE FEDERAL DE PERNAMBUCO
CENTRO DE INFORMÁTICA
GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
Técnicas de
Aprendizagem
Distr...
Técnicas de Aprendizagem Distribuída em Big Data
i
Resumo
Este trabalho tem como objetivo analisar e comparar algumas das ...
Técnicas de Aprendizagem Distribuída em Big Data
ii
Sumário
1 – Introdução ..................................................
1 – Introdução
Com os avanços no armazenamento digital e nas tecnologias de comunicação na internet, a
pesquisa e desenvol...
Técnicas de Aprendizagem Distribuída em Big Data
2
2 – Visão Geral
Big Data é um grande amontoado de dados que não pode se...
Técnicas de Aprendizagem Distribuída em Big Data
3
Figure 2.1 – Os homens cegos e o elefante gigante [12]
2.2 – Caracterís...
Técnicas de Aprendizagem Distribuída em Big Data
4
se grandes desafios se estamos tentando permitir a agregação de dados a...
Técnicas de Aprendizagem Distribuída em Big Data
5
semelhantes se eles partilharem valores de características semelhantes,...
Técnicas de Aprendizagem Distribuída em Big Data
6
reparticiona-Redude pode continuar por muitos ciclos. As atribuições da...
Técnicas de Aprendizagem Distribuída em Big Data
7
carga. Ele suporta localidade, combinando um TaskTracker com tarefas Ma...
Técnicas de Aprendizagem Distribuída em Big Data
8
Spark integra com a linguagem Scala e é o primeiro sistema a permitir q...
Técnicas de Aprendizagem Distribuída em Big Data
9
primitivas de baixo nível.
• Muitas das plataformas de software de Big ...
Técnicas de Aprendizagem Distribuída em Big Data
10
4 – Conclusão
Começamos o estudo por uma análise sobre as característi...
Técnicas de Aprendizagem Distribuída em Big Data
11
Referências Bibliográficas
[1] O que é Big Data? – Online, acesso em 1...
Técnicas de Aprendizagem Distribuída em Big Data
12
[11] GILLIK, Dan; FARIA, Arlo; DENERO, John. MapReduce: Distributed Co...
Próximos SlideShares
Carregando em…5
×

KarlaFalcao

6 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
6
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

KarlaFalcao

  1. 1. UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO Técnicas de Aprendizagem Distribuída em Big Data Karla Polyana Silva Falcão RECIFE, ABRIL DE 2016
  2. 2. Técnicas de Aprendizagem Distribuída em Big Data i Resumo Este trabalho tem como objetivo analisar e comparar algumas das principais estratégias e técnicas de aprendizagem de máquina em Big Data. Primeiramente, esta monografia pretende informar o que é Big Data. Isto será feito a partir de conceitos básicos sobre seu surgimento, seguindo pela relevância e objetivo de seu uso e finalizando com a explicação sobre as principais características que devem se levar em consideração para se construir um sistema de extração de informação nas coleções de Big Data. Extrair informação útil de dados não estruturados é um dos principais objetivos e um dos maiores desafios em Big Data. Após a passagem pelos conceitos básicos e características, serão avaliadas algumas das principais técnicas/ferramentas para se extrair informação útil em Big Data. Para ter uma melhor idéia dos pros e contras presente em cada técnica/ferramenta, elas serão classificadas em dois tipos, as de propósito geral e as especializadas.
  3. 3. Técnicas de Aprendizagem Distribuída em Big Data ii Sumário 1 – Introdução .......................................................................................................................1 2 – Visão Geral......................................................................................................................2 2.1 – Conceitos básicos .....................................................................................................2 2.2 – Características presentes em BigData ...................................................................3 3 – Técnicas de Aprendizagem em Big Data......................................................................5 4 – Conclusão ......................................................................................................................10 Referências Bibliográficas .................................................................................................11
  4. 4. 1 – Introdução Com os avanços no armazenamento digital e nas tecnologias de comunicação na internet, a pesquisa e desenvolvimento convencionais em AM - que presa por inovações em modelos, algoritmos e teorias - são desafiados pela crescente prevalência de coleções de dados em Big Data, tais como centenas de horas de vídeos submetidos para compartilhamento em sites a cada 1 minuto ou petabytes de mídias sociais em redes sociais com mais de 1 bilhão de usuários. O surgimento do Big Data é também acompanhado pelo apetite crescente por altas dimensões e modelos mais complexos de AM, com bilhões de trilhões de parâmetros para suportar o grande crescimento na complexidade dos dados ou para obter uma alta acuracidade de predição, por exemplo, para um melhor serviço de usuário ou diagnóstico médico, e suportar tarefas mais inteligentes como, veículos autônomos e interpretação semântica de dados de vídeo [7]. No mercado existem algumas plataformas ou sistemas que implementam técnicas de processamento e aprendizagem distribuída, porém cada uma tem os seus pros e contras, deve se analisar alguns aspectos – qual modelo ou algoritmo de aprendizagem pretende-se usar, pois isto demanda um certo tipo conhecimento, não comum entre os usuários, sobre parametrização e conhecimento das técnicas em si, além disso, como escalar a execução de tais algoritmos. Por exemplo, sistemas de fluxo de dados, tais como Hadoop e Spark são construídos sobre uma abstração baseada no modelo de programação MapReduce [5] e fornecem uma interface de programação fácil de usar, porém estes deixam de prestar atenção a algumas características inerentes em Big Data tais como, a tolerância a erros, agendamento granular de tarefas e mensagens para acelerar os programas de aprendizagem - como resultado, eles oferecem uma execução correta e de fácil programação, porém são mais lentas do que as plataformas especializadas [7]. Esse trabalho visa analisar as principais características do ambiente de processamento de dados e aprendizagem em Big Data e avaliar técnicas e soluções existentes que lidam com tais características. No capítulo 2 é uma visão geral sobre tais características presentes em Big Data, no capítulo 3 já teremos capacidade de entender o funcionamento das soluções existentes que lidam com o processamento de dados em Big Data, e assim entender qual solução aplicar em cada caso.
  5. 5. Técnicas de Aprendizagem Distribuída em Big Data 2 2 – Visão Geral Big Data é um grande amontoado de dados que não pode ser processado usando métodos tradicionais para processamento e análise de dados, nem mesmo um único computador é capaz de gerenciar tais quantidades de dados. Um dos principais objetivos em Big Data é extrair informação plausível, baseado em certos padrões, que nos ajude a predizer algo em relação ao comportamento do(s) objeto(s) ao(s) qual(quais) esses dados se referem. Com isso, logo viu-se a necessidade de introduzir técnicas de aprendizagem de máquina em Big Data. Este capítulo abordará as principais características em Big Data que devem ser levadas em consideração para aplicação eficiente de técnicas de aprendizagem de máquina. 2.1 – Conceitos básicos Big Data tem a ver com grande volume de dados com características heterogêneas e dimensões variadas, processamento distribuído, e procura explorar as relações complexas e evolutivas entre os dados. Estas características tornam a tarefa de se extrair conhecimento útil em Big Data extremamente desafiadora [12]. Fazendo uma analogia comum, imagine que uma certa quantidade de homens cegos estão tentando avaliar um elefante gigante (Figura 2.1), que será o Big Data nesse contexto. O objetivo de cada um é chegar numa imagem (ou conclusão) do elefante de acordo com as características de cada parte que coletaram nesse processo [12]. Como a percepção de cada um é limitada à sua região local, não é de se surpreender que cada um irá concluir independentemente que o elefante “se parece” com uma mangueira, ou uma parede, dependendo da região que cada um está apalpando. Pra tornar o problema ainda maior, vamos assumir que o elefante está crescendo rapidamente e sua posição também muda constantemente, e que os homens cegos aprendem uns com os outros, trocando informação sobre suas respectivas percepções sobre elefante [12]. Explorar o Big Data nesse cenário é equivalente a agregar informações heterogêneas de origens diferentes (os homens cegos) para ajudar a desenhar a melhor imagem possível, revelando assim a real situação do elefante em um tempo hábil. De fato essa tarefa não é tão simples como perguntar a cada homem o que ele percebeu sobre o elefante e então um ter um especialista que irá desenhar uma única imagem com as percepções combinadas, levando consideração que cada homem deve falar uma linguagem diferente (dados variados em formato e dimensões) e que eles nem sequer se preocupam com a privacidade das mensagem que eles entregam no processo de troca de informação [12].
  6. 6. Técnicas de Aprendizagem Distribuída em Big Data 3 Figure 2.1 – Os homens cegos e o elefante gigante [12] 2.2 – Características presentes em BigData Grande volume de dados com características heterogêneas e dimensões variadas Uma das principais características do Big Data é o grande volume de dados com características heterogêneas e dimensões variadas. E isto se deve aos diferentes coletores de informação que usam esquemas próprios para armazenamento de dados, além de que natureza das aplicações diversas resultam em diferentes representações dos dados. Por exemplo, cada ser humano em um mundo biomédico pode ser representado usando informações demográficas simples, como sexo, idade, histórico de doença na família, etc. Para os exames de raios-X e tomografia computadorizada de cada indivíduo, imagens ou vídeos são usados para representar o resultados porque eles fornecem informação visual para os médicos para realizar exames detalhados. Para realizar um teste de DNA ou genômico, microarrays de expressão de imagens e sequências são utilizados para representar a informação do código genético porque esta é a maneira que as nossas técnicas atuais pegam os dados [12]. Sob tais circunstâncias, as características heterogêneas referem-se aos diferentes tipos de representações para os mesmos indivíduos, e as dimensões variadas referem-se a variedade de características envolvidos para representar cada observação simples. Imagine que diferentes organizações (ou profissionais de saúde) podem ter seu próprio esquema para representar cada paciente, a heterogeneidade dos dados e a diversidade nas dimensões tornam-
  7. 7. Técnicas de Aprendizagem Distribuída em Big Data 4 se grandes desafios se estamos tentando permitir a agregação de dados através da combinação de dados de todas as origens [12]. Fontes autônomas com controle distribuído Fontes autônomas com controle distribuído e descentralizado são as principais caraterísticas do Big Data. Sendo autônoma, cada fonte de dados é capaz de gerar e coletar informação sem envolver (ou depender de) qualquer controle centralizado [12]. Isto é semelhante ao World Wide Web (WWW) definindo onde cada servidor web fornece uma certa quantidade de informação e cada servidor é capaz de funcionar a todo vapor sem necessariamente depender de outros servidores. Por outro lado, os grandes volumes de dados, também são vulneráveis a ataques ou mau funcionamento, se todo o sistema tem de depender de qualquer unidade de controle centralizado [12]. Para grandes aplicações relacionadas de Big Data, como o Google, Flicker, Facebook e Walmart, um grande número de servidores são implantados em todo o mundo para garantir serviço sempre disponível e resposta rápida para os mercados locais [12]. Tais fontes autônomas não são apenas as soluções dos projetos técnicos, mas também resultados da legislação e das regras de regulamentação em diferentes países / regiões. Por exemplo, os mercados asiáticos de Walmart são inerentemente diferente dos mercados norte-americanos em termos de promoções sazonais, itens de venda superior, e os comportamentos dos clientes. Mais especificamente, os regulamentos governamentais locais também têm impacto sobre o processo de gestão de atacado e, eventualmente, resultam em representações e armazenamento(warehouses) de dados específicos para os mercados locais [12]. Relações complexas e em evolução Enquanto o volume de dados em Big Data aumenta, o mesmo acontece com a complexidade e as relações sob esses dados. Em um estágio inicial dos sistemas de informação de dados centralizados, o foco está em encontrar os melhores valores de características para representar cada observação [12]. Isto é semelhante ao uso de um número de campos de dados, como idade, sexo, renda, grau de instrução, etc., para caracterizar cada indivíduo. Este tipo de representação em função da amostra inerentemente trata cada indivíduo como uma entidade independente, sem considerar suas conexões sociais, que é um dos fatores mais importantes da sociedade humana [12]. As pessoas formam círculos de amigos com base em seus passatempos comuns ou conexões por relações biológicas. Tais conexões sociais comumente existem em não só as nossas atividades diárias, mas também são muito populares em mundos virtuais. Por exemplo, os principais sites de redes sociais, como Facebook ou Twitter, são caracterizados principalmente por funções sociais, tais como ligações de amizades e seguidores (no Twitter) [12]. As correlações entre indivíduos inerentemente complicam toda a representação de dados e qualquer processo de raciocínio. Na representação característica da amostra, os indivíduos são considerados
  8. 8. Técnicas de Aprendizagem Distribuída em Big Data 5 semelhantes se eles partilharem valores de características semelhantes, ao passo que na representação da amostra-característica de relacionamento, dois indivíduos podem ser ligados entre si (por meio de suas conexões sociais), embora possam compartilhar nada em comum no domínio das características [12]. Em um mundo dinâmico, os recursos usados para representar os indivíduos e os laços sociais usados para representar as nossas ligações também podem evoluir com respeito ao tempo, espaço, e outros fatores. Tal complicação é faz parte da realidade das aplicações Big Data, onde a chave é ter as relações complexas de dados (não-linear, muitos-para-muitos), juntamente com as mudanças evolutivas, em consideração, para descobrir padrões úteis das coleções de Big Data [12]. 3 – Técnicas de Aprendizagem em Big Data Por conta das propriedades inerentes em Big Data os conjuntos de dados são processados de forma distribuída e em larga escala seguindo o modelo clusterizado, em que as computações são executadas paralelamente em clusters de máquinas instáveis por sistemas que automaticamente fornecem agendamento local, tolerância a falhas e balanceamento de carga. Um cluster é um conjunto de máquinas ou componentes de computação, chamados de nós, que estão conectados e desacoplados, e a princípio todos os processamentos ocorrem sem troca de informação. MapReduce Nos primórdios das pesquisas relacionadas a Big Data, pesquisadores do Google já implementavam vários programas de propósito geral para processar grande volume de dados de forma distribuída, tais como logs de requisições da web, documentos rastreados, etc, para derivar vários tipos de dados, tais como estrutura do grafo de documentos da web, pesquisas mais frequentes em um dia, etc. No entanto devido aos problemas em computação paralela e distribuída, esses programas, que supostamente deveriam ser simples, acabavam ficando cheios de complexidades para lidar com tais problemas. Assim, foi desenvolvido por pesquisadores do Google, um modelo de computação simples que permite descrever de forma simples o que tem que ser feito, sem se preocupar com problemas de paralelização, tolerância a erros, balanceamento de carga, etc. Esse modelo chamado MapReduce, foi inspirado nas funções de map e reduce presentes na programação funcional, introduzidas pela linguagem de programação Lisp. A idéia é simples, basta descrever a função Map, que transforma cada item lógico presente no conjunto de dados, num objeto com chave/valor, então a função reduce é usada para refinar os valores que têm a mesma chave. Em sua implementação original o ambiente MapReduce funciona da seguinte forma, as funções de Map são processadas paralelamente por cada nó ou máquina, sem comunicação com outros nós, em seguida os dados são re-particionados em todos os nós do cluster e finalmente as funções de Reduce são executadas em paralelo por cada nó da partição que ele recebeu [13]. Esse processo de Map-
  9. 9. Técnicas de Aprendizagem Distribuída em Big Data 6 reparticiona-Redude pode continuar por muitos ciclos. As atribuições das tarefas aos nós são feitas em tempo de execução, assim é fácil tratar falhas de nós. O MapReduce dá suporte às características desejáveis em BigData Ambientes heterogêneos e Controle Distribuído: As tarefas/funções são executadas de forma distribuída e paralela sem dependência entre nós/máquinas. Executa tarefas redundantes, i.e. tarefas que estão demorando muito pra serem finalizadas em nós/máquinas lentas, são redundantemente atribuídas a outros nós/máquinas ociosas, que já terminaram suas tarefas. O nó que primeiro terminar a execução da tarefa, determina o resultado e o tempo. Tolerância a falhas: Detecta e redireciona as tarefas de nós falhos para os que estão funcionando a todo vapor. Relações complexas e em evolução: Não lida bem com relações complexas, pois a forma de perceber relacionamentos entre indivíduos é através do compartilhamento das mesmas amostra- características, que no caso seria a chave/valor. A descrição dos indivíduos segue o modelo descrito pelas funções de Map e Reduce. E não dá suporte a comunicação entre os nós/máquinas. Interface do usuário: As funções de Map e Reduce podem ser descritas em qualquer linguagem de propósito geral, mas não aceita declarações SQL na maioria dos sistemas baseados em MapReduce. O grande problema do MapReduce é a performance. Por conta da impossibilidade de modelar e carregar os dados antes de processá-los, muitas das características de performance dos sistemas de bancos de dados parelelos não são aplicáveis. Sistemas híbridos são implementações a partir da combinação das propriedades de tolerância a falhas e habilidade operar com ambientes heterogêneos com a habilidade de trabalhar com sistemas de bancos de dados paralelos. Hadoop Um sistema que consiste de duas camadas, a camada de armazenamento de dados ou o Sistema de Arquivos Distribuído Hadoop (HDFS) e a camada com um implementação do MapReduce. O HDFS é um sistema de arquivos estruturado em blocos e gerenciado pelo NameNode. Arquivos individuais são quebrados em blocos de tamanho fixo e distribuídos em múltiplos DataNodes no cluster [13]. A camada com o MapReduce segue uma arquitetura mestre-escravo simples. O mestre é um único JobTracker e os escravos ou nós workers são os TaskTrackers. O JobTracker cuida do agendamento das tarefas MapReduce em tempo de execução e mantém informação em cada carregamento e recurso disponívei dos TaskTrackers. Cada tarefa é decomposta em tarefas Map com base no número de blocos de dados que requerem processamento e tarefas Reduce. O JobTracker atribui tarefas aos TaskTrackers com base na localização e no balanceamento de
  10. 10. Técnicas de Aprendizagem Distribuída em Big Data 7 carga. Ele suporta localidade, combinando um TaskTracker com tarefas Map que processam os mesmos dados locais. Este equilibra a carga garantindo que todos os TaskTrackers disponíveis têm tarefas atribuídas [13]. Existe uma biblioteca chamada InputFormat que é uma interface entre as camadas de armazenamento e processamento. Esta interface analisa os arquivos de texto/binário e transforma os dados para o formato de pares chave-valor para que as tarefas Map possam processar. Hadoop é geralmente usado para executar pesquisas ad-hoc em grandes conjuntos de dados via interfaces SQL [13]. Ambientes heterogêneos e Controle Distribuído: Através de JobTrackers e TaskTrackers com balanceamento de carga Tolerância a falhas: Detecta e redireciona as tarefas de nós falhos para os que estão funcionando a todo vapor. Relações complexas e em evolução: TaskTrackers atualizam os JobTrackers regularmente sobre seus status através da troca de mensagens. Interface do usuário: Possível usar SQL e uma linguagem de propósito geral para as funções Map e Reduce Spark O Spark é um sistema que tem como base uma implementação do MapReduce com algumas propriedades a mais, ele surgiu pra suprir dois casos em que o MapReduce por si só e o Hadoop são inadequados, no que se diz a respeito ao reuso através de múltiplas operações paralelas [6]. Os casos são em que existem Tarefas Iterativas e Análise interativa. O Spark suporta operações em working sets - áreas da memória alocadas em um dado intervalo de tempo - enquanto suporta as mesmas propriedades de escalabilidade a tolerância a falhas do MapReduce. A principal abstração do Spark é a idéia de conjunto de dados distribuídos e resilientes - RDDs, que representa um uma coleção de dados, apenas para leitura e particionados em um conglomerado de máquinas, e estes podem ser reconstruídos caso uma partição seja perdida [6]. Os usuários podem armazenar em cache explicitamente um RDD em memória através de máquinas e reutilizá-lo em várias operações paralelas como o MapReduce. O RDD alcança tolerância a falhas através de uma noção de linhagem: se uma partição de uma RDD é perdida, o RDD tem informação suficiente sobre como ele foi derivado de outros RDDs para ser capaz de reconstruir apenas nessa partição. [6] Embora RDDs não sejam uma abstração de memória partilhada genérica, eles representam um doce-ponto entre expressividade, por um lado e escalabilidade e resiliência, por outro, e eles são adequados para uma variedade de aplicações [6].
  11. 11. Técnicas de Aprendizagem Distribuída em Big Data 8 Spark integra com a linguagem Scala e é o primeiro sistema a permitir que uma linguagem eficiente de programação de propósito geral possa ser usada de forma interativa para processar grandes conjuntos de dados em um cluster. Ambientes heterogêneos e Controle Distribuído: Através de duas abstrações principais RDDs e operações paralelas nesses RDDs, invocadas através da passagem de uma função a ser aplicada em um RDD. Também integra com o HDFS. Tolerância a falhas: Os elementos de um RDD não precisam existir em uma armazenamento físico, ao invés, o identificador de um RDD contém informação suficiente para gerar o RDD a partir de dados que estão em um armazenamento confiável. Isto significa que RDDs podem ser reconstruídos sempre se as máquinas-nós falharem. Relações complexas e em evolução: Usa variáveis compartilhadas que podem ser usadas nas funções que rodam no cluster, existem dois tipos as variáveis de broadcast e acumuladoras , as de broadcast são pra garantir que cada objeto é copiado para cada máquina-worker uma vez. Interface do usuário: Integra com o interpretador de Scala, o fluxo de uso principal é, o desenvolvedor escreve uma programa Driver que implementa o controle de fluxo se sua aplicação e executa várias operações em paralelo, as principais são reduce, collect e foreach. Petuum Um sistema especializado para lidar também com algoritmos avançados de aprendizagem de máquina, tais como Redes Neurais Covolucionais e de Profundidade [8]. Nos sistemas de propósito geral, como o MapReduce, Hadoop e Spark não é possível aplicar tais algoritmos. Ele tem um conjunto de funcionalidades com o objetivo de facilitar a execução de programas de aprendizagem paralelamente. Ao contrário dos outros sistemas de propósito geral, Petuum foi desenvolvido especialmente para algoritmos de aprendizagem de máquina. Isto significa que ele tem vantagem no que se diz respeito a correlação dos dados, etaleness e outras propriedades estatísticas que maximizam a performance dos algoritmos de aprendizagem.[8] Este surgiu com o objetivo principal de deixar mais acessível a execução paralela de uma vasta gama de algoritmos de aprendizagem sem requerer muito esforço por parte do usuário. Podemos listar as principais preocupações que influenciaram na criação do Petuum. • A complexidade existente nos algoritmos de aprendizagem é geralmente enorme - muitos usuários não entendem os trade-offs e desafios de parametrização e escolha dentre diferentes técnicas de aprendizagem. • Sistemas escaláveis existentes que suportam aprendizagem de máquina são tipicamente não acessíveis a pesquisadores de AM sem uma sólida experiência em sistemas distribuídos e
  12. 12. Técnicas de Aprendizagem Distribuída em Big Data 9 primitivas de baixo nível. • Muitas das plataformas de software de Big Data para fins gerais existentes apresentam um compromisso único entre exatidão, rapidez de execução e facilidade de programação para aplicações AM. Em Petuum existem os conceitos de Paralelismo de dados e paralelismo de model/função/algoritmo e o objetivo é implementar os algoritmos de AM, com paralelismo de dados e modelo, de forma fácil. Petuum integra APIs com alguns dos principais sistemas que tornam essa tarefa mais fácil e é formado por três componentes: Scheduler, Workers e Servidor de Parâmetros. Um sistema de servidor de parâmetros que permite acesso ao estado global de um modelo a partir de qualquer máquina através de uma conveniente interface de memória compartilhada e distribuída que parece computação em uma máquina simples e adota um modelo consistente de asincronia- delimitada que preserva garantias de convergência de dados em paralelo, liberando assim os usuários de se preocupar com a sincronização da rede;[8] E um Scheduler, agenciador de tarefas, que permite um controle refinado sobre a ordenação paralela das atualizações do modelo paralelo - em essência, o agendador permite que os usuários definam suas próprias regras de consistência da aplicação.[8] Os Workers são máquinas que executam a integração entre o Scheduler e o Servidor de Parâmetros, este recebe os parâmetros a serem atualizados vindos de uma função do Scheduler. Os algoritmos de aprendizagem exibem vários princípios que podem ser explorados, para acelerar programas de aprendizagem distribuídos: estruturas de dependência entre os parâmetros, a convergência não uniforme dos parâmetros, e um grau limitado de tolerância do erro. Petuum permite uma implementação em que se é possível explorar e analisar esses princípios, podendo ser adaptadas para se trabalhar em ambientes BigData [8]. Ambientes heterogêneos e Controle Distribuído: Também integra com o HDFS, permite execução em clusters Hadoop. Tolerância a falhas: Usa o modelo de ponto de verificação e de reinício, o que é adequado para um número razoável de máquinas Relações complexas e em evolução: Trata através do Scheduler, Workers e Servidor de Parâmetros. Interface do usuário: Iterface de programação para C++ e Java (futuramente). As principais bibliotecas integradas são MLLib, Bösen, Strads e Poseidon[8].
  13. 13. Técnicas de Aprendizagem Distribuída em Big Data 10 4 – Conclusão Começamos o estudo por uma análise sobre as características e problemas presentes no ambiente de BigData para propiciar a aprendizagem a extração de informação em um grande conjunto de dados, quais suas características e problemas. No capítulo 2 foram vistas as principais características presentes no ambiente Big Data, viu se que por conta da quantidade de dados a se processor, soluções de sistemas de gerenciamento e processamento que funcionam bem em uma máquina commun não funcionam bem para um ambiente em que a quantidade de dados é exorbitante pra caber emu ma só máquina, havendo a necessidade de se distribuir esses dados em várias máquinas conectadas e desacopladas. Além disso foi visto que nem sempre os dados estão estruturados da mesma forma, o que torna difícil a extração de padrões e informações condizentes. No capítulo 3 foram vistas algumas das principais técnicas existentes no mercado que lidam com processamento de dados distribuídos, em um modelo clusterizado. Vimos que o surgimento de um modelo de processamento baseado no Map e Reduce da linguagem de programação Lisp, foi um marco para o processamento distribuído em BigData. Foram estudadas três plataformas de processamento distribuído em Big Data, com o objetivo de ter um melhor entendimento sobre as técnicas utilizadas. Concluímos que técnicas sofisticadas e criativas foram criadas e reaproveitadas para lidar com processamento em Big Data, fazendo assim expandir os conceitos e adquirir conhecimento de técnicas, que funcionaram bem ou não, para que possam ajudar na criação de futuras soluções inovadoras na área.
  14. 14. Técnicas de Aprendizagem Distribuída em Big Data 11 Referências Bibliográficas [1] O que é Big Data? – Online, acesso em 11/04/2016 na url http://www.infowester.com/big-data.php [2] O que é Big Data e como funciona? – Online, acesso em 11/04/2016 na url http://www.profissionaisti.com.br/2015/03/o-que-e-big-data-e-como-funciona/ [3] Introduction to Big Data/Machine Learning – Online, acesso em 11/04/2016 na url http://pt.slideshare.net/larsga/introduction-to-big-datamachine-learning [4] DEAN, Jeffrey; GHEMAWAT, Sanjay. MapReduce: simplified data processing on large clusters. Communications Of The Acm. [s.l], p. 107-113. jan. 2008. Online, acesso em 11/04/2016 na url http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce- osdi04.pdf [5] ABOUZEID, Azza; BAJDA-PAWLIKOWSKI, Kamil; ABADI, Daniel; SILBERSCHATZ, Avi; RASIN, Alexander. HadoopDB: an architectural hybrid of MapReduce and DBMS technologies for analytical workloads. Proceedings Of The Vldb Endowment. [s. L.], p. 922-933. jul. 2009. Online, acesso em 11/04/2016 na url http://www.vldb.org/pvldb/2/vldb09-861.pdf [6] ZAHARIA, Matei; CHOWDHURY, Mosharaf; FRANKLIN, Michael J.; SHENKER, Scott; STOICA, Ion. Spark: cluster computing with working sets. In: Hotcloud'10 Proceedings Of The 2nd Usenix Conference On Hot Topics In Cloud Computing, 10., 2010, Sl. Proceedings... . [s. L.]: Usenix, 2010. p. 1 - 7. Online, acesso em 11/04/2016 na url https://people.eecs.berkeley.edu/~matei/papers/2010/hotcloud_spark.pdf [7] XING, Eric P.; HO, Q.; DAI, W.; XIE, P. Strategies and Principles of Distributed Machine Learning on Big Data. [s.l], p. 49-67. 04 dez. 2015. Online, acesso em 11/04/2016 na url http://arxiv.org/pdf/1512.09295v1.pdf [8] XING, Eric P.; HO, Q.; DAI, W.; KIM, J.; WEI, J.; LEE, S.; ZHENG, X.; XIE, P.; KUMAR, A.; YU, Y.. Petuum: A New Platform for Distributed Machine Learning on Big Data. Ieee Transactions On Big Data.[s.l], p. 49-67. 04 jan. 2016. Online, acesso em 11/04/2016 na url http://www.cs.cmu.edu/~pengtaox/papers/petuum_15.pdf [9] KRASKA,Tim; TAWALKAR, Ameet; DUCHI, John; GRIFFITH, Rean; FRANKLIN, Michael J.; JORDAN, Michael. MLbase: A Distributed Machine-learning System, [s.l], Online, acesso em 11/04/2016 na url http://people.eecs.berkeley.edu/~ameet/mlbase_cidr.pdf [10] CHU, Cheng T; SANG, Kyun K.; LIN, Yi-An; YU, YuanYuan; BRADSKI, Gary; NG, Andrew Y.; OLUKOTUN, Kunle. Map-Reduce for Machine Learning on Multicore. Neural Information Processing Systems - NIPS , [s.l], pp. 281-288, 2006. Online, acesso em 11/04/2016 na url https://papers.nips.cc/paper/3150-map-reduce-for-machine-learning-on-multicore.pdf
  15. 15. Técnicas de Aprendizagem Distribuída em Big Data 12 [11] GILLIK, Dan; FARIA, Arlo; DENERO, John. MapReduce: Distributed Computing for Machine Learning. [s.l], pp. 281-288, 18 dec 2006. Online, acesso em 11/04/2016 na url http://www1.icsi.berkeley.edu/~arlo/publications/gillick_cs262a_proj.pdf [12] WU, Xindong; ZHU, Xingquan; WU, Gong-Qing; DING, Wei. Data mining with big data. Ieee Transactions On Knowledge & Data Engineering. Vermont, p. 97-107. jan. 2014. Online, acesso em 11/04/2016 na url https://www.semanticscholar.org/paper/Data-Mining-with- Big-Data-Wu-Zhu/391a5f286f814d852dddcab1b2b68e5c1af6c79e/pdf

×