trabalho para a disciplina de otimização natural autor: adriano gomes

28
Controle de parâmetros em algoritmos evolucionários Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Upload: internet

Post on 18-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Controle de parâmetros em algoritmos evolucionários

Trabalho para a disciplina de Otimização Natural

Autor: Adriano Gomes

Page 2: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

1. Introdução2. Exemplos de mudança de parâmetros3. Classificação das técnicas de controle4. Outros exemplos de variação de parâmetros

de EAs

Roteiro

Page 3: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Objetivo: escolher os parâmetros ótimos para

algoritmos evolucionários (EA) Parâmetros de algoritmo ou parâmetros de

estratégia Tamanho da população Probabilidade de mutação Probabilidade de cross over etc

Introdução

Page 4: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Duas formas de definir os valores dos

parâmetros do algoritmo Afinação de parâmetros (parameter tuning)

Abordagem comumente praticada Consiste em definir bons valores de parâmetros

antes de executar o algoritmo Rodar o algoritmo com os parâmetros fixos

Introdução

Page 5: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Controle de parâmetros (parameter control)

Rodar o algoritmo com parâmetros iniciais Parâmetros são modificados no decorrer da

execução do algoritmo

Introdução

Page 6: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Sabe-se que:

Os parâmetros não são independentes e testar todas as combinações é impraticável Para 4 parâmetros que podem assumir 5 valores cada

um, existem 54 = 625 combinações Se para cada combinação rodarmos o algoritmo 100

vezes, executaríamos ele 62500 vezes O processo de afinação de parâmetros consome

muito tempo (mesmo se desconsiderarmos a relação entre os parâmetros)

Os valores selecionados após o processo de afinação não são necessariamente ótimos

Introdução

Page 7: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Devido os EA’s serem processos dinâmicos e

adaptativos: Conjuntos de valores de parâmetros distintos

podem ser ótimos em diferentes estágios do processo evolucionário

Conclusão: Usos de parâmetros estáticos podem levar a uma performance inferior do algoritmo

Em outras palavras: parâmetros que variam com o decorrer do algoritmo sempre podem ser melhores que parâmetros estáticos

Introdução

Page 8: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Solução: Definir os parâmetros como funções do tempo

(p => p(t)) Problema: como o processo para definir parâmetros

estáticos já é complexo, definir parâmetros dinâmicos é ainda mais

Outra abordagem: Utilizar um EA para afinar os parâmetros do EA que tenta resolver um problema particular Duas maneiras

Utilizar dois EAs, onde um deles (META-EA) é utilizado para afinar os parâmetros do outro

Utilizar apenas um EA, o qual afina os próprios parâmetros e resolve o problema

Introdução

Page 9: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Problema: otimização numérica para minimizar:

f(X) = f(x1, ..., xn)

Sujeita a alguma desigualdade e restrições de igualdade:

gi(X) ≤ 0 , i=1, ..., q

hj(X) = 0, j = q+1, ..., m

Domínio das variáveis dados pelos limites superior e inferior li ≤ xi ≤ ui , 1 ≤ i ≤ n

Algoritmo evolucionário baseado na representação de ponto flutuante (X representado como um vetor de ponto flutuante)

Exemplos de mudança de parâmetros

Page 10: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Mudança do tamanho do passo da mutação

Assumindo que a prole é produzida por crossover aritmético e por mutação gaussiana, substituindo componentes do vetor X por:xi’ = xi + N(0, σ)

Método mais simples: utilizar σ fixo Mas, pode ser vantajoso variar o tamanho do passo da mutação

(variar σ) Primeiro modo de variar o parâmetro σ

Mantendo o mesmo σ para todos os vetores X e para todas as variáveis/componentes de X

Usando um σ dinâmico de acordo com o número da geração Exemplo:σ(t) = 1 – 0.9 * (t/T)

t é o número da geração atual (variando de 0 a T) o passo decresce conforme t aumenta(σ(0)=1 até σ(T)=0.1 )

Exemplos de mudança de parâmetros

Page 11: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

A mudança do valor de σ é completamente determinístico

Métodos de mudança deste tipo são chamados de controle de parâmetros determinísticos

Implica em total controle por parte do usuário

Segundo modo de variar o parâmetro σ Mantendo o mesmo σ para todos os vetores X e para todas as

variáveis/componentes de X Incorporando feedback do processo de busca

Este tipo de variação (que incorpora feedback) é chamado de Controle de parâmetro adaptativo

Exemplo bem conhecido (Rechenberg’s 1/5 rule): Taxa de sucesso de todas as mutações deve ser 1/5 Se a taxa é maior que 1/5, o tamanho do passo deve ser

