• Nenhum resultado encontrado

Uma ferramenta de apoio à detecção de falhas e recomendação de parâmetros em workflows científicos com mineração de dados

N/A
N/A
Protected

Academic year: 2021

Share "Uma ferramenta de apoio à detecção de falhas e recomendação de parâmetros em workflows científicos com mineração de dados"

Copied!
71
0
0

Texto

(1)

Universidade Federal Fluminense

Instituto de Computa¸

ao

Departamento de Ciˆ

encia da Computa¸

ao

Daniel Pinheiro da Silva Junior

Uma Ferramenta de Apoio `

a

Detec¸c˜

ao de Falhas e

Recomenda¸c˜

ao de Parˆ

ametros em Workflows

Cient´ıficos com Minera¸c˜

ao de Dados

Niter´

oi-RJ

2017

(2)

DANIEL PINHEIRO DA SILVA JUNIOR

Uma Ferramenta de Apoio `a Detec¸c˜ao de Falhas e Recomenda¸c˜ao de Parˆametros em Workflows Cient´ıficos com Minera¸c˜ao de Dados

Trabalho submetido ao Curso de

Bacharelado em Ciˆencia da Computa¸c˜ao da Universidade Federal Fluminense como requisito parcial para a obten¸c˜ao do t´ıtulo de Bacharel em Ciˆencia da Computa¸c˜ao.

Orientadores: Profa. Aline Marins Paes Carvalho Prof. Daniel Cardoso Moraes de Oliveira

Niter´oi-RJ 2017

(3)

Ficha Catalográfica elaborada pela Biblioteca da Escola de Engenharia e Instituto de Computação da UFF

S586 Silva Junior, Daniel Pinheiro da

Uma ferramenta de apoio à detecção de falhas e recomendação de parâmetros em workflows científicos com mineração de dados / Daniel Pinheiro da Silva Junior. – Niterói, RJ : [s.n.], 2017.

70 f.

Projeto Final (Bacharelado em Ciência da Computação) – Universidade Federal Fluminense, 2017.

Orientadores: Aline Marins Paes Carvalho, Daniel Cardoso Moraes de Oliveira.

1. Ferramenta computacional. 2. Fluxo de trabalho. 3. Trabalho científico. 4. Detecção de falhas. 5. Mineração de dados

(Computação). I. Título.

CDD 004

(4)
(5)

iv

Dedico este trabalho a minha noiva e a minha fam´ılia que foram meu porto seguro sempre que precisei.

(6)

Agradecimentos

Primeiramente a Deus, por ter me sustentado e tornado tudo isto poss´ıvel. `

A minha noiva Luana, que sempre se mostrou compreensiva e me apoiou nos mo-mentos mais dif´ıceis do final dessa caminhada.

Ao meu pai Daniel, a minha m˜ae Laudiceia e ao meu irm˜ao Emerson por terem me dado todo amor, educa¸c˜ao e suporte necess´ario para alcan¸car meus objetivos.

Aos meus orientadores Aline Paes e Daniel de Oliveira por terem compartilhado um pouco do seu conhecimento comigo, me guiado e incentivado durante todo o desenvolver deste trabalho.

Ao meus amigos da faculdade que me ajudaram em tantos momentos de dificulda-des durante o per´ıodo de estudo.

Aos professores da UFF que contribuiram para o meu crescimento intelectual. `

A professora Kary Ann del Carmen Soriano Oca˜na e ao professor Alexandre Plas-tino de Carvalho por terem aceitado o convite para participar da banca examinadora.

(7)

vi

Resumo

Os experimentos cient´ıficos passaram a ter o suporte computacional para a sua execu¸c˜ao e gerenciamento atrav´es de sua modelagem como um workflow. Sistemas com-putacionais foram desenvolvidos para fazer o gerenciamento n˜ao apenas das execu¸c˜oes destes experimentos mas tamb´em da organiza¸c˜ao dos dados produzidos durante todo o processo. Esses dados hist´oricos possuem um grande conhecimento para ser extra´ıdo. Por meio do uso de t´ecnicas de Aprendizado de M´aquina este trabalho prop˜oe uma ferra-menta capaz de a partir da combina¸c˜ao de parˆametros das atividades do workflow, fazer a Detec¸c˜ao de Falhas antes que ocorram utilizando o conhecimento extra´ıdo de uma base hist´orica de execu¸c˜oes. Al´em disso, outra funcionalidade que a ferramenta proporciona ´e a Recomenda¸c˜ao de Parˆametros, que retorna valores para parˆametros que o cientista n˜ao definiu os valores pr´evios, de modo a maximizar a chance do experimento ser finali-zado corretamente. Com esta proposta, o trabalho visa reduzir o desperd´ıcio de recursos ocasionado por execu¸c˜oes dos experimentos que podem terminar falhando.

(8)

Abstract

Scientific experiments started to have computational support for its execution and management through workflow modeling. Computational systems were developed to ma-nage not only executions of these experiments but also data organization produced during the whole process. Through the use of Machine Learning techniques this work proposes a tool capable of starting from the combination of workflow activity parameters, to do the Fault Detection before they occur using knowledge extracted from a historical basis of executions. In addition, another feature that the tool provides is the Recommendation of Parameters, which returns values for parameters that the scientist did not define the pre-vious values, in order to maximize the chance of the experiment being finalized correctly. With this proposal, the work aims to reduce the waste of resources caused by executions of the experiments that can end up failing.

(9)

Sum´

ario

Resumo vi

Abstract vii

Lista de Figuras xi

Lista de Tabelas xii

1 Introdu¸c˜ao 1

1.1 Problema . . . 2

1.2 Proposta . . . 3

1.3 Organiza¸c˜ao do Texto . . . 3

2 Fundamenta¸c˜ao Te´orica 4 2.1 Workflows Cient´ıficos . . . 5

2.1.1 SciCumulus: Um Sistema de Gerenciamento de Workflows Cient´ıficos 7 2.2 Proveniˆencia . . . 9

2.2.1 Proveniˆencia no SciCumulus . . . 11

2.3 Aprendizado de M´aquina . . . 13

2.3.1 Aprendizado de M´aquina Supervisionado . . . 16

2.3.2 Aprendizado de M´aquina N˜ao Supervisionado . . . 18

2.3.3 Aprendizado de M´aquina Discriminativo . . . 21

2.3.4 Aprendizado de M´aquina Generativo . . . 23

2.4 Trabalhos Relacionados . . . 25 3 Um Sistema de Detec¸c˜ao de Falhas e Recomenda¸c˜ao para Parˆametros

em Workflows Cient´ıficos 27

(10)

3.1 Vis˜ao Geral . . . 28

3.2 Extra¸c˜ao da Base de Dados a partir do Banco de Proveniˆencia . . . 30

3.3 Detec¸c˜ao de Falhas com M´aquinas de Vetores de Suporte . . . 31

3.4 Detec¸c˜ao de Falhas com o detector de anomalias M´aquinas de Vetores de Suporte OneClass . . . 35

3.5 Detec¸c˜ao de Falhas com Naive Bayes . . . 37

3.6 Recomenda¸c˜ao de Parˆametros com Aprendizado Generativo Probabil´ıstico 39 4 Estudo de Caso com o Sistema de Gerenciamento de Workflows Cient´ı-ficos SciCumulus 43 4.1 Resultados do Classificador SVM . . . 45

4.2 Resultados do Detector de Anomalias One-Class . . . 46

4.3 Resultados do Classificador Naive Bayes . . . 47

4.4 An´alise Geral dos Classificadores . . . 47

4.5 Resultados do Recomendador . . . 50

5 Conclus˜oes 52 5.1 Trabalhos Futuros . . . 53

(11)

Lista de Figuras

2.1 [30] (a) Workflow conceitual para Estimativa de desgaste de um tubo de extra¸c˜ao usado em plataformas (b); Workflow concreto para Estimativa de desgaste de um tubo de extra¸c˜ao utilizando os programas PROSIM,

ANFLEX e POSFAL . . . 6

2.2 [12] Exemplo de um arquivo de configura¸c˜ao do SciCumulus . . . 8

2.3 Proveniˆencia no caso de um bolo: Os ingredientes podem ser vistos como os dados de entrada, os retˆangulos s˜ao as atividades, as ferramentas fazem o papel dos parˆametros das atividades e as elipses s˜ao a representa¸c˜ao dos pr´e-produtos gerados. [5] . . . 10

2.4 Parte do modelo l´ogico de proveniˆencia do SciCumulus [20] . . . 12

2.5 [14] Conjunto de exemplos com dados sobre casos de resfriado. Cada linha, de 1 a 7, ´e uma instˆancia. As colunas Temperatura, Dor de cabe¸ca e N´ au-sea, s˜ao atributos. A coluna Refriado ´e o r´otulo dado para cada uma das instˆancias. . . 15

2.6 As classes s˜ao quadrado e c´ırculo. Existem v´arias retas que separam essas duas classes. Contudo, as SVM ir˜ao retornar a reta que possui a maior margem entre os c´ırculos e os quadrados. . . 17

2.7 Clusteriza¸c˜ao de Documentos. . . 19

2.8 Fronteira de decis˜ao no One-Class SVM [24] . . . 20

2.9 Exemplo de uso do Naive Bayes. . . 24

3.1 Big Picture: Os retˆangulos de cantos arrendondados representam os m´ odu-los do sistema, enquanto as elipses representam as tarefas que podem ser executadas. . . 28

