• Nenhum resultado encontrado

t-sne paralelo: Uma técnica paralela para redução de dimensionalidade de dados aplicada em Cidades Inteligentes

N/A
N/A
Protected

Academic year: 2021

Share "t-sne paralelo: Uma técnica paralela para redução de dimensionalidade de dados aplicada em Cidades Inteligentes"

Copied!
119
0
0

Texto

(1)

UNIVERSIDADEFEDERALDO RIO GRANDE DO NORTE

UNIVERSIDADEFEDERAL DORIOGRANDE DO NORTE

CENTRO DETECNOLOGIA

PROGRAMA DEPÓS-GRADUAÇÃO EMENGENHARIAELÉTRICA E DECOMPUTAÇÃO

t-SNE paralelo: Uma técnica paralela para

redução de dimensionalidade de dados aplicada

em Cidades Inteligentes

Maximiliano Araújo da Silva Lopes

Orientador: Prof. Dr. Adrião Duarte Dória Neto Co-orientador: Prof. Dr. Allan de Medeiros Martins

Tese de Doutorado apresentada ao Pro-grama de Pós-Graduação em Engenharia Elétrica e de Computação da UFRN (área de concentração: Engenharia de Computação) como parte dos requisitos para obtenção do título de Doutor em Ciências.

Número de ordem PPgEEC: M000

Natal, RN, dezembro de 2020

(2)

Universidade Federal do Rio Grande do Norte - UFRN Sistemas de Bibiliotecas - SISBI

Catalogação de publicação na fonte. UFRN - Biblioteca Central Zila Mamede

Lopes, Maximiliano Araújo da Silva.

t-SNE paralelo: Uma técnica paralela para redução de dimensionalidade de dados aplicada em Cidades Inteligentes / Maximiliano Araújo da Silva Lopes. -2020

119 f.: il.

Tese (doutorado) - Universidade Federal do Rio Grande do Norte, Centro de Tecnologia, Programa de Pós-Graduação em Engenharia Elétrica e de Computa-ção, Natal, RN, 2020.

Orientador: Prof. Dr. Adrião Duarte Dória Neto Co-orientador: Prof. Dr. Allan de Medeiros Martins

1. Big Data - Tese. 2. Cidades inteligentes - Tese. 3. Programação paralela - Tese. 4. Redução de dimensionalidade - Tese. 5. t-SNE - Tese I. Dória Neto, Adrião Duarte II. Martins, Allan de Medeiros III. t-SNE paralelo: Uma técnica paralela para redução de dimensionalidade de dados aplicada em Cidades Inteli-gentes.

RN/UF/BCZM CDU 004.65

(3)

t-SNE paralelo: Uma técnica paralela para

redução de dimensionalidade de dados aplicada

em Cidades Inteligentes

Maximiliano Araújo da Silva Lopes

Tese de Doutorado aprovada em 16 de outubro de 2020 pela banca examinadora composta pelos seguintes membros:

Prof. Dr. Adrião Duarte Dória Neto (orientador) . . . DCA/UFRN

Prof. Dr. Allan de Medeiros Martins (co-orientador) . . . DCA/UFRN

Prof. Dr. Aluisio Igor Rêgo Fontes (Externo à Instituição) . . . IFRN

ProfaDraCicília Raquel Maia Leite (Externo à Instituição) . . . UERN

(4)
(5)

À Estela por toda a paciência e

parceria que sempre manteve

comigo ao longo de minha vida. À

Maria Eduarda e Sofia por sempre

me inspirarem em buscar algo maior

para elas.

(6)
(7)

Agradecimentos

Ao meu orientador e ao meu co-orientador, professores Adrião e Allan, pela paciência e orientações prestadas ao longo deste trabalho.

Aos colegas de laboratório Amanda, Keylly, Mademerson, Ramon, Lupa, Thiago, Kaline e Kaline por participarem de todo o processo e dividir as conquistas e angústias desse período.

Aos colegas do Departamento de Informática da UERN pela amizade e apoio.

À minha família pelo apoio durante esta jornada, principalmente a Fred, Malu e Luquinha por toda assistência prestada durante todo esse período.

À Estela, Maria Eduarda e Sofia, por toda a paciência e ajuda que me deram durante esse período, sem vocês eu não teria conseguido.

(8)
(9)

Resumo

A população urbana vem crescendo de maneira acelerada ao redor do mundo. Para se adequar a esse aumento populacional, os prefeitos precisam mudar a sua forma de ge-rir essas grandes cidades. Assim, o conceito de cidades inteligentes ganha força e vem para modificar a forma de vida da população mundial. O investimento nesse conceito de cidades inteligentes se encontra na direção de melhorar a gestão e a qualidade de vida das pessoas. Os maiores desafios na aplicação desse tipo de sistemas, estão vinculados ao processamento, visualização e análise dos dados gerados, visto que ao funcionarem conectados esses sistemas geram uma grande massa de dados, chamada de Big Data, que precisam ser tratados de maneira diferentes dos sistemas convencionais. Para a visua-lização dos dados, um artifício que pode ser utilizado são as técnicas para redução de dimensionalidade, que trazem os dados de uma dimensão n para duas ou três dimensões, ficando assim perceptíveis aos olhos humanos. Um dos principais problemas que envolve as técnicas de Redução de Dimensionalidade está vinculado ao tempo de processamento, o que os tornam praticamente inviáveis de serem aplicados a grandes massas de dados. Nessa tese, é apresentada uma maneira de reduzir o tempo de processamento desses algo-ritmos, através da paralelização do algoritmo t-SNE. Foi realizada uma análise em cada uma das partes do algoritmo, verificando que trechos poderiam ser paralelizados e quais trechos continuariam com seu processamento convencional. Dessa forma, o algoritmo t-SNE paralelo apresentou melhores resultados, em relação ao tempo de processamento, do que a sua versão convencional, dessa forma apresentando-se como uma técnica mais eficiente e eficaz na Redução da Dimensionalidade de dados com o objetivo de otimizar a visualização e análise dos mesmos.

Palavras-chave: Big Data, Cidades Inteligentes, Programação Paralela, Redução de Dimensionalide, t-SNE.

(10)
(11)

Abstract

The urban population has been growing rapidly around the world. To adapt to this population increase, mayors need to change the way they manage these large cities. Thus, the concept of smart cities gains strength and comes to change the way of life of the world population. The investment in this concept of smart cities is aimed at improving people’s management and quality of life. The biggest challenges in these systems are linked to the processing, visualization and analysis of the generated data, since when they work connected these systems generate a large mass of data, called Big Data, which need to be treated differently from conventional systems. For the visualization of the data, a device that can be used are the techniques for reducing the dimensionality, which bring the data from one n dimension to two or three dimensions, thus being perceptible to human eyes. One of the main problems involving Dimensionality Reduction techniques is related to the processing time, which makes them practically unfeasible to be applied to large masses of data. In this thesis, a way to decrease the processing time of these algorithms is presented, by parallelizing the t-SNE algorithm. An analysis was performed on each part of the algorithm, verifying which sections could be parallelized and which sections would continue with their conventional processing. In this way, the parallelized algorithm showed better results than its conventional version, presenting itself as a more efficient and effective technique in Reducing the Dimensionality of data in order to optimize their visualization and analysis.

(12)
(13)

Sumário

Sumário i

Lista de Figuras v

Lista de Tabelas vii

Lista de Símbolos e Abreviaturas ix

1 Introdução 1

1.1 Motivação . . . 3

1.2 Estado da Arte . . . 3

1.3 Objetivos . . . 6

1.4 Organização do texto . . . 6

2 Cidades Inteligentes, Big Data e Paralelismo 9 2.1 Cidades Inteligentes . . . 9

2.2 Big Data . . . 11

2.2.1 Desafios em Big Data . . . 12

2.2.2 Áreas Envolvidas . . . 15

2.2.3 Princípios para Desenvolvimento em Big Data . . . 15

2.2.4 Fases dos sistemas que utilizam Big Data . . . 17

2.3 Paralelismo . . . 18

2.3.1 Arquiteturas paralelas . . . 19

2.3.2 Modelos de Programação Paralela . . . 20

2.3.3 Métricas para a computação paralela . . . 22

2.4 Considerações . . . 23

3 Redução de Dimensionalidade 25 3.1 Redução de Dimensionalidade . . . 25

3.2 Algoritmos Lineares para Redução de Dimensionalidade . . . 27

3.2.1 Principal Component Analysis - PCA . . . 27

3.2.2 Linear Discriminant Analysis- LDA . . . 29

3.3 Algoritmos não Lineares para Redução de Dimensionalidade . . . 29

3.3.1 Stochastic Neighbor Embedding- SNE . . . 29

3.3.2 t-distributed Stochastic Neighbor Embedding- t-SNE . . . 31

3.3.3 Locally Linear Embedding- LLE . . . 33 i

(14)

3.3.4 Neighborhood Component Analysis - NCA . . . 35

3.3.5 Kernel Principal Component Analysis- KPCA . . . 36

3.3.6 Sammon Mapping . . . 36

3.3.7 Diffusion Maps . . . 37

3.4 Considerações . . . 37

