SlideShare una empresa de Scribd logo
1 de 26
Tópicos I
Programação Paralela
Universidade Federal de Goiás - Instituto de Informática
Implementação Paralela em C+CUDA de um
Categorizador Multi-Rótulo de Texto Baseado no
Algoritmo k-NN
Professor: Wellington Santos Martins.
Alunos: Manoel Alves.
Matheus Ullmann.
Richiely Batista.
Vinícius Nunes.
Roteiro
● Motivação
● Categorização Multi-Rótulo de Texto
● Solução apresentada
○ Indexação
○ Algoritimo K-NN e Sum Tree Like Redution
○ Detalhes da implementação C+CUDA
● Metodoligia
○ Base de dados
○ Técnicas utilizadas
● Resultados obtidos - CPU x GPU
Motivação
● Trabalhar com o problema de categorização de
documentos com um grande número de rótulos e que
seja satisfatório para execução on-line.
● A categorização consiste em realizar a leitura do
documento e o sistema ser capaz de rotular este
documento em uma categoria contida em um conjunto
de categorias.
○ Algoritmo categorizador multi-rótulos de texto
baseado no K-NN.
○ Resolver o problema do CSN (Cadastro
Sincronizado Nacional).
Categorização Multi-Rótulo
1. D - domíno de documentos
2. C = {c1,c2, ..., cn} conjunto de categorias
3. Ω = {d1, d2, ..., dΩ} conjunto de documentos
previamente categorizados manualmente
● Na categorização multi-rótulo, para cada documento d
∈ Ω é feita a categorização em uma ou mais categorias
de C
Categorização Multi-Rótulo
Conjuntos TV e Te
TV - treinar o sistema: associar subconjuntos de C a
características extraídas de cada documento d.
Te - conjunto de documentos para quais as categorias não
são do conhecimento do sistema de categorização.
Depois de treinado, o sistema é usado relacionar e predizer
o conjunto de categorias de cada documento dj ∈ Te .
Categorização Multi-Rótulo
● Função na forma f : D × C → R que retorna um número real que
representa o grau de crença de cada par (d j , ci) ∈ (D × C).
○ representa a confiança do categorizador de que o
documento de teste dj deve ser categorizado sob a
categoria ci.
● Se f ( dj , ci ) > f (dj , ck ) então r (dj , ci ) < r (dj , ck ).
● Se f ( dj ,ci ) < f (dj , ck ) então r (dj , ci ) > r (dj , ck ).
● Um sistema de categorização bem sucedido tenderá a
posicionar as categorias pertencentes a Cj em posições mais
elevadas no ranking do que aquelas não pertencentes a Cj.
Indexação
● Antes de ser categorizado, os documentos passam por uma
técnica de indexação, para extrair as suas características.
○ Texto mantido um vetor de pesos de pesos de termos
(palavras) que ocorrem ao menos uma vez no documento do
conjunto TV.
○ Representar o quanto um termo tk contribui para a
categorização de um documento dj:
(term frequency inverse document frequency)
○ Retorna o peso wĸj do termo tk no documento dj.
○ Normalização dos pesos.
Algoritmo KNN
● O algoritmo K-Nearest Neighbor (KNN) é uma variação do algoritmo Nearest Neighbor (NN)
● A classificação de padrões usando o algoritmo NN é dividida em duas fases:
○ treinamento
○ teste
● O algoritmo NN cria uma partição no espaço n-dimensional em células de Voronói, onde cada
célula é rotulada com a classe do padrão do conjunto de treino que a originou.
● A classificação de uma nova entrada é dada pela menor proximidade que esta tenha com um dos
pontos já estabelecidos na fase de treinamento.
Divisão do espaço em células de Voronói feita pelo NN Classificação feita pelo NN para um padrão desconhecido
Algoritmo KNN
● O algoritmo KNN propõe uma modificação em
relação ao algoritmo original, que se dá durante
a fase de teste/classificação, onde o algoritmo
faz uso dos K-vizinhos mais próximos [2].
● O KNN calcula os K-vizinhos mais próximos,
classifica-os como sendo da classe que
aparece com maior freqüência.
● Apesar de melhorar o desempenho de
classificação em relação ao algoritmo original
(NN) em alguns problemas, o KNN mantém as
mesmas deficiências encontradas no NN, pois
continua a armazenar todos os padrões de
treinamento na memória, como também ainda
exige um grande esforço computacional [2].
Classificação feita pelo KNN para um
padrão desconhecido
Especificação do k-NN
● Foi utilizada como métrica de distância o cosseno do ângulo entre o
documento de entrada e cada documento K ∈ TV:
● A função f(dj,ck) do KNN retorna o maior valor de cos(dj,di) onde ck ∈ C,
conjunto de categorias referentes ao documento.
O maior custo computacional do algoritmo K-NN se encontra na parte do
numerador, produto de matriz por vetor, que é refeita para cada K ∈ TV, o custo
do denominado é pequeno pois os valores para cada somatório podem ser
calculados previamente e reutilizados em cada iteração .
Especificação do k-NN
Implementação Paralela do categorizador k-Nearest Neighbors (KNN)
● mTV matriz (documento x termos)
● mC matriz (documento x categorias)
● Para cada entrada d é necessario realizar a mutiplicação, mTV X d, essa
operação será paralelizada.
● A paralelização faz com que o produto entre um elemento da matriz e o seu
correspondente no vetor seja calculada por uma thread especifica.
● A cada passo do algoritmo, os blocos recebem cada um elemento de uma
linha de mTV e o elemento correspondente de dj.
● Cada thread possui uma variaveis dj_di_product e um vetor
accum_dj_di_product previamente alocado em memória compartilhada na
qual são gravadas os produtos realizadas pelas treads.
Especificação do k-NN
Especificação do k-NN
Sum Tree Like Reduction
● Vetor de cada bloco de threads
○ accum_dj_di_product [ NUMTRHEAD ]
Detalhes da implementação
C+CUDA
K-Nearest Neighbor K-NN:
Detalhes da implementação
C+CUDA
Sum Tree Like Reduction
Metodologia
● Foram implementadas 3 versões do algoritmo, uma
serial e duas paralelas, e uma das versões paralelas foi
implementada com auxilio da biblioteca cuBLAS.
● Os 3 algoritmos foram comparados em relação ao
speedup, que foi calculado a partir da média de 100
execuções para eliminar a interferência de variáveis
alheias ao desempenho do algoritmo.
Metodologia
● A base de dados compreende descrições textuais de
atividades econômicas de empresas brasileiras
categorizadas em um subconjunto de códigos CNAE por
funcionários públicos treinados nesta tarefa
Metodologia
Pré processamento dos Dados
● Todas as palavras do conjunto de dados foram
transformadas em termos.
● Todas as preposições foram removidas.
● Identificou-se todos os termos distintos.
● Finalmente transformou-se todos os documentos de
treinamento e teste em vetores multi-dimensionais.
Resultados Experimentais
● Configurações do computador:
○ CPU AMD Athlon 64 X2 (Dual Core)
■ 2,7 GHz;
■ 512KB de cache L2 por core;
■ 3GB de DRAM DDR2 de 800 MHz;
■ SO Linux Fedora 9;
■ Compilador C foi o gcc 4.3.0.
○ A placa de vídeo utilizada foi uma NVIDIA GeForce
GTX 285 com 1GB de DRAM GDDR3
■ A versão do compilador CUDA foi o nvcc 2.1
Resultados Experimentais
● A GPU da GTX 285 possui vários Stream Processors
(SPs) para executar operações inteiras e de ponto
flutuante
● Possui 10 TPCs de 3 SMs, cada um com 8 SPs,
totalizando 240 SPs, e opera com um clock de 1,48 GHz
● A GTX 285 permite criar 512 threads por bloco e é
capaz de manter o estado de 32K threads
simultaneamente (uma grid de 32K threads).
Resultados Experimentais
Resultados Experimentais
Conclusões finais
● Quando quando a base de documentos de treinamento
dos categorizadores é grande, o tempo de
categorização pode crescer a ponto de inviabilizar a
categorização on-line de documentos
● Por meio da implementação paralela dos
categorizadores em C+CUDA e sua execução em GPUs
CUDA enabled, é possível aumentar o desempenho em
termos de tempo de categorização e viabilizar solução
online deste importante problema computacional
● Os resultados experimentais mostram que pode ser
obtido um speedup na ordem de 65 vezes, mostrando o
potencial de sistemas baseados em GPU na área de
Recuperação de Informação.
Referências
[1]- Lucas Veronese, Alberto F. De Souza, Claudine Badue, Elias
Oliveira. Implementação Paralela em C+CUDA de um Categorizador
Multi-Rótulo de Texto Baseado no Algoritmo k-NN.
[2] - Bezerra, Miguel E. Ramalho. Métodos baseados na regra do
vizinho mais próximos para reconhecimento de imagens.
[3] - http://www.cnae.net.br