3.2 (a) Tela de informa¸c˜oes de acesso `a base de dados. (b) Tela de defini¸c˜ao de query utilizada para extra¸c˜ao dos dados. . . 31

(12)

3.3 [39] Processo de KDD . . . 32

3.4 (a) Tela de exibi¸c˜ao de informa¸c˜oes do treinamento do classificador. (b) Tela de entrada de dados para predi¸c˜ao. . . 35

3.5 (a) Apresenta¸c˜ao de predi¸c˜ao do modelo Naive Bayes (b) Apresenta¸c˜ao de predi¸c˜ao do modelo OneClass. . . 38

4.1 Matriz de Confus˜ao SVM kernel Linear . . . 48

4.2 Matriz de Confus˜ao One-Class kernel Linear . . . 48

(13)

xii

Lista de Tabelas

4.1 Execu¸c˜oes do SVM . . . 46 4.2 Execu¸c˜oes do SVM One-Class . . . 47 4.3 Execu¸c˜ao do Naive Bayes . . . 47

(14)

Cap´ıtulo 1

Introdu¸

ao

Cientistas de diversas ´areas, como Biologia, Astronomia, entre outas, realizam ex-perimentos a fim de comprovar seus estudos ou procurar solu¸c˜oes para seus problemas. No entanto, o processo de experimenta¸c˜ao cient´ıfica real envolve custos financeiros e de m˜ao de obra altos, al´em de um consider´avel gasto de tempo para execu¸c˜ao do experimento do in´ıcio ao fim, que aumenta junto `as tentativas e erros. Apesar da grande dificuldade de elabora¸c˜ao dos experimentos, a parte do processo de experimenta¸c˜ao cient´ıfica relativa ao gerenciamento do mesmo e da organiza¸c˜ao dos resultados obtidos tem suma impor-tˆancia para o alcance das metas do experimento. Visto isso, foram propostas simula¸c˜oes computacionais, onde o gerenciamento e execu¸c˜ao do experimento, al´em da organiza¸c˜ao dos resultados, podem ser realizados com o aux´ılio computacional. Isto incorpora uma grande contribui¸c˜ao da computa¸c˜ao ao trabalho dos cientistas, que tinham como suporte computacional para o processo de experimenta¸c˜ao cient´ıfica tradicional, no m´aximo um gerenciamento do experimento. Ferramentas foram desenvolvidas e s˜ao um suporte a mais dado pelo avan¸co de tecnologias.

Esses simuala¸c˜oes computacionais, s˜ao compostas por etapas, que nada mais s˜ao que programas de computador. Os programas podem ter rela¸c˜ao entre si, como por exemplo, a sa´ıda de um ser a entrada de outro, criando uma dependˆencia entre eles. Tais modelos podem ser concebidos em diferentes n´ıveis de abstra¸c˜ao, onde cada n´ıvel possui sua restri¸c˜ao de expressividade.

A observa¸c˜ao da poss´ıvel dependˆencia entre as etapas acaba por deixar exposta a necessidade de algum tipo de gerenciamento do processo. Neste ponto que as ferramentas de suporte mostram sua importˆancia. Al´em da gerˆencia de depˆendencias, outro ponto

(15)

2 crucial que este tipo de ferramenta de gerenciamento deve tomar aten¸c˜ao s˜ao com os dados produzidos e consumidos por cada etapa do processo.

Em todas as etapas da simula¸c˜ao, seja modelagem ou execu¸c˜ao, dados s˜ao gerados. As ferramentas de suporte a simula¸c˜ao s˜ao respons´aveis por armazenar os dados gerados em base de dados. As base de dados constitu´ıda de tais dados funciona como um rastro do experimento, desde sua idealiza¸c˜ao, at´e o seu resultado gerado. Normalmente essas bases possuem muitos registros, devido `as v´arias tentativas de execu¸c˜ao que um experimento ´e submetido para valida¸c˜ao.

As etapas do processo especificadas pela simula¸c˜ao possuem parˆametros para sua execu¸c˜ao. Os parˆametros s˜ao ajustados pelo usu´ario respons´avel pela modelagem e exe-cu¸c˜ao da simula¸c˜ao. Este ´e outro ponto de controle realizado pela ferramenta de gerenci-amento do experimento modelado computacionalmente.

A partir disto, ´e poss´ıvel perceber que o processo experimental pode ser organizado como um fluxo de execu¸c˜oes de tarefas, e que as ferramentas de gereciamento deste tipo de fluxo de execu¸c˜oes ´e a respons´avel por controlar o fluxo e gerenciar os dados produzidos e consumidos durante todo o processo.

1.1

Problema

As simula¸c˜oes com aux´ılio computacional aumentam a produtividade do cientista e diminuem a quantidade de tempo necess´ario para a obten¸c˜ao de resultados dos expe-rimentos. Isso tamb´em reduziu significativamente os custos financeiros da realiza¸c˜ao dos experimentos.

Por´em, um outro problema persiste: como regular os parˆametros das etapas do processo? Geralmente n˜ao existem muitas restri¸c˜oes para os valores dos parˆametros. Com isso, a quantidade de combina¸c˜oes entre os mesmos para uma ´unica etapa, pode ser gigantesca.

Esta observa¸c˜ao tem impacto direto na obten¸c˜ao dos resultados. Isso porque peque-nas altera¸c˜oes nos parˆametros de uma etapa podem acarretar em uma falha da execu¸c˜ao do processo. Consequentemente, ´e gerado um gasto financeiro desnecess´ario e desperd´ıcio de tempo por parte do cientista.

(16)

a-metros pode acarretar uma falha de execu¸c˜ao da simula¸c˜ao. E ainda mais: uma forma de sugerir valores para parˆametros que o cientista n˜ao tenha definido, de modo que a execu¸c˜ao da simula¸c˜ao do experimento tenha uma grande chance de ser finalizada.

1.2

Proposta

Os dados hist´oricos gerados pelas simula¸c˜oes de um experimento que s˜ao arma-zenados pela ferramenta de gerencimento, podem conter muito conhecimento impl´ıcito. Isso quer dizer que tal conhecimento seria invi´avel de extrair de forma manual. Contudo, existem maneiras autom´aticas de realizar essa extra¸c˜ao do conhecimento.

Como visto, alguma informa¸c˜ao pr´evia acerca dos valores escolhidos para os parˆ a-metros dos programas que realizam as tarefas de cada etapa do processo especificado pela simula¸c˜ao seria de grande valia para o cientista. ´E por meio da extra¸c˜ao do conhecimento ´ımplicito na base de dados hist´oricos, que este trabalho visa fornecer esse novo suporte

ao cientista.

Em suma, a proposta ´e desenvolver uma ferramenta que apoie o cientista na detec-¸c˜ao de falhas que podem ocorrer devido a uma m´a escolha da combina¸c˜ao dos parˆametros das etapas da simula¸c˜ao e que tamb´em seja capaz de recomendar valores para parˆametros de forma que a simula¸c˜ao do experimento tenha uma maior chance de ser executada com sucesso.

1.3

Organiza¸

ao do Texto

O Cap´ıtulo 2, apresenta os conceitos te´oricos utilizados para desenvolvimento do sistema proposto.

A proposta ´e apresentada no Cap´ıtulo 3. Neste cap´ıtulo que a ferramenta que proporciona ao cientista as funcionalidades de Detec¸c˜ao de Falhas e Recomenda¸c˜ao ´e definida.

Mostrando os resultados obtidos com a execu¸c˜ao da ferramenta, o Cap´ıtulo 4, procura tamb´em fornecer uma an´alise desses resultados. Por ´ultimo, o Cap´ıtulo 5 traz conclus˜oes dos trabalho desenvolvido e resultados obtidos, al´em de apontar os novos ca-minhos a serem seguidos para continua¸c˜ao do trabalho.

(17)

Cap´ıtulo 2

Fundamenta¸

ao Te´

orica

Este cap´ıtulo trata de aspectos te´oricos que d˜ao suporte ao sistema desenvolvido neste trabalho. O primeiro ponto abordado na Se¸c˜ao 2.1 ´e o Workflow Cient´ıfico: raz˜ao para seu surgimento, benef´ıcios e exemplos de utilidade. Este conceito ´e o respons´avel por contextualizar a importˆancia da solu¸c˜ao que foi desenvolvida neste trabalho. Se-guindo, apresentamos o SciCumulus na Se¸c˜ao 2.1.1, um sistema de gerenciamento de workflows que ´e utilizado como base para os experimentos da ferramenta desenvolvida. Tendo apresentado o conceito de Workflow e o SciCumulus, o termo Proveniˆencia ´e des-crito brevemente e ´e a fonte de informa¸c˜ao para a execu¸c˜ao do sistema, com a abordagem do seu gerenciamento por parte do SciCumulus tamb´em sendo explanada.

A partir da contextualiza¸c˜ao do cen´ario de atua¸c˜ao, s˜ao abordados temas mais centrais aos estudos relativos `a implementa¸c˜ao da solu¸c˜ao. ´E a´ı que entra o conceito de Aprendizado de M´aquina na Se¸c˜ao 2.3. S˜ao mostradas suas liga¸c˜oes com outras ´areas, dependˆencias e segrega¸c˜oes por diferentes perspectivas. No ˆambito de suas segrega¸c˜oes, vemos as diferencia¸c˜oes entre Aprendizado de M´aquina Supervisionado e Aprendizado de M´aquina N˜ao-Supervisionado, e, Aprendizado de M´aquina Generativo e Aprendizado de M´aquina Discriminativo.

S˜ao abordados algoritmos conhecidos em Aprendizado de M´aquina, e que foram usados na implementa¸c˜ao da ferramenta. Todos utilizam as premissas do Aprendizado de M´aquina Supervisionado, no entanto o SVM tem a vis˜ao do Aprendizado Discriminativo, e o Naive Bayes tem a vis˜ao do Aprendizado Generativo. A escolha por abordar as duas vis˜oes ´e o poder que ´e adquirido por cada uma, no que diz respeito `as tarefas de Classifica¸c˜ao e Recomenda¸c˜ao que s˜ao o n´ucleo do sistema.

(18)

2.1

Workflows Cient´ıficos

Os experimentos cient´ıficos de diversas ´areas como Biologia e Astronomia, podem ser realizados em diferentes n´ıveis de controle em rela¸c˜ao ao ambiente de execu¸c˜ao. Ini-cialmente, esses experimentos eram realizados em laborat´orios com os processos sendo executados manualmente pelos cientistas e os resultados armazenados em forma de ano-ta¸c˜oes. O problema deste tipo de abordagem era o custo que um erro simples poderia acarretar. Pelo lado financeiro, o gasto desnecess´ario com o material utilizado com o experimento que n˜ao obteve ˆexito. Por outro lado, o custo relativo ao tempo necess´ario para elaborar toda a estrutura para realiza¸c˜ao do experimento.

No entanto, a evolu¸c˜ao computacional possibilitou a realiza¸c˜ao desses experimentos atrav´es de simula¸c˜oes que se utilizam de programas de computador para emular cada etapa do experimento. Isto trouxe aspectos positivos quanto `a necessidade da coleta de material e tempo total de execu¸c˜ao do experimento.

