Você está na página 1de 8

Universidade Federal de Minas Gerais Disciplina de Computao Natural ca Prof Gisele L.

Pappa Trabalho Prtico 1 a Data de Entrega: 21 de Setembro

Algoritmo Gentico para Otimizao e Aprendizado de Mquina e ca a


Esse trabalho prope o uso de um Algoritmo Gentico (AG) para resolver problemas de o e otimizao e aprendizado de mquina. Existe uma grande quantidade de algoritmos baseados ca a em AG para solucionar problemas tanto de otimizao (como o problema da mochila, passeio ca do cavalo, escalonamento de tarefas, etc) quanto de aprendizado (como seleo de atributos, ca classicao baseada em rvores binrias, etc). O objetivo deste trabalho desenvolver conca a a e ceitos e metodologias chave para a construo de solues para tais problemas usando AG, e ca co envolve o entendimento e implementao dos componentes bsicos de AG, anlise de sensibilica a a dade dos parmetros do algoritmo (como eles afetam o resultado nal, a taxa de convergncia, a e etc) e procedimentos para avaliao das solues alcanadas. Trataremos um problema de ca co c otimizao e outro de aprendizado de mquina. Ambos compartilham caracter ca a sticas similares quanto ` utilizao de GA. Entretanto, eles possuem aspectos peculiares no que se refere ` a ca a avaliao experimental, como descreveremos nas prximas sees. ca o co O trabalho se divide em trs etapas principais: e 1. Implementao do arcabouo de AG a ser utilizado para solucionar os problemas proca c postos a seguir; 2. Modelagem dos problemas para serem solucionados pelo arcabouo desenvolvido; c 3. Avaliao experimental. ca Para o primeiro item (implementao do arcabouo de GA), alguns aspectos chave devem ca c ser cuidadosamente considerados: 1. Como representar um indiv duo (gentipo); o 2. Quais operadores genticos sero utilizados; e a 3. Facilidades para variao de parmetrosparmetros hardcoded no arcabouo certaca a a c mente dicultaro a avaliao dos parmetros (vide item (3) acima); a ca a 4. Como prover uma avaliao de tness que seja facilmente instanciada para outros probca lemas (fentipo)por exemplo, deve ser fcil incluir funes para clculo da tness dos o a co a indiv duos de forma espec ca para um determinado problema; Quanto ` avaliao experimental, mais especicamente, a anlise de sensibilidade dos a ca a parmetros, pede-se que, ao menos, os seguintes parmetros sejam avaliados: a a Tamanho da populao ca 1

Nmero de geraes u co Presso seletiva (nmero de indiv a u duos considerados durante a seleo) ca Por ser um mtodo estocstico, a avaliao experimental do algoritmo de AG deve ser e a ca realizada com repeties, de forma que os resultados devem ser reportados segundo o valor co mdio obtido e o respectivo desvio-padro. A realizao de 30 repeties um bom ponto de e a ca co e partida (lembrando que desvio-padro alto sugere um maior nmero de repeties). a u co

Otimizao: Labirinto ca
Considere um grid M com dimenses m n, onde cada posio denida como: o ca e mi,j = 0, se mi,j denotar um corredor, 1, se mi,j denotar uma parede.

Para solucionar o problema do Labirinto, dados um ponto de partida Si,j e um de chegada Ek,l (com 0 < i, k < m e 0 < j, l < n), encontrar o menor caminho de Si,j a Ek,l . Dene-se um caminho vlido como aquele que inicia em Si,j e termina em Ek,l . Um caminho invlido a a e aquele que inicia em Si,j mas no termina em Ek,l . Obviamente, um caminho (seja vlido ou a a invlido) no deve atravessar paredes (ou seja, deve seguir apenas por corredores). A soluo a a ca para o problema, ento, pode ser expressa como encontre o menor caminho vlido poss a a vel. Esse problema possui grande aplicabilidade prtica: roteamento de redes (onde as paredes a podem ser vistas como ns falhos, ausncia de links, etc), sistemas de posicionamento global o e (GPS), dentre outros. Existem diversas estratgias para solucion-lo, sendo bastante comum e a aquelas baseadas em grafos, como busca em largura (Breadth First SearchBFS), busca em profundidade (Depth First SearchDFS) e A. Partindo da posio inicial Si,j dada, um ca caminho deve ser constru a partir de quatro movimentos bsicos: do a N: mover para a posio adjacente ao norte; ca S: mover para a posio adjacente ao sul; ca L: mover para a posio adjacente ao leste; ca O: mover para a posio adjacente ao oeste. ca Note que todos os movimentos permitidos consistem em mudar de posies em passos de co tamanho um (apenas posies adjacentes que no sejam parede). co a O objetivo dessa etapa do trabalho propor uma soluo para o problema do Labirinto e ca baseada em AG [1]. Para tal, voc ir utilizar o arcabouo de AG implementado para encontrar e a c caminhos vlidos de menor comprimento. O formato da entrada para o problema do Labirinto a ser aquele representado na Figura 1. Ser um arquivo ASCII com o desenho do labirinto, a a em que os s mbolos +, - e | especicam a posio das paredes do labirinto (cada posio ca ca possui trs - de largura e um | de altura). Regies em branco denotam corredores. e o O caractere S no centro de algum corredor denota a posio inicial (e o caractere E a ca posio nal). A primeira tarefa a ser feita, portanto, consiste em ler o arquivo contendo ca o labirinto e represent-lo de uma forma conveniente. Feito isso, para modelar o problema, a voc dever tomar algumas decises de implementao: (i) como modelar a sequncia de e a o ca e 2

+---+---+---+---+---+---+---+---+ | S | | | +---+ +---+ + + +---+ + | | | | | | | + +---+ + + + +---+ + | | | | | + +---+---+---+---+ + +---+ | | | | | + + +---+---+ + +---+ + | | | | | | +---+---+ + + +---+---+ + | | | | | + + + +---+---+---+---+ + | | | | | + + +---+ +---+---+ +---+ | | E | +---+---+---+---+---+---+---+---+ Figura 1: Exemplo de entrada para o problema do Labirinto. passos tomadosca a seu critrio determinar se um indiv e duo ser representado por um a cromossomo de tamanho xo ou varivel, e como representar a sequncia de movimentos; (ii) a e especicao da funo de tness (que dever reetir os requisitos impostos pelo problema ca ca a que determinar caminhos vlidos de menor comprimento). Vale ressaltar que algumas e a otimizaes podem ser exploradas a m de melhorar a convergncia para caminhos de menor co e comprimento. Avaliao Experimental ca Como mencionado, sero disponibilizados alguns labirintos para avaliao da estratgia dea ca e senvolvida (conforme entrada representada na Figura 1). Como mencionado anteriormente, por se tratar de um processo estocstico, a avaliao experimental dever ser conduzida com a ca a replicaes, de forma a levar em conta a variabilidade dos resultados. A avaliao dever, co ca a portanto, se basear em valores mdios em conjunto com medidas de variabilidade (como o e desvio-padro). a Para esse problema, algumas estat sticas sero de grande interesse como, por exemplo, o a tamanho mdio dos caminhos vlidos encontrados ao longo das geraes e o nmero mdio e a co u e de posies unicas visitadas. co

Aprendizado de Mquina: Comits de Classicadores a e


A rea de aprendizado de Mquina compreende o desenvolvimento de algoritmos capazes de a a aprender determinados padres ou comportamentos a partir de um conjunto de exemplos. o Diversas aplicaes fazem uso intensivo de tcnicas de aprendizado a m de fornecer servios co e c automticos ecazes, como predio metereolgica, identicao de fraudes em transaes, a ca o ca co reconhecimento facial, previso de funes proticas, dentre outras. Um problema t a co e pico relacionado a esse tema consiste em realizar classicao automtica de dados. Nesse caso, ca a 3

(a) Determinaao da Combinaao via AG. c c

(b) Avaliaao da Combinaao Encontrada. c c

Figura 2: Representao Grca: Procedimento Experimental. ca a a partir de padres observados em dados previamente classicados, o problema consiste em o aprender um modelo de classicao (i.e., uma regra ou funo de deciso) capaz de prever a ca ca a classe de um novo dado (cujos padres podem ser desconhecidos). o Estratgias de classicao usualmente seguem uma abordagem supervisionada, onde um e ca modelo de classicao constru utilizando exemplos pr-classicados (conjunto de treinaca e do e mento). Esse modelo , ento, utilizado para classicar novos exemplos (conjunto de teste). e a Por exemplo, se queremos desenvolver uma aplicao que seja capaz de prever se amanh vai ca a chover ou no, temos como entrada para o algoritmo dados sobre diversos dias em meses pasa sados e a informao de ser choveu ou no no respectivo dia (nesse caso, a classe corresponde ca a a chover ou no chover). A partir do modelo criado no conjunto de treinamento, novos dados a de teste so fornecidos, e classicados de acordo com o modelo. a Existem diversas tcnicas para aprender um modelo para classicao. Uma estratgia de e ca e grande interesse tanto prtico quanto terico refere-se aos comits de classicadores. Nesse a o e caso, ao invs de utilizar apenas um classicador, um comjunto de classicadores utilizado e e para realizar previses mais acuradas em relao ` classe dos dados. Em um segundo moo ca a mento, as previses realizadas pelos classicadores so combinadas para formar a deciso nal. o a a O uso de comits normalmente leva a classicaes mais acuradas que aquelas fornecidas por e co um unico classicador, e um dos desaos chave dessa abordagem consiste em denir como combinar as predies dos classicadores, como mostrado na Figura 2. co Uma vez denida uma estratgia de classicao, faz-se necessrio avali-la. Existe uma e ca a a diversidade de mtricas para esse propsito. Para o presente trabalho, iremos avaliar os e o classicadores segundo a mtrica acurcia. A acurcia de um classicador consiste na frao e a a ca dos dados corretamente classicados, dentre todos aqueles classicados. O objetivo desse trabalho , utilizando o arcabouo de AG implementado, buscar por e c combinaes de classicadores que levem a classicaes mais acuradas para um conjunto de co co dados [2]. Voc no precisar rodar os classicadores nos conjuntos de dados fornecidos. Para e a a facilitar, ser disponibilizado um arquivo contendo os dados de classicao gerados por cada a ca classicador. Assim, considere um problema de classicao onde os dados x so assinalados ca a a um conjunto de n classes. Considere, tambm, que o comit de classicadores formado e e e por k classicadores. Os arquivos disponibilizados contero, ento, para cada dado x, k a a conjuntos de predies de tamanho n (ou seja, para cada classicador, teremos sua respectiva co predio para cada classe). Seja pi,j a predio de um classicador i (1 i k) em relao ca ca ca a ` classe j (1 j n). A predio nal ser uma combinao ponderada das predies dos ca a ca co

classicadores, dada por:


k

cmap = arg max


c i=1

pi,c wi .

E de sua responsabilidade determinar como modelar o problema em questo para soluciona a lo via arcabouo de AG. Isso envolve algumas decises de implementao: como representar c o ca os indiv duos (que devem reetir os pesos associados a cada classicador), como avaliar a tness dos indiv duos (lembrando que o objetivo do comit aprender modelos de classicao ee ca acurados), etc. Avaliao Experimental ca O conjunto de dados disponibilizado composto por predies realizadas por trs classie co e cadores, referentes a dados do YouTube, assinalados a trs classes distintas. Para cada instne a cia (i.e., cada dado), listamos os scores obtidos por cada classicador para cada uma das trs e classes (de forma que, o maior score determina a classe prevista pelo classicador). Um trecho desse conjunto de dados encontra-se na Figura 3. Cada linha referente `s predies de cada a co classicador (Figuras 3(a), 3(b) e 3(c)) refere-se a uma instncia do problema, representada a no seguinte formato: id classe_real previsao_1:score_1 previsao_2:score_2 previsao_3:score_3, onde id refere-se ao identicador unico da instncia. classe_real a classe real da instncia, e serve a e a dois propsitos: (i) durante a fase de treinamento, a informao a ser utilizada para avaliar o e ca as combinaes durante a evoluo do AG e (ii) durante a avaliao nal da combinao co ca ca ca encontrada pelo AG na fase de teste, conforme ser explicado abaixo. Finalmente, aps a ina o formao da classe real, segue-se as previses feitas pelo classicador, onde, para cada classe, ca o associado um score que quantica a pertinncia da instncia em cada uma delas. Quanto e e a maior o score, maior a pertinncia (de fato, a classe de maior score dita a classe prevista e e pelo classicador). Novamente, o objetivo do trabalho determinar como combinar os scores e gerados pelos trs classicadores de forma a alcanar uma classicao mais acurada. e c ca
1 CLASS=2 CLASS=2:0.34 CLASS=3:0.26 CLASS=1:0.22 2 CLASS=3 CLASS=3:0.42 CLASS=2:-0.09 CLASS=1:-0.23 3 CLASS=3 CLASS=2:0.34 CLASS=3:0.26 CLASS=1:0.19 ... 1 CLASS=2 CLASS=2:0.96 CLASS=3:0.92 CLASS=1:0.88 2 CLASS=3 CLASS=3:0.98 CLASS=2:0.95 CLASS=1:0.83 3 CLASS=3 CLASS=2:0.96 CLASS=3:0.95 CLASS=1:0.83 ...