Más contenido relacionado

Similar a KNN - CUDA - Categorizador de rótulos automatizado

Ginga - OpenTDC 2009
Ginga - OpenTDC 2009Ginga - OpenTDC 2009
Ginga - OpenTDC 2009
Bruno Ghisi
 

Similar a KNN - CUDA - Categorizador de rótulos automatizado (20)

ITA - CE-235 - CE-230 - Apresentação Final - SETRAIF - DCN
ITA - CE-235 - CE-230 - Apresentação Final - SETRAIF - DCNITA - CE-235 - CE-230 - Apresentação Final - SETRAIF - DCN
ITA - CE-235 - CE-230 - Apresentação Final - SETRAIF - DCN
 
Paralelização de Algoritmo do Produto Escalar
Paralelização de Algoritmo do Produto EscalarParalelização de Algoritmo do Produto Escalar
Paralelização de Algoritmo do Produto Escalar
 
Apresentacao
ApresentacaoApresentacao
Apresentacao
 
Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...
Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...
Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...
 
IMRT, sua Implementação no CAT3D
IMRT,  sua Implementação no CAT3DIMRT,  sua Implementação no CAT3D
IMRT, sua Implementação no CAT3D
 
Amazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenho
 
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
 
Defesa de Artigo: "A hybrid construction of a decision tree for multimedia c...
Defesa de Artigo: "A hybrid construction of a decision  tree for multimedia c...Defesa de Artigo: "A hybrid construction of a decision  tree for multimedia c...
Defesa de Artigo: "A hybrid construction of a decision tree for multimedia c...
 
