You are on page 1of 5

9/29/2009

Como saber se meu algoritmo funciona?

Parmetros em Algoritmos de Computao Natural


Computao Natural Gisele L. Pappa

Algoritmos de computao natural normalmente so utilizados para resolver problemas NP ou NPhard No espere que os primeiros experimentos que voc rodar deem certo O sucesso depende fortemente dos parmetros Nem sempre o algoritmo vai funcionar
O problema pode ser muito difcil

Mudanas pequenas podem causar grandes impactos


Existem muitos parmetros que influenciam o sucesso dos algoritmos Mudando um ou dois deles pode no ter nenhum impacto no seu algoritmo, porm pode causar um grande impacto
Mudar um terminal pode mudar tudo

Mudanas grandes podem no causar nenhum impacto


Se voc mexe em todos os parmetros e nada muda no algoritmo, o que isso significa?
Sua representao no apropriada A fitness no apropriada

Se a fitness apropriada
Aumentar o tamanho da populao, em algum momento, vai fazer com que a fitness melhore

O mesmo vlido para pequenas mudanas no cdigo


Trocar um > por um >= pode trocar totalmente os vencedores de um torneio em algoritmos evolucionrios

O que fazer com convergncia prematura?


No utilizar o operador de reproduo Utilizar um mecanismo de seleo mais fraco
Por exemplo, diminuir o nmero de indivduos de um torneio

Como rodar experimentos ?


Os experimentos no podem ser executados apenas uma vez
Em otimizao, o comum so 30 vezes Em aprendizagem, 5 ou 10 vezes

Adicionar diferentes tipos de operadores de mutao Introduzir conceitos de espcies Utilizar fitness sharing

Porm, eles devem ser reprodutveis


Para isso, voc deve conhecer a semente aleatria utilizada em cada execuo

9/29/2009

Como rodar experimentos ?


Como comear?
Escolhendo um parmetro para variar e deixando todos os outros fixos Existem alguns valores padro para cada parmetro, que devem ser utilizados na primeira rodada

Como rodar experimentos ?


Parmetros padro variam para problemas de otimizao versus aprendizagem
Populao :
entre 30 e 1000 indivduos para aprendizagem Entre 500 e 1000 indivduos para otimizao

Normalmente se comea variando o tamanho da populao, e depois os operadores genticos No caso de GP o tamanho mximo da rvore do indivduos normalmente variado antes dos operadores

Gerao: 50 a 1000? Depende do custo da fitness Operadores


Crossover de 90% em GP e variando de 60-90% em GA Mutao variando de 1 a 10% em GA e 10% em GP

Como rodar experimentos ?


Depois de otimizar um parmetro, este se torna fixo e variamos os outros Normalmente, o tamanho da populao, nmero de geraes e a taxa de mutao tem maior influncia no algoritmo Em GP, o tamanho da rvore (que depende do nmero de terminais e operadores) tambm tem influncia grande

Anlise do Algoritmo
Monitorar a fitness Monitorar a diversidade da populao Monitorar o nmero de operaes de cruzamento e mutao que geram indivduos melhores que os pais

Anlise da Populao
Elemento mais importante a ser analisado Avaliao bsica: plotar fitness versus gerao Verificar tambm
Distribuio do tamanho dos indivduos, se ele for varivel Distribuio dos valores de fitness durante cada gerao
Pode dar dicas a respeito da estrutura do espao de busca Se existe uma variao muito grande entre os valores, podem ter regies do espao que no esto sendo descobertas

Anlise da Populao
Para isso, voc deve guardar em um log o mximo de informaes possveis. Vizualizar os dados onde a fitness est sendo calculada tambm pode ser de grande ajuda

9/29/2009

Diversidade
Se mais de 90% dos indivduos da populao so iguais em um tempo muito curto, isso pode indicar um problema Ao mesmo tempo, muita diversidade tambm pode representar um problema Por isso, se possvel, medir a distncia de fentipo entre dois indivduos pode ser muito importante

Otimizao versus Aprendizagem

Trabalhando com dados


A maioria dos mtodos de computao natural trabalha com dados A metodologia de experimentao para otimizao muito diferente da de aprendizagem Em otimizao o objetivo , atravs de um conjunto de dados, encontrar a soluo tima para o problema em mos
A fitness calculada utilizando a base de dados completa
x sada -10 3.6 -8 2.1 -6 2.7 -4 2.6 . . . .

Exemplo
4 3.5 3 2.5 2 1.5 1 0.5 0 -10 -5 0 5 10

Trabalhando com Dados


Aprendizagem
O objetivo criar um modelo que depois vai ser utilizado num novo conjunto de dados
A1,A2,A3,C A 1, 0, 0, ? 1,A 2,A 3,C 0, 0, 1, ? 1 0, 1, 1, . 1, 0, 1 . 1, ? 1, 1, 0, 1, 0, 0

Classificao
Conjuntode Conjunto de teste Treinamento
Modelo criado Algoritmo a partir dos Data Mining dados

O tipo do modelo criado depende do problema sendo resolvido


Mais comuns:
Classificao (Predio) Agrupamento

A1,A2,A3,C 1, 0, 0, 1 Modelo 0, 1, criado 0, 0 a partir . dos dados 1, 1, 1, 1

9/29/2009

Clusterizao
Conjunto de Treinamento
A1,A2,A3 0, 0, 1 1, 1, 0 . 0, 1, 0 Algoritmo de Clusterizao Modelo criado a partir dos dados

Trabalhando com Dados em Computao Natural


Dados so divididos em 3 partes
Treinamento utilizados para criar o modelo durante o clculo da fitness Validao utilizado para avaliar o modelo criado, e determinar a medida de fitness Teste utilizado para testar o melhor indivduo retornado

Nesse caso, a quantidade de classes desconhecida. Cabe ao algoritmo determinar e agrupar os dados de acordo com suas caractersticas

Aprendizagem
Em tarefas de aprendizagem, os dados devem ser divididos em pelo menos dois conjuntos:
Conjunto de treinamento, onde a fitness calculada Conjunto de teste, onde o melhor indivduo retornado avaliado

Exemplo

Validao Cruzada
Garante Validao estatstica dos resultados Como funciona?
Passo 1: os dados so divididos em k subconjuntos de mesmo tamanho Passo 2: em cada instante um subconjunto usado para teste e os demais para treinamento

Validao Cruzada
Mtodo padro para avaliao: validao cruzada estratificada com fator 10 A realizao de vrios experimentos tem demonstrado que 10 a melhor escolha A estratificao reduz a varincia da estimativa Opo melhor: validao cruzada estratificada com fator 10 repetida (10 x)

Isto chamado validao cruzada de fator k Normalmente os subconjuntos so estratificados (divididas de forma que a distribuio das classes sejam mantidas) antes de realizar a validao cruzada Faz-se a mdia das estimativas de erro para obter o erro estimado geral

9/29/2009

Leitura Recomendada
Parameter Control in Evolutionary Algorithms, goston E. Eiben , Robert Hinterding , Agoston E. Eiben Robert Hinterding , Zbigniew Michalewicz, IEEE Transactions on Evolutionary Computation, 2000 A study of cross-validation and bootstrap for accuracy estimation and model selection, R. Kohavi, Proc. of the 14th International Joint Conference on Artificial Intelligence 2 (12): 11371143, 1995

You might also like