• Nenhum resultado encontrado

Estratégia Evolutiva

No documento Download/Open (páginas 34-39)

2.3.1 Introdução

A computação evolutiva constitui um ramo da Inteligência Artificial (IA) cuja família de algoritmos é inspirada na teoria da evolução de Darwin,baseando-se nos mecanismos encontrados na natureza, como a auto-organização e o comportamento adaptativo.

A teoria da evolução de Darwin oferece uma explicação da diversidade biológica de maneira que a seleção natural dos indivíduos desempenha um papel central no processo de evolução. A seleção natural favorece aqueles indivíduos que competem por um deter- minado recurso de forma mais efetiva ou que se ajusta melhor as condições do ambiente. De forma geral, como os indivíduos mais bem sucedidos tem uma maior chance de se reproduzir, sua informação genética tende a se perpetuar. Contudo, a natureza tem um procedimento que gera diversidade na população: a mutação. As mutações, quando ocor- rem, dão origem a novos indivíduos que com o passar do tempo dão novas características a população [6]. Este processo é bem capturado pela noção de uma superfície adaptativa como mostrado na Figura 7.

Figura 7 – Superfície adaptativa com dois traços.

O plano x−y retém todas as combinações possíveis de variáveis, ou traços e os valores de z mostram seus fitness. Uma dada população pode ser representada como um con-

junto de pontos desta superfície, onde cada ponto é um individuo realizando uma possível combinação de variáveis. A evolução é então o processo de avanços graduais da popula- ção para grandes altitudes, movidas pela variação e seleção natural. Em um determinado momento da evolução existe um número de pontos que são melhores do que todas suas soluções vizinhas. Tais pontos são chamados de ótimo local. Se a altura deste ponto for em relação ao plano é chamada de ótimo global. [6] Os algoritmos desenvolvidos a partir dessa idéia de evolução biológica são chamados de Algoritmos Evolucionários (AEs). Uma variedade de AEs é proposta na literatura como Algoritmos Genéticos (AG), Programação Evolutiva (PE) e Estratégia Evolutiva (EE) [6]. O principio por trás deste tipo de algoritmo segue a idéia de que dada uma população de indivíduos, a pressão ambiental causa a seleção natural (sobrevivência do mais apto), o qual causa uma ascensão na aptidão (fit- ness) da população. Dada uma função característica (de qualidade) para ser maximizada, cria-se um conjunto de soluções candidatas e aplica-se a função característica como uma medida de função abstrata - quanto maior melhor.

2.3.2 Descrição do Algoritmo

A Estratégia Evolutiva (EE) é um algoritmo evolucionário, criado por Rechenberg and Schwefel na década de 60 [29, 30], com o objetivo principal de resolver problemas de otimização. Eles desenvolveram um esquema denominado estratégia de dois membros ou (1+1)-EE que consiste de uma população formada por um individuo ascendente (pai) e um descendente (filho) criado através de um processo de mutação usando uma dis- tribuição normal com média zero e desvio padrão igual a 1. Na Figura 8 é apresentado o pseudocódigo representando uma estratégia de dois membros:

Inicie t = 0;

Crie o ponto inicial Xt= (Xt

1, X2t, ..., Xnt);

enquanto critério de parada não satisfeito faça Gere Zi (zi gerada a partir de uma Dist. Normal);

Yt i = Xit+ Zi; se f(Xt i) < f (Yit)então senão Xt+1 = Yt; fim Faça t = t + 1; fim

Figura 8 – Pseudocódigo de uma estratégia de dois membros.

ao individuo, uma nova solução candidata xt+1é criada adicionando um número aleatório z i

a cada um dos n´s componentes da solução xt. O novo indivíduo xt+1é aceito como novo

membro da população mediante a condição da sua função de desempenho ser melhor que o seu antecedente, senão, permanece o mesmo individuo original até a próxima iteração.

Rechenberg em suas pesquisas com a estratégia de dois membros verificou a partir de dois diferentes modelos de função objetivo (modelo esférico e um modelo de passagem)1

que a taxa máxima de sucesso de convergência no processo de mutação corresponde a um valor particular da probalidade de se obter o sucesso, isto é, melhorando o valor da função objetivo. Com base nisto ele formulou uma regra de sucesso para controlar o tamanho das mudanças aleatórias, chamada de regra de sucesso 1/5 onde de tempos em tempos na busca pela solução ótima obtém-se a frequência de sucessos. Essa frequência corresponde a razão entre o número de sucessos e o número total de mutações. Se essa relação for maior que 1/5 deve-se incrementar o desvio padrão, caso contrário, deve-se decrementar o desvio padrão [31]. De maneira formal temos,

               σ c, se ps> 1/5 σ.c, se ps< 1/5 σ, se ps= 1/5

onde ps é a porcentagem de mutações com sucesso e o parâmetro c está no intervalo

0, 817 ≤ c ≤ 1 [29]. Este tipo de estratégia permitiu ter uma idéia básica para facilitar a transição para a estratégia soma (µ + λ) e a estratégia vírgula (µ, λ), onde µ representa os ascendentes (pais) e λ os descendentes (filhos). No caso da estratégia soma, durante a etapa de seleção os pais são levados em consideração, enquanto na estratégia virgula, só os filhos sobrevivem a medida que os pais morrem. A descrição dos procedimentos para a formalização do algoritmo ES − (1 + 1) é detalhada em Beyer [32] e Schwefel [31].