Node JS - Parte 1
Node JS - Parte 1Node JS - Parte 1
Node JS - Parte 1
 
Apresentação GT - Digital Preservation
Apresentação GT - Digital PreservationApresentação GT - Digital Preservation
Apresentação GT - Digital Preservation
 
Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambiente...
Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambiente...Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambiente...
Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambiente...
 
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
 
Ginga - OpenTDC 2009
Ginga - OpenTDC 2009Ginga - OpenTDC 2009
Ginga - OpenTDC 2009
 
Deep Learning
Deep LearningDeep Learning
Deep Learning
 
Kmeans
KmeansKmeans
Kmeans
 
Metaheurísticas Aplicadas ao Problema de Designação de Servidores e Clientes ...
Metaheurísticas Aplicadas ao Problema de Designação de Servidores e Clientes ...Metaheurísticas Aplicadas ao Problema de Designação de Servidores e Clientes ...
Metaheurísticas Aplicadas ao Problema de Designação de Servidores e Clientes ...
 
Big data
Big dataBig data
Big data
 
Python ES 2017 - Introdução ao Tensorflow
Python ES 2017 - Introdução ao TensorflowPython ES 2017 - Introdução ao Tensorflow
Python ES 2017 - Introdução ao Tensorflow
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open source
 
Novidades do CAT3D em 2014
Novidades do CAT3D em 2014Novidades do CAT3D em 2014
Novidades do CAT3D em 2014
 

Último

PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
HELENO FAVACHO
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
TailsonSantos1
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
tatianehilda
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 

Último (20)

PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
Seminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxSeminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptx
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
migração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosmigração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenos
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 