4 Experimentos com as técnicas de Redução de Dimensionalidade 39 4.1 Implementações com bases de dados geradas manualmente . . . 39

4.1.1 PCA . . . 40 4.1.2 LDA . . . 41 4.1.3 NCA . . . 41 4.1.4 SNE . . . 42 4.1.5 t-SNE . . . 44 4.1.6 LLE . . . 45 4.1.7 KPCA . . . 45 4.1.8 Sammon Mapping . . . 46 4.1.9 Diffusion Maps . . . 46

4.2 Base de dados de ocorrências policiais . . . 47

4.3 Implementações dos diversos algoritmos de Redução de Dimensionali-dade com a base de dados de ocorrências policiais da ciDimensionali-dade do Natal-RN 50 4.3.1 PCA . . . 51 4.3.2 LDA . . . 51 4.3.3 SNE . . . 52 4.3.4 t-SNE . . . 53 4.3.5 LLE . . . 54 4.3.6 KPCA . . . 54 4.4 Considerações . . . 55 5 t-SNE Paralelo 57 5.1 Implementação do t-SNE em linguagem C . . . 57

5.1.1 Experimentos com bases de dados que envolvem Cidades Inteli-gentes . . . 58

5.2 Paralelização do algoritmo t-SNE . . . 66

5.3 Resultados dos experimentos com o t-SNE paralelo . . . 68

5.4 Considerações . . . 74

6 Conclusão e Trabalhos Futuros 77 6.1 Principais Contribuições . . . 78

6.2 Perspectivas de Trabalhos Futuros . . . 79

Referências bibliográficas 80

(15)

B Ajustes realizados na Base de Dados de ocorrências de Influenza em Nova

(16)
(17)

Lista de Figuras

1.1 Complexidades dos algoritmos para a Redução de Dimensionalidade. . . 5

2.1 Modelo de Cidade Inteligente apresentado pelo projeto SmartMetropolis . 10 2.2 Logomarca do projeto SmartMetropolis . . . 11

2.3 Relação entre as principais áreas envolvidas no estudo em Big Data. Adap-tado de . . . 16

2.4 Fases dos sistemas que utilizam Big Data. Adaptado de . . . 17

2.5 Diagrama de Causa e efeito em Big Data. Adaptado de . . . 19

2.6 Modelo de Programação Paralela . . . 21

3.1 Ideia geral para a Redução de Dimensionalidade . . . 26

3.2 Representação de amostras de duas variáveis x e y . . . 27

3.3 O dois Principais Componentes para a distribuição de pontos: PC1 e PC2 28 3.4 Projeção dos pontos de dados realizada sobre o Componente Principal PC1 28 3.5 Comparação entre as distribuições Normal e Student t . . . 32

4.1 Conjuntos de dados gerados para testes . . . 40

4.2 Resultados apresentados pelo algoritmo PCA sobre a base de testes . . . . 41

4.3 Resultados apresentados pelo algoritmo LDA sobre as bases de testes. (a) swissroll, (b) twinpeaks e (c) Plano transpassado. . . 42

4.4 Resultados apresentados pelo algoritmo NCA sobre as bases de testes: (a) Swissroll, (b) Plano Transpassado e (C) Helix. . . 43

4.5 Resultados apresentados pelo algoritmo SNE sobre as bases de testes . . . 43

4.6 Resultados apresentados pelo algoritmo t-SNE sobre as bases de testes . . 44

4.7 Resultados apresentados pelo algoritmo LLE sobre as bases de testes: (a) Plano transpassado, (b) swissroll e (c) twinpeaks. . . 45

4.8 Resultados apresentados pelo algoritmo KPCA sobre as bases de testes: (a) Plano transpassado, (b) swissroll e (c) twinpeaks. . . 46

4.9 Resultados apresentados pelo algoritmo Sammon Mapping sobre as bases de testes: (a) swissroll, (b) twinpeaks e (c) Plano transpassado. . . 47

4.10 Resultados apresentados pelo algoritmo Diffusion Maps sobre as bases de testes: (a) Swissroll, (b) Plano Transpassado e (C) Helix. . . 48

4.11 Divisão da cidade do Natal de acordo com suas AISPs e Bairros. . . 50

4.12 Resultado da execução do Algoritmo PCA sobre a base de dados de Ocor-rências Policiais: (a) Redução dos dados para três dimensões, (b) Redução dos dados para duas dimensões. . . 51

(18)

4.13 Resultado da execução do Algoritmo LDA sobre a base de dados de Ocor-rências Policiais . . . 52 4.14 Resultado da execução do Algoritmo SNE sobre a base de dados de

Ocor-rências Policiais: (a) Redução dos dados para duas dimensões, (b) Redu-ção dos dados para três dimensões. . . 52 4.15 Resultado da execução do Algoritmo t-SNE sobre a base de dados de

Ocorrências Policiais: (a) Redução dos dados para duas dimensões, (b) Redução dos dados para três dimensões. . . 53 4.16 Resultado da execução do Algoritmo LLE sobre a base de dados de

Ocor-rências Policiais . . . 54 4.17 Resultado da execução do Algoritmo KPCA sobre a base de dados de

Ocorrências Policiais: (a) Redução dos dados para três dimensões, (b) Redução dos dados para duas dimensões . . . 55 5.1 Redução de Dimensionalidade da base de dados da secretaria de educação

para 3 dimensões - Etapas de Ensino. . . 60 5.2 Redução de Dimensionalidade da base de dados da secretaria de educação

para 2 dimensões - Etapas de Ensino. . . 60 5.3 Redução de Dimensionalidade da base de dados da secretaria de educação

para 2 dimensões - Séries. . . 61 5.4 Redução de Dimensionalidade da base de dados da secretaria de educação

para 2 dimensões - Situação. . . 62 5.5 Redução de Dimensionalidade da base de dados da secretaria de educação

para 2 dimensões - Nível de Instrução do Pai. . . 63 5.6 Redução de Dimensionalidade da base de dados da secretaria de educação

para 2 dimensões - Religião. . . 63 5.7 Redução de Dimensionalidade da base de dados de Ocorrências de

Influ-enza no estado de NY - Municípios. . . 65 5.8 Redução de Dimensionalidade da base de dados de Ocorrências de

Influ-enza no estado de NY - Tipo de InfluInflu-enza. . . 65 5.9 Trechos paralelizados do algoritmo t-SNE. . . 68

(19)

Lista de Tabelas

5.1 Apresentação das Bases de Dados que passaram pelo processo e Redução

de Dimensionalidade . . . 58

5.2 Resultados apresentados pelos algoritmos usando a base de dados de ocor-rências policiais . . . 69

5.3 Resultados apresentados pelos algoritmos usando a base de dados da Se-cretaria de Educação do RN . . . 70

5.4 Resultados apresentados pelos algoritmos usando a base de dados de Ocor-rências de H1N1 no estado de Nova Iorque . . . 71

5.5 Speedupsapresentados pelos algoritmos sob a base de dados de ocorrên-cias policiais . . . 71

5.6 Eficiência apresentada pelos algoritmos sob a base de dados de ocorrên-cias policiais . . . 72

5.7 Speedupsapresentados pelos algoritmos sob a base de dados da secretaria de educação do RN . . . 73

5.8 Eficiência apresentada pelos algoritmos sob a base de dados da Secretaria de Educação do RN . . . 73

5.9 Speedupsapresentados pelos algoritmos sob a base de dados da secretaria de educação do RN . . . 74

5.10 Eficiência apresentada pelos algoritmos sob a base de dados da Secretaria de Educação do RN . . . 74

A.1 DIREC . . . 87

A.2 Municípios . . . 87

A.3 Série . . . 87

A.4 Etapas de Ensino . . . 88

A.5 Turno . . . 88

A.6 Situação . . . 88

A.7 Sexo . . . 88

A.8 Estado Civil . . . 88

A.9 Tipo Sanguíneo . . . 89

A.10 Naturalidade . . . 89

A.11 NEE/Bolsa Família/Escotismo . . . 89

A.12 Religião . . . 89

A.13 Tipo de Residência . . . 90

A.14 Situação Moradia . . . 90

A.15 Pessoas que residem com você . . . 90

A.16 Número de pessoas da família . . . 90 vii

(20)

A.17 Chefe da família . . . 91

A.18 Meio de Transporte . . . 91

A.19 Instrução Pai/Mãe . . . 91

A.20 Renda Mensal Família . . . 91

A.21 Estudava na mesma escola no ano anteior? . . . 92

A.22 Quais livros você lê? . . . 92

A.23 Acesso a Internet . . . 92

A.24 Você trabalha? . . . 92

A.25 Tempo de dedicação ao trabalho . . . 93

A.26 Frequência às aulas no último ano . . . 93

A.27 Que representava a escola para você? . . . 93

B.1 Cidade . . . 95

B.2 Cidade (Continuação) . . . 96

B.3 Região . . . 97

(21)

Lista de Símbolos e Abreviaturas

AISP: Área Integrada de Segurança Pública CCA: Curvilinear Component Analysis

CIOSP: Centro Integrado de Operações de Segurança Pública DIREC: Diretoria Regional de Educação

EF: Ensino Fundamental EM: Ensino Médio