(a) Classicador 1.

(b) Classicador 2.

1 CLASS=2 CLASS=2:0.99 CLASS=3:0.98 CLASS=1:0.93 2 CLASS=3 CLASS=3:0.93 CLASS=2:0.88 CLASS=1:0.82 3 CLASS=3 CLASS=2:0.972 CLASS=3:0.970 CLASS=1:0.937 ...

(c) Classicador 3.

Figura 3: Exemplo de entrada para o problema do comit de classicadores. e Para avaliao, a coleo disponibilizada dever ser particionada em conjuntos de treino, ca ca a validao e teste. Seja D a coleo de entrada, e Dtreino , Dval , Dteste as parties de treino, ca ca co validao e teste, respectivamente. O conjunto de treino Dtreino ser utilizado para aprender ca a o modelo de classicao a partir de uma determinada combinao dos classicadores. O ca ca 5

conjunto de validao Dval ser usado para avaliar a qualidade de tal combinao (tness). ca a ca Essa avaliao dever ser realizada variando-se ambos os conjuntos (sem utilizar dados da parca a tio de teste, que se mantm independente), permitindo replicao. Essa primeira etapa, de ca e ca determinao de combinaes timas, encontra-se representada gracamente na Figura 2(a). ca co o Selecionada a melhor combinao, essa deve ser avaliada no conjunto independente de daca dos: o conjunto de teste Dteste . Tal conjunto deve ser, como dito anteriormente, independente dos conjuntos de treino e validao, e seu propsito avaliar se a combinao encontrada ca o e ca na etapa anterior possui bom poder de generalizao (ou seja, se a combinao vlida e ca ca e a produz bons resultados em um conjunto de dados no observado durante a determinao da a ca combinao). Essa etapa encontra-se representada gracamente na Figura 2(b). Lembre-se ca que a informao de classe real deve ser utilizada para aprendizado apenas via conjunto de ca treinamento. A informao de classe real no conjunto de validao e teste serve apenas para ca ca avaliao de qualidade. A mtrica de avaliao da qualidade da classicao ser a acurca e ca ca a a cia. Em resumo, o procedimento de avaliao experimental para esse problema encontra-se ca delineado no Algoritmo 1, abaixo. Algorithm 1 Avaliao Experimental. ca 1: function Avalia ao(D) c D a coleo de entrada. e ca 2: for each i = 1 to r do 3: Dtreino , Dteste RandomPartition(D) 4: C Armazenamento das combinaes encontradas. co 5: for each j = 1 to r do 6: Dtreino , Dval RandomPartition(Dtreino ) 7: C C FindCombination(Dtreino , Dval ) Algoritmo Gentico. e 8: end for 9: cbest SelecionaMelhorCombina ao(C) c 10: Testa(Dtreino , Dteste , cbest ) Avalia qualidade no conjunto de teste. 11: end for 12: ReportaResultados() Valores mdios e medidas de variabilidade. e 13: end function