Devido `a observa¸c˜ao dessa necessidade de apoio aos experimentos cient´ıficos, sur-giu a ideia de modelar tais experimentos de uma forma mais sistem´atica. Essa abordagem permite o rastreio do status do experimento, seja em qual fase esteja, facilita a reproduti-bilidade do mesmo e acrescenta possireproduti-bilidades de diminuir o risco de erros que poderiam ser causados pela necessidade da interven¸c˜ao humana na execu¸c˜ao. Essa modelagem sis-tem´atica ´e chamada workflow. Particularmente neste documento iremos nos concentrar em workflows cient´ıficos[44] , uma vez que um workflow pode ser usado em outras ´areas, como a dos neg´ocios, por exemplo.

Visualmente, um workflow pode ser representado por um grafo onde os v´ertices podem ser vistos como as etapas do experimento e as arestas como as rela¸c˜oes, ou fluxo de dados entre as etapas. Quando esta representa¸c˜ao n˜ao admite ciclos, temos um workflow DAG (Grafo Direcionado Ac´ıclico). Caso contr´ario, ´e denominado non-DAG.

Do ponto de vista taxonˆomico, workflows podem ser classificados de diversas ma-neiras. Dentre essas classifica¸c˜oes, est´a a que considera como caracter´ıstica principal o grau de abstra¸c˜ao em que o workflow est´a definido, onde se realizam as diferencia¸c˜oes entre workflows conceituais e workflows concretos [30].

Considere um workflow que modela um experimento em que as etapas s˜ao descritas verbalmente, de modo a deixar claro o que essa etapa deve produzir. Neste cen´ario, temos um workflow conceitual. Agora, uma modelagem que explicita as etapas do experimento

(19)

6 em como de fato ela deve ser realizada, caracteriza um workflow concreto. Na Figura 2.1 ´e dado um exemplo de um workflow sendo modelado de forma conceitual e concreta.

Figura 2.1: [30] (a) Workflow conceitual para Estimativa de desgaste de um tubo de extra¸c˜ao usado em plataformas (b); Workflow concreto para Estimativa de desgaste de um tubo de extra¸c˜ao utilizando os programas PROSIM, ANFLEX e POSFAL

Os experimentos cient´ıficos est˜ao classificados em quatro categorias, sendo elas: in-vivo, in-vitro, in-virtuo e in-silico. A experimenta¸c˜ao in-vivo consiste na realiza¸c˜ao do experimento em ambiente natural, com organismos vivos, sem que haja nenhuma si-mula¸c˜ao envolvida no processo. J´a o experimento in-vitro cria um ambiente controlado, ou seja, uma simula¸c˜ao do ambiente natural, no entanto permanecem os agentes vivos. Por outro lado, o experimento in-virtuo simula o ambiente sem necessariamente fidelidade ao ambiente natural, e permite ao cientista que possam ser realizadas altera¸c˜oes em tal ambiente durante a execu¸c˜ao do experimento. Enfim, o experimento in-silico simula com-putacionalmente tanto o ambiente quanto os agentes, e o cientista n˜ao tem a possibilidade de alter´a-los durante a execu¸c˜ao, somente tem acesso aos dados gerados pelo processo. Assim como os experimentos realizados in-vivo, in-vitro ou in-virtuo s˜ao compostos por etapas, os experimentos in-silico, onde se enquadram os workflows que consideraremos aqui, tamb´em o s˜ao. Mas sob a perspectiva de um workflow, essas etapas s˜ao cunhadas

(20)

de atividades. As atividades possuem dependˆencias no que diz respeito aos dados de en-tradas. As dependˆencias podem ser simples, como por exemplo, a atividade inicial recebe um conjunto de dados de entrada, ou um pouco mais complexas, como a combina¸c˜ao de resultados de outras atividades. Al´em dos dados de entrada, ainda existem parˆametros a serem ajustados, o que acrescenta complexidade `a execu¸c˜ao.

No caso dos workflows concretos, as atividades s˜ao definidas em termos de progra-mas respons´aveis por executar a etapa correspondente do experimento. Contudo, como visto anteriormente, as atividades possuem rela¸c˜oes entre si, e em v´arios casos essa inte-gra¸c˜ao n˜ao ´e f´acil, o que faz ser necess´ario a programa¸c˜ao de scripts que ficam respons´aveis por este papel. Este tipo de abordagem, apesar de funcionar e produzir resultados, tem alguns pontos negativos como: a perda da semˆantica do experimento, a dificuldade da an´alise de execu¸c˜ao e da reprodutibilidade do mesmo.

Ainda atentando para o objetivo de um experimento, para a obten¸c˜ao de resultados relevantes de um estudo, s˜ao necess´arias muitas execu¸c˜oes do experimento. Visto que cada atividade do workflow possui, al´em do conjunto de dados de entrada, parˆametros a serem ajustados, torna-se necess´ario que a cada execu¸c˜ao do experimento o cientista modifique tais parˆametros, a fim de ter uma compara¸c˜ao entre resultados.

Os workflows podem ser vistos exatamente como uma modelagem desse processo que dever´a ser executado diversas vezes. As diferentes execu¸c˜oes do workflow s˜ao chama-das ativa¸c˜oes, onde cada atividade definida na modelagem conceitual do workflow, toma valores para seus parˆametros. Contudo, o maior desafio est´a em como gerenciar esses workflows, isto ´e, como tirar a responsabilidade do cientista de criar scripts de integra-¸c˜ao entre os programas e ajustar os diferentes parˆametros de cada um desses programas para cada execu¸c˜ao do workflow. Isto fica a cargo dos Sistemas de Gerenciamento de Workflows Cient´ıficos.

2.1.1

SciCumulus: Um Sistema de Gerenciamento de Workflows

Cient´ıficos

Os Sistemas de Gerenciamento de Workflows Cient´ıficos [21] (adotaremos a abrevi-a¸c˜ao SGWfC daqui em diante) s˜ao sistemas que controlam as instancia¸c˜oes do workflow, al´em de fazer registros em uma base de dados e gerenciar informa¸c˜oes sobre os parˆametros usados, status de execu¸c˜ao, e desempenho, por exemplo. Iremos abordar caracter´ısticas

(21)

8 e objetivos dos SGWfC, utilizando o SciCumulus [19] como referˆencia, uma vez que o mesmo ser´a utilizado como ferramenta no desenvolvimento do presente trabalho.

A primeira caracter´ıstica desej´avel em um SGWfC ´e o suporte `a modelagem do experimento cient´ıfico como um workflow cient´ıfico. O SciCumulus trata essa quest˜ao utilizando um arquivo XML, visto na Figura 2.2, que ´e respons´avel por conter essa mo-delagem de forma a torn´a-lo compreens´ıvel ao SGWfC. Indo al´em, nesse arquivo XML ´e poss´ıvel deixar claro a modelagem do workflow em dois n´ıveis de abstra¸c˜ao: conceitual e concreto, outra caracter´ıstica importante a um SGWfC.

Um dos objetivos a serem atingidos com um SGWfC ´e o aux´ılio ao cientista no que diz respeito `a integra¸c˜ao dos programas que representam as atividades. O SciCumulus faz uso das informa¸c˜oes especificadas no XML de configura¸c˜ao para gerenciar esses aspectos.

Figura 2.2: [12] Exemplo de um arquivo de configura¸c˜ao do SciCumulus

No XML s˜ao especificados os diret´orios que possuem os arquivos de entrada, os programas que executam cada atividade, assim como as rela¸c˜oes entre cada atividade. Tamb´em s˜ao definidos os campos de parˆametros dos programas, possibilitando a varia¸c˜ao

(22)

dos mesmos nas diferentes instˆancias do workflow. Desta forma o SciCumulus conse-gue gerenciar a execu¸c˜ao do experimento, criando v´arias instˆancias do workflow e sendo respons´avel tamb´em pela integra¸c˜ao e ordem entre as atividades a serem executadas.

Ainda quanto `a execu¸c˜ao do workflow, uma caracter´ıstica desej´avel em um SGWfC, ´e a capacidade de paralelismo de execu¸c˜oes de instˆancias do workflow. Com esta carac-ter´ıstica, o tempo para a finaliza¸c˜ao do experimento pode ser drasticamente reduzido. A importˆancia desta caracter´ıstica deve-se `a necessidade de rapidez nas respostas positivas ou negativas (o que no ´ultimo caso, implica num ajuste dos parˆametros que podem ter ocasionado falhas ou resultados inesperados).

Com isso, o ambiente normalmente utilizado para a execu¸c˜ao dos workflows s˜ao os de Computa¸c˜ao de Alta Perfomance [18]. Tais ambientes s˜ao de dif´ıcil aquisi¸c˜ao, devido ao alto custo, al´em de que o investimento feito pode rapidamente culminar num equipa-mento obsoleto. Por isso, ´e desej´avel que os experimentos sejam executados utilizando a computa¸c˜ao em nuvem [17].

A computa¸c˜ao em nuvem ´e um tipo de servi¸co onde se paga pelo tempo de uso e recursos consumidos, portanto ´e necess´ario que sejam estabelecidos crit´erios para o uso eficiente de tais recursos. Muitos SGWfC trabalham com uma fun¸c˜ao de custo, onde ´e poss´ıvel especificar a qual crit´erio deve ser dado maior importˆancia, considerando custo, tempo e desempenho.

Neste aspecto, o Scicumulus utiliza de ferramentas de processamento distribu´ıdo, que tornam poss´ıveis o proveito dos ambientes de computa¸c˜ao de alta perfomance e com-puta¸c˜ao em nuvem. Desta forma, a execu¸c˜ao do workflow pode se beneficiar da execu¸c˜ao em paralelo de diferentes instˆancias do workflow em diferentes m´aquinas.