ICA: Independent Component Analysis IoT: Internet of Things

KNN: K-nearest Neighbor

KPCA: Kernel Principal Component Analysis LDA: Linear Discriminant Analysis

LLE: Locally Linear Embedding MDS: Multidimensional Sacaling MDS: Multidimensional Scaling

MIMD: Multiple Struction Multiple Data MISD: Multiple Struction Single Data NCA: Neighborhood Component Analysis NY: Nova Iorque

PCA: Principal Component Analysis RFID: Radio Frequency IDentification SIMD: Single Struction Multiple Data SISD: Single Struction Single Data

(22)

SNE: Stochastic Neighbor Embedding

t-SNE: t-distributed Stochastic Neighbor Embedding TIC: Tecnologias da Informação e Comunicação

(23)

Capítulo 1

Introdução

A mudança dos paradigmas computacionais, saindo dos trabalhos tradicionais em desktops nas mesas de escritórios e partindo para uma computação distribuída com di-versos dispositivos espalhados por um ambiente, todos se comunicando entre si, aumen-tou as possibilidades computacionais dos sistemas. Logo começaram a surgir ambientes inteligentes, tais como casas (A. Khan & Khan 2018), (Rehman & ur. Gruhn 2018) e consultórios médicos como (A. Abatal & Bahaj 2018) e (Alamri 2018). A expansão deste conceito para atender as demandas de uma cidade foi uma transição natural, de onde se esperava para o ano de 2018 um investimento de 80 bilhões de dólares ao redor do mundo, com um aumento deste investimento para cerca de US$ 135 bilhões para o ano de 2021, segundo (Maadox 2018).

Uma cidade que utiliza esses sistemas para auxiliar a sua gestão, bem como melho-rar a vida de seus moradores é chamada de Cidade Inteligente. Caragliu em (A. Ca-ragliu & Nijkamp 2009) e (A. CaCa-ragliu & Nijkamp 2011) conceitua cidade inteligente como uma cidade que investe em capital social e humano e também em infraestrutura de Tecnologias da Informação e Comunicação (TIC), contribuindo para o desenvolvimento social-econômico sustentável e melhoria na qualidade de vida da população, com a gestão racional dos recursos naturais através de ações participativas.

No contexto da tecnologia, uma cidade inteligente contém diversos sistemas com-putacionais posicionados em seu ambiente físico, funcionando de maneira integrada ou individualmente. Infraestrutura de Comunicação, Sensores Inteligentes, Protocolos de Comunicação e Sistemas de armazenamento de dados são algumas das demandas para a construção destes sistemas.

O desenvolvimento dos sistemas que dão suporte às cidades inteligentes necessitam de várias tecnologias que vão desde a IoT, passando por tecnologias de comunicação, como Redes de Sensores sem Fio, Radio Frequency IDentification (RFID) e chegando no armazenamento de dados através do conceito conhecido como Big Data, sendo o Big Data um dos principais motivadores do surgimento das Cidades Inteligentes, já que se utilizando de processos corretos, conseguindo transformar a massa de dados em informa-ções importantes de onde pode-se encontrar o conhecimento necessário para o processo da gestão.

O uso de sistemas voltados para as cidades inteligentes, juntamente com o uso des-sas tecnologias, possibilita aos gestores públicos municipais direcionar as suas decisões,

(24)

2 CAPÍTULO 1. INTRODUÇÃO

tornando-as mais precisas e cometendo mais acertos. Porém, um dos principais problemas está relacionado a dificuldade em analisar os dados, pois isto envolve a complexidade des-tes dados e a sua alta dimensão, sendo a dimensão dos dados representada pela quantidade de atributos envolvidos para representá-lo e ainda por essa alta dimensão não permitir a visualização gráfica dos dados, o que dificulta a sua análise e interpretação.

O processo de Redução de Dimensionalidade de dados, através de seus algoritmos, tende a diminuir a complexidade da análise dos dados, visto que a dimensionalidade dos dados pode ser reduzida até uma dimensão visível ao olho humano (duas ou três dimen-sões), preservando as distâncias de sua dimensão original. Para isso, esses algoritmos se utilizam de métodos matemáticos e estatísticos. Existem diversos algoritmos de redução de dimensionalidade na literatura. Tais soluções, podem ser divididas em dois grupos principais: os lineares e os não lineares.

Os algoritmos lineares concentram-se em manter as representações dos diferentes pontos de dados distantes nas representações de baixa dimensionalidade, porém esses algoritmos possuem o problema de serem limitados a solução de problemas linearmente separáveis o que restringe bastante o seu uso.

Por outro lado, os algoritmos não lineares objetivam manter as estruturas dos dados da alta dimensão na baixa dimensão. Mesmo sendo algoritmos mais eficientes que os line-ares, pois conseguem resolver uma gama maior de problemas, esses algoritmos em geral possuem uma maior complexidade computacional, o que dificulta a sua implementação para dados de alta dimensionalidade em um ambiente Big Data, em relação ao seu tempo de processamento.

Esta dificuldade apresentada pelos algoritmos não lineares faz com que sua aplica-bilidade seja por vezes inviável a uma grande quantidade de dados, já que o tempo de processamento para a sua execução será muito longo e a entrega dos resultados normal-mente acontecerá após o tempo necessário para a sua utilização.

Um dos algoritmos não lineares usados com mais frequência é o t-distributed Sto-chastic Neighbor Embedding (t-SNE) criado por (Maaten 2008), que usa probabilidade condicional para representar a similaridade dos dados na baixa e na alta dimensão.

Por usar a função de custo t-student que é próxima da gaussiana, porém com caudas mais largas, o t-SNE consegue aliviar alguns dos problemas que existem em alguns outros algoritmos de Redução de Dimensionalidade, apresentando resultados visuais mais preci-sos, porém o problema da eficácia continua já que seu tempo de processamento aumenta exponencialmente com o aumento dos dados apresentados a ele.

Desenvolver uma análise detalhada do algoritmo t-SNE, definindo trechos que possam ser paralelizados e realizar a paralelização desses trechos, pode resolver o problema de escalabilidade apresentado por sua versão convencional, assim a paralelização dá a pos-sibilidade de tornar o problema, que até então poderia ser classificado como não tratável, em um problema tratável e assim apresente resultados satisfatórios dentro de um tempo aceitável.

Paralelizar algoritmos, é uma das formas de resolver alguns dos problemas envolvido na computação sequencial, tais como o baixo desempenho apresentado por alguns algo-ritmos.

(25)

1.1. MOTIVAÇÃO 3

o algoritmo t-SNE que seja mais eficiente que o algoritmo convencional, que possui uma alta complexidade computacional, aplicando-o a um ambiente real de Cidades Inteligen-tes. Além de permitir verificar a sua eficiência e eficácia em relação ao tempo de pro-cessamento e speedup, quando aplicados em ambientes reais, já que na maior parte da bibliografia esses algoritmos são aplicados em dados gerados e bases de dados de testes, tendo a sua análise em bases reais comprometida.

1.1

Motivação

O rápido crescimento e investimento no conceito de Cidades Inteligentes traz aos gestores maiores possibilidades de acertos em suas tomadas de decisões e aos moradores dos centros urbanos uma melhor qualidade de vida.

Vários aplicativos interconectados e usando muitas ferramentas tecnológicas, tais como IoT e Big Data, geram uma imensa quantidade de dados que beneficia a todos, porém esse mesmo fator vem acompanhado de alguns problemas que devem ser observados.

Visualizar e interpretar os dados gerados no ambiente de uma Cidade Inteligente não são tarefas simples, pois além de uma alta dimensão de dados a escala de dados gerados é muito grande.

Mesmo existindo vários algoritmos e técnicas para a Redução de Dimensionalidade dos dados a maioria deles é ineficiente. Os algoritmos lineares tem uma limitação ocasio-nada pelo limite dos dados onde eles podem ser aplicados, apenas em dados linearmente separáveis, enquanto os algoritmos não lineares apesar de mostrarem uma eficiência vi-sual maior e uma maior gama de problemas que podem ser utilizados, possuem uma complexidade maior, fazendo com que o seu tempo de processamento possa ser inviável para problemas que envolvem as Cidades Inteligentes.

Essas dificuldades envolvendo os algoritmos de Redução de Dimensionalidade, mo-tiva a busca por alternamo-tivas para melhorar o desempenho desses algoritmos e assim fazê-los mais usuais.

Diante do contexto apresentado, utilizar técnicas de paralelização no desenvolvimento dos algoritmos para Redução de Dimensionalidade pode diminuir o tempo de processa-mento dos mesmos e assim permitir uma visualização e interpretação dos dados mais precisa, melhorando a tomada de decisão do poder público, bem como a possibilidade da população gerir melhor a sua qualidade de vida.

1.2

Estado da Arte

A área de pesquisa em Cidades Inteligentes ainda é bem recente e explora basicamente o nicho das grandes cidades do mundo, vinculada à essa área de pesquisa muitas outras são acrescentadas: Big Data, IoT e Redução de Dimensionalidade são algumas delas.

O uso de Big Data, assim como de IoT, junto às pesquisas de Cidades Inteligentes é óbvio, visto a quantidade de dados que são gerados e equipamentos necessários para geração e captação desses dados.