2.3.3 Representação

Na estratégia evolutiva o cromossomo representando o indivíduo é dividido em três partes compostas de:

1. Variáveis Objetos X1, X2,..., Xn, representando a parte do genótipo do cromossomo.

1Esses dois modelos podem ser lidos no catálogo de problemas apresentados no anexo A do artigo de

tação σ1, σ2, ..., σnσ e pelos ângulos de rotação α1, α2, ..., αnα.

O ângulo de rotação que representa as interações entre o tamanho do passo usado para diferentes variáveis nem sempre é utilizado por representar um alto custo computacional de implementação e desempenho [33]. O tamanho total do cromossomo é dado por,

< X1, X2, ..., Xn, σ1, σ2, ..., σnσ, α1, α2, ..., αnα>

2.3.4 Mutação

A mutação numa EE, como mencionado na seção 2.3.2, é baseada numa distribuição normal com média µ e um desvio padrão σ. Na prática e nesse trabalho essa média é zero, e o processo de mutação ocorre quando se transforma o vetor formado pelo cro- mossomo (< X1, X2, ..., Xn),(σ1, σ2, ..., σnσ) através de um mecanismo de mutação por

auto adaptação, como descrito em Eiben e Smith [6], Heitkoetter e Beasley [30],Beyer e Schwefel [34], dado por,

σi,= σieτ

,.N (0,1)+τ.N i(0,1)

x,i = xi+ σi.Ni(0, 1)

onde τ e τ, são interpretados como a taxa de aprendizagem e seus parâmetros são

definidos como τ =p2√n−1e τ,=2n−1

. Uma regra é aplicada para evitar valores de mutação muito próximos de zero considerando,

σ,i < 0 ⇒ σ,i = 0

2.3.5 Seleção

Numa EE a seleção dos pais é feita sem tendência e com uma distribuição uniforme onde todo o individuo tem a mesma probabilidade de ser escolhido. Após criar λ descen- dentes a partir de µ pais e calcular sua aptidão (fitness) decide-se qual melhor individuo. A forma da seleção pode priorizar a permanência dos pais na próxima geração junto com os filhos (estratégia (µ + λ)) ou filtrar somente a permanência dos filhos (estratégia (µ, λ)). Segundo Eyben [6], a utilização da estratégia (µ, λ) é melhor por ser capaz de fugir ótimos locais no processo de busca.

O procedimento de construir e treinar uma rede neural para um determinado problema não é uma tarefa fácil devido a arquitetura de entradas, saídas e conexões entre as duas camadas não ser um processo bem definido. Existe uma grande quantidade de parâmetros a serem estimados e a definição dos valores dos pesos no treinamento de uma rede pode sofrer influencia de mínimos locais a depender do método que esteja sendo usado, como por exemplo, o treinamento por retropropagação (backpropagation) [35]. Para suprir tais dificuldades, a utilização de algoritmos evolutivos tem trazidos bons resultados devido a sua capacidade de busca global. È possível utilizar os algoritmos evolutivos tanto para o ajuste dos pesos quanto para definição da arquitetura da rede. O procedimento para o treinamento da RNA funciona de maneira que, no processo evolutivo, cada individuo representa uma RNA onde o fitness ou desempenho dessa rede é medido de acordo com o erro da resposta da rede e a saída desejada. Uma rotina típica para o ajuste de pesos de uma rede neural através da evolução é apresentada a seguir e pode ser vista com detalhes em Yao [36].

1. Leia cada individuo (cromossomo) da geração atual num conjunto de pesos e cons- trua a rede neural correspondente.

2. Calcule o erro quadrático médio entre o erro da resposta da rede e a saída desejada e defina o desempenho (fitness) do individuo para o qual a rede neural é construída baseada neste erro quadrático médio. (Podem ser usadas outras funções de desem- penho, que não o erro quadrático médio).

3. Reproduza um determinado número de filhos para cada individuo a partir da popula- ção atual com probabilidade de acordo com o fitness.

4. Aplique um operador genético, como a mutação, para obter uma nova geração. Baseado nessa metodologia utilizou-se nessa dissertação a estratégia evolutiva como al- goritmo evolutivo para o treinamento das redes neurais. A dificuldade encontrada é o grande numero de parâmetros a ser ajustado o que torna o custo computacional mais ele- vado. Sendo a rede MLP utilizada nessa dissertação composta de uma única camada escondida com b neurônios, e os padrões de entrada representados por a e uma única saída de rede, temos uma quantidade de variáveis dado por:

Novariaveis = [(1 + a + ab + 2b + 1)] /2

Este valor foi dividido por dois devido a população numa estratégia evolutiva ser composta de variáveis objetos e dos parâmetros da estratégia que tem o mesmo número de elemen-

tos sem contar o ângulo de rotação, conforme visto na subseção 2.3.3.

No documento Download/Open (páginas 34-39)

Documentos relacionados