Outro ponto importante a ser observado por um SGWfC ´e sua capacidade de arma-zenar informa¸c˜oes relativas `a execu¸c˜ao do workflow. Esses dados tem grande importˆancia, as quais veremos na se¸c˜ao seguinte.

2.2

Proveniˆ

encia

Um experimento tem como motiva¸c˜ao uma hip´otese a ser validada ou refutada. No escopo dos experimentos cient´ıficos modelados como workflows, ´e induzida uma hip´otese a cada execu¸c˜ao do workflow. Essas hip´oteses podem ser vistas como um pr´e-produto,

(23)

10 que pode ser refinado. O processo de construir um pr´e-produto gera muitos dados, e uma outra caracter´ıstica desej´avel de um SGWfC ´e a capacidade de armazenar, consultar e gerenciar esse dados. Essas informa¸c˜oes que ser˜ao armazenadas nos d˜ao a possibilidade de obter o “rastro” do pr´e-produto, ou seja, saber quais as dependˆencias para a gera¸c˜ao do mesmo.

Sob este aspecto, temos uma das grandes importˆancias da proveniˆencia. Freire [27] utiliza a defini¸c˜ao do dicion´ario de Inglˆes Oxford para o termo proveniˆencia: “fonte ou origem de um objeto; hist´oria ou pedigree de um objeto; o registro da ´ultima deriva¸c˜ao ou caminho de um item atrav´es de seus propriet´arios”. A Figura 2.3 ilustra essa defini¸c˜ao para o caso de proveniˆencia de um bolo.

A proveniˆencia ´e uma ferramenta importante para os cientistas na fase de an´alise dos resultados. A partir da proveniˆencia pode-se verificar o que levou uma execu¸c˜ao a falhar ou gerar um resultado indesejado, ou no caso de sucesso quais foram os passos e parˆametros utilizados at´e o resultado.

Figura 2.3: Proveniˆencia no caso de um bolo: Os ingredientes podem ser vistos como os dados de entrada, os retˆangulos s˜ao as atividades, as ferramentas fazem o papel dos parˆametros das atividades e as elipses s˜ao a representa¸c˜ao dos pr´e-produtos gerados. [5]

(24)

reprodu-tibilidade do resultado. Para tal, como mencionado anteriormente, s˜ao necess´arios regis-tros das atividades executadas, juntamento com seus parˆametros, depˆendencias e dados gerados. Com isso, chegamos a uma propriedade importante da proveniˆencia que ´e a causalidade. Essa propriedade nos d´a um meio de, a partir de uma descri¸c˜ao dos pas-sos que devem ser seguidos, os dados de entrada e parˆametros utilizados nas atividades, reproduzir um resultado.

Tˆem-se dois tipos de proveniˆencia: a proveniˆencia prospectiva e a proveniˆencia retrospectiva [27]. A proveniˆencia prospectiva est´a voltada a capturar informa¸c˜oes relativas `

a especifica¸c˜ao do workflow em si, ou seja, quais atividades, e em qual ordem devem ser executadas para atingir o objetivo do workflow. J´a a proveniˆencia retrospectiva est´a associada `as informa¸c˜oes das instˆancias do workflow, como por exemplo, quais parˆametros as atividades est˜ao utilizando e quais dados est˜ao sendo gerados.

Na Figura 2.3, a proveniˆencia prospectiva pode ser caracterizada pela ordem em que as atividades, representadas pelos retˆangulos, aparecem no diagrama. Ou seja, as atividades Mix e Bake s˜ao definidas nessa ordem a fim de se obter o bolo. A proveniˆencia retrospectiva pode ser vista como o rastreio dos ingredientes que foram usados na ativi-dade Mix e a sa´ıda desta ativiativi-dade juntamente da ferramenta Oven como entrada para a atividade Bake.

2.2.1

Proveniˆ

encia no SciCumulus

O gerenciamento da proveniˆencia em um workflow tem trˆes componentes principais: captura das informa¸c˜oes, modelo de representa¸c˜ao das informa¸c˜oes e infraestrutura para armazenamento, recupera¸c˜ao e consulta das informa¸c˜oes capturadas. Como uma das caracter´ısticas que um SGWfC deve possuir, o SciCumulus tem suas abordagens para cada um dos componentes citados acima.

O componente do gerenciamento da proveniˆencia de captura de informa¸c˜oes pode usar diversos mecanismos que trabalham em diferentes n´ıveis. No mecanismo que trabalha a n´ıvel do Sistema Operacional, confia-se apenas nas capacidades de log do mesmo. J´a no n´ıvel de processos, cada processo, onde podemos exemplificar como cada programa que executa uma determinada atividade, ´e respons´avel por realizar seus pr´oprios registros. Por outro lado o mecanismo que trabalha num n´ıvel mais alto utiliza a integra¸c˜ao com o SGWfC para realizar a captura das informa¸c˜oes.

(25)

12 O SciCumulus faz uso da ´ultima abordagem citada acima. Essa abordagem traz consigo a vantagem de fazer uso do acoplamento com o SGWfC para recuperar as informa-¸c˜oes por meio de Application Programming Interfaces (API). Al´em disso, por ter acesso e controle sobre as defini¸c˜oes do workflow e seu ambiente de execu¸c˜ao, o SciCumulus permite obter a proveniˆencia prospectiva e retrospectiva.

Quanto ao modelo de proveniˆencia adotado, o SciCumulus faz uso da facilidade disposta pela escolha de infraestrutura para manter a proveniˆencia. ´E usado um modelo em camadas, onde uma camada ´e respons´avel pelas informa¸c˜oes do workflow conceitual. Uma segunda atem-se nas informa¸c˜oes das instˆancias do workflow. J´a a terceira manuseia os dados de entrada e sa´ıda das atividades. Este tipo de modelo permite evitar armazenar dados redundantes desnecessariamente.

No que diz respeito ao armazenamento, recupera¸c˜ao e consulta `a proveniˆencia, poderia ser escolhido o pr´oprio sistema de arquivos do SO. Contudo, a adi¸c˜ao de infraes-trutura de um banco de dados relacional acrescenta n˜ao s´o em perfomance, mas tamb´em no quesito facilidade de consulta aos dados. Isso gra¸cas `a linguagem de consulta SQL, que j´a ´e bem estabelecida.

Figura 2.4: Parte do modelo l´ogico de proveniˆencia do SciCumulus [20]

Na Figura 2.4, ´e apresentado parte do esquema l´ogico da proveniˆencia no SciCu-mulus. Neste trecho do modelo, est˜ao representadas as entidades utilizadas para extra¸c˜ao

(26)

dos dados para o projeto desenvolvido. As entidades d˜ao origem `as rela¸c˜oes no banco de dados relacional especificado no arquivo de configura¸c˜ao do SciCumulus.

´

E poss´ıvel ver a rela¸c˜ao de uma ou n Atividades com um Workflow. J´a na rela¸c˜ao da entidade Rela¸c˜ao com Atividade, ´e representada a liga¸c˜ao que define o fluxo das atividades no workflow. A entidade Campo ´e respons´avel por mapear os parˆametros dos quais uma atividade posterior depende para iniciar a execu¸c˜ao.

Contudo ´e preciso destacar que tanto a entidade Workflow quanto Atividade ir˜ao gerar de fato duas rela¸c˜oes no banco de dados. Isso para manter a proveniˆencia tanto do modelo conceitual quanto do concreto do workflow modelado.

2.3

Aprendizado de M´

aquina

Os computadores s˜ao ferramentas que tˆem auxiliado as pessoas nas mais diversas tarefas, aumentando a produtividade e diminuindo o tempo necess´ario para execu¸c˜ao de tarefas. Contudo, a maneira convencional que usamos o computador ´e por meio de aplica¸c˜oes desenvolvidas com um paradigma de programa¸c˜ao onde as instru¸c˜oes do que o computador deve fazer s˜ao expl´ıcitas.

Diante disso, seria interessante que fossˆemos capazes de programar o computador, para que a partir da imensa massa de dados que produzimos ao us´a-lo, o mesmo tivesse capacidade de aprender e evoluir com essas experiˆencias. O que queremos, de uma forma simples, ´e sair do conhecido paradigma Entrada + Programa = Sa´ıda para Sa´ıda + En-trada = Programa. Essa mudan¸ca no paradigma da programa¸c˜ao dos computadores ´e denominada Aprendizado de M´aquina.

Mitchell [33] d´a a seguinte defini¸c˜ao:

”Um programa aprende a partir da experiˆencia E, em rela¸c˜ao a uma classe de tarefas T, com medida de desempenho P, se seu desempenho em T, medido por P, melhora com E.”

O aprendizado pode ser visto como a capacidade de generalizar uma informa¸c˜ao, ou construir uma hip´otese, por meio de exemplos ou fatos. A ideia de generaliza¸c˜ao ´e muito relevante. Suponha um aluno estudando para a prova de uma disciplina. Caso ele decore todos os exerc´ıcios estudados e os mesmos estejam presentes na avalia¸c˜ao, ele certamente ir´a obter a nota m´axima. Mas caso sejam feitas algumas mudan¸cas, o aluno j´a

(27)

14 n˜ao conseguir´a resolver as quest˜oes. Isso ´e consequˆencia de n˜ao ter aprendido a mat´eria, apenas decorado.

De forma semelhante, considere que um grande conjunto de treinamento ´e forne-cido para um computador. Caso sejam feitas ”perguntas”ao computador, cujas respostas estejam presentes nesta base que foi passada, ele ir´a apenas recuper´a-las e devolvˆe-las. J´a uma pergunta que n˜ao esteja na base, pode resultar numa resposta aleat´oria e sem nenhum valor real.

Nos casos apresentados, podemos dizer que ocorreu uma memoriza¸c˜ao e n˜ao um aprendizado. Pense nos exerc´ıcios para a prova que o aluno decorou. Esses exerc´ıcios s˜ao um subconjunto do conhecimento adquirido ao aprender a mat´eria dada pelo professor. O resultado do aprendizado ´e a obten¸c˜ao de conceitos do que foi estudado. Al´em disso os conceitos s˜ao caracterizados por suas descri¸c˜oes.

Ent˜ao, o aprendizado tamb´em pode ser visualizado como uma busca. Uma busca pela descri¸c˜ao do conceito que melhor explica determinado conjunto de exemplos. Con-tudo, o espa¸co de busca para essa descri¸c˜ao do conceito de um problema de aprendizagem geralmente ´e muito amplo. Portanto, o problema torna-se em encontrar a descri¸c˜ao mais relevante de um conceito.

