SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
ACCELERATING BAYESIAN NETWORK PARAMETER
LEARNING USING HADOOP AND MAPREDUCE
SCALING BAYESIAN NETWORK PARAMETER LEARNING
WITH EXPECTATION MAXIMIZATION USING MAPREDUCE
MAPREDUCE FOR BAYESIAN NETWORK PARAMETER
LEARNING USING THE EM ALGORITHM
ANIRUDDHA BASAK, IRINA BRINSTER, XIANHENG
MA, OLE J. MENGSHOEL, ERIK B. REED
J. Gabriel Lima
jgabriel.ufpa@gmail.com
AGENDA
• Abstract
• Introduction
• MapReduce - Hadoop
• Sequential EM
• MapReduce EM
• MapReduce para EM
• Experiments On Hadoop And Discussion
• Conclusion
• Critical Analysis
ABSTRACT
• Fazer a aprendizagem de tabelas de probabilidade condicional de
uma grande Rede Bayesiana(RB) utilizando o Algoritmo EM é uma
atividade muito intensiva computacionalmente.
• Há pelo menos 2 pontos críticos:
• Tamanho do conjunto de dados
• Recursos de memória para armazenamento e/ou processamento
• Aplica-se neste trabalho a computação distribuída, usando-se o
processo de MapReduce
• Aprender os parâmetros da RB com dados completos e imcompletos
• Foram utilizados a aprendizagem de parâmetros tradicional (dados
completos) e através do EM (dados incompletos)
• Neste trabalho analisou-se a velocidade obtida a partir da
comparação de várias RB’s obtidas em diversos cenários
computacionais
INTRODUCTION
• Aprendizagem de parâmetros em RB é uma atividade muito intensiva.
• O tamanho da tabela aumenta exponencialmente de acordo com os pais da
RB e a dimensão dos dados de entrada
• Aprendizagem sequencial para grandes e complexas RB torna-se difícil,
mesmo em casos com dados completos
• Para dados incompletos o fator limitante é a inferência – cálculo a posteriori de
todas as instancias de variáveis e seus respectivos pais
• O EM (Expectation Maximization) é um algoritmo iterativo que permite o
aprendizado de modelos estatísticos de dados com valores ausentes.
• É uma poderosa técnica, uma vez que garante convergência para um máximo
local da função de log-verossimilhança (log-likelihood function)
• EM tornou-se o algoritmo de eleição em muitas áreas: em aprendizagem de
máquina e visão computacional, para agrupamento de genes, identificação de
proteínas em biologia computacional e alinhamento por palavra em tradução
automática.
INTRODUCTION
• Este trabalho trata da aplicação do MapReduce, utilizando o Hadoop, para a
aprendizagem a partir de dados completos e incompletos.
• Foi implementado uma bayesiana tradicional e o algortimo EM no Hadoop
para acelerar a aprendizagem parâmetro, utilizando uma ampla gama de
tamanhos de dados de entrada
MAPREDUCE - HADOOP
MapReduce é um framework para programação distribuída
computação em grandes conjuntos de dados, que foi introduzido
pelo Google em 2004.
É uma abstração que permite aos usuários criar facilmente
aplicações paralelas ao esconder os detalhes da distribuição de
dados, balanceamento de carga e tolerância a falhas.
MapReduce requer decomposição de um algoritmo em mapear e
reduzir medidas.
MAPREDUCE - HADOOP
Hadoop, uma implementação de MapReduce, fornece um quadro
de distribuição dos dados e para MapReduce em um grande
número de nós de cluster ou máquinas. Ele é baseado na
arquitetura master / slave.
O servidor mestre único, conhecido como JobTracker, recebe
uma atribuição de trabalho do usuário, distribui o ‘mapa’ e ‘reduz’
as tarefas para nós escravos (tasktrackers) e monitora seu
processo de armazenamento(Hadoop Distributed File System –
HDFS) e distribuição de dados para nós escravos.
SEQUENTIAL EM (SEM)
Neste trabalho, foi implementado o algoritmo básico EM para
aprendizagem de parâmetros de redes Bayesianas com distribuição da
tabela de probabilidade condicional(CPD).
Em SEM, dada a estrutura de BN, a sua decomposição árvore de junção,
e um número de incompleto registros de dados, queremos determinar a
distribuição de probabilidade (parâmetros BN), que é mais provável de
produzir os dados observados.
SEM é um algoritmo iterativo que alterna entre dois passos:
• O cálculo se inicia com a estimativa inicial de parâmetros. Na etapa de
expectativa, usamos os parâmetros atuais para calcular as estatísticas.
Dado cada registro de dados e cada família, calcula-se a distribuição de
probabilidade usando propagação por árvore junção como o nosso
motor de inferência.
MAP-REDUCED EM (MREM)
Decomposição do EM básico utilizando algoritmo MapReduce.
Uma vez que todos os registos dos dados de entrada são independentes um
do outro para o cálculo das estatísticas, eles podem ser processados ​​em
paralelo. Os registros de entrada podem ser divididos entre vários Mappers,
cada um executando o E-Step . O M-step é realizada sobre os Reducers.
E- Step: Cada mapper toma como entrada a estrutura da RB, a estimativa
atual de parâmetros t, a decomposição da JT, e os dados incompletos D. Um
contador acompanha o passo acumulando a contagem dos registros de
entrada para [xi, Xi]. PARA TODAS AS COMBINAÇÕES POSSÍVEIS ENTRE
OS ESTADOS DOS PAIS COM OS FILHOS
Uma vez que o mapeador processa todos os registros atribuídos a ele, ele
emite um par chave-valor intermediário para cada entrada de mapa de hash.
Esta chave intermediária garante que todas as variáveis ​​com os mesmos
pais são agrupados e transformados em uma mesma tarefa de redução.
MAP-REDUCED EM (MREM)
M-Step: Percorre todos os valores com a mesma chave obtidos na
etapa anterior, analisa o valor, em que as chaves correspondem a pai-
filho com suas combinações e seus estados, e os valores
correspondem a contagem.
Os valores são somadas para obter a contagem de pai.
Por fim, cada função reduce emite uma saída par chave-valor para cada
entrada do map
EXPERIMENTS ON HADOOP AND
DISCUSSION
Os experimentos foram feitos com três tipos de nós distribuídos:
pequena, média e grande instância.
As implementações foram testadas em uma série de RB
complexas, a partir de diferentes domínios (dados da NASA ,
Sistemas de Energia Elétrica e outros benchmarks):
EXPERIMENTS ON HADOOP AND
DISCUSSION
Nas análises do MREM , podemos calcular a velocidade do
algoritmo com base na iteração por tempo de execução, que é
medido como a média de 10 iterações do algoritmo EM.
Todos os algoritmos foram implementados em Java, utilizando-se
da arquitetura em Cloud da Amazon EC2, sem o uso de serviços
dedicados e a Amazon S3 para armazenamento dos arquivos de
dados.
EXPERIMENTS ON HADOOP AND
DISCUSSION
Análises:
Variando o tamanho da RB e quantidade de registros:
Variou-se o tamanho do conjunto de dados, usando 10K, 50K, 100K, 500K
e 1.000K amostras de treinamento, para treinar cada RB.
Usando-se um single-node, é evidente que o aumento do tamanho da
base de dados aumenta o tempo de processamento:
EXPERIMENTS ON HADOOP AND
DISCUSSION
Análises:
Variando o número de nós do Hadoop:
Para cada BN do mesmo tamanho treinamento, varia-se o número de nós
para paralelizar o algoritmo.
Este experimento é executado em Amazon Elastic MapReduce, e os dados
de treinamento são armazenados no Amazon S3.
Assim, o desempenho do MapReduce é afetado por alguns fatores
externos, tais como a rede, largura de banda entre o Amazon S3 e o
Amazon EC2.
Para pequenas quantidades de dados, os ganhos não são tão evidentes,
entretanto, para grandes conjuntos de dados verifica-se uma diminuição
significativa em relação ao tempo de processamento quando
acrescentam-se outros nós no Hadoop.
EXPERIMENTS ON HADOOP AND
DISCUSSION
Análises:
Variando os parâmetros do Hadoop:
O desempenho está relacionado a qualidade dos seus parâmetros.
Ao aumentar o número de Maps de 1 a 10, a uma redução no
tempo de execução em relação ao tempo médio do Map. No
entanto quando o numero de tarefas Map é aumentada de 20 a 100,
mesmo que o tempo médio gasto no Map diminua, o tempo total
de execução não diminui ou mesmo aumenta. Isso acontece pois
aumentar o número de operadores Map, leva a um excesso de
divisão dos dados, impactando diretamente no tempo de
execução.
EXPERIMENTS ON HADOOP AND
DISCUSSION
Análises:
Variando os parâmetros do Hadoop:
EXPERIMENTS ON HADOOP AND
DISCUSSION
Análises:
Variando o volume de dados:
Comparar os EM seqüenciais e MREM para registos de entrada
variando de 1 a 1000 K.
Ambos os algoritmos são executado em pequenas instâncias do
Amazon EC2. Para MREM, 4 nós mapper da mesma instância
foram utilizados.
A aceleração alcançada pelo MREM para pequenos conjuntos de
dados é tipicamente menor devido a sobrecarga de MapReduce
Percebeu-se melhorias no uso do MREM aumentando-se o número
de registros
EXPERIMENTS ON HADOOP AND
DISCUSSION
Análises:
Variando o volume de dados:
EXPERIMENTS ON HADOOP AND
DISCUSSION
Análises:
Análise das instâncias do Cluster:
Foram investigadas os tipos de instância que melhor se adaptam entre
as pequenos, médios e grandes casos
Pequeno: 16 pequenos nós de computação,
Médio: 8 de média nós de computação
Grande: 4 grandes nós de computação.
Em quase todos os casos, o desempenho é melhor no uso do tipo
Médio de instância.
EXPERIMENTS ON HADOOP AND
DISCUSSION
Análises:
Análise das instâncias do Cluster:
Foram investigadas os tipos de
instância que melhor se adaptam entre
as pequenos, médios e grandes casos
Pequeno: 16 pequenos nós de
computação,
Médio: 8 de média nós de computação
Grande: 4 grandes nós de computação.
Em quase todos os casos, o
desempenho é melhor no uso do tipo
Médio de instância.
CONCLUSION
Neste trabalho, foi feita uma análise da computação de RB de modo
distribuído utilizando MapReduce com o Hadoop rodando em uma Cloud
na infra-estrutura da Amazon.
A Execução do EM sequencial para aprender os parâmetros da rede T2
ADAPT de 100 mil registros de dados leva em torno de 2 horas e 30
minutos em cada iteração.
O uso de do MREM para a mesma tarefa, em um cluster do Amazon EC2
com cinco grandes nós de computação, leva apenas 15 minutos para
cada iteração.
Além disso, descobrimos que usar o MapReduce para aprendizagem de
parâmetros não depende apenas do tamanho dos dados de entrada (tal
como é bem conhecido), mas também do tamanho e da estrutura da rede.
De modo mais geral, este trabalho melhora a compreensão de como
otimizar o uso de MapReduce e Hadoop quando aplicado à tarefa
importante BN parâmetro de aprendizagem.
CRITICAL ANALYSIS
• O autor inova em analisar tecnicamente uma arquitetura de
Cloud para um algoritmo de DM
• O uso de um banco de dados não-relacional que rode sobre o
Hadoop facilitaria a aplicação do algoritmo.
• Conceitos de DW
O autor utiliza bases de dados estáticas que não precisam ser
analisadas em tempo real.
• Extrair a etapa de MapReduce de dentro do algoritmo e
executá-lo em uma etapa anterior
• Como foi analisado que o tempo de processamento pode ser
afetado pelo número de Maps, essa ‘alocação’ de maps
poderia ser dinâmica, variando de acordo com os demais
parâmetros em tempo de execução.
https://github.com/jgabriellima/HadoopBNEM
TRABALHOS COMPLEMENTARES
Accelerating Bayesian Network Parameter Learning Using Hadoop and
MapReduce
Aniruddha Basak, Irina Brinster, Xianheng Ma, Ole J. Mengshoel
Carnegie Mellon University. Silicon Valley Campus. NASA Research Park
Scaling Bayesian Network Parameter Learning with Expectation
Maximization using MapReduce
Erik B. Reed, Ole J. Mengshoel
MapReduce for Bayesian Network Parameter Learning using the EM
Algorithm
Aniruddha Basak, Irina Brinster, Ole J. Mengshoel
ACCELERATING BAYESIAN NETWORK PARAMETER
LEARNING USING HADOOP AND MAPREDUCE
SCALING BAYESIAN NETWORK PARAMETER LEARNING
WITH EXPECTATION MAXIMIZATION USING MAPREDUCE
MAPREDUCE FOR BAYESIAN NETWORK PARAMETER
LEARNING USING THE EM ALGORITHM
ANIRUDDHA BASAK, IRINA BRINSTER, XIANHENG
MA, OLE J. MENGSHOEL, ERIK B. REED
J. Gabriel Lima
jgabriel.ufpa@gmail.com

