programa˘c~ao gen etica cartesiana paralela na gera˘c~ao

61
Programa¸ ao Gen´ etica Cartesiana Paralela na Gera¸ ao de Redes Neuronais Artificiais para o Reconhecimento de Atividade Humana Bruno Marcos Pinheiro da Silva JUIZ DE FORA MARC ¸ O, 2021

Upload: others

Post on 22-Jul-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

Programacao Genetica Cartesiana Paralelana Geracao de Redes Neuronais Artificiais

para o Reconhecimento de AtividadeHumana

Bruno Marcos Pinheiro da Silva

JUIZ DE FORA

MARCO, 2021

Page 2: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

Programacao Genetica Cartesiana Paralelana Geracao de Redes Neuronais Artificiais

para o Reconhecimento de AtividadeHumana

Bruno Marcos Pinheiro da Silva

Universidade Federal de Juiz de Fora

Instituto de Ciencias Exatas

Departamento de Ciencia da Computacao

Bacharelado em Ciencia da Computacao

Orientador: Heder Soares Bernardino

JUIZ DE FORA

MARCO, 2021

Page 3: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

Programacao Genetica Cartesiana Paralela na

Geracao de Redes Neuronais Artificiais para o

Reconhecimento de Atividade Humana

Bruno Marcos Pinheiro da Silva

MONOGRAFIA SUBMETIDA AO CORPO DOCENTE DO INSTITUTO DE CIENCIAS

EXATAS DA UNIVERSIDADE FEDERAL DE JUIZ DE FORA, COMO PARTE INTE-

GRANTE DOS REQUISITOS NECESSARIOS PARA A OBTENCAO DO GRAU DE

BACHAREL EM CIENCIA DA COMPUTACAO.

Aprovada por:

Heder Soares BernardinoDoutor em Modelagem Computacional

Alex Borges VieiraDoutor em Ciencias da Computacao

Luciana Conceicao Dias CamposDoutora em Engenharia Eletrica

JUIZ DE FORA

15 DE MARCO, 2021

Page 4: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

Aos meus pais, irmaos e amigos.

Page 5: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

Resumo

O Reconhecimento de Atividade Humana (RAH) e um problema promissor e aplicavel

em diversas situacoes reais, como na assistencia medica remota ou em casas inteligentes.

Sua solucao, entretanto, apresenta algumas dificuldades, como o grande volume de dados

e caracterısticas disponıveis, associadas a coleta de dados, em geral, por sensores. Uma

maneira para tratar o problema e atraves de modelos de aprendizado de maquina, como

Redes Neurais Artificiais Evoluıdas pela Programacao Genetica Cartesiana (CGPANN),

mas esta abordagem e computacionalmente cara. Sendo assim, este trabalho propoe

o desenvolvimento de tecnicas de computacao de alto desempenho sobre a CGPANN,

assim como sua aplicacao no treinamento de modelos para o problema de RAH. Para

isso, a arquitetura de Unidades de Processamento Grafico (GPU) e utilizada e diferentes

estruturas de dados para a CGPANN sao analisadas quanto ao tempo de execucao do

algoritmo na GPU e, posteriormente, quanto a qualidade dos modelos em relacao ao erro

de classificacao para o problema de reconhecimento de atividades. Os resultados obtidos

apontam uma reducao no tempo de execucao pela utilizacao de abordagens paralelas em

relacao ao algoritmo sequencial, alem de indicarem que os modelos da CGPANN para o

RAH sao promissores em relacao aqueles da literatura.

Keywords: Reconhecimento de Atividade Humana, Aprendizado de Maquina, Pro-

gramacao Genetica Cartesiana, Redes Neurais Artificiais

Page 6: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

Abstract

Human Activity Recognition (HAR) is a promising problem and applicable to a wide

range of real-life situations, such as remote medical assistance and smart home applian-

ces. Its solution, however, presents some difficulties, like the large volume of available

data and features to be analyzed, associated with the data collection systems, generally

made by sensors. A possible approach to deal with this problem is through machine

learning models, such as Cartesian Genetic Programming of Artificial Neural Networks

(CGPANN), but this technique is computationally expensive. Therefore, this work propo-

ses the development of high-performance computing techniques for CGPANN, as well as

its application on HAR. To do so, the architecture of Graphics Processing Units (GPUs)

is used, and different data structures for the parallel CPGANN algorithm on the GPU

are analyzed regarding its execution time. Next, the quality of the models related to

their classification error when applied to a HAR dataset is also analyzed. The results

show a decrease in computational time when the proposed parallel CGPANN algorithm

is compared to the sequential approach. Moreover, the results point out that CGPANN’s

models for HAR are promising when compared to those from the literature.

Keywords: Human Activity Recognition, Machine Learning, Cartesian Genetic Pro-

gramming, Artificial Neural Networks

Page 7: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

Agradecimentos

Aos meus pais e irmaos pelo apoio, incentivo e amor durante este percurso.

Ao professor Heder pela orientacao, amizade e paciencia durante estes anos de

trabalho e aprendizado.

Aos meus amigos, pelos momentos de descontracao, pelo apoio e ajuda nos mo-

mentos difıceis.

Ao GET Computacao, que foi fundamental para minha formacao. Em especial

aos getianos e getianas dos quais pude me tornar amigo e compartilhar tantos aprendiza-

dos.

Aos professores do Departamento de Ciencia da Computacao pelos seus ensina-

mentos e aos funcionarios do curso, que durante esses anos, contribuıram de algum modo

para o nosso enriquecimento pessoal e profissional.

Page 8: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

Conteudo

Lista de Figuras 6

Lista de Tabelas 7

Lista de Abreviacoes 8

1 Introducao 91.1 Apresentacao do Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2 Descricao do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2 Reconhecimento de Atividade Humana 12

3 Metodos 163.1 Neuroevolucao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.1.1 Redes Neurais Artificiais . . . . . . . . . . . . . . . . . . . . . . . . 163.1.2 Algoritmos Evolutivos . . . . . . . . . . . . . . . . . . . . . . . . . 183.1.3 Programacao Genetica Cartesiana . . . . . . . . . . . . . . . . . . . 193.1.4 Caracterısticas da Neuroevolucao . . . . . . . . . . . . . . . . . . . 213.1.5 Programacao Genetica Cartesiana de Redes Neurais Artificiais . . . 22

3.2 Computacao de Alto Desempenho . . . . . . . . . . . . . . . . . . . . . . . 243.2.1 OpenCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.2.2 Unidades de Processamento Grafico . . . . . . . . . . . . . . . . . . 273.2.3 Programacao Genetica Paralela . . . . . . . . . . . . . . . . . . . . 29

3.3 Metricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4 Revisao bibliografica 344.1 Problema de Reconhecimento de Atividade . . . . . . . . . . . . . . . . . . 344.2 Computacao de Alto Desempenho . . . . . . . . . . . . . . . . . . . . . . . 36

5 Metodos Propostos 385.1 Padrao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385.2 Compacta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395.3 Imagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

6 Experimentos Computacionais 426.1 Experimento 1: Analise de Desempenho Computacional . . . . . . . . . . . 436.2 Experimento 2: CGPANN para o Problema de RAH . . . . . . . . . . . . 46

7 Conclusao 52

Referencias Bibliograficas 54

Page 9: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

Lista de Figuras

2.1 Etapas do problema de reconhecimento de atividades. Adaptado de Larae Labrador (2013) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2 O problema RAH e sua variacao relaxada. Adaptado de Schrader et al.(2020) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.1 Representacao de um neuronio biologico (a) e um artificial(b). . . . . . . . 173.2 Exemplo de uma RNA totalmente conectada (esq.) e uma topologia ar-

bitraria (dir.). Adaptado de Gajurel et al. (2020) . . . . . . . . . . . . . . 183.3 Exemplo de um indivıduo da CGP. Adaptado de Melo Neto et al. (2018). . 203.4 Esquema Geral de um algoritmo neuroevolutivo. . . . . . . . . . . . . . . . 223.5 Exemplo de um indivıduo da CGPANN. Adaptado de Melo Neto et al.

(2018). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.6 Organizacao da plataforma OpenCL, adaptado de Khronos (2011). . . . . . 253.7 Abstracao da organizacao dos dispositivos em itens e grupos de trabalho,

obtido de Tompson e Schlachter (2012). . . . . . . . . . . . . . . . . . . . . 263.8 Organizacao da memoria no OpenCL. Adaptado de Khronos (2011). . . . . 273.9 Comparacao da estrutura de CPUs e GPUs. . . . . . . . . . . . . . . . . . 283.10 Numero de segmentos necessarios para atender a uma requisicao em um

acesso coalescido (a) e um desalinhado (b). Obtido de NVIDIA (2013). . . 293.11 Esquema do paralelismo sob dados para PGs. Adaptado de Koza (1992). . 303.12 Esquema do paralelismo sob indivıduos para PGs. Adaptado de Koza (1992). 303.13 Esquema do uso da GPU para a avaliacao paralela dos indivıduos de um

AE. Adaptado de Russo et al. (2017). . . . . . . . . . . . . . . . . . . . . . 313.14 Exemplo da estrutura de uma matriz de confusao. . . . . . . . . . . . . . . 323.15 Exemplo da estrutura de uma matriz de confusao para um problema mul-

ticlasse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

5.1 Exemplo da estrutura da CGPANN padrao. . . . . . . . . . . . . . . . . . 395.2 Exemplo da manipulacao de memoria para armazenarmos dois inteiros em

uma mesma posicao de memoria. . . . . . . . . . . . . . . . . . . . . . . . 405.3 Exemplo da representacao de um indivıduo como imagem na GPU. . . . . 415.4 Exemplo da distribuicao de pixels nas estruturas R, RG e RGBA, respec-

tivamente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6.1 Matriz de confusao apresentada pela literatura(a) e obtida no trabalho(b). 49

Page 10: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

Lista de Tabelas

6.1 Parametros utilizados para a CGPANN. . . . . . . . . . . . . . . . . . . . 436.2 Caracterıstica do Conjunto de Dados do Experimento 1. . . . . . . . . . . 446.3 Resultados para os tempos totais (host + kernel). . . . . . . . . . . . . . . 456.4 Resultados para o tempo de kernel. . . . . . . . . . . . . . . . . . . . . . . 466.5 Speedups para os tempos totais e de kernel em relacao ao algoritmo Se-

quencial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476.6 Caracterısticas do Conjunto de Dados do Experimento 2. . . . . . . . . . . 476.7 Resultados para o erro medio dos modelos comparados e o mınimo, mediana

e desvio padrao do erro da CGPANN. . . . . . . . . . . . . . . . . . . . . . 486.8 Precisao, Revocacao e F1-score obtidos pela CGPANN. . . . . . . . . . . . 486.9 Tempo de execucao para as estruturas Padrao e Compacta para o dataset

de RAH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506.10 Speedups da estrutura Compacta em relacao a Padrao. . . . . . . . . . . . 51

Page 11: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

Lista de Abreviacoes

RAH Reconhecimento de Atividade Humana

AE Algoritmo Evolutivo

RNA Rede Neural Artificial

PG Programacao Genetica

CGP Programacao Genetica Cartesiana

CGPANN Programacao Genetica Cartesiana de Redes Neurais Artificiais

GPU Unidade de Processamento Grafico

GPGPU Unidade de Processamento Grafico de Proposito Geral

NEAT Neuroevolucao de topologias aumentantes

NeVA Algoritmo Neuroevolucionario

ESP Enforced Subpopulations

CoSyNE Cooperative Synapse Neuroevolution

ECG Eletrocardiograma

TEB Impedancia Eletrica Toracica

EDA Atividade Eletrodermica

EEG Eletroencefalograma

CU Unidades de Computacao

PE Elementos de Processamento

CNN Rede Neural Convolucional

Page 12: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

9

1 Introducao

1.1 Apresentacao do Tema

A analise de sinais biologicos extraıdos de sensores com o intuito de reconhecer diferentes

tipos de atividade humana, como atividade fısica, emocional e mental e uma problematica

atual e relevante, por exemplo, para as areas de saude e de cuidados preventivos (Mohino-

Herranz et al., 2019). Neste contexto, uma abordagem para resolver o problema e a criacao

de modelos que possam predizer, baseado nos dados obtidos dos sensores, as atividades

sendo performadas.

O aprendizado de maquina consiste em metodos que sao capazes de identificar

padroes sobre conjuntos de dados e, a partir disso, fazer predicoes ou extrair conhecimento

sobre novos dados (Murphy, 2012). Como parte da area de Inteligencia Artificial, este

campo vem ganhando crescente destaque nos dias atuais, dada a abrangencia de problemas

aos quais suas tecnicas podem ser aplicadas. A classificacao de texto, o processamento de

linguagem natural, o reconhecimento de imagens e o auxılio a diagnosticos medicos sao

exemplos desses problemas (Mohri et al., 2018).

Uma das formas do aprendizado de maquina e o aprendizado supervisionado, que

utiliza dados de entrada associados a saıdas previamente conhecidas para treinar modelos

que, quando aplicados sobre dados desconhecidos, sejam capazes de predizer qual sera

a saıda correta. Tais modelos sao ditos preditivos e problemas de classificacao, como o

reconhecimento de atividade humana citado anteriormente, se enquadram nesta categoria.

Redes Neurais Artificiais sao modelos bioinspirados nas redes neuronais que for-

mam o cerebro de animais e sao uteis, por exemplo, para a resolucao de problemas de

classificacao, uma vez que modelam relacoes complexas do mundo real de forma flexıvel e

se ajustam automaticamente com base em dados (Zhang, 2000). Entretanto, existem difi-