Por´em, nem sempre ´e poss´ıvel reduzir o espa¸co de busca de forma que nossa busca obtenha a melhor descri¸c˜ao global. Ent˜ao queremos escolher a melhor descri¸c˜ao em um subconjunto do espa¸co de busca. Com isso ´e necess´ario englobar `a nossa solu¸c˜ao de aprendizagem uma fun¸c˜ao que mensure essa diferen¸ca entre desempenho.

Na pr´atica computacional, o Aprendizado de M´aquina ´e representado por algorit-mos que aprendem tarefas bem definidas. Grande parte dos algoritalgorit-mos de Aprendizado de M´aquina necessitam de entradas para serem executados. J´a sabemos que buscamos a descri¸c˜ao de um conceito resultante do processo de aprendizagem. Essa descri¸c˜ao pode estar ´ımpl´ıcita nas entradas do algoritmo de Aprendizado de M´aquina, ent˜ao devemos procur´a-la.

A informa¸c˜ao utilizada como entrada ´e em forma de um conjunto de instˆancias. Para ser mais claro, considere que o conjunto de exemplos seja uma matriz N x M. Cada linha 0 < i ≤ N ´e uma instˆancia do conjunto de exemplos. Por outro lado, cada instˆancia ´e descrita por um conjunto de atributos. Ainda utilizando o exemplo da matriz, cada coluna 0 < j ≤ M ´e um atributo da i-´esima instˆancia. Na Figura 2.5, qualquer uma das

(28)

linhas, por exemplo, a linha 4, ´e uma instˆancia do conjunto de exemplos da matriz que possui como colunas: Temperature, Headache, Nausea e Flu, onde as trˆes primeiras s˜ao atributos que caracterizam ou n˜ao um refriado, representado pela ´ultima coluna.

Figura 2.5: [14] Conjunto de exemplos com dados sobre casos de resfriado. Cada linha, de 1 a 7, ´e uma instˆancia. As colunas Temperatura, Dor de cabe¸ca e N´ausea, s˜ao atributos. A coluna Refriado ´e o r´otulo dado para cada uma das instˆancias.

O algortimo toma entradas com objetivo de devolver uma sa´ıda. A sa´ıda de um algoritmo de Aprendizado de M´aquina ´e um modelo, diferentemente das sa´ıdas de pro-gramas tradicionais. Esse modelo, tem como dever representar o conhecimento que foi adquirido no processo de aprendizagem. Existem v´arias formas de se realizar essa repre-senta¸c˜ao, at´e mesmo para o mesmo tipo de problema. As representa¸c˜oes v˜ao desde regras do tipo: Se a temperatura do corpo est´a alta, o paciente tem dor de cabe¸ca e sentindo n´ausea, ent˜ao o paciente est´a resfriado, a arvores onde os n´os internos representam os atributos e cada ramo de sa´ıda ´e um poss´ıvel valor para este atributo e esta ´arvore ´e per-corrida at´e chegar a uma folha representando a resposta. Mais ainda, uma representa¸c˜ao pode ser uma fun¸c˜ao matem´atica, onde os atributos s˜ao as vari´aveis e o resultado ´e a resposta, entre outros.

A busca pelo conceito geral contido em um grande conjunto de dados pode ser realizada de duas formas. Isso divide o Aprendizado de M´aquina em dois principais tipos distintos: Aprendizado Supervisionado e Aprendizado N˜ao-Supervisionado. H´a ainda o

(29)

16 Aprendizado Semi-Supervisionado [41] que pode ser visto como uma varia¸c˜ao do Apren-dizado Supervisionado, e o AprenApren-dizado por Refor¸co [28], visto como uma subclasse do Aprendizado N˜ao-Supervisionado.

2.3.1

Aprendizado de M´

aquina Supervisionado

Aprendizado Supervisionado ´e aquele em que fornecemos o conjunto de exemplos possuindo tanto as entradas como as sa´ıdas esperadas para uma tarefa. Um exemplo de entrada para este tipo de aprendizado ´e o apresentado na Figura 2.5.

Temos algumas classes de problemas que s˜ao resolvidas utilizando o Aprendizado de M´aquina. Dentro do Aprendizado Supervisionado, dois exemplos de classes de problemas s˜ao: Regress˜ao e Classifica¸c˜ao.

A Regress˜ao ´e um tipo de problema onde o valor de resposta assume valores cont´ı-nuos. Normalmente o modelo aprendido ´e uma fun¸c˜ao. J´a os problemas de Classifica¸c˜ao, utilizam modelos que predizem valores discretos, como pertencer ou n˜ao a uma classe de categorias. A Figura 2.5, mostra um conjunto de exemplos j´a rotulados que pode ser usado para o processo de aprendizagem. Cada instˆancia possui valores para seus atributos e o r´otulo associado.

Representar o conhecimento adquirido ´e parte importante no processo de apren-dizagem. Representa¸c˜oes, que mencionaremos tamb´em como hip´otese, podem variar po-dendo at´e mesmo ser igual `a entrada do algoritmo: uma tabela. Em um problema de classifica¸c˜ao, essa hip´otese em forma de tabela seria utilizada do seguinte modo: dada uma nova instˆancia, buscar uma linha da tabela que melhor se ajuste a essa instˆancia e devolver o r´otulo que essa linha possui.

Outra forma ´e uma hip´otese linear. Em um problema de Regress˜ao, por exemplo, um bom modelo pode ser uma equa¸c˜ao que represente uma fun¸c˜ao linear, ou seja, uma reta. Para usar esta fun¸c˜ao ´e fornecida uma nova instˆancia com atributos e respectivos valores associados e o valor computado pela fun¸c˜ao ´e devolvido. Mencionando ainda mais dois tipos de representa¸c˜ao temos ´arvores e regras. As ´arvores se utilizam de um atributo por vez at´e chegarem a uma resposta, podendo n˜ao ser necess´ario usar todos. J´a as regras utilizam da expressividade da l´ogica, que ´e mais pr´oxima da representa¸c˜ao humana.

Vimos duas classes de problemas resolvidas pelo Aprendizado Supervisionado, ´e ra-zo´avel que intuitivamente pensemos em fam´ılias de modelos para cada classe de problema.

(30)

Focando no problema de Classifica¸c˜ao, temos v´arios algoritmos, entre os quais est˜ao as Support Vector Machines, interessante at´e mesmo por sua capacidade de ser utilizado tanto para Classifica¸c˜ao quanto para Regress˜ao.

Devido aos resultados competitivos com rela¸c˜ao a outros modelos, as SVM [8](as Support Vector Machines ser˜ao mencionadas assim daqui por diante) foram escolhidas para fazerem parte deste trabalho. Visto isso, ser˜ao dados mais detalhes sobre a l´ogica de funcionamento por tr´as deste modelo.

2.3.1.1 Support Vector Machines

Sob a perpectiva da Classifica¸c˜ao e diante de um problema com apenas duas classes, a ideia das SVM ´e achar o hiperplano que separa os dados das duas classes com a maior margem de distˆancia entre um exemplo da classe 1 e um exemplo da classe 2 [15]. A Figura 2.6 ilustra bem essa ideia.

Figura 2.6: As classes s˜ao quadrado e c´ırculo. Existem v´arias retas que separam essas duas classes. Contudo, as SVM ir˜ao retornar a reta que possui a maior margem entre os c´ırculos e os quadrados.

As SVM possuem trˆes componentes principais, s˜ao eles: Vetores de Suporte, Vetor de pesos, Kernel. Os Vetores de Suporte s˜ao um subconjunto do conjunto de exemplos que ser´a utilizado como a base de cria¸c˜ao da reta que separa as classes, reta essa denominada fronteira de decis˜ao. A denomina¸c˜ao fronteira de decis˜ao ´e porque nem sempre ´e poss´ıvel separar os dados por uma reta, e podemos obter curvas separadoras das mais diversas formas. ´E pelo uso desses vetores de suporte que o SVM ´e um modelo pertencente a uma fam´ılia de algoritmos chamada Instance Based Learning [40].

(31)

18 O Vetor de pesos ´e o grau de contribui¸c˜ao que cada atributo dos vetores de suporte ter´a na classifica¸c˜ao. O Kernel ´e uma fun¸c˜ao que tem como objetivo mapear um dado espa¸co em outro [3]. Isso ´e utilizado para casos onde os dados n˜ao s˜ao linearmente sepa-r´aveis, ou seja n˜ao existe nenhum hiperplano que consiga separar as classes no espa¸co de busca original. Ent˜ao ´e necess´ario definir uma transforma¸c˜ao onde a representa¸c˜ao dos dados neste novo espa¸co possa ser linearmente separ´avel.

Matematicamente o hiperplano que divide os dados pode ser representado por uma equa¸c˜ao do tipo:

f (x) = w · x + b = 0 (1)

No caso de uma classifica¸c˜ao bin´aria e dados de exemplos linearmente separ´aveis, ou seja, decidir se uma entrada pertence ou n˜ao a uma classe, podendo ser representado, por exemplo, por uma reta, podemos utilizar uma fun¸c˜ao auxiliar para retornar a resposta:

g(x) = sgn(f (x)) =      +1, se w · x + b > 0 −1, se w · x + b < 0

Na equa¸c˜ao (1), o termo w, ´e referente ao vetor de pesos para cada atributo dos vetores de suporte, que devemos encontrar. O termo x ´e um vetor de atributos de cada instˆancia do conjunto de exemplos e o b ´e o vi´es que fun¸c˜ao ter´a, no caso da reta, geome-tricamente interpretado como o coeficiente angular.

2.3.2

Aprendizado de M´

aquina N˜

ao Supervisionado

O Aprendizado N˜ao Supervisionado, recebe a entrada n˜ao rotulada, ou seja, que-remos de alguma forma extrair um conhecimento sobre o que nem sabemos o que ´e ao certo.

A classe de problema t´ıpica do Aprendizado N˜ao-Supervisionado ´e a Clusteriza¸c˜ao. Como n˜ao s˜ao fornecidos os r´otulos das instˆancias, o problema se restringe a encontrar similaridades entre elas. Por meio dessas similaridades s˜ao criados agrupamentos.