(26)

4 CAPÍTULO 1. INTRODUÇÃO

A utilização de Redução de Dimensionalidade junto às Cidades Inteligentes também foi um caminho a ser traçado, visto que existe uma grande dificuldade em analisar, visua-lisar e interpretar os dados gerados pelos sistemas imersos nessas cidades. Porém a grande quantidade de técnicas e algoritmos e a pouca utilização destes em dados reais estão entre os grandes desafios da Redução de Dimensionalidade junto às Cidades Inteligentes.

Observa-se em (Zhang & Chen 2014) que as Cidades Inteligentes uma forte área de pesquisa para a aplicação de IoT e o Big Data, exatamente pela grande variedade de aplicações que estão inseridas nessas cidades e também pela grande quantidade de dados que são geradas por elas.

Em (X. He & Liu 2018), apresenta a era do Big Data e o seu uso em Cidades Inte-ligente e apresenta uma arquitetura de Big Data que possa trazer uma maior qualidade de experiência para as Cidades Inteligentes. Tal arquitetura é baseada em três planos: O plano de armazenamento de dados, o plano de processamento de dados e o plano de aplicação de dados.

Em (M. Usman & Chen 2019), apresenta diversos algoritmos para tratar o processa-mento e a representação dos dados gerados por sistemas que usam Big Data dentro das cidades inteligentes e ainda cita várias técnicas de Redução de Dimensionalidade de da-dos, tanto técnicas lineares, como o PCA, também técnicas não lineares, tais como o LLE e o Independent Component Analysis(ICA).

Em (R. P. Chacón & Riquelme 2018) é utilizado um exemplo de aplicação prática no uso de Big Data junto às cidades inteligentes para geração de informação. Eles utilizaram Big Data para descobrir diferentes padrões de consumo de energia elétrica através de dados temporais.

Um outro exemplo do uso de análise de dados de Big Data junto às cidades inte-ligentes é dado por (Vishnu & Mohan 2016), em seu trabalho são usadas imagens do monitoramento do tráfego urbano para localizar pessoas que estão infrigindo leis de trân-sito. No caso específico, o seu sistema detecta pilotos de motocicletas andando pelas ruas da cidade sem capacete. Neste trabalho, o algoritmo t-SNE para a redução de dimensio-nalidade dos dados foi utilizado para reduzir a dimensão das imagens à duas dimensões, tornando possível visualizar os padrões de pilotos com e sem capacetes em um gráfico simples.

Em (L. V. Maaten 2007) é realizada uma revisão de literatura sobre a aplicação de diversas técnicas de Redução de Dimensionalidade em bases de dados artificiais e re-ais. Como um dos resultados desse estudo foi produzida uma tabela que compara a complexidade algoritmica dos algoritmos de redução de dimensionalidade. Essa tabela é apresentada na Figura 1.1 e através dela fica clara a visualização da alta complexidade computacional que os algoritmos apresentam.

Em (M. Aloqaily & Jararweh 2019), é usada a redução de dimensionalidade através de redes Deep Belief e classificação de dados através de árvores de decisão para identificar situações de intrusão de veículos conectados em cidades inteligentes.

Citando às aplicações em cidades inteligentes como uma das inspirações, (N. Saeed & Alouini 2019) desenvolveu um survey sobre a utilização do algoritmo de redução de dimensionalidade Multidimensional Scaling em técnicas de localização. Neste trabalho Saeed cita que os algoritmos de redução de dimensionalidade convertem dados

(27)

multi-1.2. ESTADO DA ARTE 5

Figura 1.1: Complexidades dos algoritmos para a Redução de Dimensionalidade. (L. V. Maaten 2007)

dimensionais em espaços de baixa dimensão, extraindo dos dados as suas informações principais.

Outro trabalho que referencia a modelagem do consumo de energia foi desenvolvido por (E. Azizi & Mohammadpour 2019), eles propuseram uma nova estrutura para redução de dimensionalidade para refinar os modelos de dados de consumo de energia elétrica. Ao final, o seu método é comparado com outro algoritmo de redução de dimensionalidade, o PCA.

(G. T. Reddy & Baker 2020), faz uma análise do uso de técnicas de redução de dimen-sionalidade em Big Data. Para isso eles utilizam duas das principais técnicas de redução de dimensionalidade existentes, o PCA e o LDA. As técnicas de redução de dimensio-nalidade foram aplicadas sobre uma base de dados de cardiotocografias, disponível no repositório de dados da UCI.

Em (Broucke & Deligiannis 2019) é realizado um estudo para a visualização de dados heterogêneos usando realidade virtual e usou a cidade de Bruxélas como base de dados para o seu experimento. Em seu trabalho ele cita a importância de usar técnicas de redução de dimensionalidade para visualizar dados de altas dimensões, e apresenta a utilização do PCA e do t-SNE em alguns casos para permitir a visualização de dados multivariados.

Em sua tese (Lee 2016), usa t-SNE, MDS e Sammon mapping para a visualização de dados de conjuntos em Big Data, as bases utilizadas por ele foram bases clássicas como a Splice e a MNIST. Mesmo sem a aplicação em problemas que envolvem cidades inteligentes, (Lee 2016) apresenta resultados superiores nas bases de dados utilizadas na utilização do algoritmo t-SNE.

(28)

6 CAPÍTULO 1. INTRODUÇÃO

(K. Noiva & Jr. 2016), usa o algoritmo t-SNE para visualizar e clusterizar os dados referentes a utilização, suprimento e demanda da oferta de água em 142 (cento e quarenta e duas) cidades ao redor do mundo, conseguindo encontrar seis padrões (clusters) de cidades e suas formas de distribuir e utilizar a água.

Dessa forma, é possível perceber que a utilização de técnicas de redução de dimensi-onalidade está aumentando bastante, principalmente em problemas que envolvem o uso de Big Data e cidades inteligentes. Porém, poucos problemas referenciam a problemá-tica das técnicas e procuram apenas utilizá-las para apresentar padrões ou simplesmente visualizar os dados de um problema específico.

1.3

Objetivos

O principal objetivo deste trabalho é desenvolver o algoritmo t-SNE de maneira para-lela para a redução da dimensão de dados gerados por sistemas envolvidos com caracterís-ticas de Cidades Inteligentes, permitindo uma melhor desempenho e visualização gráfica de dados para uma análise mais completa das cidades.

Para chegar a definição do algoritmo t-SNE, vários algoritmos e técnicas para a re-dução de dimensionalidade foram estudados e analisados, utilizando dados sintéticos e também dados reais, gerados a partir da utilização de sistemas nas áreas de segurança, educação e saúde, todos envolvendo o conceito de cidades inteligentes.

Além disso, procura-se alcançar alguns objetivos específicos:

• Levantamento do estado da arte relacionada a utilização de algoritmos para redução da dimensionalidade de dados em cidades inteligentes;

• Estudo dos algoritmos já existentes para a Redução de Dimensionalidade;

• Implementação de várias técnicas para a redução de dimensionalidade, com o ob-jetivo de analisar os resultados visuais gerados por essas técnicas bem como a sua eficácia na apresentação dos resultados;

• Apresentação de um modelo para a paralelização do algoritmo t-SNE;

• Validar o algoritmo t-SNE paralelo na redução de dimensionalidade com dados inerentes às Cidades Inteligentes;

• Verificar os ganhos obtidos com o algoritmo t-SNE paralelo em relação ao mesmo algoritmo desenvolvido de maneira convencional.

1.4

Organização do texto

A tese encontra-se organizada da seguinte maneira: os capítulos 2 e 3 apresentam o estado da arte da utilização de algoritmos de redução de dimensionalidade em sistemas que envolvem as cidades inteligentes, além de um referencial teórico sobre as áreas de desenvolvimento deste trabalho Cidades Inteligentes, Big Data, Redução de Dimensiona-lidades de Dados e paralelismo, dando ênfase ao algoritmo t-SNE. O capítulo 4 apresenta os resultados dos experimentos realizados com os diverçõs algoritmos para a redução de dimensionalidade, tando usando bases de dados criadas, como base de dados reais de ci-dades inteligentes. O capítulo 5 apresenta as alterações realizadas sob o algoritmo t-SNE,

(29)

1.4. ORGANIZAÇÃO DO TEXTO 7

no intuito de paralelizá-lo e os resultados apresentados por essa nova versão do algoritmo, e finalmente o capítulo 6 apresenta as conclusões e os trabalhos futuros.

(30)
(31)

Capítulo 2

Cidades Inteligentes, Big Data e

Paralelismo

Nesta seção são apresentados três dos principais conceitos que envolvem este trabalho: as cidades inteligentes, tão importantes por trazerem uma nova forma de gestão pública e qualidade de vida para a população urbana, que sofre constantemente com as mazelas dos crescimentos das urbes, o conceito de Big Data, ferramenta essencial para fazer com que as cidades inteligentes funcionem adequadamente, já que a quantidade de dados gerada pelos sistemas absorvidos pelas cidades não conseguem ser absorvidos por sistemas de banco de dados convencionais e o paralelismo, técnica empregada para fazer com que algoritmos possam ser executados de maneira mais eficiente.