KNN - CUDA - Categorizador de rótulos automatizado

  • 1. Tópicos I Programação Paralela Universidade Federal de Goiás - Instituto de Informática
  • 2. Implementação Paralela em C+CUDA de um Categorizador Multi-Rótulo de Texto Baseado no Algoritmo k-NN Professor: Wellington Santos Martins. Alunos: Manoel Alves. Matheus Ullmann. Richiely Batista. Vinícius Nunes.
  • 3. Roteiro ● Motivação ● Categorização Multi-Rótulo de Texto ● Solução apresentada ○ Indexação ○ Algoritimo K-NN e Sum Tree Like Redution ○ Detalhes da implementação C+CUDA ● Metodoligia ○ Base de dados ○ Técnicas utilizadas ● Resultados obtidos - CPU x GPU
  • 4. Motivação ● Trabalhar com o problema de categorização de documentos com um grande número de rótulos e que seja satisfatório para execução on-line. ● A categorização consiste em realizar a leitura do documento e o sistema ser capaz de rotular este documento em uma categoria contida em um conjunto de categorias. ○ Algoritmo categorizador multi-rótulos de texto baseado no K-NN. ○ Resolver o problema do CSN (Cadastro Sincronizado Nacional).
  • 5. Categorização Multi-Rótulo 1. D - domíno de documentos 2. C = {c1,c2, ..., cn} conjunto de categorias 3. Ω = {d1, d2, ..., dΩ} conjunto de documentos previamente categorizados manualmente ● Na categorização multi-rótulo, para cada documento d ∈ Ω é feita a categorização em uma ou mais categorias de C
  • 6. Categorização Multi-Rótulo Conjuntos TV e Te TV - treinar o sistema: associar subconjuntos de C a características extraídas de cada documento d. Te - conjunto de documentos para quais as categorias não são do conhecimento do sistema de categorização. Depois de treinado, o sistema é usado relacionar e predizer o conjunto de categorias de cada documento dj ∈ Te .
  • 7. Categorização Multi-Rótulo ● Função na forma f : D × C → R que retorna um número real que representa o grau de crença de cada par (d j , ci) ∈ (D × C). ○ representa a confiança do categorizador de que o documento de teste dj deve ser categorizado sob a categoria ci. ● Se f ( dj , ci ) > f (dj , ck ) então r (dj , ci ) < r (dj , ck ). ● Se f ( dj ,ci ) < f (dj , ck ) então r (dj , ci ) > r (dj , ck ). ● Um sistema de categorização bem sucedido tenderá a posicionar as categorias pertencentes a Cj em posições mais elevadas no ranking do que aquelas não pertencentes a Cj.
  • 8. Indexação ● Antes de ser categorizado, os documentos passam por uma técnica de indexação, para extrair as suas características. ○ Texto mantido um vetor de pesos de pesos de termos (palavras) que ocorrem ao menos uma vez no documento do conjunto TV. ○ Representar o quanto um termo tk contribui para a categorização de um documento dj: (term frequency inverse document frequency) ○ Retorna o peso wĸj do termo tk no documento dj. ○ Normalização dos pesos.
  • 9. Algoritmo KNN ● O algoritmo K-Nearest Neighbor (KNN) é uma variação do algoritmo Nearest Neighbor (NN) ● A classificação de padrões usando o algoritmo NN é dividida em duas fases: ○ treinamento ○ teste ● O algoritmo NN cria uma partição no espaço n-dimensional em células de Voronói, onde cada célula é rotulada com a classe do padrão do conjunto de treino que a originou. ● A classificação de uma nova entrada é dada pela menor proximidade que esta tenha com um dos pontos já estabelecidos na fase de treinamento. Divisão do espaço em células de Voronói feita pelo NN Classificação feita pelo NN para um padrão desconhecido
  • 10. Algoritmo KNN ● O algoritmo KNN propõe uma modificação em relação ao algoritmo original, que se dá durante a fase de teste/classificação, onde o algoritmo faz uso dos K-vizinhos mais próximos [2]. ● O KNN calcula os K-vizinhos mais próximos, classifica-os como sendo da classe que aparece com maior freqüência. ● Apesar de melhorar o desempenho de classificação em relação ao algoritmo original (NN) em alguns problemas, o KNN mantém as mesmas deficiências encontradas no NN, pois continua a armazenar todos os padrões de treinamento na memória, como também ainda exige um grande esforço computacional [2]. Classificação feita pelo KNN para um padrão desconhecido
  • 11. Especificação do k-NN ● Foi utilizada como métrica de distância o cosseno do ângulo entre o documento de entrada e cada documento K ∈ TV: ● A função f(dj,ck) do KNN retorna o maior valor de cos(dj,di) onde ck ∈ C, conjunto de categorias referentes ao documento. O maior custo computacional do algoritmo K-NN se encontra na parte do numerador, produto de matriz por vetor, que é refeita para cada K ∈ TV, o custo do denominado é pequeno pois os valores para cada somatório podem ser calculados previamente e reutilizados em cada iteração .
  • 12. Especificação do k-NN Implementação Paralela do categorizador k-Nearest Neighbors (KNN) ● mTV matriz (documento x termos) ● mC matriz (documento x categorias) ● Para cada entrada d é necessario realizar a mutiplicação, mTV X d, essa operação será paralelizada. ● A paralelização faz com que o produto entre um elemento da matriz e o seu correspondente no vetor seja calculada por uma thread especifica. ● A cada passo do algoritmo, os blocos recebem cada um elemento de uma linha de mTV e o elemento correspondente de dj. ● Cada thread possui uma variaveis dj_di_product e um vetor accum_dj_di_product previamente alocado em memória compartilhada na qual são gravadas os produtos realizadas pelas treads.
  • 15. Sum Tree Like Reduction ● Vetor de cada bloco de threads ○ accum_dj_di_product [ NUMTRHEAD ]
  • 18. Metodologia ● Foram implementadas 3 versões do algoritmo, uma serial e duas paralelas, e uma das versões paralelas foi implementada com auxilio da biblioteca cuBLAS. ● Os 3 algoritmos foram comparados em relação ao speedup, que foi calculado a partir da média de 100 execuções para eliminar a interferência de variáveis alheias ao desempenho do algoritmo.
  • 19. Metodologia ● A base de dados compreende descrições textuais de atividades econômicas de empresas brasileiras categorizadas em um subconjunto de códigos CNAE por funcionários públicos treinados nesta tarefa
  • 20. Metodologia Pré processamento dos Dados ● Todas as palavras do conjunto de dados foram transformadas em termos. ● Todas as preposições foram removidas. ● Identificou-se todos os termos distintos. ● Finalmente transformou-se todos os documentos de treinamento e teste em vetores multi-dimensionais.
  • 21. Resultados Experimentais ● Configurações do computador: ○ CPU AMD Athlon 64 X2 (Dual Core) ■ 2,7 GHz; ■ 512KB de cache L2 por core; ■ 3GB de DRAM DDR2 de 800 MHz; ■ SO Linux Fedora 9; ■ Compilador C foi o gcc 4.3.0. ○ A placa de vídeo utilizada foi uma NVIDIA GeForce GTX 285 com 1GB de DRAM GDDR3 ■ A versão do compilador CUDA foi o nvcc 2.1
  • 22. Resultados Experimentais ● A GPU da GTX 285 possui vários Stream Processors (SPs) para executar operações inteiras e de ponto flutuante ● Possui 10 TPCs de 3 SMs, cada um com 8 SPs, totalizando 240 SPs, e opera com um clock de 1,48 GHz ● A GTX 285 permite criar 512 threads por bloco e é capaz de manter o estado de 32K threads simultaneamente (uma grid de 32K threads).
  • 25. Conclusões finais ● Quando quando a base de documentos de treinamento dos categorizadores é grande, o tempo de categorização pode crescer a ponto de inviabilizar a categorização on-line de documentos ● Por meio da implementação paralela dos categorizadores em C+CUDA e sua execução em GPUs CUDA enabled, é possível aumentar o desempenho em termos de tempo de categorização e viabilizar solução online deste importante problema computacional ● Os resultados experimentais mostram que pode ser obtido um speedup na ordem de 65 vezes, mostrando o potencial de sistemas baseados em GPU na área de Recuperação de Informação.
  • 26. Referências [1]- Lucas Veronese, Alberto F. De Souza, Claudine Badue, Elias Oliveira. Implementação Paralela em C+CUDA de um Categorizador Multi-Rótulo de Texto Baseado no Algoritmo k-NN. [2] - Bezerra, Miguel E. Ramalho. Métodos baseados na regra do vizinho mais próximos para reconhecimento de imagens. [3] - http://www.cnae.net.br