´

E intuitivo, partindo da Figura 2.7, entender o processo da clusteriza¸c˜ao. Na figura da esquerda, temos representa¸c˜oes de Documentos plotadas em rela¸c˜ao a dois atributos quaisquer. Apesar da distin¸c˜ao visual da cor, na realidade esses dados n˜ao possuem r´otulos.

J´a a segunda figura ´e o resultado do processo de Clusteriza¸c˜ao. S˜ao criados 3 grupos, ou clusters, a partir de Documentos semelhantes. Deste forma um novo Documento

(32)

Figura 2.7: Clusteriza¸c˜ao de Documentos.

poder´a ser dito em algum destes clusters de acordo com a similaridade, ou proximidade a algum deles.

2.3.2.1 One-Class Support Vector Machines

Existem casos onde a executar a tarefa de Classifica¸c˜ao da forma que vimos at´e aqui para determinados tipos de problemas ´e invi´avel a partir dos algoritmos tradicionais de constru¸c˜ao de hip´oteses. Imagine o caso em que se quer prever uma poss´ıvel falha de um equipamento. Num cen´ario ideal, a quantidade de dados de funcionamento correto do equipamento ´e muito superior, ou at´e mesmo, podendo chegar ao ponto de n˜ao se haver dados sobre falhas do mesmo.

Ainda assim, podem existir registros de casos de falha no conjunto de dados de trei-namento. Contudo, ´e bem prov´avel que essa por¸c˜ao dos dados que representa as falhas n˜ao seja suficiente para se utilizar um algoritmo de Classifica¸c˜ao e obter resultados satisfat´ o-rios quanto aos resultados. Isto deve-se muito pela incapacidade dos dados representarem a maior parte dos casos de falha, degradando o desempenho do modelo constru´ıdo.

Sob este cen´ario, foi concebida uma nova tarefa, um pouco semelhante a Classi-fica¸c˜ao, mas com um embasamento diferente: a Detec¸c˜ao de Anomalias. Esta tarefa ´e realizada com a premissa de um conjunto de dados mais limitado de informa¸c˜oes que a necess´aria para a Classifica¸c˜ao. A limita¸c˜ao do conjunto de dados citada est´a ligada ao fato de n˜ao ser necess´ario que haja valores distintos de classes, o que mostra a

(33)

dife-20 ren¸ca do tipo de problema que `a Detec¸c˜ao de Anomalias consegue lidar em detrimento `a Classifica¸c˜ao.

Um dos modelos propostos sob esta perspectiva ´e o One-Class Support Vector Machines [32]. Este modelo ´e uma varia¸c˜ao do modelo visto na Se¸c˜ao 2.3.1.1.

Este modelo est´a englobado no Aprendizado N˜ao Supervisionado pois como ´e pres-suposta a existˆencia de dados de apenas uma classe, n˜ao ´e necess´ario explicitar essa informa¸c˜ao. Ou seja, os dados do conjunto de treinamento n˜ao estao rotulados.

Figura 2.8: Fronteira de decis˜ao no One-Class SVM [24]

O One-Class SVM utiliza o mesmo conceito de Kernel de SVMs tradicionais, para transformar o espa¸co original dos dados de treinamento em um outro espa¸co. Por´em, essa transforma¸c˜ao n˜ao tem a ver com a separa¸c˜ao dos dados entre si, uma vez que todos ir˜ao pertencer a mesma classe.

A fronteira de decis˜ao do One-Class ´e encontrada a partir do hiperplano que est´a mais distante da origem, de modo que entre a origem e o hiperplano n˜ao existam ocor-rˆencias de registros. Essa restri¸c˜ao pode ser relaxada introduzindo vari´aveis de folga e conseguindo uma maior margem de separa¸c˜ao.

Na Figura 2.8, visualizamos os dados j´a num espa¸co transformado, e o hiperplano de separa¸c˜ao entre a maior por¸c˜ao dos dados de treinamento e a origem do espa¸co. Note que os c´ırculos pintados de verde s˜ao os dados que s˜ao utilizados na separa¸c˜ao, enquanto os c´ırculos brancos, s˜ao as vari´aveis de folga.

(34)

Apesar de omitirmos a formula¸c˜ao deste modelo, ´e importante ressaltar que a introdu¸c˜ao de vari´aveis de folga implicam numa adi¸c˜ao de um termo de penaliza¸c˜ao nas equa¸c˜oes de c´alculo do hiperplano.

Este modelo se torna importante para o presente trabalho, devido `a observa¸c˜ao do comportamento do conjunto de dados de treinamento ser bastante semelhante ao caso descrito no in´ıcio desta se¸c˜ao como motiva¸c˜ao.

2.3.3

Aprendizado de M´

aquina Discriminativo

A divis˜ao dos tipos de Aprendizado de M´aquina em Supervisionado e N˜ao Su-pervisionado n˜ao diz respeito a todos os pontos que podem ser levados em conta para uma distin¸c˜ao. Caracterizar o Aprendizado de M´aquina em Supervisionado ou N˜ ao-Supervisionado considera como elemento principal a forma como ´e realizado o treinamento do modelo. Como visto, essa tipifica¸c˜ao ´e em rela¸c˜ao `a capacidade de se fornecer ou n˜ao um conjunto de treinamento com dados rotulados de uma classe ou outra.

No entanto, outro aspecto tamb´em de grande importˆancia ´e sobre como o conhe-cimento adquirido est´a estruturado no modelo. Depois de constru´ıdo o modelo, a partir da base de treinamento, o utilizamos de forma direta como uma ”caixa preta”. Apesar disso, ainda podemos ter a capacidade de analisar que parte do conhecimento incluso no modelo foi usado para, por exemplo, realizar uma classifica¸c˜ao de uma nova instˆancia.

Com isso, uma nova separa¸c˜ao de tipos de Aprendizado de M´aquina pode ser realizada: Aprendizado de M´aquina Discriminativo e Aprendizado de M´aquina Generativo [25].

Para construir um modelo de aprendizagem, h´a um grande esfor¸co computacional necess´ario. Precisamos manipular os dados de treinamento, avaliar express˜oes matem´ a-ticas, e ent˜ao juntar todos os dados intermedi´arios gerados por esses passos para de fato construir o modelo. Em todo o processo h´a a preocupa¸c˜ao com a otimiza¸c˜ao do modelo. Devido a esta preocupa¸c˜ao, s˜ao realizadas as a¸c˜oes necess´arias para que o modelo tenha usabilidade e perfomance aceit´aveis.

As quest˜oes da usabilidade e desempenho aqui levantadas andam juntas. O apren-dizado pode em alguns casos ter sua acur´acia aumentada, criando-se um modelo mais complexo. Contudo, pode ter seu desempenho deteriorado, pois um maior esfor¸co com-putacional ´e preciso para se devolver a resposta para uma dada consulta. Isso afeta

(35)

22 diretamente a usabilidade do modelo, uma vez que em muitos casos n˜ao se espera que sejam necess´arios dias para se obter uma resposta.

S˜ao nestes dois aspectos que o Aprendizado Discriminativo concentra suas for¸cas. Essa escolha tem seus pr´os e contras, mas para a maior parte dos problemas de Aprendi-zado de M´aquina, essa ´e a melhor abordagem. Usaremos o exemplo do SVM para tornar mais claro o que segue.

Pensando em desempenho, a abordagem discriminativa preocupa-se no passo de otimiza¸c˜ao. Isso gera modelos com uma maior usabilidade e em respostas mais r´apidas, fator determinante para a maior ado¸c˜ao deste tipo de aprendizado. O maior esfor¸co para a constru¸c˜ao de um SVM ´e na maximiza¸c˜ao da margens do plano de separa¸c˜ao entre as classes. Feito isto, uma nova instˆancia pode ser classificada apenas encaixando seus atributos na equa¸c˜ao do plano e uma opera¸c˜ao modular que responde em qual lado do plano ficou.

Por outro lado, informa¸c˜oes intermedi´arias s˜ao perdidas. A ´unica explica¸c˜ao que tem-se para a classifica¸c˜ao dada pelo modelo s˜ao esse planos, ou mais comumente hiper-planos. Muitas vezes essa representa¸c˜ao n˜ao ´e explicativa, devido a nossas limita¸c˜oes. As limita¸c˜oes s˜ao por exemplo, como pensar num hiperplano de 5 dimens˜oes?

Na grande parte das vezes existe uma dificuldade de interpreta¸c˜ao do conhecimento adquirido pela abordagem discriminativa. Essa caracter´ıtica, que est´a presente em grande parte dos modelos dessa abordagem, faz com que ela seja conhecida como uma “caixa preta”. Mas importante ressaltar, que o termo “caixa preta” neste contexto diz respeito `a estrutura construida para representa¸c˜ao do conhecimento.

O maior fator na diferencia¸c˜ao entre os Aprendizado Discriminativo e o Apren-dizado Generativo ´e o foco de cada um deles. O Aprendizado Discriminativo foca em saber diferenciar as instˆancias umas das outras. Ou seja, a aten¸c˜ao est´a voltada `as clas-ses que as instˆancias podem pertencer. Por outro lado, o Aprendizado Generativo foca nas instˆancias. Isso quer dizer que a aten¸c˜ao est´a voltada a entender como as instˆancias s˜ao geradas, para a partir da´ı uma nova instˆancia pode ser rotulada com base na maior semelhan¸ca entre as instˆancias de uma classe ou outra.

Esta diferencia¸c˜ao tamb´em pode ser encarada de um ponto de vista probabil´ıstico. Dado Y uma classe e X um conjunto de atributos de uma instˆancia, o Aprendizado Discriminativo est´a focado em P(Y|X). J´a o Aprendizado Generativo se preocupa com

(36)

P(X|Y), e a partir de Teorias da Probabilidade chega a P(Y|X).

2.3.4

Aprendizado de M´

aquina Generativo

Diferente do Aprendizado Discriminativo, com o foco do Aprendizado Generativo temos uma melhor interpreta¸c˜ao do conhecimento adquirido. Apesar de ainda ser poss´ıvel utilizar o modelo constru´ıdo como uma ”caixa preta”, ´e poss´ıvel tamb´em entender a solu¸c˜ao do problema com uma interpreta¸c˜ao dentro do seu pr´oprio contexto.