culdades no que tange a construcao destes modelos, como o estabelecimento de topologias

adequadas e o ajuste de pesos e parametros que compoem essas topologias.

Uma sub-area do aprendizado de maquina de interesse para este trabalho e a

Page 13: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

1.2 Descricao do Problema 10

Neuroevolucao, que consiste na aplicacao de Algoritmos Evolutivos (AEs) para o treina-

mento de Redes Neurais Artificiais (RNAs) (Turner, 2015). AEs sao tecnicas heurısticas

inspiradas na evolucao biologica descrita por Darwin (1859). A esta categoria perten-

cem algoritmos amplamente conhecidos, tais como os Algoritmos Geneticos (Goldberg,

1989), a Programacao Genetica (Koza, 1992) e a Programacao Genetica Cartesiana (Mil-

ler, 2011). Estas tecnicas permitem, por exemplo, a busca por solucoes de um problema

sem uma definicao previa da estrutura exata desta solucao (Poli et al., 2008).

Dessa forma, a aplicacao de AEs para a descoberta de topologias de RNAs e

promissora, pois tais metodos permitem a busca de topologias, pesos e/ou funcoes de

ativacao da rede sem a presenca de especialistas. Uma tecnica neuroevolutiva conhecida

foi proposta por Khan et al. (2010) e denominada de programacao genetica cartesiana de

redes neurais artificiais (CGPANN), que faz uso da modelagem de indivıduos como grafos

para codificar e evoluir redes neurais. Como apontado por seus autores, a tecnica se

mostrou competitiva em relacao a outros algoritmos como a Neuroevolucao de Topologias

Aumentantes (NEAT), o Algoritmo NeuroEvolucionario (NeVA), Enforced Subpopulations

(ESP) e Cooperative Synapse Neuroevolution (CoSyNE) por gerar solucoes com um menor

numero de geracoes para os problemas estudados.

1.2 Descricao do Problema

Um ponto negativo da Neuroevolucao e o alto custo computacional de treinamento das

RNAs. Esta caracterıstica e associada a generalidade dos AEs que, mesmo com poucos

indivıduos, requerem um grande numero de avaliacoes de funcao objetivo por geracao,

especialmente em grandes conjuntos de dados (Turner, 2015; Galvan and Mooney, 2020).

Neste sentido, uma abordagem plausıvel para amenizar tal problema e a aplicacao de

tecnicas de computacao de alto desempenho sobre o processo neuroevolutivo.

Uma proposta e a extensao de um metodo ja amplamente estudado dentro da

Neuroevolucao, como a CGPANN, para utilizar tecnicas de computacao de alto desempe-

nho. Na literatura, diversas caracterısticas de paralelismo em algoritmos evolutivos sao

descritas, seja na Programacao Genetica (Augusto e Barbosa, 2013) ou na Programacao

Genetica Cartesiana (Harding e Banzhaf, 2007).

Page 14: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

1.3 Objetivos 11

Nestes estudos, entretanto, conceitos da Programacao Genetica Cartesiana (uti-

lizados pela CGPANN) nao sao levados em consideracao. Dentre estes, por exemplo, a

representacao por grafos e de grande relevancia, pois esta pode penalizar a implementacao

em certos ambientes paralelos, especificamente em Unidades de Processamento Grafico de

Proposito Geral (GPGPUs). Um outro fator que pode ser considerado e o tratamento de

informacoes extras associadas a estrutura da CGPANN, como os pesos de conexoes, den-

tro desses ambientes paralelos. Com isso, levanta-se a questao quanto a possibilidade da

aplicacao de tecnicas de computacao de alto desempenho eficientes sobre a CGPANN e os

possıveis ganhos computacionais oriundos de propostas que considerem as especificidades

do algoritmo utilizado e do contexto de sua aplicacao.

1.3 Objetivos

O principal objetivo proposto e projetar metodos de computacao de alto desempenho

na geracao de Redes Neurais Artificiais atraves da Programacao Genetica Cartesiana

e aplica-los ao problema de reconhecimento de atividade humana. Para alcancar tal

objetivo, propoe-se especificamente:

• Avaliar a implementacao de diferentes estruturas para a CGPANN paralela;

• Identificar caracterısticas relevantes para a implementacao das tecnicas propostas

em GPGPUs;

• Aplicar o uso da tecnica proposta no treinamento de um classificador para identificar

tipos de atividade humana com base em dados de sensores;

• Avaliar os resultados atraves da comparacao do desempenho computacional e de

metricas de desempenho para classificadores dos modelos encontrados com aqueles

descritos na literatura.

Page 15: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

12

2 Reconhecimento de Atividade Humana

O Reconhecimento de Atividade Humana (RAH) e um problema que vem ganhando

destaque dado a crescente presenca de sensores e sistemas de Internet das Coisas (IoT). O

RAH geralmente faz uso de dados obtidos destes sistemas para reconhecer uma atividade

sendo desenvolvida por uma pessoa, como caminhar, subir escadas ou correr, mas tambem

existem abordagens de reconhecimento atraves de vıdeos e imagens extraıdos de cameras

que, entretanto, sao menos comuns (Chen et al., 2020).

O problema do RAH e majoritariamente tratado pela literatura em relacao a

atividades que envolvem movimento. Porem, o reconhecimento de emocoes (Horlings et

al., 2008) e atividades mentais (Millan et al., 2002) tambem se enquadram nesta mesma

categoria de problemas, compartilhando as tecnicas aplicadas e desafios enfrentados.

O RAH pode ser tratado como um problema de aprendizado supervisionado. Este

tipo de problema utiliza dados de entrada associados a saıdas previamente conhecidas

para treinar modelos preditivos que possam classificar corretamente novos dados. O fluxo

do processo de reconhecimento de atividades e ilustrado na Figura 2.1 que se aplica a

problemas gerais de classificacao pela coleta de dados, extracao de atributos, treinamento

de modelos e a classificacao em si.

O RAH e definido formalmente a seguir, como proposto por Lara e Labrador

(2013). Dado um conjunto S = {S0, ..., Sk−1} de k series temporais de atributos, todas

definidas dentro de um intervalo de tempo I = [tinicial, tfinal] sobre o qual a obtencao dos

atributos aconteceu. O objetivo do problema e encontrar, com base no conjunto S, uma

particao P de I e um conjunto de rotulos representando a atividade desenvolvida em cada

intervalo da particao P =< I0, ..., Ir−1 >, em que r e o numero de intervalos encontrados,

de forma que:

r−1⋃i=0

Pi = I

Atraves desta definicao, objetiva-se definir tanto a atividade desenvolvida quanto

Page 16: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

2 Reconhecimento de Atividade Humana 13

Figura 2.1: Etapas do problema de reconhecimento de atividades. Adaptado de Lara eLabrador (2013)

o intervalo de tempo especıfico durante o qual ela foi realizada. Pela complexidade deste

sistema, existe a proposta de uma variacao relaxada do RAH. Neste, define-se um con-

junto W = {W0, ...,Wn−1} de n janelas de tempo de tamanho igual, cada uma associada

a um conjunto S de atributos (como previamente definidos), e um conjunto A com m

rotulos de atividades A = {a0, ..., am−1}. O problema relaxado consiste em determinar

um mapeamento dos rotulos de A para os intervalos de W com base nos atributos de S.

A diferenca entre as duas definicoes e exemplificada na Figura 2.2. Nota-se que,

no problema relaxado, existem erros, simbolizados na cor vermelha, devido a transicoes

entre diferentes atividades que ocorrem dentro das janelas de tempo pre-definidas que,

entretanto, nao sao de grande relevancia considerando-se que o numero de janelas de

tempo e muito superior ao numero de mudancas entre atividades (Lara e Labrador, 2013).

As aplicacoes do RAH sao extensas, o que justifica o emergente numero de estudos

na area. Dentre suas possıveis aplicacoes, e possıvel elencar o monitoramento de idosos

(Paraschiakos et al., 2020; Schrader et al., 2020), a analise de desempenho esportivo

(Mitchell et al., 2013), o monitoramento de estresse (Mohino-Herranz et al., 2015), a

Page 17: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

2 Reconhecimento de Atividade Humana 14

Figura 2.2: O problema RAH e sua variacao relaxada. Adaptado de Schrader et al. (2020)

classificacao de atividades suspeitas (Jie et al., 2008) e a classificacao de atividades do dia

a dia, como dormir, andar e tomar banho (Kasteren et. al., 2008).

Para a extracao de atributos a serem utilizados no treinamento de modelos, o

sensoriamento de dados biologicos e uma pratica comum, realizada pela medida de in-

formacoes de eletrocardiograma (ECG), impedancia eletrica toracica (TEB), atividade

eletrodermica (EDA) e eletroencefalograma (EEG) mas, com a grande disponibilidade de

dispositivos celulares, muitos trabalhos propoem o uso de dados de sensores de giroscopio,

acelerometro e GPS destes dispositivos para a classificacao (Kwapisz et al., 2011).

No presente trabalho, o conjunto de dados “Activity recognition using wearable

physiological measurements” apresentado em Mohino-Herranz et al. (2019) e utilizado.

Este e composto de leituras de sensores vestıveis de ECG, TEB, e EDA, extraıdos de

40 (quarenta) pessoas performando atividades especıficas, que foram classificadas pelo

seu tipo em atividades fısica, emocional, mental e neutra (descanso), resultando em um

conjunto com 4480 instancias. Estes dados brutos foram previamente processados a fim de

extrair caracterısticas relevantes, resultando em 151 caracterısticas de TEB, 104 de EDA

e 174 de ECG, em um total de 533 caracterısticas. Estas sao compostas por parametros

medicos, assim como os seguintes parametros estatısticos: mediana, desvio padrao, media

aparada de 25%, assimetria, curtose, maximo, mınimo, percentil 25%, percentil 75%,

media geometrica, media harmonica e desvio padrao medio. O processo completo de

extracao de caracterısticas e detalhado por Mohino-Herranz et al. (2019).

Quanto aos desafios na area, Chen et al. (2020) indica a falta de padronizacao de

metodologias para comparacao justa entre diferentes metodos e, como tambem indicado

Page 18: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

2 Reconhecimento de Atividade Humana 15

por Lara e Labrador (2013), a dificuldade de definicao dos atributos a serem utilizados

no treinamento de modelos, alem da heterogeneidade dos dados disponıveis, tambem sao

dificuldades enfrentadas. Kim et al. (2010) aponta a dificuldade de reconhecimento de

atividades concorrentes e correlacionadas, devido a complexidade dos dados disponıveis

para analise. Por exemplo, uma pessoa poderia ler um livro e tomar cafe ao mesmo tempo,

dificultando a classificacao correta entre as atividades.

Page 19: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

16

3 Metodos

Neste capıtulo, os principais metodos relacionados ao tema do trabalho sao apresentados.

Descreve-se a Neuroevolucao pela definicao de RNAs e AEs, suas aplicacoes e desafios,

topicos relacionados a computacao de alto desempenho e algumas metricas de avaliacao

utilizadas.

3.1 Neuroevolucao

Neuroevolucao e uma subarea do aprendizado de maquina que propoe a geracao de topo-

logias de Redes Neurais Artificiais pela aplicacao de Algoritmos Evolutivos. Para com-

preende-la, portanto, esta secao introduz os conceitos pertinentes a RNAs e AES, assim

como as caracterısticas inerentes a Neuroevolucao.

3.1.1 Redes Neurais Artificiais

Redes Neurais Artificiais sao modelos bioinspirados nas redes neuronais do cerebro de

animais. Um neuronio biologico consiste em um corpo celular que recebe estımulos de

outros neuronios atraves de dendritos e, caso suficientemente estimulados, propagam este

impulso para outros neuronios atraves de seu axonio (Turner, 2015). Baseado nisso, RNAs

sao compostas por neuronios artificiais que podem ser comparados com um neuronio

biologico, como indica a Figura 3.1.

De forma geral, cada neuronio artificial recebe entradas de outros neuronios,

realiza uma soma ponderada pelos pesos sinapticos w de todas estas entradas com um

valor de vies e aplica uma funcao de ativacao f ao resultado. Esta funcao varia para cada

modelo, mas dentre as mais comuns, destacam-se a funcao logıstica sigmoide (Eq. 3.1), a

tangente hiperbolica (Eq. 3.2) e a Rectified Linear Unit (ReLU) (Eq. 3.3) (Ramachandran

et al., 2017).

σ(x) =1

1 + e−x(3.1)

Page 20: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

3.1 Neuroevolucao 17

(a) Representacao de umneuronio real1.

w0

I0

w1I1

w2I2

wn-1

In-1

...

f

Entradas

Soma Função deAtivação

Saída

Dendritos Corpo Celular Axônio

Viés

Pesos sinápticos

(b) Representacao de um neuronio artificial

Figura 3.1: Representacao de um neuronio biologico (a) e um artificial(b).

tanh(x) =ex − e−x

ex + e−x(3.2)

relu(x) = max(0,x). (3.3)

Com isso, uma RNA consiste em uma serie de neuronios artificiais interconecta-

dos sob determinada topologia. Esta topologia usualmente e constituıda por um grafo

direcionado ponderado e acıclico no caso de redes feed-forward, ou com ciclos em redes

recorrentes (Jain et al., 1996).

A estrutura de RNAs pode ser totalmente conectada, com camadas ocultas, ou

possuir uma organizacao esparsa ou arbitraria, em que os nos do grafo nao sao totalmente

conectados com seus vizinhos nem organizados em camadas bem definidas (Gajurel et al.,

2020). Estas organizacoes sao exemplificadas na Figura 3.2.

Um desafio geral enfrentado e a definicao especıfica de cada parametro da es-