Weitere ähnliche Inhalte

Ähnlich wie MapReduce para aprendizagem de parâmetros em redes Bayesianas

Mapreduce - Conceitos e Aplicações
Mapreduce - Conceitos e AplicaçõesMapreduce - Conceitos e Aplicações
Mapreduce - Conceitos e AplicaçõesGuilherme Araújo
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionaisRoberto Oliveira
 
Escalando o algoritmo de aprendizagem da estrutura da rede bayesiana k2
Escalando o algoritmo de aprendizagem da estrutura da rede bayesiana k2Escalando o algoritmo de aprendizagem da estrutura da rede bayesiana k2
Escalando o algoritmo de aprendizagem da estrutura da rede bayesiana k2João Gabriel Lima
 
Machine Learning e Artificial Intelligence para desenvolvedores .NET
Machine Learning e Artificial Intelligence para desenvolvedores .NETMachine Learning e Artificial Intelligence para desenvolvedores .NET
Machine Learning e Artificial Intelligence para desenvolvedores .NETRenato Haddad
 
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...Tchelinux
 
Hadoop map reduce and apache spark comparing performance for distributed wor...
Hadoop map reduce and apache spark  comparing performance for distributed wor...Hadoop map reduce and apache spark  comparing performance for distributed wor...
Hadoop map reduce and apache spark comparing performance for distributed wor...Rosangela Oliveira
 
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...Felipe
 