Na se¸c˜ao anterior vimos que o esfor¸co ´e quase que integral na otimiza¸c˜ao do modelo. Os passos intermedi´arios n˜ao s˜ao t˜ao custosos, pois desprezam algumas informa¸c˜oes em prol de outras. Esse fato, demonstra que o modelo discriminativo n˜ao mant´em todas as vari´aveis do problema.

Alguns dos mais comuns modelos utilizados para a resolu¸c˜ao do problema de Clas-sifica¸c˜ao s˜ao os classificadores probabil´ısticos. Usaremos o exemplo do classificador Naive Bayes para deixar mais claro o conceito do Aprendizado de M´aquina Generativo.

2.3.4.1 Naive Bayes

Naive Bayes [34] ´e um modelo estat´ıstico muito utilizado para classifica¸c˜ao. Utiliza o Aprendizado Supervisionado para sua constru¸c˜ao. ´E baseado no Teorema de Bayes [2]. Relembrando que o problema de classifica¸c˜ao recebe os atributos de uma nova instˆancia e devolve a qual classe esta pertence. Em termos probabil´ısticos, podemos pensar em qual a classe com a m´axima probabilidade a posteriori dado os atributos da minha instˆancia de consulta. Denotando a classe pela vari´avel Y e o vetor de atributos por X, reescrevemos a probabilidade descrita anteriormente como: P (Y | X).

Para calcular esta probabilidade usamos o Teorema de Bayes. A equa¸c˜ao utilizada para este c´alculo ´e a que segue:

P (Y | X) = P (X | Y ) P (Y ) P (X)

Da equa¸c˜ao acima temos que os termos do lado esquerdo s˜ao: • P (X | Y ) ´e a probabilidade do preditor dado a classe. • P (Y ) ´e a probabilidade a priori da classe.

(37)

24 Vejamos um exemplo do uso desse classificador. Considere um conjunto de dados que diz respeito ao Clima x Jogar Futebol. Este ´e um exemplo bidimensional, de forma que considerando a equa¸c˜ao anterior, Jogar Futebol ´e a classe e tamb´em a variavel Y, enquanto o clima ´e o atributo da instˆancia a ser classificada, ou seja a vari´avel X.

Figura 2.9: Exemplo de uso do Naive Bayes.

Pelo Teorema de Bayes, precisamos calcular uma probabilidade condicional e duas probabilidades incondicionais para responder uma consulta do tipo: dado que o tempo est´a ensolarado, devo jogar futebol? A figura acima, mostra trˆes tabelas, onde a primeira ´e o conjunto de treinamento.

A segunda ´e uma tabela de frequˆencia que conta o n´umero de ocorrˆencias em que se joga futebol ou n˜ao, dado um clima, al´em do total de ocorrˆencias. ´E com o aux´ılio destes valores computados que somos capazes de calcular a probabilidade do preditor dado a classe.

A terceira tabela cont´em os dados de verossimilhan¸ca, neste caso P(X|Y). A partir dela que encontramos os valores para as probabilidades a priori da classe e do preditor.

Com posse destas probabilidades podemos responder nossa pergunta: dado que o tempo est´a ensolarado, devo jogar futebol? Ent˜ao, pelo Teorema de Bayes:

P (P lay | Sunny) = P (Sunny | P lay) P (P lay) P (Sunny)

(38)

P (P lay | Sunny) = 0, 33 ∗ 0, 64

0, 36 ' 0, 59

De uma forma simplificada, ´e assim que o classificador Naive Bayes funciona. Como foi poss´ıvel notar, os valores das probabilidades condicionais e incondicionais necess´arias para a predi¸c˜ao de uma nova instˆancia dependem dos dados de treinamento. Isto implica que caso os dados de treinamento n˜ao reflitam bem a natureza dos dados, as predi¸c˜oes ser˜ao menos acuradas.

O ponto relevante para se fazer a conex˜ao com o conceito do Aprendizado Ge-nerativo ´e a forma como foi formulada a resposta. Percebemos que utilizamos dados intermedi´arios para a gera¸c˜ao de uma resposta final. No caso do Naive Bayes foi necess´ a-rio guardar todas as vari´aveis da modelagem do problema. Contudo, isso nem sempre se faz necess´ario desde que as probabilidades P(X|Y) ainda sejam bem representados.

´

E not´avel que a resposta envolve uma maior capacidade de armazenamento de informa¸c˜oes do modelo, al´em de ser necess´ario c´alculos mais custosos em tempo de exe-cu¸c˜ao. Foi usado um exemplo com apenas um atributo, no entanto, em termos pr´aticos, uma instˆancia ter´a muitos atributos, e o espa¸co necess´ario para armazenar os c´alculos pr´evios e quantidade de opera¸c˜oes acompanha esse crescimento.

Fica f´acil ver, que em termos de tempo de execu¸c˜ao de uma consulta, os modelos do Aprendizado Discriminativo tem um melhor desempenho. No entanto, a interpreta¸c˜ao dos dados no Aprendizado Generativo fazem mais sentido, em rela¸c˜ao ao contexto do problema.

2.4

Trabalhos Relacionados

A maior parte dos trabalhos relacionados ao uso de t´ecnicas de Aprendizado de M´aquina no apoio dos usu´arios no uso dos workflows est˜ao voltados a parte de estrutura¸c˜ao dos mesmos. As tarefas focam em recomendar na maior parte das vezes, qual sequˆencia de atividades implementar nos workflows. Exemplos est˜ao presentes em [31] e [43].

Cˆamara, em [37], propˆos uma abordagem mais pr´oxima ao presente trabalho. Sua pesquisa tamb´em est´a voltada a tarefa de Classifica¸c˜ao, no que diz respeito aos

(39)