trutura destas redes, como suas topologias - o numero de nos, a quantidade de camadas

ocultas e a conexao entre os nos - os pesos das conexoes, ou ate mesmo a funcao de

ativacao ideal para determinado tipo de problema. Abordagens para otimizacao dos pe-

sos como a backpropagation sao amplamente utilizadas mas, nestes casos, a topologia e

mantida constante e muitas vezes definida por tentativa e erro. Em geral, este processo

pode ser arduo e requerer a analise de especialistas. Portanto, o uso de metodos capazes

1Disponıvel em: <https://brasilescola.uol.com.br/o-que-e/biologia/o-que-e-neuronio.htm>

Page 21: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

3.1 Neuroevolucao 18

Figura 3.2: Exemplo de uma RNA totalmente conectada (esq.) e uma topologia arbitraria(dir.). Adaptado de Gajurel et al. (2020)

de modelar estas estruturas automaticamente mostra-se promissor.

3.1.2 Algoritmos Evolutivos

Algoritmos evolutivos sao tecnicas heurısticas estocasticas inspiradas na evolucao biologica

descrita por Darwin (1859), especialmente no conceito de sobrevivencia dos melhores. Es-

tes sao algoritmos populacionais em que um conjunto de solucoes candidatas (populacao)

sao evoluıdas atraves da aplicacao de operadores geneticos, como a mutacao e recom-

binacao, e avaliadas sob uma determinada funcao objetivo, que determina a qualidade

de cada indivıduo. Esta qualidade e utilizada para guiar a evolucao da populacao, em

que indivıduos de melhor qualidade sao preferencialmente escolhidos para continuarem no

processo evolutivo, garantindo a permanencia de caracterısticas mais promissoras durante

a busca.

Em geral, um algoritmo evolutivo e definido por uma serie de componentes, que

sao sua representacao (indivıduos), a funcao de aptidao, os operadores evolutivos (mutacao

e recombinacao), e criterios de selecao dos indivıduos pais para evolucao e permanencia

na populacao, como descrito por Eiben e Smith (2015). Estes componentes integram

diretamente o algoritmo, que pode ser visto no Algoritmo 1.

A esta categoria de tecnicas pertencem propostas amplamente conhecidas, tais

como os Algoritmos Geneticos (Goldberg, 1989), a Programacao Genetica (PG) (Koza,

Page 22: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

3.1 Neuroevolucao 19

Algoritmo 1: Esquema geral de um Algoritmo Evolutivo

1 inıcio2 Inicializa a populacao;3 Calcula a aptidao dos indivıduos;4 enquanto Criterio de parada nao for satisfeito faca5 Seleciona indivıduos para reproducao;6 Aplica a combinacao entre os indivıduos selecionados;7 Aplica a mutacao nos indivıduos resultantes;8 Calcula a aptidao dos indivıduos gerados;9 Seleciona indivıduos para a proxima populacao;

10 fim enqto

11 fim

1992) e a Programacao Genetica Cartesiana (Miller, 2011). Em geral, estas abordagens

possuem muitas semelhancas por compartilharem das caracterısticas definidas para os

AEs, diferindo em suas propostas de estruturacao de indivıduos ou operadores geneticos,

por exemplo.

Dentre os benefıcios do uso de AEs, destacam-se a possibilidade de busca por

solucoes de um problema sem uma definicao previa de sua estrutura exata (Poli et al.,

2008) e sua capacidade de explorar espacos de busca complexos e com possivelmente di-

versos mınimos locais sem convergir prematuramente para um deles (Galvan and Mooney,

2020).

3.1.3 Programacao Genetica Cartesiana

A Programacao Genetica Cartesiana (CGP) e uma tecnica de Programacao Genetica ori-

ginalmente proposta por Miller e Thomson (2000), em que a representacao dos indivıduos

e tipicamente dada por grafos direcionados acıclicos. Cada no codifica um gene de funcao

atraves de uma tabela de referencia (por exemplo: 0 para soma, 1 para subtracao e 2

para multiplicacao). As conexoes entre os nos sao genes de conexao, e determinam a

origem das entradas de cada no, enquanto o resultado obtido em alguns destes sao os

genes de saıda, representando o resultado final da CGP. Um exemplo desta representacao

e mostrado na Figura 3.3, em que existem tres nos, tres dados de entrada e duas saıdas.

Na representacao abaixo do grafo, os nos cinzas contem codigos para funcoes, como ja

indicado anteriormente, os brancos sao as conexoes entre os nos e os quadrados pretos

Page 23: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

3.1 Neuroevolucao 20

representam as saıdas, armazenadas como os ındices dos nos de onde os resultados sao

obtidos (neste caso, os nos de ındice 3 e 4). Nota-se que, caracteristicamente, nem to-

dos os nos da CGP precisam contribuir para a saıda do programa, sendo considerados

“inativos”. No exemplo, o no 5 esta inativo.

Input0

Input1

Input2

+ * -

Output

3 4 5

0 1 2 2 3 3 1 0 4 3 4

Output

Figura 3.3: Exemplo de um indivıduo da CGP. Adaptado de Melo Neto et al. (2018).

A mutacao na CGP padrao pode ser executada de duas formas: pontual ou

probabilisticamente (Miller, 2019). Na mutacao pontual, uma certa porcentagem pre

definida de genes do pai e alterada para gerar os filhos. Ja na mutacao probabilıstica,

cada gene pode ser alterado para um outro valor valido, dada uma probabilidade pre-

determinada. Esta segunda abordagem tende a ser computacionalmente mais custosa,

dado que todos os genes devem ser considerados, enquanto a primeira pode ser limitada

no numero de genes alterados.

Uma caracterıstica importante da mutacao na CGP e a possibilidade de mutacoes

ocorrerem em nos inativos, nao causando nenhuma alteracao efetiva no resultado do in-

divıduo. Algumas tecnicas foram propostas por Goldman e Punch (2013) para lidar com

este problema. A primeira, skip, consiste em comparar o filho gerado com o pai e, caso

seus genes ativos sejam iguais, a avaliacao nao e feita no filho. Ja a abordagem accumu-

late, ao identificar que um filho e identico ao pai, entra em um processo iterativo para

alterar o filho ate que este seja efetivamente diferente. Finalmente, a abordagem single

altera o processo de mutacao de forma que os genes a serem alterados sao sorteados alea-

toriamente ate que um gene ativo seja alterado, dando fim ao processo e garantindo que

o filho seja diferente do pai. Resultados experimentais mostram que estas abordagens

apresentam um desempenho semelhante entre si, mas superior a mutacao padrao.

Considerando a CGP padrao, nao ha a aplicacao de recombinacao entre in-

Page 24: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

3.1 Neuroevolucao 21

divıduos, uma vez que estudos preliminares indicaram uma baixa eficiencia desta etapa

em melhorar os indivıduos da CGP (Miller, 2011). Alem disso, uma estrategia evolutiva

comumente usada para evoluir a populacao da CGP e a (1 + λ). Nesta, a partir da po-

pulacao de tamanho (1 + λ), o melhor indivıduo da geracao corrente e selecionado para

gerar λ filhos atraves de mutacoes. Na proxima geracao, o melhor indivıduo e escolhido

dentre o pai e os filhos gerados, dando prosseguimento a geracao dos novos indivıduos.

Assim sendo, os parametros base da CGP sao λ, a probabilidade de mutacao, o

numero maximo de nos, a aridade dos nos, e o conjunto de funcoes. Um pseudo codigo

do processo de busca da CGP e mostrado no Algoritmo 2.

Algoritmo 2: Algoritmo de busca da CGP

1 inıcio2 Inicializa os parametros (λ, PROB MUT, MAX GEN, etc) ;3 Cria a populacao inicial com (1 + λ) indivıduos aleatoriamente;4 Avalia a aptidao dos indivıduos;5 α ← indivıduo com melhor aptidao;6 for gen = 1 ate MAX GEN do7 for i = 1 ate λ do8 Avalia a aptidao do indivıduo i ;9 se Acuracia de i ≥ Acuracia de α entao

10 α← i ;11 fim se

12 end for13 Cria a proxima geracao com α e com λ copias de α aplicando

mutacoes nas topologias e pesos;

14 end for

15 fim

3.1.4 Caracterısticas da Neuroevolucao

Considerando a dificuldade de configurar manualmente as topologias de RNAs, a definicao

automatica destas topologias atraves de AEs vem ganhando popularidade, dados os be-

nefıcios destes algoritmos. Esta combinacao de tecnicas compoe a area da Neuroevolucao.

Como pode ser observado na Figura 3.4, as etapas presentes em um algoritmo

evolutivo compoem, de forma geral, o processo neuroevolutivo. Por isso, as consideracoes

sobre AEs quanto a definicao da estrutura dos indivıduos, operadores geneticos e metricas

de avaliacao continuam relevantes neste contexto. Estas caracterısticas, entretanto, sao

Page 25: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

3.1 Neuroevolucao 22

Figura 3.4: Esquema Geral de um algoritmo neuroevolutivo.

definidas com base nas propriedades das RNAs sendo evoluıdas. Um exemplo simples e

a aplicacao de um AG para otimizacao dos pesos de conexoes de uma rede neural (Yao,

1999). Nesse caso, o indivıduo precisa representar somente uma sequencia de valores

numericos que representem estes pesos, e nao necessariamente a rede completa, que e

avaliada para cada combinacao destes pesos, proposta pelo AG.

E importante considerar que existem desvantagens associadas a neuroevolucao.

O principal ponto negativo e o alto custo computacional associado aos AEs. Devido a sua

generalidade, estas tecnicas requerem um alto numero de avaliacoes de funcao objetivo

por geracao, um problema que e agravado com o uso de grandes bases de dados (Turner,

2015; Galvan and Mooney, 2020).

3.1.5 Programacao Genetica Cartesiana de Redes Neurais Ar-

tificiais

Atraves de uma adaptacao da CGP padrao para o treinamento de RNAs, Khan et al.

(2010) propuseram a Programacao Genetica Cartesiana de Redes Neurais Artificiais. Esta

tecnica estende a estrutura base da CGP pela adicao de pesos associados as conexoes entre

os nos, como exemplificado na Figura 3.5. Na imagem, representam-se tres nos, tres dados

de entrada e duas saıdas. Na representacao abaixo do grafo, os nos cinzas contem codigos

para funcoes (F0, F1, F2), os brancos sao as conexoes entre os nos com seus respectivos

pesos, os quadrados pretos sao os ındices para os nos de saıda e o no 5 esta inativo. Nota-

se que as principais diferencas para a CGP podem ser identificadas na presenca dos pesos

e nos genes de funcao que, neste caso, podem ser funcoes de ativacao das Redes Neurais,

Page 26: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

3.1 Neuroevolucao 23

Input0

Input1

Input2

F0 F1 F2

Output

0.1

4 5

F0 1 2 F1 3 3 F2 0 4 3

-0.2

0.5

0.4

-0.3

3

0.2 0.50.1 -0.2 -0.3 0.4

0.2

Output

4

Figura 3.5: Exemplo de um indivıduo da CGPANN. Adaptado de Melo Neto et al. (2018).

de forma que a RNA e codificada diretamente, tendo toda sua topologia representada

pelo indivıduo.

Os parametros e o processo evolutivo desta tecnica sao similares aqueles da CGP,

exceto pela mutacao, em que, adicionalmente as mudancas na topologia e na funcao de

ativacao, os pesos tambem podem ser alterados para novos valores dentro de um intervalo

pre definido. Como apontado por seus autores, a tecnica se mostrou competitiva em

relacao a outros algoritmos neuroevolutivos como NEAT, NeVA, ESP e CoSyNE por gerar

solucoes com um menor numero de avaliacoes para os problemas estudados. Entretanto,

Turner (2015) aponta que a CGPANN tende a obter resultados pouco satisfatorios em

problemas de classificacao, devido principalmente a evolucao conjunto de topologia e

pesos da rede, necessitando de um processo para o ajuste fino destes parametros a fim de

melhorar seus resultados.

Um pseudo codigo da CGPANN e mostrado no Algoritmo 3, baseado naquele

apresentado por Melo Neto et al. (2018). Neste, o processo evolutivo conta com avaliacoes

sobre dados de treinamento, validacao e teste, como aplicado no presente trabalho. Nesta

configuracao, o melhor indivıduo para os dados de treinamento e utilizado para gerar

novos indivıduos (linha 18), enquanto o melhor sob os dados de validacao e utilizado

para verificar a acuracia final sob os dados de teste (linha 20). Neste caso, os dados de

validacao nao sao utilizados como decisao de parada para o algoritmo de busca, e sim

para identificar indivıduos com uma boa acuracia e que nao estejam sobre-ajustados aos

dados de treinamento. A divisao dos dados em grupos de treinamento, validacao e teste

e detalhada no Capıtulo 6.

Page 27: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

3.2 Computacao de Alto Desempenho 24

Algoritmo 3: Pseudo Codigo da CGPANN

1 inıcio2 Inicializa os parametros (λ, PROB MUT, MAX GEN, etc) ;3 Cria (1 + λ) indivıduos;4 Avalia a acuracia dos indivıduos (TREINAMENTO);5 Cria a rede α para armazenar a melhor (TREINAMENTO);

6 Cria a rede β para armazenar a melhor (VALIDACAO);7 for gen = 1 ate MAX GEN do8 for i = 1 ate λ do9 Avalia a acuracia do indivıduo i (TREINAMENTO);

10 Avalia a acuracia do indivıduo i (VALIDACAO);11 se Acuracia de i ≥ Acuracia de α (TREINAMENTO) entao12 α← i ;13 fim se