Uma abordagem BigData para Encontrar Sub-conjuntos de itens frequentes median...
Uma abordagem BigData para Encontrar Sub-conjuntos de itens frequentes median...Uma abordagem BigData para Encontrar Sub-conjuntos de itens frequentes median...
Uma abordagem BigData para Encontrar Sub-conjuntos de itens frequentes median...UFAM - Universidade Federal do Amazonas
 
Sistemas operacionais 11
Sistemas operacionais 11Sistemas operacionais 11
Sistemas operacionais 11Nauber Gois
 
Sistemas Inteligentes para Textos da Web
Sistemas Inteligentes para Textos da WebSistemas Inteligentes para Textos da Web
Sistemas Inteligentes para Textos da WebFernando Hideo Fukuda
 
Aula 1 - Estudando o problema a ser resolvido
Aula 1 - Estudando o problema a ser resolvidoAula 1 - Estudando o problema a ser resolvido
Aula 1 - Estudando o problema a ser resolvidoEduardo de Lucena Falcão
 
Apresentação em Aplicações Distribuídas – Hadoop MapReduce
Apresentação em Aplicações Distribuídas – Hadoop MapReduceApresentação em Aplicações Distribuídas – Hadoop MapReduce
Apresentação em Aplicações Distribuídas – Hadoop MapReduceMatteus Barbosa
 