2.1

Cidades Inteligentes

O constante aumento das populações urbanas ao redor do mundo, vem ampliando os desafios dos governantes em administrar as suas cidades. O (ARCHDAILY 2013) estima que em 2030, 60% da população mundial resida em centros urbanos. Para se ter uma ideia, segundo o (Markit 2017), nos Estados Unidos da América os grandes centros urbanos já contam atualmente com 85,7% da população americana, bem como 87,7% dos empregos, 87,9% da renda total, 91,3% da renda salarial e 90,8% do PIB real.

O crescimento urbano acelerado pode ocasionar vários problemas inter-relacionados, como por exemplo, o aumento do tráfego urbano, pode ocasionar a poluição do ar, que por sua vez ocasiona um aumento nos casos de doenças pulmonares (Markit 2017).

Esse crescimento populacional urbano deve estar acompanhado de um desenvolvi-mento da infraestrutura urbana adequada, mantendo o equilíbrio econômico e social da cidade e também a qualidade de vida de sua população.

(H. Schaffers & A. Oliveira 2011), apresenta que o conceito de cidades inteligentes evolui desde o início dos anos 90, e faz conexão com a tecnologia, a inovação e a globa-lização.

Segundo o diretório geral para políticas internas, publicado pelo parlamento europeu em (EUROPARL 2014), uma Cidade Inteligente, ou Smart City, é uma cidade à procura de resolver problemas públicos através de tecnologias desenvolvidas e implementadas numa base multi-stakeholder de parceria, ou seja, que usem tecnologia para beneficiar

(32)

10 CAPÍTULO 2. CIDADES INTELIGENTES, BIG DATA E PARALELISMO

tanto a gestão pública como a qualidade de vida de sua população.

A figura 2.1 apresenta em um contexto amplo a ideia da interação existente dentro das cidades inteligentes aplicado pelo projeto Smartmetropolis na cidade de Natal-RN.

Figura 2.1: Modelo de Cidade Inteligente apresentado pelo projeto SmartMetropolis

(Nam & Walker 2012), define um framework para analisar o quanto uma cidade está envolvida com o conceito de cidade inteligente, para isso são analisados oito fatores: (1) Gerenciamento e organização, (2) Tecnologia, (3) Governança, (4) Políticas, (5) Pessoas e comunidade, (6) A economia, (7) Infraestrutura construída e (8) O ambiente natural. Quanto maior o envolvimento da cidade com esses fatores, maior a probabilidade de transformá-la em uma Cidade Inteligente.

De acordo com que (V. Albino & Dangelico 2015) apresenta, várias cidades ao re-dor do mundo começam a investir nesse conceito de cidades inteligentes, pode-se citar: Ottawa, Quebec, San Francisco, Barcelona, Amsterdam e Shenzhen.

Em Natal-RN através de uma iniciativa da Universidade Federal do Rio Grande do Norte (UFRN) e parcerias com os governos estadual e municipal foi criado o projeto SmartMetropolis, que já conta com diversas aplicações desenvolvidas para beneficiar a população em algumas áreas, tais como, segurança pública, estacionamento inteligente e turismo além de aplicações que utilizam redes sociais para identificar a percepção de mo-radores e visitantes de uma determinada cidade, chamada de e-Participação em Cidades Inteligentes (Dias & Cacho 2018). A logomarca do projeto SmartMetropolis é apresen-tada na Figura 2.2

Os sistemas no ambiente de uma Cidade Inteligente tendem a gerar uma imensa quan-tidade de dados, já que muitas vezes são sistemas integrados e de diversas áreas distintas. As antigas decisões que eram realizadas através de intuições, hoje são realizadas com base nos próprios dados. Educação, saúde, segurança pública, desenvolvimento econômico e urbano, são algumas das áreas que se pode citar como exemplo de uso dessa quantidade

(33)

2.2. BIG DATA 11

Figura 2.2: Logomarca do projeto SmartMetropolis

de dados para a tomada de decisão.

Esses dados gerados pelos sistemas possuem uma grande diversidade de tipos, são dinâmicos, não estruturados e difíceis de serem processados usando abordagens de pro-cessamento tradicionais, são conhecidos como Big Data e estão bastante interligados ao conceito de Cidades Inteligentes.

2.2

Big Data

Várias aplicações em diversas áreas de trabalho estão gerando dados em uma grande escala sem precedentes na história da humanidade. As antigas decisões que eram reali-zadas através de intuições hoje são realireali-zadas com base nos próprios dados. Astronomia, educação, saúde, desenvolvimento econômico e urbano, são algumas das áreas que se pode citar como exemplo de uso dessa imensa quantidade de dados para a tomada de decisão.

Esse grande conjunto de dados com grande diversidade de tipos e que se torna bastante difícil de serem processados usando abordagens de processamento tradicionais pode ser conhecido como Big Data.

Segundo (Zhang & Chen 2014), Big Data tem sido uma das fronteiras de pesquisa, atuais e futuras. Big Data pode ser caracterizado por 3 ou 4 V’s. (Zhang 2013) usa o conceito de 3 V’s, que significam Volume, Velocidade e Variedade; por volume é carac-terizada a quantidade de dados que são gerados; velocidade é a rapidez com que esses dados são gerados; e variedade as diferentes fontes por onde os dados são criados, isto é, a heterogeneidade desses dados.

O quarto V pode significar veracidade, onde é representada a qualidade dos dados e informações para o seu uso em modelos reais, ou seja, o valor daquele dado para a tomada de decisões, o quanto ele é “verdadeiro”.

Para verificar alguns exemplos do uso de Big Data pode-se usar a área da saúde: (Yan & Liu 2013) usam um Big Data associado a outras tecnologias como nuvem, redes neurais e computação ubíqua para auxiliar o sistema de saúde pública da China com a predição de algumas doenças sazonais ou infecciosas, realizando assim uma melhor prevenção das mesmas. (D. G. Paez 2014), propõe o monitoramento de pacientes crônicos através do

(34)

12 CAPÍTULO 2. CIDADES INTELIGENTES, BIG DATA E PARALELISMO

uso de sensores wireless e processamento Big Data. (J.-C. Hsieh 2013) usam computação móvel, nuvem e Big Data para apresentar os novos rumos da telecardiologia.

Em outras áreas um artigo escrito por uma comunidade “white paper” liderada por pesquisadores nos Estados Unidos chamado challenges and opportunities with Big Data cita:

• O Sloan Digital Sky Survey se tornou uma fonte central de recursos para astrônomos em todo o mundo, esse sistema registra e armazena fotos do espaço, reduzindo assim grande parte do trabalho dos astrônomos que passavam boa parte do seu trabalho a tirar fotos do céu;

• As Ciências Biológicas tem uma tradição de depositar os dados científicos em um repositório público, e também de criação de bancos de dados públicos para uso por outros cientistas;

• Um estudo feito sobre 35 escolas em Nova Iorque descobriu que um dos cinco principais políticas correlacionadas com eficácia acadêmica mensurável foi o uso de dados para orientar a instrução;

• Estudos de caso feito com o uso de Big Data para planejamento urbano, transporte inteligente, modelagem ambiental, economia de energia, materiais inteligentes, ci-ências sociais computacionais, análise de risco financeiro, segurança de casas e de computadores também são descritos.

Embora existam muitas conquistas alcançadas com a utilização de Big Data, muitos desafios ainda estão por serem vencidos, iniciando pelos 3 V’s já que para absorver essas características é necessário atender diversos requisitos e chegando até as questões de ar-mazenamento, privacidade, segurança, inconsistências, curadoria, pesquisa, recuperação e visualização (Zhang 2013). Alguns desses desafios são descritos na seção seguinte.

2.2.1

Desafios em Big Data

Considerando as características apresentadas pelo big data, torna-se importante co-nhecer os principais desafios que envolvem esse conceito e que podem influenciar di-retamente os sistemas que possuem as suas características: Heterogeneidade de dados, escala, pontualidade, privacidade, colaboração humana, transmissão de dados, duradoria de dados e visualização de dados.

Esses desafios são propostos e discutidos mais profundamente em (Zhang 2013) e (Whitepaper n.d.).

Heterogeneidade dos dados

Existe uma grande diferença entre o entendimento de dados quando um ser humano os consome ou quando as máquinas os consomem.

É mais fácil para os seres humanos entenderem dados incompletos e vindos de dife-rentes fontes, visto que o raciocínio humano é bastante profundo, principalmente quando se refere a conhecimentos específicos à sua área de trabalho.

(35)

2.2. BIG DATA 13

Já as máquinas não conseguem aprofundar o entendimento dos dados, visto que os seus algoritmos necessitam de uma boa estrutura de dados para o bom entendimento deles. Ao se trabalhar com sistemas que envolvem Big Data, normalmente, é necessária uma etapa preliminar para limpeza, correção e complemento de dados, mesmo sabendo que após isso erros e incompletudes continuarão a acontecer, mas que podem ser ajustados em uma etapa posterior.

Escala

Quando se fala em Big Data uma das primeiras coisas a se pensar é o tamanho da base de dados, pois o próprio nome já sugere isso. Processamento e armazenamento de dados estão intimamente ligados com essa necessidade.