14 se Acuracia de i ≥ Acuracia de β (VALIDACAO) entao15 β ← i ;16 fim se

17 end for18 Cria λ copias de α e aplica mutacoes nas topologias e pesos;

19 end for20 Avalia a acuracia de β (TESTE);

21 fim

3.2 Computacao de Alto Desempenho

Uma alternativa para lidar com o alto custo computacional e pela aplicacao de tecnicas

de computacao de alto desempenho. Este tema, entretanto, tange uma ampla gama de

tecnicas, conceitos, ferramentas e algoritmos que fogem do escopo deste trabalho. Por isso,

nas subsecoes seguintes, os principais topicos relacionados ao trabalho aqui desenvolvido

sao brevemente introduzidos. Assim, discute-se o OpenCL, ferramenta utilizada para a

geracao do codigo paralelo, as unidades de processamento grafico e algumas tecnicas de

paralelismo sobre programas geneticos.

3.2.1 OpenCL

O OpenCL (Open Computing Language) e um padrao aberto para programacao paralela

em plataformas heterogeneas (Khronos, 2011). Este framework permite o desenvolvi-

mento de aplicacoes para dispositivos fısicos de diferentes tipos, tais como CPUs e GPUs

de diferentes fabricantes (Gaster et. al., 2013). Aqui, esta ferramenta e brevemente intro-

duzida com o objetivo de auxiliar no entendimento das tecnicas paralelas desenvolvidas e

Page 28: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

3.2 Computacao de Alto Desempenho 25

Hospedeiro

......

......

......

......

...Dispositivo

Unidade de ComputaçãoElemento deProcessamento

Figura 3.6: Organizacao da plataforma OpenCL, adaptado de Khronos (2011).

do funcionamento dos dispositivos utilizados.

O modelo de plataforma do OpenCL e composto por um dispositivo hospedeiro

(host) conectado a diversos dispositivos. Cada um destes dispositivos, independente do

seu tipo (CPU ou GPU) sao compostos por uma ou mais unidades de computacao -

do ingles, compute units (CU) - que correspondem aos nucleos do processador. Cada

uma destas unidades e formada por um ou mais elementos de processamento - processing

elements (PE) - onde as instrucoes sao efetivamente executadas. A Figura 3.6 representa

esta organizacao.

A execucao do codigo OpenCL e dividida entre o codigo que executa no sis-

tema hospedeiro e aquele executado nos dispositivos (Khronos, 2011). O programa do

hospedeiro executa normalmente na CPU, e e responsavel por gerenciar a execucao dos

programas paralelos, controlando os dispositivos, os objetos de memoria e enfileirando

instrucoes a serem executadas em paralelo. Estas operacoes sao disponibilizadas atraves

da interface de programacao de aplicacoes (API) do OpenCL. As instrucoes que executam

nos dispositivos sao chamadas de kernels. Estas sao funcoes escritas em OpenCL C, um

subconjunto de instrucoes da especificacao C99, que executam o codigo em paralelo nos

elementos de processamento.

A execucao dos kernels ocorre em um espaco N-dimensional, que pode ter uma,

duas ou tres dimensoes. Cada elemento independente corresponde a um item de trabalho

(work-item), que executa o codigo paralelo sob diferentes dados. Estes itens sao agrupados

em grupos de trabalho (work-groups), que podem ser sincronizados e dividir um mesmo

espaco de memoria. Quanto a nomenclatura, o numero de itens dentro de um grupo de

Page 29: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

3.2 Computacao de Alto Desempenho 26

Figura 3.7: Abstracao da organizacao dos dispositivos em itens e grupos de trabalho,obtido de Tompson e Schlachter (2012).

trabalho e chamado de tamanho local (local-size), enquanto o numero total de itens de

trabalho utilizados e o tamanho global (global-size). Este conceito e exemplificado na

figura 3.7.

Uma outra abstracao importante e o modelo de memoria. Esta e dividida em

quatro espacos: a memoria global, a constante, a local e a privada (Khronos, 2011). A

memoria global e acessıvel por todos os itens e grupos de trabalho, e e alocada pelo hospe-

deiro. A memoria constante faz parte da memoria global, mas serve somente para leitura

e, em alguns casos, pode ser implementada como cache, sendo mais eficiente. A regiao

da memoria local e compartilhada dentro de um mesmo grupo de trabalho, enquanto a

memoria privada remete a um unico item de trabalho. Estes espacos de memoria estao

presentes nos dispositivos paralelos, enquanto a memoria do hospedeiro, correspondente

a memoria disponıvel em CPU durante a execucao do codigo sequencial, existe separa-

damente e instrucoes para leitura e escrita entre estes dois espacos sao necessarias. O

modelo de memoria descrito e esquematizado na Figura 3.8.

Page 30: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

3.2 Computacao de Alto Desempenho 27

Unidade de Computação 1

El. Processamento 1

Memória privada 1

El. Processamento M

Memória privada M

Memória Local 1

...

Unidade de Computação N

El. Processamento 1

Memória privada 1

El. Processamento M

Memória privada M

Memória Local N

...

Memória Global / Constante

Dispositivo

Hospedeiro

Memória do hospedeiro

...

Figura 3.8: Organizacao da memoria no OpenCL. Adaptado de Khronos (2011).

3.2.2 Unidades de Processamento Grafico

Associado ao paralelismo, o uso de Unidades de Processamento Grafico (GPUs) para a

reducao do tempo de processamento de aplicacoes gerais, nao necessariamente relaciona-

das a graficos, tem mostrado resultados promissores. O modelo SIMD (Single Instruction,

Multiple Data) destas placas permitem um paralelismo massivo sobre dados, caracterıstica

relevante para aplicacoes de aprendizado de maquina (Steinkraus et al., 2005).

A arquitetura de GPUs e composta por uma grande quantidade de nucleos sim-

ples, correspondentes a elementos de processamento. Todos estes elementos dentro de

um grupo de trabalho executam a mesma operacao por ciclo, mas sobre dados diferen-

tes, caracterizando o modelo SIMD. Em relacao as Unidades de Processamento Central

(CPUs), as GPUs possuem uma quantidade reduzida de memoria e cache, de forma que

esta e uma caracterıstica importante a ser considerada durante a elaboracao de algoritmos

na GPU. A comparacao da organizacao destes processadores e mostrada na Figura 3.9.

Nota-se a presenca de uma estrutura de controle mais complexa e uma quantidade grande

de cache em CPUs, necessarias para o paralelismo de instrucoes presentes neste tipo de

processador.

Uma caracterıstica importante das GPUs e que seus itens de trabalho (ou threads)

estao sempre agrupados em um tamanho pre definido. Por exemplo, em GPUs da NVI-

Page 31: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

3.2 Computacao de Alto Desempenho 28

Figura 3.9: Comparacao da estrutura de CPUs e GPUs.2

DIA, 32 itens sao agrupados em um grupo chamado de warp, enquanto em arquiteturas

da AMD, 32 ou 64 itens sao agrupados em grupos denominados wavefronts (aqui vamos

utilizar a nomenclatura wavefront por ser a mais comum ao OpenCL). Nesta organizacao,

todos os itens de um wavefront executam exatamente a mesma instrucao a cada instante

de forma paralela. Caso alguma instrucao entre alguns destes itens seja divergente, as

instrucoes de cada thread sao executadas sequencialmente (NVIDIA, 2017). Este tipo de

execucao configura a arquitetura “single instruction, multiple threads” (SIMT) que, em

linhas gerais, e uma extensao da arquitetura SIMD pela utilizacao de threads.

Existe um total de seis tipos de espaco de memoria em GPUs: de registrador,

constante, compartilhada, local, global e de texturas (Mei e Chu, 2016). Em geral, estes

espacos sao diretamente mapeaveis a abstracao fornecida pelo OpenCL.

A memoria global e a que possui maior tamanho e e acessada pelos elementos de

processamento por transacoes de tamanho fixo, como 32, 64 ou 128 bytes. Esta e uma

memoria de leitura e escrita com alta latencia e, em dispositivos mais recentes, dotadas

de sistema de cache. A principal caracterıstica desta memoria e seu acesso coalescido

(agregado, aglutinado). Isso quer dizer que, quando os elementos de processamento dentro

de um wavefront precisam acessar a memoria global, estas requisicoes sao aglomeradas

no mınimo de transacoes necessarias para suprir as requisicoes (NVIDIA, 2017). Assim,

caso estes acessos sejam dispersos, uma grande quantidade de dados nao utilizadas sao

carregados, dado que as leituras sempre ocorrem em blocos de tamanho fixo. A Figura

3.10 ilustra uma situacao simples em que o desalinhamento dos enderecos acessados,

2Disponıvel em: <https://sites.google.com/site/daveshshingari/explorations/computer-architecture/gpu-architecture>

Page 32: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

3.2 Computacao de Alto Desempenho 29

representados pelas setas, gera um acesso extra a memoria, representado pelos blocos

vermelhos. Em casos de acessos dispersos, este numero pode aumentar significativamente.

(a) Acesso coalescido.

(b) Acesso sequencial, mas desalinhado.

Figura 3.10: Numero de segmentos necessarios para atender a uma requisicao em umacesso coalescido (a) e um desalinhado (b). Obtido de NVIDIA (2013).

A memoria de texturas existe na mesma regiao que a memoria global, apresen-

tando tambem uma alta latencia. Alem disso, apresenta um sistema de cache e funciona

somente para leitura. Sua principal diferenca e que seu cache e otimizado para acessos

com localidade 2D, ou seja, elementos de um grupo de trabalho que acessam enderecos

de textura proximos tendem a ter um desempenho melhor. Portanto, ela e indicada para

casos em que o acesso a memoria nao seja coalescido (caso contrario, o uso de memoria

global pode ser melhor) (NVIDIA, 2017).

A memoria compartilhada corresponde a memoria local no OpenCL, acessıvel

somente aos elementos de processamento dentro de uma unidade de computacao. Esta

memoria e mais rapida que a memoria global, porem disponıvel em menor quantidade.

Para explora-la, algumas tecnicas transferem uma unica vez dados da memoria global

para a compartilhada, utilizando-a para os acessos subsequentes.

3.2.3 Programacao Genetica Paralela

Koza (1992) apresenta de forma teorica as principais maneiras pelas quais um metodo

de programacao genetica e naturalmente paralelizavel. Na primeira delas, o paralelismo

sob o conjunto de dados pode ser explorado, dado que as execucoes de um indivıduo

sob as diferentes entradas sao independentes, como exemplificado na Figura 3.11. Nota-

se, entretanto, que uma etapa para acumular os resultados parciais e necessaria, dado

Page 33: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

3.2 Computacao de Alto Desempenho 30

Acumula Resultados

Avaliaentrada 1

...Avaliaentrada 2

Avaliaentrada N

Indivíduo 1 1Dados

 2...

 N

Figura 3.11: Esquema do paralelismo sob dados para PGs. Adaptado de Koza (1992).

AvaliaIndivíduo 1

 1Dados

 2...

 N

AvaliaIndivíduo 2

AvaliaIndivíduo M

População

...

Evolução

Figura 3.12: Esquema do paralelismo sob indivıduos para PGs. Adaptado de Koza (1992).

que a qualidade final do indivıduo depende de todos os seus resultados sob as diferentes

entradas do conjunto de dados. Ja a segunda abordagem trata do paralelismo sob a

populacao, uma vez que cada indivıduo pode ser avaliado independentemente dos outros,

como esquematizado na Figura 3.12.

No contexto da neuroevolucao e do presente trabalho, a GPU e utilizada de

forma a gerar um paralelismo massivo sobre a etapa de avaliacao do algoritmo evolutivo,

permitindo a paralelizacao tanto em nıvel de indivıduos, quanto em nıvel de dados, como

exemplificado na Figura 3.13. Os indivıduos (modelos) podem ser mapeados para as

unidades de computacao da GPU, que podem avaliar os indivıduos simultaneamente sobre

as entradas do conjunto de dados em seus elementos de processamento, associando as duas

abordagens descritas anteriormente.

Page 34: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

3.3 Metricas 31

...

CU1 CUp Global/constant memory

Local memory Local memory

PE1,1

PE1,q

...

Private Private

PEp,1

PEp,q

...

Private Private

Training data

...

...

...

