Your SlideShare is downloading. ×
0
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

KNN - CUDA - Categorizador de rótulos automatizado

213

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
213
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Tópicos IProgramação ParalelaUniversidade Federal de Goiás - Instituto de Informática
  • 2. Implementação Paralela em C+CUDA de umCategorizador Multi-Rótulo de Texto Baseado noAlgoritmo k-NNProfessor: 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 dedocumentos com um grande número de rótulos e queseja satisfatório para execução on-line.● A categorização consiste em realizar a leitura dodocumento e o sistema ser capaz de rotular estedocumento em uma categoria contida em um conjuntode categorias.○ Algoritmo categorizador multi-rótulos de textobaseado no K-NN.○ Resolver o problema do CSN (CadastroSincronizado Nacional).
  • 5. Categorização Multi-Rótulo1. D - domíno de documentos2. C = {c1,c2, ..., cn} conjunto de categorias3. Ω = {d1, d2, ..., dΩ} conjunto de documentospreviamente categorizados manualmente● Na categorização multi-rótulo, para cada documento d∈ Ω é feita a categorização em uma ou mais categoriasde C
  • 6. Categorização Multi-RótuloConjuntos TV e TeTV - treinar o sistema: associar subconjuntos de C acaracterísticas extraídas de cada documento d.Te - conjunto de documentos para quais as categorias nãosão do conhecimento do sistema de categorização.Depois de treinado, o sistema é usado relacionar e predizero 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 querepresenta o grau de crença de cada par (d j , ci) ∈ (D × C).○ representa a confiança do categorizador de que odocumento de teste dj deve ser categorizado sob acategoria 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á aposicionar as categorias pertencentes a Cj em posições maiselevadas no ranking do que aquelas não pertencentes a Cj.
  • 8. Indexação● Antes de ser categorizado, os documentos passam por umaté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 doconjunto TV.○ Representar o quanto um termo tk contribui para acategorizaçã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 cadacé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 dospontos 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 emrelação ao algoritmo original, que se dá durantea fase de teste/classificação, onde o algoritmofaz uso dos K-vizinhos mais próximos [2].● O KNN calcula os K-vizinhos mais próximos,classifica-os como sendo da classe queaparece com maior freqüência.● Apesar de melhorar o desempenho declassificação em relação ao algoritmo original(NN) em alguns problemas, o KNN mantém asmesmas deficiências encontradas no NN, poiscontinua a armazenar todos os padrões detreinamento na memória, como também aindaexige um grande esforço computacional [2].Classificação feita pelo KNN para umpadrão desconhecido
  • 11. Especificação do k-NN● Foi utilizada como métrica de distância o cosseno do ângulo entre odocumento 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 donumerador, produto de matriz por vetor, que é refeita para cada K ∈ TV, o custodo denominado é pequeno pois os valores para cada somatório podem sercalculados previamente e reutilizados em cada iteração .
  • 12. Especificação do k-NNImplementaçã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, essaoperação será paralelizada.● A paralelização faz com que o produto entre um elemento da matriz e o seucorrespondente no vetor seja calculada por uma thread especifica.● A cada passo do algoritmo, os blocos recebem cada um elemento de umalinha de mTV e o elemento correspondente de dj.● Cada thread possui uma variaveis dj_di_product e um vetoraccum_dj_di_product previamente alocado em memória compartilhada naqual são gravadas os produtos realizadas pelas treads.
  • 13. Especificação do k-NN
  • 14. Especificação do k-NN
  • 15. Sum Tree Like Reduction● Vetor de cada bloco de threads○ accum_dj_di_product [ NUMTRHEAD ]
  • 16. Detalhes da implementaçãoC+CUDAK-Nearest Neighbor K-NN:
  • 17. Detalhes da implementaçãoC+CUDASum Tree Like Reduction
  • 18. Metodologia● Foram implementadas 3 versões do algoritmo, umaserial e duas paralelas, e uma das versões paralelas foiimplementada com auxilio da biblioteca cuBLAS.● Os 3 algoritmos foram comparados em relação aospeedup, que foi calculado a partir da média de 100execuções para eliminar a interferência de variáveisalheias ao desempenho do algoritmo.
  • 19. Metodologia● A base de dados compreende descrições textuais deatividades econômicas de empresas brasileirascategorizadas em um subconjunto de códigos CNAE porfuncionários públicos treinados nesta tarefa
  • 20. MetodologiaPré processamento dos Dados● Todas as palavras do conjunto de dados foramtransformadas em termos.● Todas as preposições foram removidas.● Identificou-se todos os termos distintos.● Finalmente transformou-se todos os documentos detreinamento 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 GeForceGTX 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 pontoflutuante● 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 threadssimultaneamente (uma grid de 32K threads).
  • 23. Resultados Experimentais
  • 24. Resultados Experimentais
  • 25. Conclusões finais● Quando quando a base de documentos de treinamentodos categorizadores é grande, o tempo decategorização pode crescer a ponto de inviabilizar acategorização on-line de documentos● Por meio da implementação paralela doscategorizadores em C+CUDA e sua execução em GPUsCUDA enabled, é possível aumentar o desempenho emtermos de tempo de categorização e viabilizar soluçãoonline deste importante problema computacional● Os resultados experimentais mostram que pode serobtido um speedup na ordem de 65 vezes, mostrando opotencial de sistemas baseados em GPU na área deRecuperação de Informação.
  • 26. Referências[1]- Lucas Veronese, Alberto F. De Souza, Claudine Badue, EliasOliveira. Implementação Paralela em C+CUDA de um CategorizadorMulti-Rótulo de Texto Baseado no Algoritmo k-NN.[2] - Bezerra, Miguel E. Ramalho. Métodos baseados na regra dovizinho mais próximos para reconhecimento de imagens.[3] - http://www.cnae.net.br

×