Hive vs impala vs spark - tuning
Hive vs impala vs spark - tuningHive vs impala vs spark - tuning
Hive vs impala vs spark - tuningTiago Simões
 

Ähnlich wie MapReduce para aprendizagem de parâmetros em redes Bayesianas (20)

MapReduce
MapReduceMapReduce
MapReduce
 
Mapreduce - Conceitos e Aplicações
Mapreduce - Conceitos e AplicaçõesMapreduce - Conceitos e Aplicações
Mapreduce - Conceitos e Aplicações
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionais
 
Escalando o algoritmo de aprendizagem da estrutura da rede bayesiana k2
Escalando o algoritmo de aprendizagem da estrutura da rede bayesiana k2Escalando o algoritmo de aprendizagem da estrutura da rede bayesiana k2
Escalando o algoritmo de aprendizagem da estrutura da rede bayesiana k2
 
Machine Learning e Artificial Intelligence para desenvolvedores .NET
Machine Learning e Artificial Intelligence para desenvolvedores .NETMachine Learning e Artificial Intelligence para desenvolvedores .NET
Machine Learning e Artificial Intelligence para desenvolvedores .NET
 
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...
 
Hadoop map reduce and apache spark comparing performance for distributed wor...
Hadoop map reduce and apache spark  comparing performance for distributed wor...Hadoop map reduce and apache spark  comparing performance for distributed wor...
Hadoop map reduce and apache spark comparing performance for distributed wor...
 
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
 
Uma abordagem BigData para Encontrar Sub-conjuntos de itens frequentes median...
Uma abordagem BigData para Encontrar Sub-conjuntos de itens frequentes median...Uma abordagem BigData para Encontrar Sub-conjuntos de itens frequentes median...
Uma abordagem BigData para Encontrar Sub-conjuntos de itens frequentes median...
 
No sql std
No sql stdNo sql std
No sql std
 
Sistemas operacionais 11
Sistemas operacionais 11Sistemas operacionais 11
Sistemas operacionais 11
 
Sistemas Inteligentes para Textos da Web
Sistemas Inteligentes para Textos da WebSistemas Inteligentes para Textos da Web
Sistemas Inteligentes para Textos da Web
 
Aula 1 - Estudando o problema a ser resolvido
Aula 1 - Estudando o problema a ser resolvidoAula 1 - Estudando o problema a ser resolvido
Aula 1 - Estudando o problema a ser resolvido
 
Seminário Hadoop
Seminário HadoopSeminário Hadoop
Seminário Hadoop
 
MapReduce
MapReduceMapReduce
MapReduce
 
Apresentação em Aplicações Distribuídas – Hadoop MapReduce
Apresentação em Aplicações Distribuídas – Hadoop MapReduceApresentação em Aplicações Distribuídas – Hadoop MapReduce
Apresentação em Aplicações Distribuídas – Hadoop MapReduce
 
Hive vs impala vs spark - tuning
Hive vs impala vs spark - tuningHive vs impala vs spark - tuning
Hive vs impala vs spark - tuning
 
IMRT, sua Implementação no CAT3D
IMRT,  sua Implementação no CAT3DIMRT,  sua Implementação no CAT3D
IMRT, sua Implementação no CAT3D
 
Importante
ImportanteImportante
Importante
 
Big data
Big dataBig data
Big data
 

Mehr von João Gabriel Lima

Deep marketing - Indoor Customer Segmentation
Deep marketing - Indoor Customer SegmentationDeep marketing - Indoor Customer Segmentation
Deep marketing - Indoor Customer SegmentationJoão Gabriel Lima
 
Aplicações de Alto Desempenho com JHipster Full Stack
Aplicações de Alto Desempenho com JHipster Full StackAplicações de Alto Desempenho com JHipster Full Stack
Aplicações de Alto Desempenho com JHipster Full StackJoão Gabriel Lima
 
Realidade aumentada com react native e ARKit
Realidade aumentada com react native e ARKitRealidade aumentada com react native e ARKit
Realidade aumentada com react native e ARKitJoão Gabriel Lima
 
Big data e Inteligência Artificial
Big data e Inteligência ArtificialBig data e Inteligência Artificial
Big data e Inteligência ArtificialJoão Gabriel Lima
 
Mineração de Dados no Weka - Regressão Linear
Mineração de Dados no Weka -  Regressão LinearMineração de Dados no Weka -  Regressão Linear
Mineração de Dados no Weka - Regressão LinearJoão Gabriel Lima
 
Segurança na Internet - Estudos de caso
Segurança na Internet - Estudos de casoSegurança na Internet - Estudos de caso
Segurança na Internet - Estudos de casoJoão Gabriel Lima
 
Segurança na Internet - Google Hacking
Segurança na Internet - Google  HackingSegurança na Internet - Google  Hacking
Segurança na Internet - Google HackingJoão Gabriel Lima
 