resul-26 tados de execu¸c˜ao de um workflow. No entanto, o modelo de Aprendizado de M´aquina utilizado por Cˆamara ´e diferente dos propostos aqui. Ele utiliza `Arvores de Decis˜ao [33]. Este modelo tem uma caracter´ıstica que o difere dos demais que ´e a sua capacidade de interpreta¸c˜ao do resultado, a partir da sua pr´opria estrutura. Al´em de responder `a per-gunta relativa `a falha ou sucesso de execu¸c˜ao do workflow, Cˆamara abrange a quest˜ao do tempo estimado de execu¸c˜ao do workflow para um dado conjunto de parˆametros. Note que a pesquisa tamb´em est´a voltada a diminuir o tempo e recursos financeiros gastos pelos cientistas em seus experimentos.

Tamb´em relacionado a Predi¸c˜ao de falhas em workflows, em [38] Samak propˆos uma abordagem N˜ao-Supervisionada para o problema utilizando o algoritmo de clusteriza¸c˜ao K-Means. Neste trabalho a ideia ´e prever a falha de execu¸c˜ao de um workflow em tempo de execu¸c˜ao. Para tal tarefa, os atributos necess´arios para a verifica¸c˜ao de semelhan¸ca do workflow atual com algum dos clusters previamente extra´ıdos por meio de dados hist´oricos s˜ao recomputados de acordo com a produ¸c˜ao de dados de monitoramento das etapas de execu¸c˜ao do experimento.

Gaikwad desenvolveu um trabalho que envolve a Detec¸c˜ao de Anomalias, mas voltado para a infraestrutura do ambiente de execu¸c˜ao do workflow. Em [35], procura-se detectar a degrada¸c˜ao de desempenho de execu¸c˜ao e falhas de execu¸c˜ao dos workflows num ambiente de nuvem. Para a detec¸c˜ao, foi desenvolvido um algoritmo baseado no m´etodo estat´ıstico de modelos Autoregressivos [1].

Em [42], Huang mostra um trabalho relativo `a tarefa de recomenda¸c˜ao no ˆambito dos workflows cient´ıficos. Sua recomenda¸c˜ao diz respeito a qual arquivo de dados um cientista deve utilizar como entrada de uma etapa de seu experimento, a fim de obter uma execu¸c˜ao de sucesso. Para tornar poss´ıvel essa recomenda¸c˜ao, foi desenvolvido um modelo de confian¸ca. Este modelo foi necess´ario devido `a diferen¸ca entre os tipos de dados utilizados em recomenda¸c˜ao de sites de vendas, por exemplo, e os dados de execu¸c˜ao de workflows ciet´ıficos.

(40)

Cap´ıtulo 3

Um Sistema de Detec¸

ao de Falhas e

Recomenda¸

ao para Parˆ

ametros em

Workflows Cient´ıficos

Um Sistema de Gerenciamento de Workflows, como o SciCumulus [19], acrescen-tou muito ao processo de an´alise de resultados e proveniˆencia dos mesmos para diversos experimentos cient´ıficos. O suporte do ponto de vista estrutural teve grande avan¸co. Con-tudo, o grande volume de dados gerado pelos SGWfC abre ainda mais possibilidades para solu¸c˜oes que agreguem valor aos respons´aveis pelas execu¸c˜oes dos workflows.

Pensando nessas possibilidades, o presente trabalho apresenta uma proposta que visa detectar as execu¸c˜oes com falhas realizando predi¸c˜oes e detectando execu¸c˜oes anˆ o-malas. Tamb´em visa diminuir o tempo de execu¸c˜ao total e o tempo gasto pelo cientista realizando uma recomenda¸c˜ao de valores para parˆametros que o cientista n˜ao tem certeza de quais usar. Tudo isto ´e poss´ıvel devido os dados hist´oricos de execu¸c˜oes passadas de um workflow, que s˜ao capturados pela proveniˆencia, e utilizando t´ecnicas de Aprendizado de M´aquina. Deste modo se tornou poss´ıvel realizar as tarefas de detec¸c˜ao de falhas e recomenda¸c˜oes de parˆametros para as novas execu¸c˜oes.

As tarefas executadas pelo sistema agregam muito ao processo de experimenta¸c˜ao cient´ıfica no que tange a custos temporais e financeiros. Como a execu¸c˜ao de uma ativa¸c˜ao de um workflow pode levar muito tempo para ser finalizada, predizer se ocorrer´a falhar ou n˜ao ´e de grande valia. Ainda explorando este cen´ario, mas sob o olhar financeiro e lembrando que na maioria das vezes essas execu¸c˜oes s˜ao realizadas em ambientes de

(41)

28 computa¸c˜ao em nuvem, uma detec¸c˜ao de falha, antes que a mesma ocorra, gera economia de gastos de recursos nesses ambientes e consequentemente economia financeira.

Na Se¸c˜ao 3.1 ser˜ao apresentados aspectos gerais do sistema desenvolvido, mos-trando uma arquitetura conceitual e detalhes de t´ecnicas de implementa¸c˜ao utilizados. J´a na Se¸c˜ao 3.2, o componente de extra¸c˜ao de dados de proveniˆencia ´e abordado mais a fundo. A Se¸c˜ao 3.3 trata de detalhar como foi desenvolvida a tarefa de Predi¸c˜ao utili-zando o SVM. Seguindo, na Se¸c˜ao 3.4 a tarefa de detec¸c˜ao de anomalias usando o SVM OneClass ´e apresentada e especificada. A abordagem mais probabil´ıstica da tarefa de Predi¸c˜ao realizada pelo sistema ´e mostrada na Se¸c˜ao 3.5. Por fim, a Se¸c˜ao 3.6 d´a detalhes do que foi feito para desenvolver a funcionalidade de Recomenda¸c˜ao de Parˆametros.

3.1

Vis˜

ao Geral

O sistema aqui proposto foi desenvolvido de forma modular, onde cada m´odulo possui seu papel bem definido. A Figura 3.1 mostra uma vis˜ao geral do funcionamento do sistema e sua integra¸c˜ao com outros componentes.

Figura 3.1: Big Picture: Os retˆangulos de cantos arrendondados representam os m´odulos do sistema, enquanto as elipses representam as tarefas que podem ser executadas.

(42)

Ge-renciamento de Workflows. A partir das ativa¸c˜oes dos workflows todas as informa¸c˜oes oriundas do processo s˜ao armazenados em um banco de dados relacional. Esses dados s˜ao o principal recurso para constru¸c˜ao dos modelos de Aprendizado de M´aquina aqui utilizados.

Com os dados necess´arios armazenados numa base de dados, ´e necess´ario o proce-dimento de extra¸c˜ao dos mesmos. Esse processo tem o papel de n˜ao s´o extrair os dados, como tamb´em de transformar sua representa¸c˜ao numa forma mais gen´erica. No caso dos modelos SVM e Naive Bayes, esta etapa de extra¸c˜ao de dados tamb´em fica respons´avel por especificar a v´ariavel de classe utilizada.

Uma vez que processo de extra¸c˜ao foi terminado, os modelos de Aprendizado de M´aquina escolhidos para o sistema possuem o suporte necess´ario para serem constru´ıdos. Al´em dos j´a citados SVM e Naive Bayes, o outro modelo utilizado ´e o SVM One-Class.

J´a com os modelos devidamente constru´ıdos, as tarefas propostas pelo sistema podem ser executadas. Os modelos SVM e Naive Bayes al´em do detector de anomalias SVM OneClass desempenham a tarefa de Detec¸c˜ao de Falhas. O modelo Naive Bayes ainda ´e utilizado para realizar a Recomenda¸c˜ao de Parˆametros.

A linguagem de programa¸c˜ao majorit´aria escolhida para o desenvolvimento foi Python. Essa escolha foi embasada n˜ao apenas pelo poder e facilidade da linguagem em si, mas tamb´em devido ao acesso a bibliotecas como o scikit-learn [13]. O scikit-learn ´e uma biblioteca de c´odigo aberto amplamente utilizada para tarefas de Aprendizado de M´aquina, que conta com a implementa¸c˜ao de modelos para diversas tarefas de Aprendi-zado de M´aquina. No entanto, o m´odulo respons´avel pela tarefa de Recomenda¸c˜ao foi escrito utilizando a linguagem Java e a biblioteca Weka [16], devido ao fato de n˜ao terem sido encontrados recursos em bibliotecas Python que colaborassem para a implementa¸c˜ao dessa funcionalidade no sistema.

Do ponto de vista de Padr˜oes de Projeto, foram postos em pr´atica o Model-View-Controller (MVC) [22] e o Observer [22]. O MVC foi usado procurando manter o baixo acoplamento entre a visualiza¸c˜ao e as regras de neg´ocio. O Observer teve o papel de facilitar a atualiza¸c˜ao da visualiza¸c˜ao com informa¸c˜oes gerados por procedimentos internos do sistema. A maior parte dos c´odigos listados aqui ser˜ao fragmentos da camada Model do MVC, e em alguns deles poder˜ao aparecer chamadas a m´etodos relativos `a implementa¸c˜ao do Observer.

(43)

30 A seguir, explicamos cada componente do sistema mais detalhadamente.

3.2

Extra¸

ao da Base de Dados a partir do Banco de

Proveniˆ

encia

O SciCumulus armazena os dados de proveniˆencia em banco de dados relacional. Torna-se necess´ario extrair esses dados dessa base relacional e transform´a-los em uma representa¸c˜ao na qual seja poss´ıvel que as ferramentas de constru¸c˜ao dos modelos de Aprendizado de M´aquina sejam capazes de manusear.

Para a extra¸c˜ao, as primeiras informa¸c˜oes necess´arias s˜ao as de acesso `a base de dados, tais como host, port, schema, user e password. A tela do sistema respons´avel por coletar essas informa¸c˜oes pode ser vista na Figura 3.2 (a). Al´em disso, se faz necess´ario tamb´em a consulta SQL que recupera os dados de proveniˆencia utilizados para o treina-mento do modelo. A Figura 3.2 (b) exibe a tela do sistema onde o usu´ario dever´a digitar a consulta SQL apropriada. Neste caso, a consulta SQL est´a extraindo dados relativos ao id de atividades, id da m´aquina onde a atividade foi executada, a quantidade de proces-sadores que esta m´aquina possui e o exitstatus desta ativa¸c˜ao de atividade, representando o sucesso ou falha da execu¸c˜ao desta atividade. Note que nesta consulta de exemplo, a coluna exitstatus representa a vari´avel de classe para os modelos SVM e Naive Bayes. A var´ıavel de classe para os modelos que a usam ser´a sempre considerada como sendo a ´

ultima coluna extra´ıda pela consulta SQL. ´

E importante estar atento ao fato de que por ser uma consulta SQL, esta deve seguir a sintaxe da linguagem. Caso um erro de sintaxe seja detectado ao se clicar no bot˜ao Test o sistema n˜ao habilitar´a a op¸c˜ao para continuar para o pr´oximo passo, e exibir´a a mensagem de erro associada.

As ferramentas de Aprendizado de M´aquina constroem seus modelos a partir dos dados. Contudo, cada ferramenta pode manuse´a-los de formas distintas ou requerer re-presenta¸c˜oes distintas. Apesar da escolha por usar a biblioteca scikit-learn que possui suas pr´oprias estruturas para esse tratamento dos dados, optou-se por exportar os dados extra´ıdos da base de dados para o formato csv [11]. A op¸c˜ao pelo formato csv foi pela capacidade de ter uma representa¸c˜ao intermedi´aria, usualmente aceito pelas ferramentas e ´e quase um formato universal para esse tipo de representa¸c˜ao. Isso possibilita que os

(44)

Figura 3.2: (a) Tela de informa¸c˜oes de acesso `a base de dados. (b) Tela de defini¸c˜ao de query utilizada para extra¸c˜ao dos dados.

m´odulos de extra¸c˜ao e constru¸c˜ao dos modelos trabalhem com pouco acoplamento. Apesar de o arquivo csv poder ser lido ou escrito utilizando as mesmas t´ecnicas para arquivos texto, existem ferramentas que acrescentam mais poder ao manuseio do csv. Um exemplo ´e a biblioteca Pandas [10]. O leque de funcionalidades obtidas pelo seu uso ´e extenso, mas no escopo deste trabalho foram usadas apenas a leitura e escrita em arquivo csv. Aqui ´e mostrado uma parte de um csv extra´ıdo pela consulta mostrada na Figura 3.2 (b):

taskid,machineid,processor,exitstatus 44302,151,1,0

3.3

Detec¸

ao de Falhas com M´

aquinas de Vetores de

Suporte

Passada a fase de extra¸c˜ao dos dados, ´e poss´ıvel ent˜ao construir os modelos de Aprendizado de M´aquina. Nesta se¸c˜ao abordaremos o modelo SVM. ´E com ele que exe-cutamos a tarefa de Detec¸c˜ao de Falhas usando a Predi¸c˜ao.

A Predi¸c˜ao se d´a da seguinte forma: uma vez extra´ıdos os dados (parˆametros) de ativa¸c˜oes passadas, queremos predizer se uma nova ativa¸c˜ao com uma nova instˆancia de parˆametros ir´a executar corretamente ou produzir uma falha. As ativa¸c˜oes passadas s˜ao

Referências

Documentos relacionados

Este presente artigo é o resultado de um estudo de caso que buscou apresentar o surgimento da atividade turística dentro da favela de Paraisópolis, uma

As principais indicações para a realização foram a suspeita de tuberculose (458 pacientes) e uso de imunobiológicos (380 pacientes).. A maior prevalência de resultado positivo

Os autores relatam a primeira ocorrência de Lymnaea columella (Say, 1817) no Estado de Goiás, ressaltando a importância da espécie como hospedeiro intermediário de vários parasitos

Estes resultados apontam para melhor capacidade de estabelecimento inicial do siratro, apresentando maior velocidade de emergência e percentual de cobertura do solo até os 60

Entendendo, então, como posto acima, propõe-se, com este trabalho, primeiramente estudar a Lei de Busca e Apreensão para dá-la a conhecer da melhor forma, fazendo o mesmo com o

A variação do pH da fase móvel, utilizando uma coluna C8 e o fluxo de 1,2 mL/min, permitiu o ajuste do tempo de retenção do lupeol em aproximadamente 6,2 minutos contribuindo para

Contudo, não é possível imaginar que essas formas de pensar e agir, tanto a orientada à Sustentabilidade quanto a tradicional cartesiana, se fomentariam nos indivíduos

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição