280 likes | 397 Views
Controle de parâmetros em algoritmos evolucionários. Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes. Roteiro. Introdução Exemplos de mudança de parâmetros Classificação das técnicas de controle Outros exemplos de variação de parâmetros de EAs. Introdução.
E N D
Controle de parâmetros em algoritmos evolucionários Trabalho para a disciplina de Otimização Natural Autor: Adriano Gomes
Roteiro • Introdução • Exemplos de mudança de parâmetros • Classificação das técnicas de controle • Outros exemplos de variação de parâmetros de EAs
Introdução • 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 • Duas formas de definir os valores dos parâmetros do algoritmo • Afinação de parâmetros (parametertuning) • 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 • Controle de parâmetros (parametercontrol) • Rodar o algoritmo com parâmetros iniciais • Parâmetros são modificados no decorrer da execução do algoritmo
Introdução • 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 • 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 • 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
Exemplos de mudança de parâmetros • 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 • 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 • 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 • 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 • 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-adaptiveparametercontrol)
Exemplos de mudança de parâmetros • 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 • 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 • 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íduo X = (x1, ..., xn, w1, ...,wn) • Função de avalição eval(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
Classificação das técnicas de controle • 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 • 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 • 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 • 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 • 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
Outros exemplos de variação de parâmetros de EAs • 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 • 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 • Controle de parâmetro self-adaptative • Como fazer a mutação? • Estender o cromossomo de 20 bits • Seguir os passos: • Decodificar os 20 bits para pm • Fazer a mutação nesses 20 bits com probabilidade pm • Decodificar os bits resultantes da mutação para pm’ • 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 • 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 • 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 • 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 • 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)