Game of data - Predição e Análise da série Game Of Thrones a partir do uso de...
Game of data - Predição e Análise da série Game Of Thrones a partir do uso de...Game of data - Predição e Análise da série Game Of Thrones a partir do uso de...
Game of data - Predição e Análise da série Game Of Thrones a partir do uso de...João Gabriel Lima
 
E-trânsito cidadão - IPVA em suas mãos
E-trânsito cidadão - IPVA em suas mãosE-trânsito cidadão - IPVA em suas mãos
E-trânsito cidadão - IPVA em suas mãosJoão Gabriel Lima
 
[Estácio - IESAM] Automatizando Tarefas com Gulp.js
[Estácio - IESAM] Automatizando Tarefas com Gulp.js[Estácio - IESAM] Automatizando Tarefas com Gulp.js
[Estácio - IESAM] Automatizando Tarefas com Gulp.jsJoão Gabriel Lima
 
Hackeando a Internet das Coisas com Javascript
Hackeando a Internet das Coisas com JavascriptHackeando a Internet das Coisas com Javascript
Hackeando a Internet das Coisas com JavascriptJoão Gabriel Lima
 
Mercado de Trabalho em Computação - Perfil Analista de Sistemas e Programador
Mercado de Trabalho em Computação - Perfil Analista de Sistemas e ProgramadorMercado de Trabalho em Computação - Perfil Analista de Sistemas e Programador
Mercado de Trabalho em Computação - Perfil Analista de Sistemas e ProgramadorJoão Gabriel Lima
 
[Fapan] criando aplicações mobile híbridas com ionic framework
[Fapan] criando aplicações mobile híbridas com ionic framework[Fapan] criando aplicações mobile híbridas com ionic framework
[Fapan] criando aplicações mobile híbridas com ionic frameworkJoão Gabriel Lima
 
Criando Aplicações Mobile Híbridas com Ionic Framework
Criando Aplicações Mobile Híbridas com Ionic FrameworkCriando Aplicações Mobile Híbridas com Ionic Framework
Criando Aplicações Mobile Híbridas com Ionic FrameworkJoão Gabriel Lima
 
Codifique uma vez, distribua em Android, iOS e Windows Phone
Codifique uma vez, distribua em Android, iOS e Windows PhoneCodifique uma vez, distribua em Android, iOS e Windows Phone
Codifique uma vez, distribua em Android, iOS e Windows PhoneJoão Gabriel Lima
 
Desbravando o mundo dos webcrawlers
Desbravando o mundo dos webcrawlersDesbravando o mundo dos webcrawlers
Desbravando o mundo dos webcrawlersJoão Gabriel Lima
 
Apache Spark and MongoDB - Turning Analytics into Real-Time Action
Apache Spark and MongoDB - Turning Analytics into Real-Time ActionApache Spark and MongoDB - Turning Analytics into Real-Time Action
Apache Spark and MongoDB - Turning Analytics into Real-Time ActionJoão Gabriel Lima
 
Método criado por paraense pode servir de base tecnológica para criar soluçõe...
Método criado por paraense pode servir de base tecnológica para criar soluçõe...Método criado por paraense pode servir de base tecnológica para criar soluçõe...
Método criado por paraense pode servir de base tecnológica para criar soluçõe...João Gabriel Lima
 

Mehr von João Gabriel Lima (20)

Cooking with data
Cooking with dataCooking with data
Cooking with data
 
Deep marketing - Indoor Customer Segmentation
Deep marketing - Indoor Customer SegmentationDeep marketing - Indoor Customer Segmentation
Deep marketing - Indoor Customer Segmentation
 
Aplicações de Alto Desempenho com JHipster Full Stack
Aplicações de Alto Desempenho com JHipster Full StackAplicações de Alto Desempenho com JHipster Full Stack
Aplicações de Alto Desempenho com JHipster Full Stack
 
Realidade aumentada com react native e ARKit
Realidade aumentada com react native e ARKitRealidade aumentada com react native e ARKit
Realidade aumentada com react native e ARKit
 
JS - IA
JS - IAJS - IA
JS - IA
 
Big data e Inteligência Artificial
Big data e Inteligência ArtificialBig data e Inteligência Artificial
Big data e Inteligência Artificial
 
Mineração de Dados no Weka - Regressão Linear
Mineração de Dados no Weka -  Regressão LinearMineração de Dados no Weka -  Regressão Linear
Mineração de Dados no Weka - Regressão Linear
 
Segurança na Internet - Estudos de caso
Segurança na Internet - Estudos de casoSegurança na Internet - Estudos de caso
Segurança na Internet - Estudos de caso
 
Segurança na Internet - Google Hacking
Segurança na Internet - Google  HackingSegurança na Internet - Google  Hacking
Segurança na Internet - Google Hacking
 
Game of data - Predição e Análise da série Game Of Thrones a partir do uso de...
Game of data - Predição e Análise da série Game Of Thrones a partir do uso de...Game of data - Predição e Análise da série Game Of Thrones a partir do uso de...
Game of data - Predição e Análise da série Game Of Thrones a partir do uso de...
 