{

{...

Programs

Figura 3.13: Esquema do uso da GPU para a avaliacao paralela dos indivıduos de umAE. Adaptado de Russo et al. (2017).

3.3 Metricas

Neste trabalho, algumas metricas de desempenho sao utilizadas para a analise dos resulta-

dos. Portando, uma breve introducao se mostra necessaria a fim de garantir a compreensao

dos metodos aplicados. Estas metricas sao utilizadas em problemas de classificacao a fim

de verificar efetivamente a capacidade preditiva do modelo.

Considerando um problema de classificacao binaria, temos duas opcoes de clas-

sificacao, uma positiva e uma negativa (Shmueli, 2019). Por exemplo, se estamos inte-

ressados em classificar, a partir de dados medicos, se uma pessoa esta ou nao doente,

classificamos positivamente as amostras que indicam a doenca e negativamente as amos-

tras de pessoas saudaveis.

Neste caso, existem dois erros que podem ser cometidos durante a classificacao:

um falso positivo (FP), quando classifica-se uma amostra como positiva quando esta e, na

verdade, negativa; ou um falso negativo (FN), em que uma amostra positiva e classificada

como negativa (Murphy, 2012). De forma similar, ao classificarmos uma amostra correta-

mente, a designamos como verdadeiramente positiva (TP) ou verdadeiramente negativa

(TN). Estes dados podem ser usados para construir a chamada “matriz de confusao”, que

resume a capacidade do modelo em classificar corretamente as diferentes classes, como

exemplificado na Figura 3.14.

A precisao de um modelo (Eq. 3.4) determina sua capacidade em, dada uma

amostra positiva, classifica-la corretamente, correspondendo a proporcao, dentre amostras

Page 35: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

3.3 Metricas 32

Positivo Negativo

Classe Esperada

ClassePredita

TP FPPositivo

FN TNNegativo

Figura 3.14: Exemplo da estrutura de uma matriz de confusao.

positivamente classificadas, que realmente sao positivas. Ja a revocacao (Eq. 3.5) - do

ingles, recall - corresponde a proporcao entre as amostras classificadas corretamente como

positivas e o numero de amostras verdadeiramente positivas, ou seja, a proporcao de itens

positivos que sao corretamente classificados. A acuracia (Eq. 3.6) indica a proporcao de

itens que foram corretamente classificados, seja positiva ou negativamente.

Uma outra metrica comumente utilizada e a fβ-score (Eq. 3.7). Esta e a media

harmonica ponderada entre a precisao e revocacao, de forma que o parametro β determina

a importancia maior ou menor para cada um destes valores. Nota-se para β entre 0 e

1, maior a importancia da precisao, valores maiores que 1 beneficiam a revocacao e para

β = 1, ambas as metricas sao igualmente consideradas.

Precisao(P ) =TP

TP + FP(3.4)

Revocacao(R) =TP

TP + FN(3.5)

Acuracia(A) =TP + TN

TP + TN + FP + FN(3.6)

Fβ = (1 + β2)Precisao×Revocacao

β2 × Precisao+Revocacao(3.7)

E importante considerar que este tipo de analise pode ser naturalmente aplicado

a problemas multiclasse. Nesta situacao, entretanto, as metricas anteriormente descritas

sao calculadas parada cada classe especıfica. A Figura 3.15 mostra um exemplo de uma

matriz de confusao para um problema multiclasse em que poderıamos estar classificando

Page 36: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

3.3 Metricas 33

se uma imagem e de um carro, uma moto ou de um onibus. Neste sentido, tomando a

classe “carro” como exemplo, podemos calcular a precisao, a revocacao e os f-scores para

a classe, assim como a acuracia para o modelo como um todo, como segue:

Carro Moto

Classe Esperada

ClassePredita

10 5Carro

2 7Moto

Ônibus

4

1

1 2Ônibus 8

Figura 3.15: Exemplo da estrutura de uma matriz de confusao para um problema multi-classe.

Precisao Carro =10

10 + 5 + 4= 0.53

Revocacao Carro =10

10 + 2 + 1= 0.76

Acuracia =10 + 7 + 8

40= 0.62

F1 = (1 + 12)0.53× 0.76

12 × 0.53 + 0.76= 0.62

F2 = (1 + 22)0.53× 0.76

22 × 0.53 + 0.76= 0.69

Page 37: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

34

4 Revisao bibliografica

Neste capıtulo, apresenta-se trabalhos relacionados aos problemas propostos na monogra-

fia. Assim, abordagens sobre a solucao do Problema de Reconhecimento de Atividade sao

discutidas, assim como pesquisas sobre a CGPANN e em computacao de alto desempenho

aplicada sobre programas geneticos, em especial a CGP.

4.1 Problema de Reconhecimento de Atividade

Os primeiros trabalhos com alguma relacao ao RAH data da decada de 90, por um estudo

de postura e reconhecimento de movimentos por Foerster et. al. (1999). Desde entao,

outros trabalhos vem sendo propostos na area para em aplicacoes e atraves do uso de

diferentes tecnicas e algoritmos. Assim sendo, os trabalhos aqui apresentados sobre o

RAH seguem uma ordem cronologica, focados nas tecnicas empregadas para a solucao do

problema.

Os autores Kasteren et. al. (2008) aplicaram Modelos Ocultos de Markov (HMM)

e Campos Aleatorios Condicionais (CRF) para o reconhecimento de atividades do dia-a-

dia dentro de uma casa, no qual os HMM obtiveram os melhores resultados, com 79.4%

de acuracia de classificacao. Ja Jatoba et. al. (2008) usaram outros classificadores, como

k-vizinhos mais proximos (kNN), Naive Bayes (NB), Arvores de Classificacao e Regressao

(CART) e sistema de inferencia neuro-fuzzy adaptavel (ANFIS) na classificacao de ati-

vidades semelhantes. Neste caso, as tecnicas CART e ANFIS obtiveram os melhores

resultados, com 86.6% e 85.9% de acuracia de classificacao, respectivamente.

Em um trabalho posterior, Zhu e Sheng (2009) utiliza HMMs associadas a Redes

Neurais Artificiais treinadas pela ferramenta de Redes Neurais do software MATLAB

(Neural Network Toolbox ), tambem para a classificacao de atividades do dia-a-dia. Neste

caso, entretanto, as RNAs sao usadas em uma etapa anterior a classificacao, alimentando

o HMM com seus resultados, e nao diretamente na classificacao dos dados. Os autores

relataram acuracias de classificacao de ate 92.50%.

Page 38: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

4.1 Problema de Reconhecimento de Atividade 35

No contexto do uso de RNAs, Sharma et al. (2008) e Oniga e Suto (2014) apli-

caram estes classificadores sobre o problema de RAH. No primeiro trabalho, atividades

gerais como descansar, caminhar e andar sao classificadas, enquanto no segundo, o foco

e identificar a postura corporal e dos bracos. Em ambos os trabalhos, as RNAs foram

treinadas pela ferramenta de Redes Neurais do MATLAB. Acuracias de classificacao de

91.82% e 99% foram relatadas, respectivamente.

Uma tendencia atual e a aplicacao de metodos de Aprendizado Profundo em

problemas de aprendizado de maquina e, neste sentido, algumas aplicacoes sobre o RAH

vem surgindo. Por exemplo, Duffner et. al. (2014) utilizou Redes Neurais Convolucionais

para o reconhecimento de gestos a partir de dados de acelerometros e giroscopios, obtendo

resultados melhores que outros metodos do estado da arte para o conjunto de dados

explorado, como HMM. Semelhantemente, Ronao and Cho (2016) tambem aplica CNNs

no problema, em um estudo da capacidade desta tecnica em extrair automaticamente

caracterısticas complexas do conjunto de dados, tambem obtendo melhores resultados

que outros modelos da literatura, como NB, MLP e SVMs, sem a necessidade de definir

caracterısticas manualmente.

Focado no processo de selecao de caracterısticas, Mohino-Herranz et al. (2019)

aplica um algoritmo genetico (AG) para selecionar diferentes quantidades destas carac-

terısticas. O foco e a classificacao do tipo de atividade sendo performada, como atividade

mental, emocional, fısica e neutra, e as seguintes tecnicas sao usadas: Classificador de

Mınimos Quadrados Linear (LSLC) e Quadratico (LSQC), Maquinas de Vetor de Suporte

(SVM), Perceptrons Multicamada (MLP), Florestas Aleatorias (RFs), k-vizinhos mais

proximos (kNN) e sua variacao de centroides (CDNN). Os autores indicam que AGs sao

eficientes na selecao de atributos, diminuindo de 533 para 40 as caracterısticas necessarias

para obtencao do melhor erro de classificacao, sendo este de 22.2% para um classificador

linear de mınimos quadrados.

Existe uma grande variedade de problemas aos quais o RAH e aplicavel. Nota-se

que todos estes trabalhos tiveram sucesso em utilizar diferentes modelos para diferentes

aplicacoes. Naturalmente, o processo de aquisicao de dados, o ambiente de aplicacao, os

sensores utilizados e o processo de extracao de caracterısticas diferem substancialmente

Page 39: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

4.2 Computacao de Alto Desempenho 36

entre os trabalhos, dificultando uma comparacao justa entre os resultados apresentados.

Por isso, na analise de trabalhos existentes na literatura, as tecnicas, os conjuntos de dados

utilizados e os resultados finais apresentam muitas diferencas, dificultando a comparacao

justa entre eles. Sendo assim, a analise destes trabalhos foca nos metodos computacionais

empregados a fim de compara-los com a proposta do presente trabalho.

Entretanto, ressalta-se que uma caracterıstica em comum e a descricao do pro-

cesso de aquisicao de dados e da selecao de caracterısticas que, entretanto, nao sao dire-

tamente estudados no presente trabalho, dado que o conjunto de dados utilizado ja foi

previamente pre processado por Mohino-Herranz et al. (2019). Aqui, dada a popularidade

dos metodos de aprendizado profundo e a aplicacao de diferentes tecnicas para o RAH,

propoe-se a aplicacao da CGPANN para soluciona-lo e analisar seu desempenho neste

contexto.

4.2 Computacao de Alto Desempenho

A CGPANN foi inicialmente proposta por Khan et al. (2010) e, desde entao, tem sido apli-

cada com sucesso em diferentes problemas, como na deteccao de cancer de mama (Ahmad

e Khan, 2012), na reconstrucao de sinais de audio (Khan e Khan, 2017) e na previsao

de sobrecargas eletricas Khan e Arshad (2016). O foco destes trabalhos, entretanto, e

na resolucao dos problemas e na acuracia dos modelos, enquanto detalhes sobre o custo

computacional e o tempo de execucao nao sao discutidos. Entretanto, este ainda e um

problema corrente no que tange Algoritmos Evolucionarios como a CGPANN, ainda que

programas geneticos sejam naturalmente paralelos.

Em um dos primeiros trabalhos sobre PG, Koza (1992) descreve as principais

abordagem de paralelismo sobre esta tecnica. A primeira e o paralelismo sobre o conjunto

de dados, em que as avaliacoes de funcao objetivo sao executadas em paralelo. A segunda

trata do paralelismo sobre a populacao, em que os indivıduos da PG sao executados em

paralelo.

Em trabalhos posteriores, ambas as abordagem foram aplicadas simultaneamente

com sucesso. Em um deles, (Robilliard et. al., 2009; Robilliard et al., 2009) utilizaram

GPUs e a linguagem CUDA para explorar o paralelismo de PGs baseados em arvores,

Page 40: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

4.2 Computacao de Alto Desempenho 37

resultando em uma aceleracao de ate 80x em relacao a execucao sequencial.

Entretanto, um dos primeiros trabalhos a propor o uso de GPUs foi apresentado

por Yu et. al. (2005). Neste, tanto a avaliacao quanto a evolucao dos indivıduos foram

implementadas para a GPU, e os indivıduos eram representados como texturas 2D na placa

grafica. Em relacao ao codigo em CPU, os autores relataram uma aceleracao de ate 17x.

Uma tecnica similar de paralelismo sobre dados e indivıduos foi aplicada por (Augusto e

Barbosa, 2013), utilizando GPUs e o framework OpenCL. Neste, PGs baseados em arvores

tambem foram utilizados e uma aceleracao de ate 126x foi atingida em comparacao ao

codigo sequencial.

A grande parte dos trabalhos que tratam de tecnicas paralelas de programacao

genetica utilizam a estrutura de arvores (Chitty, 2017), de forma que sao poucos os tra-

balhos que aplicam a CGP neste contexto. Utilizando esta estrutura, Harding e Banzhaf

(2007) implementa uma abordagem de paralelismo sob dados em GPUs, atingindo uma

aceleracao de 22.38x sobre o codigo em CPU. Em um trabalho seguinte, Harding e Banzhaf

(2009) propoe uma implementacao da CGP distribuıda, tambem utilizando GPUs. Neste

caso, o codigo CUDA e gerado, distribuıdo por um cluster e compilado em tempo de

execucao. Em ambos estes trabalhos, entretanto, a CGP e utilizado de forma arbitraria,

de forma que os autores indicam que os resultados poderiam ter sido obtidos utilizando

outros tipos de programacao genetica, como a linear ou a baseada em arvores.

Em um trabalho um pouco mais recente, (Vasıcek e Slany, 2012) traduz a fase de

avaliacao dos indivıduos da CGP para um codigo de maquina binario para CPUs. Neste

caso, a CGP e utilizada por poder ter seus nos avaliados de forma linear, ao inves de

uma avaliacao recursiva de sua estrutura, como geralmente e aplicado para tecnicas que

utilizam uma estrutura de arvore, em contraste com a representacao em grafos da CGP.

A tecnica atingiu uma aceleracao de ate 177x em comparacao a abordagens em que as

estruras sao interpretadas, sem a compilacao de codigo de maquina.

Page 41: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

38

5 Metodos Propostos

Neste capıtulo, os metodos propostos para o trabalho sao apresentados. O uso da CG-

PANN para o RAH e brevemente introduzido e da-se enfase as estruturas de dados de-

senvolvidas para a CGPANN paralela.

A aplicacao da CGPANN para o RAH e feita de forma direta, utilizando o con-

junto de dados “Activity recognition using wearable physiological measurements”, previ-

amente discutido no Capıtulo 2. Neste caso, todo o conjunto de 4480 instancias e 533

caracterısticas e utilizado como entrada para o algoritmo. Os indivıduos da CGPANN

representam os modelos para o RAH, que sao inicialmente gerados de forma aleatoria e

automaticamente evoluıdos, atraves do fluxo do algoritmo da CGPANN.

As tecnicas paralelas implementadas para a CGPANN adotam o paralelismo si-

multaneo sobre dados e sobre a populacao, como previamente descrito no Capıtulo 3.

Sendo assim, propoe-se um total de oito estruturas de dado para representar os indivıduos

da CGPANN, objetivando principalmente explorar caracterısticas especıficas das GPUs,

como a latencia de acesso a memoria global e sua memoria de texturas.

5.1 Padrao

A primeira estrutura de dados proposta e referida como “Padrao”. Esta consiste em nos

contendo ındices inteiros para suas conexoes de entrada, seja do conjunto de dados ou

de outros nos, assim como uma lista dos pesos em ponto flutuante associados a cada

entrada. Estes nos sao indexados por uma lista de ındices na estrutura principal, que

tambem armazena os ındices dos nos de saıda e estruturas auxiliares, como uma lista de

nos ativos. Esta estrutura e representada na Figura 5.1.

Esta primeira proposta nao possui melhorias quanto ao espaco de memoria ocu-

pada ou ao numero de acessos a memoria global da GPU. Entretanto, esta e a estrutura

utilizada em codigos sequenciais, alem de ser usada como base para as representacoes des-

critas a seguir, servindo de referencia para comparacoes de performance com as demais.

Page 42: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

5.2 Compacta 39

Nó ...

Int ...

Nós

Nós ativos

Int Saídas

AptidãoFloat

IndivíduoFunçãoInt

Int

Int

Float

Ativo

Inputs

Pesos

FunçãoInt

Int

Int

Float

Ativo

Inputs

Pesos

FunçãoInt

Int

Int ...

Float ...

Ativo

Inputs

Pesos

FunçãoInt

Int

Int ...

Float ...

Ativo

Inputs

Pesos

...Número Nós ativosInt

Figura 5.1: Exemplo da estrutura da CGPANN padrao.

5.2 Compacta

A abordagem proposta para reduzir os acessos a memoria global da GPU consiste no uso

da estrutura “Compacta”. Esta representacao possui a mesma organizacao da estrutura

“Padrao”, mas os campos que armazenam os ındices de entradas e de nos ativos sao

compactados em memoria. Nota-se que estes ındices, armazenados como inteiros de 32-

bits sem sinal, sao limitados ao valor maximo do numero de nos somado ao numero de

entradas possıveis do conjunto de dados. Desta forma, para representa-los completamente

em memoria, nem todos os 32-bits ocupados sao efetivamente necessarios. Para fazer

uso dessa caracterıstica, dois valores distintos de 16-bits sao armazenados em um unico

endereco de 32-bits, reduzindo pela metade o espaco em memoria necessario para estes

campos.

Esta tecnica faz uso de operacoes bit-a-bit para deslocar e aplicar mascaras aos

bits relevantes na localizacao adequada, permitindo compactar e recuperar estes valores.

Por exemplo, dados dois inteiros sem sinal A e B. Primeiro desloca-se A por 16 bits para a

esquerda (A << 16), preenchendo os bits mais significantes com zeros. Feito isso, aplica-

se a operacao bit-a-bit AND entre (A << 16) e B ((A << 16) AND B). Este conceito e

exemplificado na Figura 5.2.

Page 43: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

5.3 Imagem 40

16

46

16 46

0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0

0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

32-bitInteger Value in Binary

(Left shift 16) AND 46

Figura 5.2: Exemplo da manipulacao de memoria para armazenarmos dois inteiros emuma mesma posicao de memoria.

5.3 Imagem

Com o objetivo de utilizar a memoria de texturas da GPU, os indivıduos da CGPANN sao

mapeados em matrizes 2D que, na placa grafica, sao interpretadas como imagens. Esta

abordagem permite que a selecao do numero de canais RGBA utilizados para a imagem,

de forma que determinam-se as estruturas de “Imagem R”, “Imagem RG” e “Imagem

RGBA”.

No codigo em GPU, uma imagem e acessada atraves de seus pixels e, dessa forma,

uma imagem que possui somente o canal R armazena um valor por pixel, enquanto uma

RG possui dois valores e a RGBA, quatro. Estes valores podem ser configurados como

inteiros de 16 ou 32 bits. Neste caso, utilizam-se valores inteiros de 32-bits cada.

A representacao 2D dos indivıduos e exemplificada na Figura 5.3. Nesta, e

possıvel observar que, devido ao formato 2D da imagem, alguns espacos sao desperdicados

a fim de manter a estrutura com certa organizacao logica. Alem disso, como traduzimos

os indivıduos da estrutura padrao para a imagem, somente os nos ativos que sao efetiva-

mente copiados. Ja diferenca entre as variantes R, RG e RGBA e mostrada na Figura

5.4, onde e possıvel notar (i) como os pixels sao distribuıdos em cada estrutura e (ii) a

necessidade de inserirmos preenchimentos em alguns casos a fim de garantir que todos os

pixels estejam com todos os canais completos.

As outras tres estruturas estudadas sao compostas pela combinacao da abordagem

“Compacta” com as de “Imagem”, resultando nas propostas de Imagem Compacta R, RG

e RGBA. Nestas situacoes, a estrutura “Padrao” e compactada com operacoes bit a bit e

convertida para o formato de imagem antes de serem carregada para a GPU.

Page 44: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

5.3 Imagem 41

...

...

...

...

...

......

SaídasNum.Ativos

InputsPesos

FunçãoNó

(Num

Nós

* 2

) + 1

(Aridade * 2) + 1

Figura 5.3: Exemplo da representacao de um indivıduo como imagem na GPU.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Preenchimento1 pixel

1 pixel 1 pixel

Figura 5.4: Exemplo da distribuicao de pixels nas estruturas R, RG e RGBA, respectiva-mente.

Page 45: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

42

6 Experimentos Computacionais

Este capıtulo trata dos procedimentos metodologicos adotados no desenvolvimento do tra-

balho. Dois experimentos distintos sao propostos neste contexto. Inicialmente descreve-se

os procedimentos comuns a ambos e, nas secoes seguintes, os procedimentos especıficos a

cada um deles.

Dada a natureza estocastica dos metodos desenvolvidos, valores como o tempo

decorrido para executar o programa e a qualidade dos modelos encontrados quanto a sua

acuracia de classificacao variam entre diferentes execucoes e, por isso, diversas execucoes

independentes para cada experimento sao executadas a fim de se obter um maior numero

de dados a serem analisados e verificar a significancia estatıstica dos resultados.

Quanto ao tratamento dos conjuntos de dados, a tecnica de validacao cruzada

estratificada com “k-folds” e aplicada. Nesta, o conjunto de dados e dividido em k grupos

de tamanho igual e com a mesma proporcao de instancias de cada classe nos grupos. Com

isso, o algoritmo de treinamento e executado k vezes de forma que, em cada execucao,

um dos k grupos e utilizado como conjunto de teste, enquanto os outros k − 1 sao ale-

atoriamente divididos para os conjuntos de treinamento e validacao. Dois conjuntos de

dados diferentes sao utilizados para os experimentos. Seus detalhes sao descritos nas

secoes seguintes. Entretanto, em ambos os casos, o dados sao divididos em subconjun-

tos de treinamento, validacao e teste. Nesta configuracao, o conjunto de treinamento e

utilizado durante o processo evolutivo da CGPANN para o treinamento dos modelos e

prosseguimento das geracoes do algoritmo. Ao mesmo tempo, o conjunto de validacao e

utilizado para analisar esses modelos quanto a sua capacidade de generalizacao. Ao fim

do processo evolutivo, o indivıduo com melhor acuracia quanto aos dados de validacao

e avaliado sobre o conjunto de teste, aferindo sua qualidade final. Este procedimento

visa evitar o superajuste dos modelos aos dados em que foram treinados, assim como

validar sua generalidade, atraves da avaliacao sobre instancias nao utilizadas durante o

treinamento.

Page 46: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

6.1 Experimento 1: Analise de Desempenho Computacional 43

As abordagens propostas sao implementadas na linguagem de programacao C++3

e com a biblioteca OpenCL para o desenvolvimento e execucao do codigo paralelo execu-

tado na GPU. Os experimentos sao executados em uma maquina com o sistema operacio-

nal Windows 10 64-bit, usando o compilador g++ MinGW 5.3 e a biblioteca OpenCL 1.2

da NVIDIA, em uma CPU AMD Ryzen 5 3600X 6-Core 3.79GHz e uma GPU NVIDIA

Geforce GTX 750Ti.

Em ambos os experimentos, os parametros da CGPANN indicados na Tabela 6.1

sao utilizados. Estes foram definidos de acordo com o proposto por Melo Neto et al. (2018),

a fim de permitir a comparacao de resultados com aqueles apresentados na literatura. Em

relacao especificamente ao numero de indivıduos filhos criados na estrategia evolucionaria,

seu valor e igual ao numero de nucleos disponıveis na GPU, de forma a utiliza-la de forma

mais eficiente. Nota-se tambem que o numero de nos corresponde aos nos internos da

CGPANN, nao considerando os nos de entrada e saıda.

Tabela 6.1: Parametros utilizados para a CGPANN.

Parametro ValorGeracoes 50000

Tipo de Mutacao ProbabilısticaTaxa de Mutacao 0.05

Indivıduos 6Estrategia evolucionaria (1+5)-ES

Numero de Nos 500Aridade dos Nos 20

Funcao de ativacao Funcao Sigmoide

6.1 Experimento 1: Analise de Desempenho Compu-

tacional

Para o primeiro experimento, propoe-se a analise de tempos de execucao do algoritmo

paralelo da CGPANN utilizando as diferentes estruturas de dados descritas no Capıtulo 5.

Neste momento, o tempo total de processamento e aferido, assim como o tempo decorrido

exclusivamente durante a etapa paralela do algoritmo (tempo de kernel), referente a

avaliacao dos indivıduos.

3Codigo fonte disponıvel em https://github.com/bmarcosps/P-CGPANN

Page 47: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

6.1 Experimento 1: Analise de Desempenho Computacional 44

Utiliza-se a base de dados Pima Indians Diabetes disponıvel no UCI Machine

Learning Repository4. As caracterısticas desta base sao resumidas na Tabela 6.2. Assim

como os parametros da CGPANN, este conjunto foi utilizado de acordo com a metodologia

proposta por Melo Neto et al. (2018), com a normalizacao linear dos dados para o intervalo

[0, 1] e a aplicacao da validacao cruzada estratificada com k = 10, com a divisao de 7

folds para o conjunto de treinamento, 2 para validacao e 1 para teste.

Tabela 6.2: Caracterıstica do Conjunto de Dados do Experimento 1.

Dataset Instancias Atributos ClassesPima Indians Diabetes 768 8 2

Este conjunto e comumente utilizado para benchmarks em trabalhos de apren-

dizado de maquina e possui um numero de instancias representativo para a analise do

desempenho computacional das diferentes tecnicas propostas. E importante notar que

em Melo Neto et al. (2018) a CGPANN e aplicada a esta base de dados e os modelos

obtidos alcancam uma acuracia media de 0.7361 (ou 26.39% de erro medio). Assim, estes

resultados nao sao detalhados aqui, uma vez que o foco deste experimento e a analise do

tempo computacional e os resultados do algoritmo quanto a qualidade dos modelos nao

sao alterados pelas tecnicas aqui discutidas.

Os resultados obtidos sao mostrados nas Tabelas 6.3 e 6.4. Cada linha corres-

ponde a uma das estruturas de dados propostas de forma que: I R, I RG, e I RGBA

correspondem as estruturas em imagem, que utilizam a memoria de texturas da GPU e

I R C, I RG C, e I RGBA C sao suas variantes compactas. Os tempos para a execucao

sequencial tambem sao exibidos, de forma que seu tempo de kernel corresponde a etapa

de avaliacao dos indivıduos.

As medidas de tempo sao feitas para cada configuracao dos 10 folds, para tres

execucoes independentes, resultando em 30 medidas para tempos totais e 30 para tempos

de kernel. Assim, a media, mediana e desvio padrao levam em conta o tempo de execucao

para cada fold dentre os 30 executados, enquanto os tempos totais de cada tabela remetem

a soma do tempo de execucao destas 30 medidas realizadas para o tempo total e de kernel.

Nota-se, primeiramente, que os tempos de execucao sequencial sao muito superi-

4https://archive.ics.uci.edu/ml/index.php

Page 48: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

6.1 Experimento 1: Analise de Desempenho Computacional 45

ores as abordagens paralelas. Alem disso, todas as estruturas propostas apresentam um

tempo inferior a estrutura Padrao.

Observando os tempos totais mostrados na Tabela 6.3, o melhor desempenho

e obtido ao utilizar a memoria de texturas da GPU atraves da estrutura de Imagem

RGBA. Este resultado indica o potencial da utilizacao da arquitetura de GPUs e de suas

caracterısticas especıficas com o intuito de acelerar aplicacoes.

Em relacao aos tempos de kernel exibidos na Tabela 6.4, o melhor resultado

foi obtido pela representacao em Imagem RG Compacta, ou seja, associando ambas as

abordagens propostas. A divergencia quanto ao resultado anterior pode ser explicada

pelo tempo extra gasto para a alocacao e conversao da estrutura Padrao para as outras

representacoes antes da fase de avaliacao. De qualquer maneira, indica-se que otimizar

o numero de consultas a memoria, alem do uso de diferentes tipos de memoria, pode

tambem resultar em ganhos de desempenho.

Em especıfico quanto a estrutura da CGPANN, e possıvel analisar que, dado que

os acessos aos nos do grafo ocorrem de forma dispersa, a localidade 2D da memoria de

texturas ajuda a evitar que o padrao de acesso nao coalescido prejudique o desempenho.

Da mesma maneira, ao compacta-la, o numero de requisicoes a memoria global e reduzido,

tambem melhorando o tempo de execucao.

O tempo total exibido corresponde a execucao do algoritmo evolutivo, com as

etapas de inicializacao da populacao, avaliacao e evolucao dos indivıduos. Ja o tempo de

kernel, como previamente mencionado, corresponde somente a etapa de avaliacao, onde o

paralelismo e aplicado. Observando o tempo gasto pelo algoritmo sequencial, a etapa de

Tabela 6.3: Resultados para os tempos totais (host + kernel).

Metodo Total(s) Media(s) Mediana(s) Desv. Pad.(s)Sequencial 466.199, 69 15.539, 99 18239, 59 7095, 78

Padrao 9.688, 64 322, 954 336, 99 127, 93Compacta 8.788, 47 292, 95 304, 12 106, 02

I R 9.264, 74 308, 82 321, 43 117, 36I RG 8.751, 11 291, 70 303, 20 108, 56

I RGBA 8.651,99 288,40 299,55 107, 53I R C 9.515, 02 317, 17 329, 42 113, 18

I RG C 8.905, 37 296, 85 307, 63 103,02I RGBA C 9.158, 86 305, 30 317, 01 105, 75

Page 49: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

6.2 Experimento 2: CGPANN para o Problema de RAH 46

Tabela 6.4: Resultados para o tempo de kernel.

Metodo Total(s) Media(s) Mediana(s) Desv. Pad.(s)Sequencial 464.141, 90 15.471, 40 18.168, 85 7.089, 27

Padrao 7.277, 13 242, 57 255, 44 121, 11Compacta 6.086, 86 202, 90 213, 12 99, 34

I R 6.647, 01 221, 57 232, 73 108, 70I RG 6.144, 29 204, 81 215, 04 99, 89

I RGBA 6.064, 65 202, 15 212, 00 98, 70I R C 6.543, 78 218, 13 229, 38 106, 50

I RG C 5.926,13 197,54 207,17 96,35I RGBA C 6.135, 17 204, 51 214, 74 98, 87

avaliacao representa 99% do tempo total. Entretanto, para o algoritmo paralelo Padrao,

o tempo de avaliacao engloba 75% do tempo total, de forma similar as outras estruturas

paralelas analisadas. Esta reducao da parcela paralelizavel e explicada principalmente pelo

tempo extra gasto nas abordagens paralelas para a preparacao dos dispositivos, como as

trocas de memoria e conversao de estruturas. Entretanto, esta ainda representa a parcela

de tempo mais significativa do algoritmo.

A Tabela 6.5 dispoe os speedups calculados para os resultados obtidos em tempos

totais e de kernel das estruturas paralelas desenvolvidas em relacao ao algoritmo sequen-

cial. Esta metrica consiste na relacao entre um tempo de execucao de referencia e o tempo

da tecnica sendo analisada, indicando o quanto mais rapido um algoritmo e em relacao

a referencia. Neste caso, as consideracoes anteriores quanto ao ganho computacional do

algoritmo sequencial para o paralelo sao visıveis pelo valor de speedup para a estrutura

padrao. Nota-se tambem que a estrutura I RGBA obteve o melhor desempenho para o

tempo total, com um speedup de 53.88, enquanto a estrutura I RG C atingiu o melhor

desempenho para o tempo de kernel, com um speedup de 78.32.

6.2 Experimento 2: CGPANN para o Problema de

RAH

No segundo experimento, propoe-se a aplicacao dos modelos treinados pela CGPANN na

resolucao do problema de Reconhecimento de Atividade Humana. Assim, a acuracia dos

modelos e utilizada como metrica de desempenho e a media dentre todas as execucoes

Page 50: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

6.2 Experimento 2: CGPANN para o Problema de RAH 47

Tabela 6.5: Speedups para os tempos totais e de kernel em relacao ao algoritmo Sequencial.

Estruturas Speedup SpeedupTempo Total Tempo de Kernel

Padrao 48.12 63.78Compacta 53.05 76.25

I R 50.32 69.83I RG 53.27 75.54

I RGBA 53.88 76.53I R C 49.00 70.93

I RG C 52.35 78.32I RGBA C 50.90 75.65

independentes e utilizada para comparacao com os resultados apresentados por Mohino-

Herranz et al. (2019).

O mesmo conjunto de dados proposto pelo autor, “Activity recognition using

wearable physiological measurements”, tambem disponıvel no UCI Machine Learning Re-

pository, e utilizado no trabalho, assim como os procedimento metodologicos relacionados

a configuracao e execucao de experimentos computacionais, a fim de possibilitar uma

comparacao justa entre os resultados. Suas caracterısticas sao resumidas na Tabela 6.6.

Tabela 6.6: Caracterısticas do Conjunto de Dados do Experimento 2.

Dataset Instancias Atributos ClassesActivity Recognition 4480 533 4

Esta base de dados e previamente normalizada utilizando a media µ e o desvio

padrao σ pelo metodo z-score, definido pela relacao z = x−µσ

. Alem disso, a validacao

cruzada estratificada com k = 40 e aplicada, de forma que cada fold corresponde a dados

relacionados a uma pessoa da base original. Neste experimento, 30 folds sao utilizados

para o conjunto de treinamento, 9 para validacao e 1 para teste e 10 execucoes indepen-

dentes sao executadas. Estes procedimentos foram utilizados por Mohino-Herranz et al.

(2019) e, por isso, sao aplicados neste trabalho para permitir uma comparacao justa entre

os resultados.

Como previamente mencionado, a acuracia media dos modelos dentre todas as dez

execucoes independentes e utilizada como comparacao aos resultados em Mohino-Herranz

et al. (2019), uma vez que esta e a metrica adotada pelos autores. Algumas medidas

estatısticas como a melhor acuracia encontrada, o desvio padrao, a mediana, matriz de

Page 51: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

6.2 Experimento 2: CGPANN para o Problema de RAH 48

Tabela 6.7: Resultados para o erro medio dos modelos comparados e o mınimo, medianae desvio padrao do erro da CGPANN.

Metodo Erro Max. Melhor Mediana DesvioMedio (%) Atributos Erro (%) (%) Padrao

CGPANN 33.35 533 7.14 32.14 12.44LSLC 22.2 40LSQC 26.2 40

LINSVM 22.5 40RBFSVM 28.6 40

MLP8 24.9 20MLP12 25.6 20MLP16 26.1 10

kNN 28.7 10CDNN 27.0 5

RF 25.5 20

Tabela 6.8: Precisao, Revocacao e F1-score obtidos pela CGPANN.

Classe Precisao Revocacao F1-scoreEmocional 0.51 0.59 0.55

Fısica 0.87 0.92 0.89Mental 0.51 0.43 0.47Neutra 0.78 0.73 0.75

confusao e as metricas descritas no Capıtulo 3 entre todas as execucoes tambem sao

calculadas.

O erro de classificacao medio obtido pela CGPANN, em comparacao com os ou-

tros classificadores da literatura, e mostrado na Tabela 6.7. No trabalho de referencia, o

conjunto de dados passa por um processo previo de selecao de caracterısticas, limitando

seu numero para o treinamento dos modelos e, por isso, essa informacao tambem e mos-

trada. O melhor erro, a mediana e desvio padrao dentre todas as execucoes independentes

da CGPANN tambem sao mostrados.

Na Figura 6.1, as matrizes de confusao para o melhor classificador da literatura e

para a CGPANN sao mostradas. Os resultados foram calculados como a porcentagem de

erros e acertos dentre os modelos finais de todos os folds, em todas as execucoes indepen-

dentes. Com estes dados, tambem foi possıvel calcular as metricas de precisao, acuracia,

revocacao e F1-measure previamente apresentadas. Estes resultados foram resumidos na

Tabela 6.8.

Page 52: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

6.2 Experimento 2: CGPANN para o Problema de RAH 49

Classe Predita

Atividade Neutra Emocional Mental Física

Neutra 80,90% 5,50% 12,20% 1,30%

Emocional 5,00% 72,60% 18,70% 3,80%

Mental 7,70% 30,50% 58,90% 2,90%

Física 0,10% 1,80% 2,30% 95,80%

Clas

se V

erda

deira

(a) Matriz de confusao para LSQC usando 40 caracterısticas (Mohino-Herranz et al., 2019)

Classe Predita

Atividade Neutra Emocional Mental Física

Neutra 73,10% 13,50% 11,28% 2,13%

Emocional 8,83% 59,14% 26,24% 5,79%

Mental 10,66% 40,45% 42,75% 6,14%

Física 1,11% 3,83% 3,46% 91,60%

Clas

se V

erda

deira

(b) Matriz de confusao para a CGPANN usando 533 caracterısticas.

Figura 6.1: Matriz de confusao apresentada pela literatura(a) e obtida no trabalho(b).

Page 53: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

6.2 Experimento 2: CGPANN para o Problema de RAH 50

Tabela 6.9: Tempo de execucao para as estruturas Padrao e Compacta para o dataset deRAH.

Metodo Total(s) Media(s) Mediana(s) Desv. Pad.(s)Padrao 117.714, 39 980, 95 1.007, 81 273, 08

Compacta 107.600,40 896,67 918,38 243,58

Como pode ser observado, a CGPANN nao obteve um erro medio melhor que

as outras propostas da literatura neste experimento (Tabela 6.7). Entretanto, por nao

utilizar uma etapa de selecao de caracterısticas antes do treinamento, o processo geral e

simplificado, permitindo que o algoritmo encontre os atributos mais relevantes automati-

camente durante o processo evolutivo.

Ainda assim, o melhor modelo encontrado pela CGPANN apresenta uma taxa

de erro inferior aqueles da literatura, indicando que a CGPANN e promissora para en-

contrar bons modelos e que a qualidade geral dentre diferentes execucoes ainda pode ser

melhorada. Alem disso, todos as 533 caracterısticas foram utilizadas.

Quanto as metricas extraıdas da matriz de confusao (Tabela 6.8), os valores de

precisao e revocacao para cada classe ficaram, em geral, proximos, nao havendo uma

tendencia dos modelos a gerarem mais falsos positivos ou falsos negativos. Nota-se, como

tambem indicado em Mohino-Herranz et al. (2019), que a atividade mais “facil” de ser

identificada e a fısica, seguida da neutra, emocional e mental.

Para o problema de RAH em geral, uma preferencia por uma melhor precisao ou

revocacao depende da aplicacao. Por exemplo, para um sistema de monitoramento medico

remoto, uma revocacao alta poderia ser mais importante, dado que situacoes importantes

(como identificar a queda de um idoso) nao podem apresentar falsos negativos. Ja em

sistemas de casas inteligentes e automacao, por exemplo, uma precisao maior pode ser

mais vantajosa, dado que falsos positivos podem gerar acoes indesejadas no sistema.

Como um teste preliminar, tres execucoes independentes da CGPANN paralela

com as estruturas Padrao e Compacta foram executadas. Os tempos obtidos sao apre-

sentados na Tabela 6.9. Neste caso, a proposta Compacta foi capaz de obter valores do

tempo total, medio e de mediana inferiores a estrutura Padrao.

Com estes dados, tambem calcula-se o speedup alcancado pela estrutura Com-

Page 54: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

6.2 Experimento 2: CGPANN para o Problema de RAH 51

Tabela 6.10: Speedups da estrutura Compacta em relacao a Padrao.

Instancias Atributos Classes Speedup768 8 2 1.104480 533 4 1.09

pacta em relacao a Padrao. Uma comparacao deste valor em relacao ao numero de

instancias, atributos e classes dos conjuntos de dados utilizados em ambos os experi-

mentos e mostrada na Tabela 6.10. Nota-se que o speedup e um pouco inferior para o

conjunto com mais instancias. Entretanto, dada a analise somente sob estes dois conjun-

tos, nao e possıvel estabelecer com precisao uma regra para o comportamento do ganho

computacional em problemas de tamanhos diferentes.

Page 55: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

52

7 Conclusao

Neste trabalho, questoes pertinentes ao custo computacional de algoritmos evolutivos,

especificamente a Programacao Genetica Cartesiana de Redes Neurais Artificiais, foram

discutidas. Dentro desta tematica, um algoritmo da GPANN paralela em Unidades de

Processamento Grafico foi analisado quanto ao seu tempo de processamento sob a pers-

pectiva de oito estruturas de dados distintas, que foram propostas e implementadas no

trabalho. Tais estruturas foram modeladas a fim de explorar caracterısticas especıficas

das GPUs, visando diminuir o numero de acessos a memoria global e fazer uso da memoria

de texturas durante a avaliacao dos indivıduos da programacao genetica.

Alem disso, dada a crescente importancia do problema de reconhecimento de

atividade humana e sua ampla aplicabilidade, a tecnica desenvolvida foi utilizada em

sua resolucao. A capacidade da CGPANN em resolve-lo foi analisada em relacao aos

resultados presentes na literatura.

Os resultados obtidos quanto ao custo computacional da CGPANN paralela in-

dicam que o uso de estruturas modeladas para GPUs gera ganhos quanto ao tempo de

execucao. Em especıfico, nota-se que o uso da memoria de texturas para o armazenamento

dos indivıduos e promissor, dado que este tipo de memoria pode ajudar a minimizar o

custo de acessos dispersos, como geralmente ocorre durante o caminhamento em grafos.

Alem disso, uma estrutura compacta, mesmo utilizando operacoes extras para codificar e

decodificar informacoes, foi capaz de gerar melhorias no tempo de execucao do algoritmo.

Em relacao ao tempo total, a estrutura Padrao obteve um reducao de 97.92% em relacao

ao tempo sequencial, enquanto as estruturas Compacta e Imagem RGBA atingiram tem-

pos 9.29% e 10.7% menores que a Padrao, respectivamente. De forma semelhante, sob

o conjunto de dados do RAH, a abordagem Compacta obteve uma reducao de 8.59% do

tempo em relacao a estrutura Padrao.

Nos experimentos desenvolvidos para o RAH, a CGPANN obteve um erro medio

de 33.35%, que e superior aos classificadores comparados, sendo este 50.22% maior que

o erro medio do melhor classificador da literatura. Assim, e reforcada a necessidade de

Page 56: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

7 Conclusao 53

otimizacoes direcionadas a topologia das redes, a fim de melhorar o desempenho geral

do algoritmo em diferentes execucoes. Entretanto, o melhor modelo encontrado pela

CGPANN apresenta um erro de 7.14%, que e 67.84% menor que o melhor caso medio da

literatura, indicando que a tecnica e promissora e capaz de encontrar modelos competitivos

para problemas do mundo real. Nota-se tambem que a tecnica dispensa procedimentos de

selecao de caracterısticas antes do treinamento dos modelos, em contraste com os metodos

apresentados pela literatura.

Atraves dos resultados alcancados, e possıvel elencar como trabalhos futuros a

aplicacao de tecnicas hıbridas para um ajuste fino dos parametros da CGPANN, como seus

pesos, a fim de melhorar a qualidade dos modelos gerados para o problema de RAH. Alem

disso, aplicar a tecnica sob diferentes conjuntos de dados, validando-a em outros contextos

tambem se mostra necessario. Quanto a CGPANN paralela, o uso de GPUs pode ser ainda

mais explorado pela analise das estruturas propostas em dispositivos mais recentes, de

diferentes fabricantes e com um maior numero de unidades de computacao e elementos

de processamento, uma vez que estas caracterısticas podem afetar a performance.

Page 57: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

54

Bibliografia

Ahmad, A. M.; Khan, G. M. Bio-signal processing using cartesian genetic pro-gramming evolved artificial neural network (cgpann). In: 2012 10th Internati-onal Conference on Frontiers of Information Technology, p. 261–268. IEEE, Dec 2012.

Augusto, D. A.; Barbosa, H. J. Accelerated parallel genetic programming tree evaluationwith opencl. Journal of Parallel and Distributed Computing, v.73, n.1, p. 86–100,Jan 2013.

Chen, K.; Zhang, D.; Yao, L.; Guo, B.; Yu, Z. ; Liu, Y. Deep learning for sensor-based hu-man activity recognition: Overview, challenges and opportunities. arXiv:2001.07416[cs], Jan 2020. arXiv: 2001.07416.

Chitty, D. M. Faster gpu-based genetic programming using a two-dimensional stack. SoftComputing, v.21, n.14, p. 3859–3878, 2017.

Darwin, C. The evolution of species. New York: The Modern Library, 1859.

Duffner, S.; Berlemont, S.; Lefebvre, G. ; Garcia, C. 3d gesture classification withconvolutional neural networks. In: 2014 IEEE International Conference on Acous-tics, Speech and Signal Processing (ICASSP), p. 5432–5436. IEEE, 2014.

Eiben, A.; Smith, J. Introduction to Evolutionary Computing. Natural ComputingSeries. Springer Berlin Heidelberg, 2015.

Foerster, F.; Smeja, M. ; Fahrenberg, J. Detection of posture and motion by accelerome-try: a validation study in ambulatory monitoring. Computers in Human Behavior,v.15, n.5, p. 571–583, Sep 1999.

Gajurel, A.; Louis, S. J. ; Harris, F. C. Gpu acceleration of sparse neural networks.arXiv:2005.04347 [cs], May 2020. arXiv: 2005.04347.

Galvan, E.; Mooney, P. Neuroevolution in deep neural networks: Current trends andfuture challenges. arXiv:2006.05415 [cs], Jun 2020. arXiv: 2006.05415.

Gaster, B. R.; Howes, L.; Kaeli, D. R.; Mistry, P. ; Schaa, D. Chapter 2 - Introductionto OpenCL, p. 15–38. Morgan Kaufmann, second edition. ed., 2013.

Goldberg, D. E. Genetic Algorithms in Search, Optimization, and MachineLearning. Addison-Wesley Publishing Company, 1989. Google-Books-ID: 2IIJAAAA-CAAJ.

Goldman, B. W.; Punch, W. F. Reducing wasted evaluations in cartesian geneticprogramming. In: European Conference on Genetic Programming, p. 61–72. Springer,2013.

Harding, S.; Banzhaf, W. Fast genetic programming on gpus. In: Proceedings of the10th European Conference on Genetic Programming, volume 4445 of LNCS, p. 90–101.Springer, 2007.

Page 58: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

Bibliografia 55

Harding, S. L.; Banzhaf, W. Distributed genetic programming on gpus usingcuda. In: Workshop on Parallel Architectures and Bioinspired Algorithms, p. 1–10.Citeseer, 2009.

Horlings, R.; Datcu, D. ; Rothkrantz, L. J. M. Emotion recognition using brainactivity. In: Proceedings of the 9th International Conference on Computer Systemsand Technologies and Workshop for PhD Students in Computing - CompSysTech ’08,p. II.1. ACM Press, 2008.

Jain, A.; Mao, J. ; Mohiuddin, K. Artificial neural networks: a tutorial. Computer,v.29, n.3, p. 31–44, Mar 1996.

Jatoba, L. C.; Grossmann, U.; Kunze, C.; Ottenbacher, J. ; Stork, W. Context-aware mobile health monitoring: Evaluation of different pattern recognitionmethods for classification of physical activity. In: 2008 30th annual internationalconference of the ieee engineering in medicine and biology society, p. 5250–5253. IEEE,2008.

Yin, J.; Yang, Q. ; Pan, J. Sensor-based abnormal human-activity detection. IEEETransactions on Knowledge and Data Engineering, v.20, n.8, p. 1082–1090, Aug2008.

Van Kasteren, T.; Noulas, A.; Englebienne, G. ; Krose, B. Accurate activity recog-nition in a home setting. In: Proceedings of the 10th international conference onUbiquitous computing, p. 1–9, 2008.

Khan, M. M.; Khan, G. M. ; Miller, J. F. Evolution of neural networks usingcartesian genetic programming. In: IEEE Congress on Evolutionary Computation,p. 1–8. IEEE, Jul 2010.

Khan, G. M.; Arshad, R. Electricity peak load forecasting using cgp based neuro evolutio-nary techniques. International Journal of Computational Intelligence Systems,v.9, n.2, p. 376–395, 2016.

Khan, N. M.; Khan, G. M. Audio signal reconstruction using cartesian geneticprogramming evolved artificial neural network (cgpann). In: 2017 16th IEEEInternational Conference on Machine Learning and Applications (ICMLA), p. 568–573.IEEE, 2017.

Group, K. O. W.; others. The opencl specification version 1.1. http://www. khronos.org/registry/cl/specs/opencl-1.1. pdf, 2011.

Kim, E.; Helal, S. ; Cook, D. Human activity recognition and pattern discovery. IEEEPervasive Computing, v.9, n.1, p. 48–53, Jan 2010.

Koza, J. R. Genetic programming: on the programming of computers by meansof natural selection. Complex adaptive systems. MIT Press, 1992.

Kwapisz, J. R.; Weiss, G. M. ; Moore, S. A. Activity recognition using cell phone ac-celerometers. ACM SIGKDD Explorations Newsletter, v.12, n.2, p. 74–82, Mar2011.

Lara, O. D.; Labrador, M. A. A survey on human activity recognition using wearablesensors. IEEE Communications Surveys & Tutorials, v.15, n.3, p. 1192–1209,2013.

Page 59: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

Bibliografia 56

Mei, X.; Chu, X. Dissecting gpu memory hierarchy through microbenchmarking. IEEETransactions on Parallel and Distributed Systems, v.28, n.1, p. 72–86, 2016.

Melo Neto, J. M.; Bernardino, H. S. ; Barbosa, H. J. Hybridization of cartesian ge-netic programming and differential evolution for generating classifiers basedon neural networks. In: 2018 IEEE Congress on Evolutionary Computation (CEC),p. 1–8. IEEE, Jul 2018.

Miller, J. F.; Thomson, P. Cartesian Genetic Programming, volume 1802 de LectureNotes in Computer Science, p. 121–132. Springer Berlin Heidelberg, 2000.

Millan, J. d. R.; Mourino, J.; Franze, M.; Cincotti, F.; Varsta, M.; Heikkonen, J. ;Babiloni, F. A local neural classifier for the recognition of eeg patterns associated tomental tasks. IEEE Transactions on Neural Networks, v.13, n.3, p. 678–686, May2002.

Miller, J. F. Cartesian genetic programming. In: Cartesian Genetic Programming,p. 17–34. Springer, 2011.

Miller, J. F. Cartesian genetic programming: its status and future. Genetic Program-ming and Evolvable Machines, Aug 2019.

Mitchell, E.; Monaghan, D. ; O’Connor, N. E. Classification of sporting activities usingsmartphone accelerometers. Sensors (Basel, Switzerland), v.13, n.4, p. 5317–5337,Apr 2013.

Mohino-Herranz, I.; Gil-Pita, R.; Ferreira, J.; Rosa-Zurera, M. ; Seoane, F. Assessmentof mental, emotional and physical stress through analysis of physiological signals usingsmartphones. Sensors, v.15, n.10, p. 25607–25627, Oct 2015.

Mohri, M.; Rostamizadeh, A. ; Talwalkar, A. Foundations of Machine Learning,second edition. MIT Press, Dec 2018.

Mohino-Herranz, I.; Gil-Pita, R.; Rosa-Zurera, M. ; Seoane, F. Activity recognitionusing wearable physiological measurements: Selection of features from a comprehensiveliterature study. Sensors (Basel, Switzerland), v.19, n.24, Dec 2019.

Murphy, K. P. Machine learning: a probabilistic perspective. MIT press, 2012.

NVIDIA. Cuda c best practices guide. NVIDIA, July, 2013.

NVIDIA. Cuda c programming guide. NVIDIA, July, 2017.

Oniga, S.; Suto, J. Human activity recognition using neural networks. In: Pro-ceedings of the 2014 15th International Carpathian Control Conference (ICCC), p.403–406. IEEE, May 2014.

Paraschiakos, S.; Cachucho, R.; Moed, M.; van Heemst, D.; Mooijaart, S.; Slagboom,E. P.; Knobbe, A. ; Beekman, M. Activity recognition using wearable sensors fortracking the elderly. User Modeling and User-Adapted Interaction, v.30, n.3, p.567–605, Jul 2020.

Poli, R.; Langdon, W. B.; McPhee, N. F. ; Koza, J. R. A field guide to geneticprogramming. Lulu Press], 2008.

Page 60: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

Bibliografia 57

Ramachandran, P.; Zoph, B. ; Le, Q. V. Searching for activation functions. ar-Xiv:1710.05941 [cs], Oct 2017. arXiv: 1710.05941.

Robilliard, D.; Marion-Poty, V. ; Fonlupt, C. Genetic programming on graphics processingunits. Genetic Programming and Evolvable Machines, v.10, n.4, p. 447–471, Dec2009.

Robilliard, D.; Marion, V. ; Fonlupt, C. High performance genetic programming ongpu. In: Proceedings of the 2009 workshop on Bio-inspired algorithms for distributedsystems - BADS ’09, p. 85. ACM Press, 2009.

Ronao, C. A.; Cho, S.-B. Human activity recognition with smartphone sensors using deeplearning neural networks. Expert Systems with Applications, v.59, p. 235–244, Oct2016.

Russo, I. L.; Bernardino, H. S. ; Barbosa, H. J. A massively parallel grammatical evolutiontechnique with opencl. Journal of Parallel and Distributed Computing, v.109,p. 333–349, Nov 2017.

Schrader, L.; Vargas Toro, A.; Konietzny, S.; Ruping, S.; Schapers, B.; Steinbock, M.;Krewer, C.; Muller, F.; Guttler, J. ; Bock, T. Advanced sensing and human acti-vity recognition in early intervention and rehabilitation of elderly people. Journal ofPopulation Ageing, v.13, n.2, p. 139–165, Jun 2020.

Sharma, A.; Lee, Y.-D. ; Chung, W.-Y. High accuracy human activity monitoringusing neural network. In: 2008 Third International Conference on Convergence andHybrid Information Technology, p. 430–435. IEEE, Nov 2008.

Shmueli, B. Multi-class metrics made simple, part i: Precision and recall, Jun2019.

Steinkraus, D.; Buck, I. ; Simard, P. Using gpus for machine learning algorithms. In:Eighth International Conference on Document Analysis and Recognition (ICDAR’05),p. 1115–1120 Vol. 2. IEEE, 2005.

Tompson, J.; Schlachter, K. An introduction to the opencl programming model. PersonEducation, v.49, p. 31, 2012.

Turner, A. Evolving artificial neural networks using Cartesian genetic program-ming. 2015. Tese de Doutorado - University of York.

Vasıcek, Z.; Slany, K. Efficient phenotype evaluation in cartesian genetic pro-gramming. In: European Conference on Genetic Programming, p. 266–278. Springer,2012.

Yao, X. Evolving artificial neural networks. Proceedings of the IEEE, v.87, n.9, p.1423–1447, Sep 1999.

Yu, Q.; Chen, C. ; Pan, Z. Parallel genetic algorithms on programmable graphicshardware. In: International Conference on Natural Computation, p. 1051–1059. Sprin-ger, 2005.

Zhang, G. Neural networks for classification: a survey. IEEE Transactions on Sys-tems, Man and Cybernetics, Part C (Applications and Reviews), v.30, n.4,p. 451–462, Nov 2000.

Page 61: Programa˘c~ao Gen etica Cartesiana Paralela na Gera˘c~ao

Bibliografia 58

Zhu, C.; Sheng, W. Human daily activity recognition in robot-assisted livingusing multi-sensor fusion. In: 2009 ieee international conference on robotics andautomation, p. 2154–2159. IEEE, 2009.