Como processar e armazenar cada vez mais dados? O Big Data White Paper aponta três mudanças fundamentais para esse acontecimento. A primeira diz respeito ao aumento na velocidade de processamento conseguido pelas indústrias de computadores. O foco mudou do aumento da velocidade de clock dos processadores para o aumento da quanti-dade de núcleos de cada um deles, isto fez com que através do processamento paralelo se conseguisse aumentar a quantidade de dados processados.

A segunda se refere ao processamento e armazenamento dos dados, o uso de nuvens computacionais através de computadores com centenas/milhares de núcleos pode agregar diversos tipos de trabalhos diferentes com metas diferentes.

A terceira mudança se trata da mudança da forma de armazenar e recuperar dados, saindo dos tradicionais HD’s para unidades de estado sólido e outros tipos de armaze-namento de dados, o que implica também na velocidade de guardar e buscar dados nas máquinas.

Mesmo com essas três evoluções apontadas os desafios continuam existindo, visto que novas tecnologias geram novos problemas e estes devem ser diminuídos durante o uso das mesmas, além da quantidade de dados gerados se tornar maior a cada instante.

Pontualidade

Em vários casos, é necessário uma análise de dados e apresentação de resultados em momentos corretos, o que pode tornar necessário um imediato processamento computa-cional, por exemplo, sistemas de tempo real precisam de dados e informações com tempo de resposta adequado , tornando o tempo um elemento extremamente relevante para o seu funcionamento. (Lopes 2011)

A grande questão é como fazer o processamento no tempo adequado com a grande quantidade e velocidade com que os dados que são recebidos pelos sistemas que se utili-zam de Big Data, o desenvolvimento de resultados parciais para a redução da computação e uma boa criação de estrutura de índices para facilitar a localização de elementos rele-vantes rapidamente são imprescindíveis para melhorar esse aspecto.

(36)

14 CAPÍTULO 2. CIDADES INTELIGENTES, BIG DATA E PARALELISMO

Privacidade

A privacidade dos dados é outro desafio importante a ser tratado por sistemas que usam Big Data. O uso indevido de dados pessoais pode acarretar em problemas tec-nológicos ou sociais, além de que muitos tipos de dados, como por exemplo, os dados médicos, possuem legislações e questões éticas que proíbem a sua divulgação.

Saber o que pode e deve ser divulgado sem influenciar na privacidade das pessoas e auxiliando a população em geral com informações úteis para o seu dia-a-dia é um processo a ser observado com bastante critério, a fim de se ter sistemas mais eficazes e eficientes. Colaboração Humana

A participação do ser humano no desenvolvimento de sistemas com o uso de Big Data é imprescindível. A maior parte dos padrões de conhecimento são entendidos de uma maneira fácil pelos homens, mas possuem uma grande dificuldade de serem entendidos por algoritmos computacionais.

A necessidade de múltiplos especialistas com diferentes domínios de conhecimento é de suma importância para sistemas computacionais, o maior problema é que estes especi-alistas, normalmente, são muito caros e por vezes esse motivo torna difícil o desenvolvi-mento de sistemas.

Desenvolver um ambiente virtual onde diferentes especialistas possam interagir e so-mar os seus conhecimentos sem estarem juntos no espaço nem ao mesmo tempo pode ser uma solução que diminua esse problema.

Analisando sob o ambiente das cidades inteligentes, a colaboração humana ainda de-termina uma outra visão, que deve ser observada pela motivação da população em consu-mir os recursos tecnológicos gerados pelos seus sistemas. Pois apenas com esse uso, os dados serão gerados de maneira adequada para facilitar a tomada de decisão dos gestores. Outros Desafios

Além dos desafios já citados, existem outros desafios vinculados aos sistemas que usam Big Data que podem ser citados, tais como:

• Transmissão de dados: Se refere ao processo de envio dos dados para o seu local de armazenamento, tal como uma nuvem. A largura de banda da rede pode ser um gargalo para a transmissão desses dados, visto a quantidade de dados gerados; • Curadoria de dados: De acordo com (Zhang & Chen 2014) a curadoria de dados

destina-se a descoberta e recuperação de dados, garantia de qualidade de dados, agregação de valor, reutilização e preservação ao longo tempo. A maioria dos sis-temas de Banco de Dados existentes é incapaz de tratar dados que crescem em uma projeção exponencial, tais como os dados em um Big Data.

• Visualização dos dados: A maneira de visualizar os dados é importante para tornar o objeto de estudo apresentado mais intuitivo e eficaz. A grande questão nesse ponto é que na maioria das vezes os sistemas que usam Big Data possuem uma grande dimensionalidade, o que impossibilita uma boa visualização dos dados. Esse desafio é o principal objetol de estudo desse trabalho.

(37)

2.2. BIG DATA 15

2.2.2

Áreas Envolvidas

Para desenvolver sistemas que utilizam Big Data é importante o envolvimento de vá-rias disciplinas, tais como: estatística, aprendizado de máquina, redes neurais, etc.

(Zhang & Chen 2014) apontam a utilização de algumas dessas técnicas:

• Métodos de otimização: Bastante utilizados para a resolução de problemas quanti-tativos em diversas áreas, como física, biologia, engenharia e economia. A redução da dimensionalidade de dados e o paralelismo podem ser abordagens alternativas para problemas de otimização;

• Estatística: Considerada a ciência de coletar, organizar e interpretar dados. É usada para explorar a correlação e as relações causais entre os objetivos dos problemas; • Mineração de dados: Conjunto de técnicas que buscam padrões, informações

rele-vantes dos dados;

• Aprendizado de máquina: Descobrir conhecimento e tomar decisões inteligentes de maneira automática é a principal característica dessa importante área da inteli-gência artificial que visa projetar algoritmos que permitem computadores evoluir comportamentos baseados em dados empíricos;

• Redes neurais artificiais: Outra área importante da inteligência artificial com muito sucesso em reconhecimento de padrões, análise de imagens, controle adaptativo, dentre ouras áreas;

• Análise de rede social: É uma técnica chave para várias áreas de estudo: sociolo-gia, antropolosociolo-gia, biolosociolo-gia, geografia, estão entre elas. Necessita de áreas como a computação social e a computação em nuvem para a sua melhor utilização;

• Técnicas de visualização de dados: Técnicas utilizadas para criar tabelas, gráficos, imagens que sejam intuitivas para a apresentação dos dados. Devido às caracte-rísticas do big data, apontadas anteriormente, não é uma tarefa simples apresentar os dados de uma maneira fácil de serem entendidos. Reduzir a dimensionalidade dos dados é uma das opções que se pode oferecer para minimizar os problemas de visualização.

A utilização de uma ou mais das áreas apontadas depende de várias questões que vão desde o problema a ser tratado em si até as tecnologias envolvidas/disponíveis para a sua resolução.

A Figura 2.3 ilustra a relação entre as áreas envolvidas no uso de big data e suas aplicações.

2.2.3

Princípios para Desenvolvimento em Big Data

Pelas características dos sistemas que utilizam Big Data eles tendem a ser mais com-plexos de serem desenvolvidos, daí ser necessário novos conceitos e princípios para o desenvolvimento desse tipo de sistema.

(Zhang & Chen 2014) desenvolvem sete princípios que podem ser seguidos para fa-cilitar o desenvolvimento de sistemas com o uso de Big Data: (1) Boas arquiteturas e frameworkssão necessárias e prioritárias, (2) Suporte a uma grande variedade de métodos

(38)

16 CAPÍTULO 2. CIDADES INTELIGENTES, BIG DATA E PARALELISMO

Figura 2.3: Relação entre as principais áreas envolvidas no estudo em Big Data. Adaptado de (Zhang & Chen 2014)

(39)

2.2. BIG DATA 17

analíticos, (3) Não há espaço para tudo, (4) Provoque a análise dos dados, (5) O proces-samento deve ser distribuído para a computação na memória, (6) O armazenamento dos dados pode ser distribuído para o armazenamento na memória e (7) É necessária uma coordenação entre as unidades de processamento e de dados.

2.2.4

Fases dos sistemas que utilizam Big Data

O processamento de dados com o uso de Big Data envolve várias etapas que vão desde a captura dos dados até a sua interpretação. Essas etapas são importantes, pois, quando bem desenvolvidas, é através delas que se chegará a resultados com uma melhor qualidade após todo o processamento.

O Big Data White Paper (Whitepaper n.d.) prevê cinco etapas distintas para o proces-samento: Aquisição e registro de dados, Extração da informação e limpeza, Representa-ção, agregação e integração de dados, processamento de consultas, modelagem de dados e análise e interpretação. Uma adaptação do modelo apresentado pelo (Whitepaper n.d.) é apresentado na Figura 2.4.

Figura 2.4: Fases dos sistemas que utilizam Big Data. Adaptado de (Whitepaper n.d.)

Na etapa de Aquisição e registro de dados é definido de quais as fontes (sensores, sites, etc.) e quais os dados devem capturados e armazenados. Uma definição errada fará com que dados que não possuem necessidade ou que são irrelevantes para o estudo sejam armazenado aumentando, ainda mais, o tamanho dos dados em um Big Data.

Na extração da informação e limpeza os dados brutos são trabalhados e transforma-dos em datransforma-dos que possam ser processatransforma-dos por computadores. Texto, gráficos, imagens,

(40)

18 CAPÍTULO 2. CIDADES INTELIGENTES, BIG DATA E PARALELISMO

vídeos, etc são passados por um processo para transformá-los em informação, os dados irrelevantes são descartados nessa etapa.

Integração, agregação e representação de dados formam uma etapa bastante complexa, visto que para que o computador possa desenvolver de maneira automática necessita de semânticas adequadas a cada um dos casos de estudo.

Processamento de consultas, modelagem de dados e análise envolvem a mineração de dados, mesmo que de maneira bem diferente de se minerar pequenos conjuntos de dados. Segundo o (Whitepaper n.d.) minerar requer que os dados já estejam integrados, limpos, confiáveis e acessíveis, interfaces de consulta e mineração, algoritmos escaláveis e o ambiente de computação Big Data.

Por fim, a interpretação, de nada adianta desenvolver todo o trabalho para se ter um Big Datase ao final não se consegue entender as informações geradas, a participação de um especialista no assunto tratado pelo Big Data é de extrema importância nesse mo-mento, a ideia é que não apenas os resultados sejam analisados, mas todo o processo que levou ao desenrolar para se obter aquele resultado. Um sistema pode auxiliar bas-tante nesse processo, disponibilizando várias ferramentas para o tratamento dos dados e da informação no intuito de facilitar o entendimento dos especialistas.

É na etapa da interpretação que existe a necessidade da Redução da Dimensionalidade dos dados, tornando mais fácil a visualização e por fim o processo de tomada de decisão dos especialistas.

(Zhang 2013) apresenta um interessante diagrama de causa e efeito que resume de uma maneira geral os conceitos, tecnologias, desafios, etc que estão envolvidos com o uso de Big Data na solução de problemas. A adaptação desse diagrama é apresentada na Figura 2.5.

Esse diagrama serve para organizar e instigar a análise de possíveis problemas que podem ocorrer no desenvolvimento/uso de sistemas Big Data.

2.3

Paralelismo

Alguns problemas relacionados à computação sequencial, tais como o baixo desem-penho em problemas complexos, tornam a computação paralela uma das principais fer-ramentas para buscar melhores desempenhos computacionais em aplicações. Segundo (Pacheco 2011), a programação paralela ou concorrente, a programação sequencial com menor complexidade para o problema e a busca por estruturas de programação e dados mais eficientes são exemplos de técnicas de software que visam melhorias de desempenho nos sistemas.

Mesmo sabendo que um melhor desempenho computacional depende diretamente do hardwareutilizado, o desenvolvimento de sistemas paralelos é de fundamental importân-cia para o melhor desempenho dos sistemas, visto que soluções para problemas computa-cionalmente difíceis podem ser personalizadas, mehorando os seus desempenhos.

Assim, pode-se citar como principais objetivos da computação paralela:

• Permitir o desenvolvimento de soluções que possam ser executadas em paralelo, usando os diversos recursos de hardware, como processadores e memória;

(41)

2.3. PARALELISMO 19

Figura 2.5: Diagrama de Causa e efeito em Big Data. Adaptado de (Zhang 2013)

• Obter ganhos de desempenho;

• Reduzir o gap existente entre memória e CPU.

A evolução do hardware, também foi de vital importância para a evolução do de-senvolvimento de sistemas paralelos, visto que em princípio as soluções paralelas apenas podiam ser desenvolvidas em clusters de computadores simples que se comunicavam atra-vés de alguma rede de conexão e atualmente existem computadores e dispositivos móveis multiprocessados ou com um processador de múltiplos cores.

2.3.1

Arquiteturas paralelas

(Flynn 1966) definiu a classificação para as arquiteturas paralelas mais usada ao longo dos anos, conhecida por taxonomia de Flynn.

A taxonomia de Flynn baseia-se no fluxo de instruções e dados dos processadores, apresentando quatro classes de processamento.

SISD - Single Struction Single Data

Nesta classe existe apenas um fluxo de instruções para um processador único, de ma-neira semelhante, possui apenas um fluxo de dados. Ela engloba processadores não pa-ralelos, chamados de convencionais, e tanto as instruções como os dados são tratados sequencialmente.

(42)

20 CAPÍTULO 2. CIDADES INTELIGENTES, BIG DATA E PARALELISMO

Para aumentar o desempenho, muitos dos processadores SISD utilizam estruturas de pipeline.

SIMD - Single Struction Multiple Data

A arquitetura SIMD apresenta um único fluxo de instruções, porém um fluxo de dados múltiplo. A mesma instrução é executada por todas as unidades de processamento, porém com conjunto de dados diferentes.

Segundo (Pinto 2011), este tipo de arquitetura é indicada para problemas especializa-dos, caracterizados por um alto grau de regularidade, como processamento de imagem e gráficos. Normalmente, os processadores vetoriais são incluidos nesta classificação.

MISD - Multiple Struction Single Data

Ao contrário da arquitetura SIMD, esta arquitetura apresenta um fluxo múltiplo de instruções, porém um único fluxo de dados. Desta forma, os vários processadores execu-tam diferentes operações simultâneas no mesmo fluxo de dados. Esta arquitetura é a que mais carece de exemplos de computadores que a utilizam.

MIMD - Multiple Struction Multiple Data

Esta arquitetura tanto possui múltiplos fluxos tanto para as instruções, como para os dados, permitindo que os computadores realizem diferentes instruções em diferentes con-juntos de dados.

Esta é a classificação que engloba a grande maioria dos computadores modernos, tais como computadores pessoais de vários núcleos, clusters, etc.

2.3.2

Modelos de Programação Paralela

A computação define os estilos de programação em basicamente três modelos: Pro-gramação Sequencial, ProPro-gramação Concorrente e ProPro-gramação Paralela.

Na programação sequencial as tarefas são executadas uma após a outra, sem apresen-tar nenhuma caraxterística paralela na execução de seus programas. É o tipo de progra-mação mais clássico e usado no desenvolvimento de programas que não exigem um alto nível de desempenho.

Na programação concorrente, várias tarefas são iniciadas, sem necessariamente as tarefas anteriores terem sido encerradas, na programação concorrente pode-se utilizar sis-temas multi ou uni processados.

Utilizar a programação concorrente, não significa dizer que os programas ou tarefas estão sendo executadas ao mesmo tempo.

A programação paralela se caracteriza tanto pela iniciação quanto pela a execução da tarefa em tempos simultâneos, fazendo com que, realmente, as tarefas sejam executadas em paralelo. A ideia geral por trás da programação paralela, pode ser vista na Figura 2.6.

(43)

2.3. PARALELISMO 21

Figura 2.6: Modelo de Programação Paralela

A ideia geral, apresentada na Figura 2.6, consiste em executar trechos do algoritmo sequencial ao mesmo tempo em diversos processadores, diminuindo assim o tempo com-putacional deste algoritmo.

O desenvolvimento e a execução de programas paralelos necessitam da definição do conjunto de tarefas que serão executadas em paralelo, a ativação e o encerramento da execução dessas tarefas e a coordenação da interação entre elas.

Definir bem as tarefas a serem executadas em paralelo é muito importante, pois todo o ganho de desempenho adquirido com a paralelização, depende da melhor configuração das tarefas a serem executadas concorrentemente. (Blume 2002)

Para o desenvolvimento da programação paralela, pode-se seguir alguns modelos: Th-reads, Passagem de mensagem e paralelismo de dados.

No desenvolvimento com o uso de threads, um único processo pode se dividir em duas ou mais tarefas e executar essas tarefas de maneira paralela. É um modelo normalmente associado à ambientes que fazem uso de memória compartilhada. Uma das implementa-çõs mais utilizadas para a programação com o uso de threads é a OpenMP.

No modelo que utiliza a passagem de mensagem os processos são executados nas várias máquinas que participam do processamento, elas trocam informações através de mensagens que estão inseridas no código da aplicação. Nesse modelo, as instruções de-vem estar organizadas de maneira que definam quais partes do código serão executadas em cada processador.

Por fim, o modelo que utiliza do paralelismo de dados, aqui todos os processadores executam o mesmo conjunto de tarefas em diferentes subconjuntos de dados. O envio e recebimento dos dados é feito de maneira automática pelo compilador, de maneira trans-parente. É possivel, na utilização desse modelo, escolher quais dados que serão ou não utilizados no processamento paralelo.

Além dos três modelos de programação paralela apresentado, pode-se optar pela uti-lização de um modelo híbrido, com a utiuti-lização de mais de um dos modelos apresentados na mesma programação.

(44)

22 CAPÍTULO 2. CIDADES INTELIGENTES, BIG DATA E PARALELISMO

2.3.3

Métricas para a computação paralela

Quando se pensa em paralelizar uma solução computacional, de maneira equivocada pose imaginar que dividir a computação em n processadores se terá um ganho de de-sempenho de n vezes, muitos são os desafios para se conseguir esse resultado e dependem de vários fatores, tais como máquinas, arquiteturas, linguagens de programação e a con-corrência do próprio algoritmo. Por isso, mensurar os ganhos da computação paralela em relação a programação sequencial convencional é importante para poder avaliar o uso dessa técnica de programação.

Existem trechos de códigos que são não paralelizáveis, principalmente quando existe uma dependência entre os dados, juntamente com outras características dos programas, tais como o tempo para coordenar e inicializar as tarefas em paralelo, sincronizações, comunicação de dados, etc. pode ocasionar um overhead no sistema, impossibilitando atingir o paralelismo ideal.

Na computação paralela, existem três métricas para avaliar o desempenho de um al-goritmo: (1) critério de tempo, (2) speedup e (3) eficiência.

O critério de tempo é o mais simples de ser aferido e comparado, pode ser realizado através de algum método ou técnica formal, por simulação ou por experimentos. Consiste em comparar o tempo de execução do algoritmo paralelo com o seu equivalente sequen-cial.

Para avaliar o critério de tempo podem ser analisados o pior caso, o melhor caso e o caso médio das execuções dos algoritmos. Em todos os três casos, o esperado é que o tempo de execução do algotritmo paralelo seja menor que o de seu correspondente convencional.

O speedup é uma das principais métricas utilizadas para verificar o desempenho dos algoritmos, ele determina o quanto um algoritmo paralelo é mais rápido que o algoritmo sequencial correspondente, e é obtido pela equação 2.1:

Sp = TSeq

TPar (2.1)

O resultado para o cálculo do speedup indica o quanto mais rápido o algoritmo pa-ralelizado é mais rápido que o algoritmo sequencial, por exemplo, se o resultado para o cálculo do speedup de um algoritmo for 1,23, isso significa que o algoritmo paralelo é 1,23 mais rápido do que a sua versão não paralelizada. Se o speedup for igual ao número de processadores, tem-se o que se chama de speedup linear ou ideal.

Se o speedup de um programa alcançar um valor maior que P, onde P é o número de processadores, diz-se que ele possui um speedup superlinear.

(Amdahl 1967) definiu um modelo para o cálculo do speedup esperado de uma imple-mentação de um algoritmo paralelo sobre o mesmo algoritmo sequencial, supondo que o problema continua o mesmo quando paralelizado. Tecnicamente falando, a lei trata do aumento do speedup com um melhoramento do cálculo que afeta a proporção P de um cálculo , onde se tem um melhoramento do speedup de S. A lei de Amdahl realiza o cál-culo do speedup baseado apenas nos trechos do programa que podem ser paralelizados, e

(45)

2.4. CONSIDERAÇÕES 23

seque a fórmula 2.2:

S(N) = 1

(1 − P) +PN (2.2)

Onde P é a proporção do programa que pode ser paralelizada, (1-P) a porção que não pode ser paralelizada e N o número de processadores usado para a paralelização.

Uma outra métrica aplicada à computação paralela pode ser a de eficiência, calculada pela fórmula 2.3:

E = Sp

p (2.3)

, em que p é o número de processadores.

A métrica de eficiência indica quantas vezes a execução do algoritmo paralelo é reali-zada mais rápida do que o algoritmo sequencial.

2.4

Considerações

O aumento de uso de sistemas que envolvem os conceitos de Cidades Inteligentes e Big Datageram uma grande quantidade de dados, tornando difícil analisar, interpretar e visualizar esses dados de maneira que auxilie aos gestores públicos na tomada de decisão e beneficie à população com uma melhor qualidade de vida.

Uma das maneiras de melhorar o processo de tomadas de decisões, que minimizam os problemas citados é reduzir a dimensão dos dados gerados para uma dimensão que seja possível de ser visualizada pela visão humana, duas ou três dimensões.

Existem várias técnicas e algoritmos que permitem realizar a redução de dimensiona-lidade de dados, no capítulo 3 vários desses algoritmos são apresentados e discutidos.

(46)
(47)

Capítulo 3

Redução de Dimensionalidade

Técnicas de Redução de Dimensionalidade podem ser utilizadas como uma das ma-neiras de facilitar a visualização e interpretação dos dados gerados pelos sistemas que usam Big Datas. Como foi discutido no capítulo 2, os dados armazenados em um Big Datapossuem, normalmente, uma dimensão alta deixando impossível a análise e a inter-pretação desses dados. As técnicas de Redução de Dimensionalidade podem reduzir essa dimensão para 2D ou 3D, tornando-as perceptíveis aos olhos humanos. Nesse capítulo será discutida a importância dessas técnicas para visualização dos dados e a tomada de decisões, bem como o funcionamento de várias delas.

3.1

Redução de Dimensionalidade

Os dados gerados por sistemas que estão nos ambientes das cidades inteligentes, nor-malmente possuem um grande volume, são dinâmicos e não estruturados, características absorvidas pelo conceito de Big Data. Essas características fazem os dados muito com-plexos para serem tratados através de paradigmas computacionais convencionais, já que esses algoritmos muitas vezes não são rápidos e dinâmicos o suficiente para isso.

Uma outra questão que envolve esses dados, é que normalmente eles possuem uma dimensão muito alta, o que dificulta a interpretação deles, além de muitas vezes impossi-bilitar o processo de tomada de decisão.

Segundo (Cavique 2014), como não existe a possibilidade de se alterar de imediato a complexidade dos algoritmos convencionais, a resposta seria reduzir a dimensionalidade dos dados, a redução da dimensionalidade dos dados se refere à diminuição no número de variáveis a serem analisadas.

(Medeiros & Costa 2009) acrescenta que a redução da dimensionalidade é uma opera-ção fundamental para viabilizar a visualizaopera-ção de dados multidimensionais em processos de descoberta do conhecimento e mineração de dados e (Dias 2012) afirma que a re-dução da dimensionalidade dos dados resulta em uma representação mais eficiente dos mesmos, ele ainda conclui que o estudo de dados em alta dimensão possui motivações práticas para visualização e análise dos dados, mas também possuem motivações teóri-cas, considerando aí a “maldição da dimensionalidade”, termo criado por (Bellman 1961) para referenciar o problema do crescimento exponencial do hipervolume como função da

(48)

26 CAPÍTULO 3. REDUÇÃO DE DIMENSIONALIDADE

dimensionalidade dos dados, ou seja, quanto mais características existem, maior a degra-dação do desempenho de um classificador ou regressor.

A ideia principal é que mesmo que se reduza a dimensão dos dados exista a preser-vação, ao máximo, das relações topológicas deles, ou seja, manter os pontos que são próximos na alta dimensão, também próximos na baixa dimensão. Existem diversas téc-nicas para a redução da dimensionalidade que podem ser classificadas como lineares e não lineares. A ideia geral do processo de Redução de Dimensionalidade é apresentada na Figura 3.1.

Figura 3.1: Ideia geral para a Redução de Dimensionalidade

As técnicas lineares têm como principais representantes o Principal Component Analy-sis(PCA) e o Multidimensional Scaling (MDS). De acordo com (Maaten 2008), esses al-goritmos focam em manter a representação de pontos de dados distantes na representação da baixa dimensionalidade.

O principal problema apontado pelos algoritmos lineares estão relacionados a pequena gama de problemas que estes podem resolver, já que por serem lineares apenas resolvem problemas linearmente separáveis o que inviabiliza o seu uso para a maioria dos casos.

Por sua vez, os algoritmos não lineares tentam manter a estrutura de dados da alta dimensão, na baixa dimensão. Vários são os algoritmos não lineares para a redução de dimensionalidade, dentre eles podemos citar: Sammon Mapping, Curvilinear Component Analysis (CCA), Stochastic Neighbor Embedding (SNE), Isomap e o t-Distributed Sto-chastic Neighbor Embedding(t-SNE).

Mesmo com a característica de resolverem problemas não lineares, esses algoritmos apresentam problemas que envolvem a sua eficiência, visto que, com o aumento de dados a serem processados o seu tempo de execução cresce de maneira exponencial, pratica-mente inviabilizando o seu uso em problemas que envolvem Big Data.

Referências

Documentos relacionados

O objetivo deste estudo foi avaliar o comporta- mento clínico de lesões de dermatite digital bovina após tratamento cirúrgico, uso local e parenteral de oxitetraci- clina e passagem

Os resultados permitiram concluir que a cultivar Conquista apresentou a maior produtividade de grãos, no conjunto dos onze ambientes avaliados; entre as linhagens

No sentido de reverter tal situação, a realização deste trabalho elaborado na disciplina de Prática enquanto Componente Curricular V (PeCC V), buscou proporcionar as

Os casos não previstos neste regulamento serão resolvidos em primeira instância pela coorde- nação do Prêmio Morena de Criação Publicitária e, em segunda instância, pelo

Ninguém quer essa vida assim não Zambi.. Eu não quero as crianças

O presente artigo pretende discutir o exercício do controle de constitucionalidade de leis e atos normativos por de entidades e órgãos não

Para a coleta de dados, aplicou-se um instru- mento autoadministrado, em que foram abor- dados temas relacionados ao conhecimento e à atitude de gestantes de alto risco sobre o vírus

Os instrumentos de pesquisa utilizados serão: Ficha de Rastreamento das Participantes do Estudo, International Consultation on Incontinence Questionnaire – Short Form