incrementado Se a taxa é menor que 1/5, o tamanho do passo deve ser

decrementado

Exemplos de mudança de parâmetros

Page 12: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

A regra é executada em intervalos periódicos (depois de k iterações) e

pode ser expressa matematicamente por:σ’ = σ/c , se ps>1/5

σ’ = σ * c , se ps<1/5

σ’ = σ , se ps=1/5 0.817 ≤ c ≤ 1 Valores de σ(t) são não determinísticos

Terceiro modo de variar o parâmetro σ Atribuir um tamanho individual de passo da mutação para cada

solução Para isso, estender a notação de indivíduos para o tamanho n+1

X = (x1, ..., xn, σ)

Então, o σ de cada indivíduo também sofrerá evolução Possível solução:

σ‘ = σ * e^(τ * N(0,1))xi‘ = xi + σ‘ * Ni(0,1)

Exemplos de mudança de parâmetros

Page 13: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Se desejarmos um tamanho de parâmetro do passo

da mutação para cada xi, estendemos X da seguinte forma:

X = (x1, ..., xn, σ1, ..., σn)

E a solução passa a ser:σ‘ = σ * e^(τ * Ni (0,1))

xi‘ = xi + σi‘ * Ni(0,1) Esse modo de variar o passo através da evolução é

chamado de controle de parâmetro Self-adaptive (Self-adaptive parameter control)

Exemplos de mudança de parâmetros

Page 14: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Mudança nos coeficientes de penalidade

Quando lida-se com funções que possuem restrições Frequentemente usa-se funções de penalidade para penalizar a função objetivo Se queremos minimizar a função, a penalidade é positiva Se queremos maximizar a função, a penalidade é negativa No exemplo inicial, podemos reescrever a função de avaliação como:

eval(X) = f(X) + W * penalty(X) Como queremos minimizar a função, penalty(X) será positiva se alguma restrição for violada e zero caso contrário Em muitos métodos, um conjunto de funções fj (1 ≤ j ≤ m) é utilizado para construir a penalidade. No exemplo:

fj(X) = max{0, gj(X)} , se 1 ≤ j ≤ q

fj(X) = |hj(X)| , se q+1 ≤ j ≤ m

W é o peso e é definido pelo usuário

Exemplos de mudança de parâmetros

Page 15: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Podemos usar W fixo ou variar utilizando os três métodos

descritos na mudança do passo da mutação: Controle de parâmetro determinístico

Exemplo: W(t) = (C * t)α

, C,α ≥ 1

Controle de parâmetro adaptativo Exemplo:

W(t+1) = (1/β1) * W(t) , se bi ϵ ϝ para todo t-k+1 ≤ i ≤ t

W(t+1) = (β2) * W(t) , se bi ϵ S-ϝ para todo t-k+1 ≤ i ≤ (t) W(t) , caso contrário

S é o conjunto de todos os pontos de busca (soluções) ϝ é o conjunto de todas as soluções possíveis (ϝ S) bi

é o melhor indivíduo com base na função eval

β1 ,β2>1 e β1β2

Exemplos de mudança de parâmetros

Page 16: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Em palavras

Se nas últimas k gerações todos os melhores indivíduos são indivíduos possíveis (que não violam restrições), então W(t+1) é diminuído

Se nas últimas k gerações todos os melhores indivíduos são indivíduos não possíveis (que violam restrições), então W(t+1) é aumentado

Se existem indivíduos possíveis e não possíveis nas últimas k gerações, então W(t+1)=W(t)

Controle de parâmetro self-adaptive Exemplo

Representação do indivíduoX = (x1, ..., xn, w1, ..., wn)

Função de avaliçãoeval(X) = f(X) +

Problema:eval(X,W) = fw(X) A função de avaliação fica dependente dos pesos e a evolução pode focar

na minimização dos pesos ao invés de otimizar f e satisfazer as restrições

Exemplos de mudança de parâmetros

Page 17: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Alguns aspectos que devem ser levados em conta

em técnicas de controle de parâmetros O que varia?

Componentes de um EA Representação de indivíduos Função de avaliação Operadores de variação e as suas probabilidades Operadores de seleção (seleção de pais) Operadores de substituição (seleção de sobrevivente) População (tamanho, topologia, etc)

Não sabemos ao certo o número de parâmetros, pois cada componente pode ser parametrizado e gerar um ou mais parâmetros

Classificação das técnicas de controle

Page 18: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Como são feitas as mudanças?

Já visto: Tipos de configuração de parâmetros

Afinação de parâmetros Controle de parâmetros

