Baixe o app para aproveitar ainda mais
Prévia do material em texto
INTRODUÇÃO A SISTEMAS INTELIGENTES 4 UNIDADE SER_DATSCI_MACH_UNID4_V1.indd 95 30/10/2019 16:23:59 Objetivos da unidade Tópicos de estudo Apresentar ao aluno os conceitos da aprendizagem bayesiana; Falar sobre a árvore de decisão e seus pontos positivos e negativos; Introduzir os conceitos de algoritmos evolucionários. Aprendizagem bayesiana Representação da aprendiza- gem bayesiana Aplicabilidade Árvores de decisão Vantagens e desvantagens das árvores de decisão Funcionamento da técnica Algoritmos evolucionários Origens e conceitos da com- putação evolutiva Paradigma dos algoritmos evolutivos MACHINE LEARNING 96 SER_DATSCI_MACH_UNID4_V1.indd 96 30/10/2019 16:24:00 Aprendizagem bayesiana Os primeiros cálculos que envolvem probabilidades tiveram origem na Idade Média, a partir de estudos de jogos de azar. Em 1964, os estudos de Blaise Pas- cal e Pierre de Fermat iniciaram o desenvolvimento de uma ciência referente à esta vertente e, desde então, a teoria de probabilidades ganhou notoriedade em diversos procedimentos das Ciências Exatas. Thomas Bayes formulou o teore- ma de probabilidade, que desencadeou no surgimento de um novo ramo da ciência estatística, denominado Estatística bayesiana. EXPLICANDO Thomas Bayes foi um importante matemático inglês, responsável por criar as primeiras equações e a primeira versão do teorema da probabilidade, que hoje leva o seu nome. O teorema é extremamente importante para a área de probabilidade e estatística. Os métodos e as teorias bayesianas não são restritos aos ramos da Ciência Estatística e podem ser empregados em outras áreas, como, por exemplo, a da Inteligência Artifi cial, que neste caso denomina-se Inteligência Artifi - cial Probabilística. Esta vertente, ge- ralmente referida como aprendizado bayesiano, é aplicada em variados contextos, desde a área da saúde até áreas vinculadas ao entretenimento. Ademais, verifi ca-se que nos últimos 20 anos, a aprendizagem bayesiana apresentou alto impacto no Machine Lear- ning, visto que esta ferramenta possibilita uma maior fl exibilização no desen- volvimento de modelos estruturados de fenômenos reais. O Machine Learning pode ser visualizado como uma ferramenta de análi- se de dados que promove a automatização de mecanismos de construção de modelos analíticos. Essa ferramenta é um ramo da Inteligência Artifi cial e fun- damenta-se na teoria de que os sistemas detêm a capacidade de aprender por MACHINE LEARNING 97 SER_DATSCI_MACH_UNID4_V1.indd 97 30/10/2019 16:24:08 meio de dados, de modo que conseguem identifi car padrões e tomar decisões a partir de uma intervenção humana mínima (SOUZA, 2010). Já a estatística bayesiana pode ser fi gurada como um mecanismo estatístico no qual, por meio do teorema de Bayes, é possível combinar informações subjetivas com informações provenientes de dados observados, de modo que seja possível atualizar as probabilidades de variáveis cujo estado não é observado, dada uma série de novas observações. Dessa forma, a partir dos avanços algorítmicos e do crescente desenvolvimento de recursos computacionais, a aprendizagem bayesia- na ao automatizar os processos, torna viável o ajuste de modelos ricos e altamen- te estruturados, antes considerados intratáveis, para desenvolver raciocínios que avançam em qualquer direção através de uma rede variável (LAPACE, 2017). Diante disso, é possível inferir que tanto o raciocínio probabilista quanto o raciocínio lógico apresentam-se como mecanismos para modelar os siste- mas que atuam racionalmente na área de Inteligência Artifi cial. De acordo com Marques e Dutra (1999), o raciocínio lógico possui a habilidade de retirar con- clusões seguindo uma base ponderada do conhecimento prévio a respeito de um determinado problema. Já o raciocínio probabilista, no qual se enquadra a aprendizagem bayesiana, apresenta-se adequado para situações na qual não se obtém previamente todo o conhecimento acerca de um determinado pro- blema, ou seja, o mesmo possibilita a representação de inferências prováveis, porém incertas. Dessa forma, de modo geral, a teoria referente à rede baye- siana é determinada como uma abordagem interpretativa e analítica para a Inteligência Artifi cial Probabilística. Ela pode ser empregada para diversos fi ns, tais como: decisão, classifi cação, análise de dependência, entre outras. Representação da aprendizagem bayesiana Dentro desse contexto, a aprendizagem bayesiana pode ser visualizada com um mecanismo desenvolvido para obter uma representação interna da rede, tendo o poder de defi nir um dado domínio com o intuito de facilitar a extração do conhecimento. Dentro desse processo de aprendizagem, torna-se necessário realizar o cálculo das distribuições de probabilidade, referente aos parâmetros numéricos, como também identifi car a estrutura da rede (identifi - car variáveis e relações de interdependência dadas pelos arcos). MACHINE LEARNING 98 SER_DATSCI_MACH_UNID4_V1.indd 98 30/10/2019 16:24:08 O processo de aprendizagem bayesiana pode ser dividido em duas seções e ambas podem ser aprendidas a partir de um método especialista ou indu- tivo, sendo elas: aprendizagem da estrutura (e relações entre as variáveis) e aprendizagem dos parâmetros numéricos (distribuição de probabilidade). No caso referente à metodologia de aprendizagem especialista, infere-se que o conhecimento necessário é transmitido por intermédio de um responsável e ele deve ser especialista, para que aplique seus conhecimentos para definir e/ ou supervisionar a construção da rede (HRUSCHKA, 2003). A metodologia referente à aprendizagem indutiva, diferentemente da aprendizagem especialista, emprega como base um banco de dados de exem- plos e, partindo dele, uma rede é desenvolvida automaticamente. Dentro desse contexto, com o intuito de encontrar uma estrutura para representar fielmente o domínio modelado e algoritmos que determinem as distribuições de proba- bilidade, vários algoritmos foram propostos na literatura de redes bayesianas. Ademais, o aprendizado bayesiano também pode ser caracterizado como sendo do tipo supervisionado, visto que são fornecidas ao algoritmo de apren- dizagem de máquina instâncias juntamente com suas classes. De acordo com o paradigma estatístico, os algoritmos utilizam as fórmulas estatísticas e o cálcu- lo de probabilidades para obter a classificação (MITCHELL, 1997). Diante disso, existem diversas vantagens referentes ao método, tais como: possibilidade de embutir nas probabilidades calculadas o conhecimento de domínio já existente (caso exista), capacidade das classificações feitas pelo al- goritmo serem baseadas em evidências fornecidas, que podem aumentar ou diminuir as probabilidades das classes a serem observadas em uma nova ins- tância que se quer classificar, fornecimento de algoritmos práticos de apren- dizagem e fornecimento de uma estrutura conceitual (PARDO; NUNES, 2002). No entanto, existem importantes desvantagens referentes a esse método, principalmente devido ao seu caráter estatístico, sendo elas: requerimento de um conhecimento inicial de várias probabilidades, visto que um elevado nú- mero de probabilidades deve ser calculado. No que tange o alto custo para calcular as probabilidades, o uso do classificador Naïve Bayes se mostra como uma solução de redução de custos (PARDO; NUNES, 2002). Dessa forma, de modo geral, uma rede bayesiana pode ser modelada a par- tir de um classificador, calculando a probabilidade de P (C|V), no qual C repre- MACHINE LEARNING 99 SER_DATSCI_MACH_UNID4_V1.indd 99 30/10/2019 16:24:08 senta a classe analisada e V o conjunto de variáveis que descrevem os padrões. Diante disso, o classifi cador Naïve Bayes se fundamenta na aplicação do Teo- rema de Bayes no cálculo das probabilidades necessárias para a classifi cação. Assim, dada uma nova instância, A = a1, a2, ..., an,para predizer uma classe, o teorema de Bayes pode ser equacionado da seguinte maneira: P (classe A) = P (A|classe) x P (classe) P (A) Como A = a1, …, an, tem-se: P (classe|a1, …, an) = P (a1, …, an|classe) x P (classe) P (a1, …, an) O modelo apresentado demonstra uma exemplifi cação particular de uma rede bayesiana, na qual são consideradas variáveis condicionalmente indepen- dentes dentro do domínio, ou seja, as características não se relacionam entre si. Dessa forma, é possível aferir que o processo de aprendizagem pelo método de Naïve Bayes é realizado de forma indutiva. Ademais, o mesmo apresenta um conjunto de dados de treinamento e calcula a probabilidade condicional de cada atributo Ai, dado uma classe C. Dessa forma, em suma, o pensamento bayesiano tem a função de providen- ciar uma abordagem probabilística para aprendizagem. Essa abordagem é feita por meio de uma suposição de que as quantidades de interesse são reguladas por distribuições de probabilidade (função que descreve a probabilidade de uma variável aleatória assumir certos valores). A partir de então, decisões ótimas po- dem ser adotadas com base nas probabilidades adquiridas, conjuntamente com os dados observados. A ferramenta analisada pode ser empregada em diversas aplicações, em várias áreas do conhecimento, tais como: diagnóstico médico, aprendizagem de mapas, interpretação de linguagem, visão, dentre outras. Aplicabilidade O algoritmo Naïve Bayes está sendo muito utilizado na fi ltragem de spam. Nesse caso, a máquina é treinada para contar as menções de um assunto em específi co na caixa de spam e na caixa de entrada normal, multiplica as duas MACHINE LEARNING 100 SER_DATSCI_MACH_UNID4_V1.indd 100 30/10/2019 16:24:08 EXEMPLIFICANDO Vamos dizer que uma conta de e-mail coorporativa tem recebido inúmeros e-mails diários com o título “Emagreça”, que são considerados spam, e é necessário que eles sejam bloqueados de uma vez. Por esse assunto ser de grande interesse de muitas pessoas, a preocupação da organização é que seus colaboradores comecem a abrir o e-mail e que o vírus seja multiplicado dentro e fora da empresa. Nesse exemplo, a máquina conta o número de menções “Emagreça” Caixa de Entrada e na de spam, depois multiplica as duas probabilidades usando a equação de Bayes e soma o resultado. Com isso, temos o Machine Learning utilizando algoritmo Naïve Bayes. probabilidades usando o método de Bayes, soma os resultados e assim temos a máquina treinada. Vamos entender como funciona o algoritmo Naïve Bayes na prática, através de um exemplo simples no Python. Para isso, vamos utilizar a biblioteca Scikit Learn (ou sklearn). O Naïve Bayes é implementado no sklearn de três formas: Gaussian, Multinomial e Bernoulli. Gaussiano: tido como uma distribuição normal, é usada na classificação. Multinomial: utilizado para contagem discreta, ou seja, imagine que preci- samos fazer a classificação de texto. Com ele, é possível contar quantas vezes a palavra ocorre no documento. Bernoulli: este modelo é útil quando os vetores são binários. A classificação neste modelo considera, por exemplo: 1 para a palavra que aparece no docu- mento e 0 para a palavra não aparece no documento. Passo 1. No Python, importar a biblioteca Gaussiano, conforme exibido a seguir: #importação da biblioteca no modelo Naïve Bayes Gaussiano from sklearn.naive_babys import GaussianNB import numpy as np #designar as variáveis x = np.array ([[-3,7], [1,5], [1,2], [-2,0], [2,3], [-4,0], [-1,1], [1,1], y = np.array ([3, 3, 3, 3, 4, 3, 3, 4, 3, 4, 4, 4]) MACHINE LEARNING 101 SER_DATSCI_MACH_UNID4_V1.indd 101 30/10/2019 16:24:08 Passo 2. Criar um classifi cador, treinar o modelo e defi nir previsão, confor- me ilustrado a seguir. #criar um classifi cador gaussian model = GaussianNB () #treina o modelo usando os dados de treino model.fi t (x,y) #resultado preditivo predicted = model.predict ([[1,2], [3,4]]) print (predicted) Output: ([3,4]) O exemplo ilustrado aqui é apenas um modelo básico que podemos criar através do Naïve Bayes. Esse modelo pode ser melhorado de acordo com a necessidade, ajustando os parâmetros, e pode criar premissas. Árvores de decisão Os métodos de Machine Learning podem ser determinados como algo- ritmos que possibilitam aos compu- tadores a habilidade de “aprender” ou compreender mecanismos, para que os mesmos consigam identifi car padrões dentro de um determinado conjunto de dados. Dessa forma, por meio desta ferramenta, é possível pro- mover um agrupamento, em classes distintas de dados, com padrões seme- lhantes. Esse processo pode ser supervisionado ou não. Caso seja, o algoritmo empregado busca a identifi cação de padrões a partir dos dados associados a cada uma das classes e as árvores de decisão fazem parte dessa vertente. MACHINE LEARNING 102 SER_DATSCI_MACH_UNID4_V1.indd 102 30/10/2019 16:24:10 As árvores de decisão são representações simples do conhecimento e po- dem ser definidas como modelos estatísticos que utilizam um treinamento su- pervisionado para a classificação e previsão de dados. Dessa forma, em outras palavras, elas possuem a função de construir classificadores que predizem ou revelam classes (entradas e saídas), como também informações úteis baseadas nos valores de atributos de um conjunto de dados. Esses modelos estatísti- cos empregam uma estratégia que consiste em dividir para conquistar. Assim, dentro dessa vertente, um problema complexo pode ser decomposto em sub- problemas mais simples; recursivamente, esse princípio é aplicado em cada subproblema gerado (GAMA, 2004). O mecanismo proposto pelas árvores de decisão apresenta grande utilidade em atividades vinculadas à mineração de dados, nas quais é necessário um pro- cesso efetivo de extração de informações previamente desconhecidas, a partir de grandes bases de dados. As árvores de decisão destacam-se como um dos algoritmos mais populares de inferência e apresentam uma gama de aplicações em diversas áreas, como, por exemplo, diagnóstico médico, cenários de negó- cios, risco de crédito, sistema de piloto automático de aeronaves, entre outros. Além disso, a árvore de decisão apresenta algoritmos de aprendizagem que são altamente empregados e reconhecidos como uma das principais metodologias de aprendizagem supervisionada. Desses algoritmos, é possível extrair regras que são facilmente aplicadas e compreendidas, além de eles serem adaptados para re- solver vários tipos de problema, tanto de classificação quanto de regressão. Ade- mais, os mesmos possibilitam o desenvolvimento de modelos preditivos de alta precisão, estabilidade e facilidade de interpretação, diferentemente de modelos lineares que não conseguem mapear perfeitamente as relações não lineares. Dessa forma, em suma, uma árvore de decisão enquadra-se em um tipo de algoritmo de aprendizagem que detém uma variável-alvo predefinida. Assim, para a construção de uma árvore de decisão, divide-se uma população ou amostra em dois ou mais conjuntos homogêneos, também cha- mados de subpopulações, que são baseados nos divisores/ diferenciadores mais significativos das variáveis de entra- da (GAMA, 2004). A Figura 1 ilustra a representação de uma árvore de decisão, assim como sua respectiva representação no es- MACHINE LEARNING 103 SER_DATSCI_MACH_UNID4_V1.indd 103 30/10/2019 16:24:10 paço. Diante disso, por meio da ilustração, é possível identificar o nó de decisão da estrutura, no qual está contido um teste que se refere a algum atributo. A partir do nó de decisão, cada ramo que descende dele é correspondente a um possível valor deste atributo. Ademais, determina-se que o conjunto de ramos apresenta distinção, cada folha contida associa-se a uma classe e cada percurso da árvore, desde a raiz até a folha, é correspondente a uma regra de classifica- ção. No que tange a representação no espaço, nos espaços definidospelos atri- butos, cada folha corresponde a um hiperretângulo em que a interseção é vazia e a união é todo o espaço (GAMA, 2004). A decisão de realizar divisões dos nós tem significativa influência na precisão de uma árvore, visto que a criação de sub-nós eleva a homogeneidade dos sub-nós resultantes. O critério empregado para possibilitar as partições fundamenta-se na utilidade do atributo para a classificação estabelecida. De acordo com Gama (2004), devido a esse critério, aplica-se um ganho de informação a cada atributo, fazendo com que o atributo escolhido para ser o teste para o corrente nó seja aquele com maior ganho de informação. Assim, a partir disso, um novo processo de partição é iniciado. A seleção do algoritmo para esse fim baseia-se nos tipos de variáveis de destino, em casos nos quais a árvore é empregada para a classificação e os critérios de partição mais conhecidos são baseados na entropia e no índice Gini. Figura 1. Representação de uma árvore de decisão e sua respectiva representação no espaço. Fonte: GAMA, 2004. (Adaptado). Folhas Nó de decisão Regra <a2 <a1 >a1 a1 <a4 >a4 a4 a3 >a2 a2 x1 x2 >a3<a3 Raiz 1 1 2 3 4 5 X1 X2 X2 X14 2 5 3 MACHINE LEARNING 104 SER_DATSCI_MACH_UNID4_V1.indd 104 30/10/2019 16:24:11 Vantagens e desvantagens das árvores de decisão As árvores de decisão apresentam diversas vantagens quando comparadas com outros métodos, sendo uma delas o fácil entendimento. A fácil e intuitiva visualização gráfi ca dessa ferramenta permite que os problemas analisados sejam mais fáceis de compreender, visto que não exige conhecimento analítico e estatístico tanto para ler como para interpretar. Outro benefício desse me- canismo refere-se à rapidez em identifi car as variáveis mais signifi cativas e a relação entre duas ou mais variáveis. Dessa forma, a exploração dos dados se torna mais útil, visto que esse benefício possibilita a criação de novas variáveis e/ou características com melhores condições para predizer a variável-alvo. Ademais, quando comparada com outros mecanismos de modelagem, a árvore de decisão tem menor necessidade de limpeza de dados, visto que, até certo nível, ela não recebe infl uência de pontos fora da curva outliers ou valores faltantes (missing values). Outra vantagem vincula-se ao fato desse método não CITANDO “Em uma árvore de decisão cada atributo é representado por um nó de decisão, cuja função é testar o valor desse atributo. Uma classe é repre- sentada por um nó folha, que reúne todos os Exemplos que chegarem a ele depois de satisfazerem os testes dos nós de decisão intermediários. Portanto, na regra de Árvore de Decisão, a classifi cação de um Exemplo desconhecido implica percorrer toda a árvore a partir de um nó raiz, testando atributos em sucessivos nós internos até chegar a um nó fo- lha, que lhe atribuirá uma classe. O objetivo de uma árvore de decisão é retornar uma classe para um exemplo desconhecido” (GONZALEZ e ZAMPIROLLI, 2014, p. 56). Existem dois tipos de árvore de decisão, a de variável categórica e a de va- riável contínua. O critério para selecionar qual categoria o algoritmo de apren- dizagem pertence fundamenta-se no tipo de variável de destino. Nos casos em que a árvore de decisão apresenta uma variável de destino categórica, a mesma passa a ser classifi cada como uma árvore de decisão de variável cate- górica. Já nos casos em que a variável alvo é contínua, classifi ca-se como árvore de decisão de variável contínua (ANALYTICS VIDHYA, 2016). MACHINE LEARNING 105 SER_DATSCI_MACH_UNID4_V1.indd 105 30/10/2019 16:24:11 apresentar restrição por tipos de dados, de modo que é possível manipular variáveis numéricas e categóricas e ser também um método não paramétrico (ANALYTICS VIDHYA, 2016). No entanto, como em qualquer outra metodologia, a utilização da árvore de decisão também apresenta desvantagens. Uma desvantagem importante refere-se à difi culdade de sobreajuste (overfi tting); para solucionar esta problemática, é necessário defi nir restrições tanto nos parâmetros do mo- delo quanto da poda. Além disso, o método não se apresenta adequado quan- do são utilizadas variáveis contínuas, visto que há uma perda de informações quando as variáveis são categorizadas em categorias diferentes. Funcionamento da técnica Vamos entender melhor como essa técnica funciona na prática. Para isso, vamos utilizar a ferramenta Weka e a base de dados Iris (disponível na web para realização de testes). Passo 1. Com o Weka instalado, abra o software. A tela inicial é apresenta- da, conforme a Figura 2. Na tela inicial, clique sobre Explorer e será exibida a tela para que possamos carregar o arquivo. Figura 2. Tela inicial do Weka. MACHINE LEARNING 106 SER_DATSCI_MACH_UNID4_V1.indd 106 30/10/2019 16:24:12 Passo 2. Na aba “Preprocess”, clique sobre o botão “Open file”, procure a pasta onde o arquivo foi salvo conforme a Figura 3 e clique sobre o botão Abrir. O arquivo está em extensão .csv, portanto, no campo “Arquivos do Tipo:”, deve ser selecionado este, conforme exibido na Figura a seguir. Figura 3. Carregamento do arquivo. Figura 4. Tela de pré-processamento do arquivo. Na tela em que se abrirá (Figura 4), é possível visualizar as características do conjunto. Em Current Relation, temos: nome do conjunto (Relation), atribu- tos (Attributes), quantidade de instâncias (Instances) e soma de pesos (Sum of Weights), que são as características principais neste momento, ou seja, enten- der quais são os atributos e as instâncias do conjunto. MACHINE LEARNING 107 SER_DATSCI_MACH_UNID4_V1.indd 107 30/10/2019 16:24:16 Passo 3. Na tela principal, clicar sobre a aba Classify, em seguida clicar so- bre o botão Choose, onde será possível selecionar o algoritmo que iremos uti- lizar para a regra de classificação e técnica de arvore de decisão. Na lista que será exibida, clique sobre trees e em seguida selecione o algoritmo J48 na lista, conforme Figura 5. Figura 5. Seleção da regra de classificação, técnica árvore de decisão e algoritmo J48. Após o algoritmo ser selecionado, clique na opção Use training set em Test options, conforme Figura 6, em seguida clique em Start para iniciar o treino do conjunto. MACHINE LEARNING 108 SER_DATSCI_MACH_UNID4_V1.indd 108 30/10/2019 16:24:16 Figura 6. Seleção do treino. A Figura 7 exibe o resultado para o treino realizado no conjunto, no qual temos: informações dos atributos, instâncias e relação. Em J48 pruned tree, temos as condições do teste para classificar os tipos de flor, o número de níveis da árvore que foi igual a 5 e o tamanho igual a 9. Em Summary, temos a quanti- dade de instâncias classificadas como corretas e erradas. No resultado de 150 instâncias, 147 foram classificadas como corretas e três como erradas. Depois, temos Detailed Accuracy com a precisão detalhada e, por fim, Confusion Ma- trix, onde temos detalhes da classificação, onde a = setosa, b = versicolor e c = virginica. Na matriz, é possível verificar que uma instância de b foi classificada como de c e duas instâncias de c foram classificadas como de b. MACHINE LEARNING 109 SER_DATSCI_MACH_UNID4_V1.indd 109 30/10/2019 16:24:17 Figura 7. Resultado do treino no conjunto Iris. Passo 4. Vamos então gerar a árvore de decisão do conjunto treinado. Para isso, na tela exibida na Figura 7, em “Result list”, clique com o botão direito sobre o nome do algoritmo que aparece destacado em azul. Na aba em que se abrirá, selecione “Visualize tree” e assim temos nossa árvore gerada, conforme Figura 8. MACHINE LEARNING 110 SER_DATSCI_MACH_UNID4_V1.indd 110 30/10/2019 16:24:18 Figura 8. Árvore de decisão para o conjunto treinado. Figura 9. Visualização da classificação do conjunto treinado. Passo 5. Vamos agora visualizar o conjunto plotado de acordo com o que foi classificado. Para isso, clique sobre a aba “Visualize” na tela principal e, natela que se abrir, clique onde o eixo x é espécie e o eixo y também (você pode visualizar por todos os atributos, mas nesse exemplo vamos visualizar apenas um). Na tela que se abre, vá em “Jitter” e role a barra até o fim; dessa forma, a visualização será melhor, conforme a Figura 9. MACHINE LEARNING 111 SER_DATSCI_MACH_UNID4_V1.indd 111 30/10/2019 16:24:19 Algoritmos evolucionários A ciência da computação apresenta como uma de suas ramifi cações a com- putação evolutiva, técnica que juntamente com a rede neural e o sistema fuzzy, formam a área da Inteligência computacional (IC). As três ramifi cações se mos- tram importantes ferramentas para estudar e solucionar problemas a partir de elementos de aprendizagem, adaptação, evolução e lógica. A inteligência computacional tem o intuito de modelar um comportamento inteligente e, des- sa forma, desenvolver sistemas que apresentem características e capacidades inteligentes similares (GRACIANI, 1995). Origens e conceitos da computação evolutiva A computação evolutiva pode ser visualizada como um ramo da inte- ligência computacional inspirada na teoria da evolução de Darwin, que trata dos algoritmos evolutivos. Esta vertente desenvolve metodologias e mecanismos adaptativos com o intui- to de empregar processos seletivos e evolutivos para resolução de proble- mas complexos. A computação evo- lutiva é constituída por cinco linhas diferentes: algoritmos genéticos (AG), programação evolutiva (PE), estraté- gias de evolução ou evolutivas (EE), sistemas de classifi cação ou classifi - cadores (SC) e programação genética (PG) (NAVAUX; SHUBEITA, 2003). O Diagrama 1 esquematiza a taxonomia da computação natural, evidenciando as cinco linhas existentes a partir da computação evolutiva. MACHINE LEARNING 112 SER_DATSCI_MACH_UNID4_V1.indd 112 30/10/2019 16:24:28 Computação natural Redes neurais Computação evolutiva Sistemas nebulosos Geometria fractal Inteligência computacional Sistemas complexos Teoria do caos Vida artificial Programação evolutiva Estratégias de evolução Programação genética Sistemas de classificação Algorítimos gêmeos DIAGRAMA 1. TAXONOMIA DA COMPUTAÇÃO NATURAL Fonte: NAVAUX, SHUBEITA, 2003. (Adaptado). A computação evolutiva se destaca por apresentar a vantagem de conse- guir solucionar problemas a partir de uma simples descrição matemática da- quilo que se quer ver presente na solução, não sendo necessária uma indica- ção explícita dos passos até o resultado. Esses passos podem ser empregados para buscar a solução de uma ampla gama de problemas, fator que confere robustez e flexibilidade em todo o processo. Dessa forma, a computação evo- lutiva pode ser visualizada, segundo Castro e Zuben (2007), como “um conjunto de técnicas e procedimentos genéricos e adaptáveis, a serem aplicados na so- lução de problemas complexos”, nos quais as técnicas já empregadas não são eficazes ou aplicáveis. A evolução pode ser visualizada como um procedimento de busca por so- luções para um determinado problema. Sendo assim, pode-se definir um al- goritmo evolutivo como um procedimento interativo de busca (otimização), inspirado em mecanismos evolutivos biológicos, a fim de determinar soluções MACHINE LEARNING 113 SER_DATSCI_MACH_UNID4_V1.indd 113 30/10/2019 16:24:29 de problemas complexos. Dessa forma, como o mecanismo empregado fun- damenta-se na teoria da evolução, o mesmo atua nos fenótipos, para que os genótipos sejam direcionados para uma região da superfície de adaptação, da- das as condições iniciais e restrições do ambiente. Para isso, uma função de avaliação determina uma superfície de adaptação (superfície de fi tness) com o intuito de solucionar um dado problema, buscando um pico ótimo na superfí- cie de fi tness (CASTRO; ZUBEN, 2007). Paradigma dos algoritmos evolutivos Os algoritmos evolutivos apresentam-se como um novo paradigma no que tange a solução de problemas, visto que deixa de ser empregado o método de garantia de obtenção da solução e passa a ser utilizada a tratabilidade como ferramenta de propósito geral. A ideia básica referente ao novo paradigma, surgiu por volta dos anos 50, ao ser implementado em um computador a ideia do processo de evolução natural como um paradigma de solução de proble- mas, mesmo com a falta de recursos tecnológicos da época (GRACIANI, 1995). Ao longo do tempo, em termos históricos, as metodologias referentes aos algoritmos evolutivos foram desenvolvidas de maneira independente umas das outras, sendo as principais sumarizadas a seguir: • Algoritmos genéticos (AG): é um método de busca e otimização, também conhecido como planos adaptativos, fundamentado por Holland (1962). O méto- do em questão enfatiza o operador de recombinação como o principal operador de busca e aplicam mutação com baixas probabilidades (operador secundário). Por meio desse princípio, são desenvolvidos sistemas que buscam soluções para problemas complexos ou que possuem espaço de soluções muito grande, fator que os tornam problemas de difícil modelagem e solução em casos de otimizações conven- cionais. Este algoritmo é inspirado em processos gené- ticos de organismos biológicos em busca de soluções ótimas ou subótimas. • Programação evolutiva (PE): o método foi desenvolvido por Rechenberg (1973) e Schwefel (1975). Segundo os autores, a meto- MACHINE LEARNING 114 SER_DATSCI_MACH_UNID4_V1.indd 114 30/10/2019 16:24:29 dologia emprega as “mutações com distribuição normal para modifi car vetores reais e enfatizam a mutação e recombinação como operadores essenciais ao processo de busca no espaço de busca e no espaço de parâmetros”. O opera- dor de seleção é determinístico e o tamanho da população pode variar. • Estratégias evolutivas (EE): desenvolvida por Fogel et al. (1966). Destaca as mutações, no entanto, não incorpora a recombinação. Este método, quando aplicado em problemas de otimização de valores reais, utiliza mutações com distribuição normal e estende o processo evolutivo ao espaço de parâmetros. • Programação genética (PG): metodologia desenvolvida por Koza (1992), que introduziu os algoritmos genéticos nos espaços de programas computa- cionais. Neste método, as estruturas de dados são representadas por meio de árvores e os operadores de crossover e mutação são utilizados nesta situação. Todos os métodos citados apresentam-se resumidos no Quadro 1. É in- teressante ressaltar que todos os algoritmos mencionados são passíveis de variações e hibridizações de representação e operadores, embora o quadro apresente os padrões originais desses algoritmos. AG EE PE PG Represen- tação Cadeias binárias Vetores reais Vetores reais Árvores Auto- adaptação Nenhuma Desvio parão e covariantes Desvio padrão e coefi ciente de cor- relação Nenhuma O fi tness é Valor escalonado da função objetivo Valor da função objetivo Valor (escalonado) da função objetivo Valor escalonado da função objetivo Mutação Operadorsecundário Principal operador Único operador Um dos operadores Recombi- nação Principal operador Diferentes variações, importante para a autoadaptação Nenhuma Um dosoperadores Seleção Probabilística Determinística Probabilística Probabilística Cadeias bináriasCadeias bináriasCadeias bináriasCadeias binárias Nenhuma Cadeias binárias Nenhuma Valor escalonado Nenhuma Valor escalonado Vetores reais Valor escalonado da função Vetores reais Desvio parão e Valor escalonado da função objetivo Vetores reais Desvio parão e covariantes Valor escalonado da função objetivo Operador secundário Desvio parão e covariantes Operador secundário Desvio parão e covariantes Valor da função Operador secundário Vetores reais Desvio parão e covariantes Valor da função Principal operador Vetores reais Desvio padrão e Valor da função objetivo Principal operador Vetores reais Desvio padrão e coeficiente de cor- Valor da função objetivo Principal operador Probabilística Vetores reais Desvio padrão e coefi ciente de cor- Principal operador Probabilística Desvio padrão e coefi ciente de cor- relação Valor (escalonado) Principal operador Diferentes importante para Probabilística Desvio padrão e coefi ciente de cor- relação Valor (escalonado) da função objetivo operador Diferentes variações, importante para a autoadaptação Probabilística Árvores coefi ciente de cor- Valor (escalonado) da função objetivo Diferentes variações, importante para a autoadaptação Árvores Valor (escalonado) da função objetivo Único operador variações, importante para a autoadaptação Determinística Árvores Nenhuma Valor (escalonado) da função objetivo Único operador importante para a autoadaptação Determinística Nenhuma da função objetivo Valor escalonado Único operador a autoadaptação Determinística Nenhuma Valor escalonado Único operador Determinística Valor escalonado da função Único operador Nenhuma Valor escalonado da função objetivo Nenhuma Valor escalonado da função objetivo Um dos operadores Probabilística Um dos operadores Probabilística Um dos operadores Probabilística operadores Um dos operadores Um dos operadoresoperadores Probabilística operadores ProbabilísticaProbabilísticaProbabilística QUADRO 1. CARACTERÍSTICAS PRINCIPAIS DOS ALGORITMOS EVOLUTIVOS Fonte: BACK, 1996. (Adaptado). MACHINE LEARNING 115 SER_DATSCI_MACH_UNID4_V1.indd 115 30/10/2019 16:24:29 Aplicações de computação evolutiva podem ser empregadas em uma va- riedade de áreas, desde Ciências Naturais e Engenharia até Biologia e Ciência da Computação. De acordo com Back (1994), elas podem ser subdivididas em cinco grandes áreas não exaustivas e não mutuamente exclusivas, tais como: planejamento, projeto (design), simulação, controle e classificação. MACHINE LEARNING 116 SER_DATSCI_MACH_UNID4_V1.indd 116 30/10/2019 16:24:29 Sintetizando Como foi possível observar, os conceitos do método bayesiano não são uti- lizados apenas em estudos que envolvem Ciência Estatística. O método já se expandiu para áreas como a da saúde e até do entretenimento, além de ter se tornado muito importante para o Machine Learning. O processo de aprendiza- gem bayesiana pode ser dividido em duas partes, aprendizagem de estrutura e aprendizagem dos parâmetros numéricos e podem ser aprendidas pelo mé- todo especialista ou indutivo. Também nos aprofundamos na técnica das árvores de decisão, que são mo- delos estatísticos que servem para classificação e previsão de dados e apresen- ta algoritmos de aprendizagem que são reconhecidos como uma das principais metodologias de aprendizagem supervisionada. A técnica vem se mostrando muito útil para atividades de mineração de dados, mas é comumente utilizada em diversas áreas como diagnóstico médico, sistemas de piloto automático de aeronaves, entre outras. Entre as vantagens da utilização dessa ferramenta, podemos destacar algu- mas como a sua fácil visualização gráfica, tornando fácil entender quais são os problemas analisados; rapidez para identificar as variáveis mais importantes e a menor necessidade de limpeza de dados. Já entre as desvantagens estão a dificuldade de sobreajuste e de trabalhar com variáveis contínuas. Por fim, também estudamos a computação evolutiva, uma das ramificações que formam a área de inteligência computacional (IC). Ela trata dos algoritmos evolutivos e busca desenvolver metodologias com o objetivo de empregar pro- cessos seletivos e evolutivos para a resolução de problemas. A computação evolutiva se destaca por apresentar a vantagem de conseguir solucionar pro- blemas a partir de uma simples descrição matemática daquilo que se quer ver presente na solução, não sendo necessária uma indicação explícita dos passos até o resultado. As metodologias referentes aos algoritmos evolutivos foram desenvolvidas de maneira independente umas das outras, sendo as principais: al- goritmo genéticos (AG), programação evolutiva (PE), estratégias evolutivas (EE) e programação genética (PG). MACHINE LEARNING 117 SER_DATSCI_MACH_UNID4_V1.indd 117 30/10/2019 16:24:29 Referências bibliográficas ANALYTICS VIDHYA. A Complete Tutorial on Tree Based Modeling from Scratch (in R & Python). 2016. Disponível em: <https://www.analyticsvidh- ya.com/blog/2016/04/complete-tutorial-tree-based-modeling-scratch-in-py- thon/>. Acesso em: 06 jul. 2019. BÄCK, T. Evolutionary Algorithms in Theory and Practice. Oxford: Oxford University Press, 1996. FOGEL, L. J.; OWENS, A. J.; WALSH, M. J. Artificial Intelligence through Simula- ted Evolution. New Jersey: John Wiley, 1966. GAMA, J. A. Functional trees. Machine Learning, v. 55, p. 219-250, 2004. INTRODUÇÃO ao Algoritmo Naïve Bayes. Postado por Jones Granatyr (8min. 59s.). Disponível em: <https://www.youtube.com/watch?v=npl1uz8CMMY>. Acesso em: 09 jul. 2019. INTRODUÇÃO as redes neurais convolucionais. Postado por Jones Granatyr. (13min. 16s.). Disponível em: <https://www.youtube.com/watch?v=7dsDHb- 6qKYI>. Acesso em: 10 jul. 2019. GROSSE, R. Bayesian Machine Learning. Metacademy. 2013. Disponível em: <https://metacademy.org/roadmaps/rgrosse/bayesian_machine_learning/ edit>. Acesso em: 07 jul. 2019. HOLLAND, J. H. Adaptation in Natural and Artificial Systems. Michigan: The University of Michigan Press, 1962. HRUSCHKA, E. R. Imputação bayesiana no contexto da mineração de dados. Progra- ma de Engenharia Civil. Disponível em: <http://www.coc.ufrj.br/pt/teses-de-dou- torado/147-2003/942-estevam-rafael-hruschka-junior>. Acesso em: 07 jul. 2019. KOZA, J. R. Genetic Programming: on the Programming of Computers by Means of Natural Selection. Cambridge: MIT Press, 1992. BRIEGA, R. E. L. Introducción a la inferencia Bayesiana con Python. Raul E. Lopez Briega. 2017. Disponível em: <https://relopezbriega.github.io/blog/2017/05/21/ introduccion-a-la-inferencia-bayesiana-con-python/>. Acesso em: 07 jul. 2019. MARQUES, R. L.; DUTRA, I. Redes bayesianas: o que são, para que servem, al- goritmos e exemplos de aplicações. Programa de Engenharia de Sistemas e Computação. 2008. Disponível em: <www.cos.ufrj.br/˜ines-/courses/cos740/ leila/cos740/Bayesianas.pdf>. Acesso em: 07 jul. 2019. MACHINE LEARNING 118 SER_DATSCI_MACH_UNID4_V1.indd 118 30/10/2019 16:24:29 MITCHELL, T. M. Machine Learning. New York: McGraw Hill, 1997. NAVAUX, P. O.; SHUBEITA, F. M. Computação evolutiva e lógica fuzzy. Instituto de Informática UFRGS. 2003. PARDO, T. A.; NUNES, M. G. Aprendizado bayesiano aplicado ao processamento de línguas naturais. Núcleo Interinstitucional de Linguística Computacio- nal. Disponível em: <http://conteudo.icmc.usp.br/pessoas/taspardo/NILCTR- 0225-PardoNunes.pdf>. Acesso em: 06 jul. 2019. RECHENBERG, I. Evolutionsstrategie: Optimierung Technischer Systeme nach Prinzipien der Biologischen Evolution. Stuttgart: Frommann-Holzboog Verlag, 1973. SCHWEFEL, H. P. Evolutionsstrategie und Numerische Optimierung. Tese de doutorado – Technische Universität Berlin, Berlim, 1975. SOUZA, A. L. Redes bayesianas: uma introdução aplicada a credit scoring. In: Simpósio Nacional de Probabilidade e Estatística (SINAPE), 19., 2010, São Pedro. Anais... São Pedro: SINAPE, 2010. Disponível em: <http://www.ime.unicamp.br/ sinape/sites/default/files/Anderson%20L.%20Souza%20-%20Redes%20Baye- sianas-%20vSINAPE%20final_0.pdf>. Acesso em: 06 jul. 2019. VASCONCELOS, E. C. Árvores de decisão aplicadas ao problema da separa- ção da estrela/galáxia. 2011. 72 f. Dissertação de mestrado – Instituto Nacio- nal de Pesquisas Espaciais, 2011. Disponível em: <http://mtc-m16d.sid.inpe.br/ col/sid.inpe.br/mtc-m19/2011/06.10.18.36/doc/publicacao.pdf>. Acesso em: 06 jul. 2019. MACHINE LEARNING 119 SER_DATSCI_MACH_UNID4_V1.indd 119 30/10/2019 16:24:30
Compartilhar