Guia para Execuo dos Experimentos ca


Abaixo esto algumas sugestes para anlise de sensibilidade dos parmetros. Ela no a o a a a e exaustiva e voc dever estudar as conguraes de parmetros mais apropriadas para cada e a co a problema. Escolha do tamanho da populao e nmero de geraes apropriados. Essa escolha ca u co dever considerar propriedades como convergncia, melhoria das solues encontradas, a e co etc; Conguraes de parmetros referentes `s probabilidades de ocorrncia dos operadores co a a e genticos. Deve-se avaliar o efeito dos operadores na evoluo dos indiv e ca duos: em quantos casos esses operadores contribuem positivamente (lhos melhores que os pais) ou negativamente (lhos piores que os pais) para a evoluo ? ca Analisar o efeito de se alterar o tamanho do torneio; 6

Usar elitismo melhora a melhor soluo? ca Lembre-se que, ao variar um determinado parmetro, todos os outros devem ser xados, a e que a anlise de sensibilidade dos parmetros uma tarefa interativa: voc deve estudar a a e e bem os efeitos at encontrar conguraes boas. Pequenos testes preliminares podem ser de e co grande valia para determinar direes mais interessantes para determinar melhores conguco raes. Obviamente, um estudo cuidadoso desses aspectos imprescind para a obteno co e vel ca de solues de qualidade. co Sugere-se os seguintes passos para determinar melhores conguraes de parmetros: co a 1. Escolha do tamanho da populao e nmero de geraes (usar elitismo, torneio de ca u co tamanho 2, probabilidade de crossover = 0.6 e probabilidade de mutao = 0.001); ca 2. Realizar alguns testes variando o tamanho da populao e nmero de geraes, bem ca u co como probabilidades dos operadores genticos; e 3. Aumentar o tamanho do torneio e avaliar se houve melhoria; 4. Escolha os melhores parmetros obtidos nos passos anteriores, e retire o elitismo. Avalie a as solues obtidas. co

Estat sticas Importantes


Fitness do melhor e pior indiv duo; Fitness mdia da populao; e ca Nmero de indiv u duos repetidos na populao; ca Nmero de indiv u duos gerados por crossover melhores e piores que a tness mdia dos e pais.

O que deve ser entregue


Cdigo fonte do programa o Documentao do trabalho, composta por: ca Introduo; ca Implementao: descrio sobre a implementao do arcabouo de AG, incluindo ca ca ca c detalhes da representao dos indiv ca duos, tness e operadores utilizados. Para cada problema, incluir aspectos de modelagem espec cos, como a denio da funo ca ca de tness e o mapeamento do problema para o arcabouo de AG; c Experimentos: Anlise de sensibilidade dos parmetros do arcabouo de AG na a a c qualidade das solues obtidas, levantamento de estat co sticas acerca do processo evolucionrio, etc. a Concluses o Bibliograa. A entrega DEVE ser feita pelo Moodle na forma de um unico arquivo zipado (ou tarball), contendo o cdigo e a documentao do trabalho. o ca 7

Consideraes Finais co
Os parmetros listados para execuao dos experimentos so sugestes iniciais, e podem ser a c a o modicados a sua convenincia. Alm disso, estratgias mais sosticadas podem tambm ser e e e e incorporadas ao algoritmo. Depois da entrega do trabalho, faremos uma competio em sala de aula para ver qual ca grupo conseguiu a soluo tima ou mais prxima da tima nas instncias disponibilizadas ca o o o a para cada problema. As diversas decises de implementao do algoritmo e a parte de otimizao ca o dos parmetros podem levar ao sucesso ou fracasso do algoritmo. O grupo vencedor ca a receber um prmio (que poder ser em nota, chocolate, cerveja, churrasco, etc). a e a

Referncias e
[1] Gordon, V.S. and Matley, Z. Evolving sparse direction maps for maze pathnding. Proceedings of the IEEE Congress on Evolutionary Computation (CEC), 2004, Vol 1, 835838. [2] Thompson, S. Pruning boosted classiers with a real valued genetic algorithm. KnowledgeBased Systems, 1999, Vol. 12, Issues 56, 277284.

Você também pode gostar