E-trânsito cidadão - IPVA em suas mãos
E-trânsito cidadão - IPVA em suas mãosE-trânsito cidadão - IPVA em suas mãos
E-trânsito cidadão - IPVA em suas mãos
 
[Estácio - IESAM] Automatizando Tarefas com Gulp.js
[Estácio - IESAM] Automatizando Tarefas com Gulp.js[Estácio - IESAM] Automatizando Tarefas com Gulp.js
[Estácio - IESAM] Automatizando Tarefas com Gulp.js
 
Hackeando a Internet das Coisas com Javascript
Hackeando a Internet das Coisas com JavascriptHackeando a Internet das Coisas com Javascript
Hackeando a Internet das Coisas com Javascript
 
Mercado de Trabalho em Computação - Perfil Analista de Sistemas e Programador
Mercado de Trabalho em Computação - Perfil Analista de Sistemas e ProgramadorMercado de Trabalho em Computação - Perfil Analista de Sistemas e Programador
Mercado de Trabalho em Computação - Perfil Analista de Sistemas e Programador
 
[Fapan] criando aplicações mobile híbridas com ionic framework
[Fapan] criando aplicações mobile híbridas com ionic framework[Fapan] criando aplicações mobile híbridas com ionic framework
[Fapan] criando aplicações mobile híbridas com ionic framework
 
Criando Aplicações Mobile Híbridas com Ionic Framework
Criando Aplicações Mobile Híbridas com Ionic FrameworkCriando Aplicações Mobile Híbridas com Ionic Framework
Criando Aplicações Mobile Híbridas com Ionic Framework
 
Codifique uma vez, distribua em Android, iOS e Windows Phone
Codifique uma vez, distribua em Android, iOS e Windows PhoneCodifique uma vez, distribua em Android, iOS e Windows Phone
Codifique uma vez, distribua em Android, iOS e Windows Phone
 
Desbravando o mundo dos webcrawlers
Desbravando o mundo dos webcrawlersDesbravando o mundo dos webcrawlers
Desbravando o mundo dos webcrawlers
 
Apache Spark and MongoDB - Turning Analytics into Real-Time Action
Apache Spark and MongoDB - Turning Analytics into Real-Time ActionApache Spark and MongoDB - Turning Analytics into Real-Time Action
Apache Spark and MongoDB - Turning Analytics into Real-Time Action
 
Método criado por paraense pode servir de base tecnológica para criar soluçõe...
Método criado por paraense pode servir de base tecnológica para criar soluçõe...Método criado por paraense pode servir de base tecnológica para criar soluçõe...
Método criado por paraense pode servir de base tecnológica para criar soluçõe...
 