Categorias do controle de parâmetros Controle de parâmetro determinístico Controle de parâmetro adaptativo Controle de parâmetro self-adaptive

Classificação das técnicas de controle

Page 19: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Quais evidências informam as mudanças?

Evidência absoluta O valor do parâmetro de estratégia é alterado por

alguma regra que é aplicada quando um evento predefinido ocorre

Usa o feedback da busca Exemplos

Aumento da taxa de mutação quando a diversidade da população cai abaixo de um dado valor

Mudança da probabilidade de realização da mutação ou crossover de acordo com um conjunto de regras fuzzy usando uma variedade de estatísticas da população

Métodos para regular o tamanho da população baseado nas estimativas de aptidão e variância

Classificação das técnicas de controle

Page 20: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Evidência relativa

Os valores dos parâmetros são comparados de acordo com a aptidão da prole que eles produzem e os melhores valores são recompensados

A direção ou magnitude da mudança do parâmetro não é especificado deterministicamente, mas relativo a performance de outros parâmetros

Relação entre evidência absoluta, relativa e controle de parâmetro determinístico, adaptativo e self-adaptative

Classificação das técnicas de controle

Determinístico

Adaptativo

Self-adaptative

Absoluto Possível Possível Não possível

Relativo Não possível Possível Possível

Page 21: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Qual é o escopo da mudança?

Afeta o gene (parâmetro) Afeta o cromossomo inteiro (indivíduo) Afeta a população inteira Afeta outro componente (ex: seleção) Afeta a função de avaliação

Classificação das técnicas de controle

Page 22: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Variação da função de avaliação

Problema de satisfação de restrições (o objetivo é encontrar um vetor S que satisfaça todas as restrições)

wi é peso atribuído a cada restrição (expressa a dificuldade de satisfazê-la)

ci’s são as restrições

Outros exemplos de variação de parâmetros de EAs

Page 23: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Variação da probabilidade de mutação

Controle de parâmetro determinístico

, são constantes L é o comprimento do cromossomo é o tamanho da população t é o tempo (número da geração)

Outros exemplos de variação de parâmetros de EAs

Page 24: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Controle de parâmetro self-adaptative

Como fazer a mutação? Estender o cromossomo de 20 bits Seguir os passos:

1. Decodificar os 20 bits para pm

2. Fazer a mutação nesses 20 bits com probabilidade pm

3. Decodificar os bits resultantes da mutação para pm’

4. Fazer a mutação nos bits que codificam a solução com probabilidade pm’

Problema Fica preso em regiões sub-ótimas com baixa taxa de

mutação para cada indivíduo da população Solução

Eliminar o primeiro passo e realizar a mutação do segundo passo com probabilidade fixa

Outros exemplos de variação de parâmetros de EAs

Page 25: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Variação da taxa de Crossover

Exemplo É usado mais de um operador de Crossover Cada operador possui uma probabilidade pc(opi)

Cada operador têm um valor di que representa a força do operador (recompensa obtida de acordo com a qualidade da cria gerada)

di‘s atualizados a cada uso do operador i

pc(opi)’s são recalculados a cada k gerações Ideia: redistribuir 15% das probabilidades baseado

na força do operados

Outros exemplos de variação de parâmetros de EAs

Page 26: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Para isso, os di’s são normalizados para ter soma

15 (dinorm)

As probabilidades são recalculadas de acordo com:

pc(opi) = 0.85 * pc(opi) + 0.01 * dinorm

Outros exemplos de variação de parâmetros de EAs

Page 27: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Variação de parâmetros da seleção

Existem mecanismos que variam a pressão de seleção baseado no fator de Boltzmann

Exemplo Uso do critério de aceitação de Boltzmann em uma parte da busca

local de um algoritmo memético A temperatura é inversamente relacionada com a diversidade de

aptidão da população Quanto mais espalhados forem os valores de aptidão, menor é a

temperatura Muito espalhado implica em temperatura baixa (menos provável

aceitar soluções piores) Pouco espalhado implica em temperatura alta (mais provável

aceitar soluções piores Consequência: contribui para elevar a diversidade da população

Outros exemplos de variação de parâmetros de EAs

Page 28: Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes

Variação do tamanho da população

Exemplo Atribuir um tempo de vida aos indivíduos da população Em cada geração, reduzir o tempo de vida dos

indivíduos de um Se o tempo de vida chega a zero, o indivíduo é

removido Aos indivíduos recém-nascidos são atribuídos tempos

de vida baseados nas suas aptidões O número de crias de um indivíduo é proporcional ao

número de gerações que ele sobrevive (propaga genes bons)

Outros exemplos de variação de parâmetros de EAs