MapReduce para aprendizagem de parâmetros em redes Bayesianas

  • 1. ACCELERATING BAYESIAN NETWORK PARAMETER LEARNING USING HADOOP AND MAPREDUCE SCALING BAYESIAN NETWORK PARAMETER LEARNING WITH EXPECTATION MAXIMIZATION USING MAPREDUCE MAPREDUCE FOR BAYESIAN NETWORK PARAMETER LEARNING USING THE EM ALGORITHM ANIRUDDHA BASAK, IRINA BRINSTER, XIANHENG MA, OLE J. MENGSHOEL, ERIK B. REED J. Gabriel Lima jgabriel.ufpa@gmail.com
  • 2. AGENDA • Abstract • Introduction • MapReduce - Hadoop • Sequential EM • MapReduce EM • MapReduce para EM • Experiments On Hadoop And Discussion • Conclusion • Critical Analysis
  • 3. ABSTRACT • Fazer a aprendizagem de tabelas de probabilidade condicional de uma grande Rede Bayesiana(RB) utilizando o Algoritmo EM é uma atividade muito intensiva computacionalmente. • Há pelo menos 2 pontos críticos: • Tamanho do conjunto de dados • Recursos de memória para armazenamento e/ou processamento • Aplica-se neste trabalho a computação distribuída, usando-se o processo de MapReduce • Aprender os parâmetros da RB com dados completos e imcompletos • Foram utilizados a aprendizagem de parâmetros tradicional (dados completos) e através do EM (dados incompletos) • Neste trabalho analisou-se a velocidade obtida a partir da comparação de várias RB’s obtidas em diversos cenários computacionais
  • 4. INTRODUCTION • Aprendizagem de parâmetros em RB é uma atividade muito intensiva. • O tamanho da tabela aumenta exponencialmente de acordo com os pais da RB e a dimensão dos dados de entrada • Aprendizagem sequencial para grandes e complexas RB torna-se difícil, mesmo em casos com dados completos • Para dados incompletos o fator limitante é a inferência – cálculo a posteriori de todas as instancias de variáveis e seus respectivos pais • O EM (Expectation Maximization) é um algoritmo iterativo que permite o aprendizado de modelos estatísticos de dados com valores ausentes. • É uma poderosa técnica, uma vez que garante convergência para um máximo local da função de log-verossimilhança (log-likelihood function) • EM tornou-se o algoritmo de eleição em muitas áreas: em aprendizagem de máquina e visão computacional, para agrupamento de genes, identificação de proteínas em biologia computacional e alinhamento por palavra em tradução automática.
  • 5. INTRODUCTION • Este trabalho trata da aplicação do MapReduce, utilizando o Hadoop, para a aprendizagem a partir de dados completos e incompletos. • Foi implementado uma bayesiana tradicional e o algortimo EM no Hadoop para acelerar a aprendizagem parâmetro, utilizando uma ampla gama de tamanhos de dados de entrada
  • 6. MAPREDUCE - HADOOP MapReduce é um framework para programação distribuída computação em grandes conjuntos de dados, que foi introduzido pelo Google em 2004. É uma abstração que permite aos usuários criar facilmente aplicações paralelas ao esconder os detalhes da distribuição de dados, balanceamento de carga e tolerância a falhas. MapReduce requer decomposição de um algoritmo em mapear e reduzir medidas.
  • 7. MAPREDUCE - HADOOP Hadoop, uma implementação de MapReduce, fornece um quadro de distribuição dos dados e para MapReduce em um grande número de nós de cluster ou máquinas. Ele é baseado na arquitetura master / slave. O servidor mestre único, conhecido como JobTracker, recebe uma atribuição de trabalho do usuário, distribui o ‘mapa’ e ‘reduz’ as tarefas para nós escravos (tasktrackers) e monitora seu processo de armazenamento(Hadoop Distributed File System – HDFS) e distribuição de dados para nós escravos.
  • 8. SEQUENTIAL EM (SEM) Neste trabalho, foi implementado o algoritmo básico EM para aprendizagem de parâmetros de redes Bayesianas com distribuição da tabela de probabilidade condicional(CPD). Em SEM, dada a estrutura de BN, a sua decomposição árvore de junção, e um número de incompleto registros de dados, queremos determinar a distribuição de probabilidade (parâmetros BN), que é mais provável de produzir os dados observados. SEM é um algoritmo iterativo que alterna entre dois passos: • O cálculo se inicia com a estimativa inicial de parâmetros. Na etapa de expectativa, usamos os parâmetros atuais para calcular as estatísticas. Dado cada registro de dados e cada família, calcula-se a distribuição de probabilidade usando propagação por árvore junção como o nosso motor de inferência.
  • 9. MAP-REDUCED EM (MREM) Decomposição do EM básico utilizando algoritmo MapReduce. Uma vez que todos os registos dos dados de entrada são independentes um do outro para o cálculo das estatísticas, eles podem ser processados ​​em paralelo. Os registros de entrada podem ser divididos entre vários Mappers, cada um executando o E-Step . O M-step é realizada sobre os Reducers. E- Step: Cada mapper toma como entrada a estrutura da RB, a estimativa atual de parâmetros t, a decomposição da JT, e os dados incompletos D. Um contador acompanha o passo acumulando a contagem dos registros de entrada para [xi, Xi]. PARA TODAS AS COMBINAÇÕES POSSÍVEIS ENTRE OS ESTADOS DOS PAIS COM OS FILHOS Uma vez que o mapeador processa todos os registros atribuídos a ele, ele emite um par chave-valor intermediário para cada entrada de mapa de hash. Esta chave intermediária garante que todas as variáveis ​​com os mesmos pais são agrupados e transformados em uma mesma tarefa de redução.
  • 10. MAP-REDUCED EM (MREM) M-Step: Percorre todos os valores com a mesma chave obtidos na etapa anterior, analisa o valor, em que as chaves correspondem a pai- filho com suas combinações e seus estados, e os valores correspondem a contagem. Os valores são somadas para obter a contagem de pai. Por fim, cada função reduce emite uma saída par chave-valor para cada entrada do map
  • 11.
  • 12. EXPERIMENTS ON HADOOP AND DISCUSSION Os experimentos foram feitos com três tipos de nós distribuídos: pequena, média e grande instância. As implementações foram testadas em uma série de RB complexas, a partir de diferentes domínios (dados da NASA , Sistemas de Energia Elétrica e outros benchmarks):
  • 13. EXPERIMENTS ON HADOOP AND DISCUSSION Nas análises do MREM , podemos calcular a velocidade do algoritmo com base na iteração por tempo de execução, que é medido como a média de 10 iterações do algoritmo EM. Todos os algoritmos foram implementados em Java, utilizando-se da arquitetura em Cloud da Amazon EC2, sem o uso de serviços dedicados e a Amazon S3 para armazenamento dos arquivos de dados.
  • 14.
  • 15. EXPERIMENTS ON HADOOP AND DISCUSSION Análises: Variando o tamanho da RB e quantidade de registros: Variou-se o tamanho do conjunto de dados, usando 10K, 50K, 100K, 500K e 1.000K amostras de treinamento, para treinar cada RB. Usando-se um single-node, é evidente que o aumento do tamanho da base de dados aumenta o tempo de processamento:
  • 16. EXPERIMENTS ON HADOOP AND DISCUSSION Análises: Variando o número de nós do Hadoop: Para cada BN do mesmo tamanho treinamento, varia-se o número de nós para paralelizar o algoritmo. Este experimento é executado em Amazon Elastic MapReduce, e os dados de treinamento são armazenados no Amazon S3. Assim, o desempenho do MapReduce é afetado por alguns fatores externos, tais como a rede, largura de banda entre o Amazon S3 e o Amazon EC2. Para pequenas quantidades de dados, os ganhos não são tão evidentes, entretanto, para grandes conjuntos de dados verifica-se uma diminuição significativa em relação ao tempo de processamento quando acrescentam-se outros nós no Hadoop.
  • 17.
  • 18. EXPERIMENTS ON HADOOP AND DISCUSSION Análises: Variando os parâmetros do Hadoop: O desempenho está relacionado a qualidade dos seus parâmetros. Ao aumentar o número de Maps de 1 a 10, a uma redução no tempo de execução em relação ao tempo médio do Map. No entanto quando o numero de tarefas Map é aumentada de 20 a 100, mesmo que o tempo médio gasto no Map diminua, o tempo total de execução não diminui ou mesmo aumenta. Isso acontece pois aumentar o número de operadores Map, leva a um excesso de divisão dos dados, impactando diretamente no tempo de execução.
  • 19. EXPERIMENTS ON HADOOP AND DISCUSSION Análises: Variando os parâmetros do Hadoop:
  • 20. EXPERIMENTS ON HADOOP AND DISCUSSION Análises: Variando o volume de dados: Comparar os EM seqüenciais e MREM para registos de entrada variando de 1 a 1000 K. Ambos os algoritmos são executado em pequenas instâncias do Amazon EC2. Para MREM, 4 nós mapper da mesma instância foram utilizados. A aceleração alcançada pelo MREM para pequenos conjuntos de dados é tipicamente menor devido a sobrecarga de MapReduce Percebeu-se melhorias no uso do MREM aumentando-se o número de registros
  • 21. EXPERIMENTS ON HADOOP AND DISCUSSION Análises: Variando o volume de dados:
  • 22. EXPERIMENTS ON HADOOP AND DISCUSSION Análises: Análise das instâncias do Cluster: Foram investigadas os tipos de instância que melhor se adaptam entre as pequenos, médios e grandes casos Pequeno: 16 pequenos nós de computação, Médio: 8 de média nós de computação Grande: 4 grandes nós de computação. Em quase todos os casos, o desempenho é melhor no uso do tipo Médio de instância.
  • 23. EXPERIMENTS ON HADOOP AND DISCUSSION Análises: Análise das instâncias do Cluster: Foram investigadas os tipos de instância que melhor se adaptam entre as pequenos, médios e grandes casos Pequeno: 16 pequenos nós de computação, Médio: 8 de média nós de computação Grande: 4 grandes nós de computação. Em quase todos os casos, o desempenho é melhor no uso do tipo Médio de instância.
  • 24. CONCLUSION Neste trabalho, foi feita uma análise da computação de RB de modo distribuído utilizando MapReduce com o Hadoop rodando em uma Cloud na infra-estrutura da Amazon. A Execução do EM sequencial para aprender os parâmetros da rede T2 ADAPT de 100 mil registros de dados leva em torno de 2 horas e 30 minutos em cada iteração. O uso de do MREM para a mesma tarefa, em um cluster do Amazon EC2 com cinco grandes nós de computação, leva apenas 15 minutos para cada iteração. Além disso, descobrimos que usar o MapReduce para aprendizagem de parâmetros não depende apenas do tamanho dos dados de entrada (tal como é bem conhecido), mas também do tamanho e da estrutura da rede. De modo mais geral, este trabalho melhora a compreensão de como otimizar o uso de MapReduce e Hadoop quando aplicado à tarefa importante BN parâmetro de aprendizagem.
  • 25. CRITICAL ANALYSIS • O autor inova em analisar tecnicamente uma arquitetura de Cloud para um algoritmo de DM • O uso de um banco de dados não-relacional que rode sobre o Hadoop facilitaria a aplicação do algoritmo. • Conceitos de DW O autor utiliza bases de dados estáticas que não precisam ser analisadas em tempo real. • Extrair a etapa de MapReduce de dentro do algoritmo e executá-lo em uma etapa anterior • Como foi analisado que o tempo de processamento pode ser afetado pelo número de Maps, essa ‘alocação’ de maps poderia ser dinâmica, variando de acordo com os demais parâmetros em tempo de execução.
  • 27. TRABALHOS COMPLEMENTARES Accelerating Bayesian Network Parameter Learning Using Hadoop and MapReduce Aniruddha Basak, Irina Brinster, Xianheng Ma, Ole J. Mengshoel Carnegie Mellon University. Silicon Valley Campus. NASA Research Park Scaling Bayesian Network Parameter Learning with Expectation Maximization using MapReduce Erik B. Reed, Ole J. Mengshoel MapReduce for Bayesian Network Parameter Learning using the EM Algorithm Aniruddha Basak, Irina Brinster, Ole J. Mengshoel
  • 28. ACCELERATING BAYESIAN NETWORK PARAMETER LEARNING USING HADOOP AND MAPREDUCE SCALING BAYESIAN NETWORK PARAMETER LEARNING WITH EXPECTATION MAXIMIZATION USING MAPREDUCE MAPREDUCE FOR BAYESIAN NETWORK PARAMETER LEARNING USING THE EM ALGORITHM ANIRUDDHA BASAK, IRINA BRINSTER, XIANHENG MA, OLE J. MENGSHOEL, ERIK B. REED J. Gabriel Lima jgabriel.ufpa@gmail.com